Flux de travail et exemples¶
Voici quelques exemples de contrôleurs et de flux de travail.
Flux de travail¶
Contrôleur transform¶
Cet exemple vous montre la manière d’installer un contrôleur transform. D’abord, assurez-vous que vous êtes dans la vue Front Ortho. Pavnum5, Pavnum1.
- En Mode objet, sélectionnez puis dupliquez le Cube par défaut. Maj-D. Déplacez « Cube.001 » à une nouvelle position.
- Avec « Cube.001 » sélectionné, ajoutez un seul contrôleur à la propriété Rotation Y.
- Ouvrez l”Éditeur Graph, mettez le Mode à Drivers.
- Show Only Selected est utile en étant désactivé pour les contrôleurs, marqué en vert dans l’image.
- Dans la région des canaux, sélectionnez la propriété Y Euler Rotation.
- Pressez N pour ouvrir la région des propriétés, déroulez le panneau Drivers.
- Modifiez le Type en Averaged Value, ceci va retourner la valeur moyenne des variables de contrôleur.
- Modifiez les réglages de variable du contrôleur :
- Type – Transform Channel
- Ob/Bone – Cube
- Transform Type – X Location
- Transform Space – World Space
Une fois terminé, « Cube.001 » devrait tourner sur l’axe Y pendant le déplacement de « Cube » de gauche à droite.
Exemples¶
Driver Expression¶
Voici quelques exemples utilisant l’expression scriptée Expr pour fixer la Driver Value.
Orbiter autour d’un point¶
Voici les deux contrôleurs ajoutés au Cube : Position X et Position Y.
Les expressions scriptées sont utilisées pour fixer la position de l’objet.
- X Location Expr
0 + (sin(frame / 8) * 4)
(frame/8)
: est la trame courante de l’animation, divisée par 8 pour ralentir l’orbite.(sin( )*4)
: ceci retourne le sinus de (frame/8), puis multiplie par 4 pour un cercle plus grand.0 +
: est utilisé pour contrôler le décalage de la position X de l’orbite.
- Y Location Expr
0 + (cos(frame / 8) * 4)
(frame/8)
: est la frame courante de l’animation, divisée par 8 pour ralentir l’orbite.(cos( )*4)
: ceci retourne le cosinus de (frame/8), puis multiplie par 4 pour un cercle plus grand.0 +
: est utilisé pour contrôler le décalage de la position Y de l’orbite.
frame
est le même que bpy.context.scene.frame_current.
Espace de nom du contrôleur¶
Il y a une liste de fonctions et de propriétés de contrôleur intégrées. Celles-ci peuvent être affichées via la Console Python
>>> bpy.app.driver_namespace['
__builtins__']
__doc__']
__loader__']
__name__']
__package__']
acos']
acosh']
asin']
asinh']
atan']
atan2']
atanh']
bpy']
ceil']
copysign']
cos']
cosh']
..
Ce script va ajouter une fonction à l’espace de nom du contrôleur, qui peut alors être utilisé dans l’expression driver_func(frame)
import bpy
def driver_func(val):
return val * val # return val squared
# add function to driver_namespace
bpy.app.driver_namespace['driver_func'] = driver_func
Shape Key Driver¶
Cet exemple montre un contrôleur de forme clé. Le contrôleur a été ajouté à la valeur de la forme clé.
Cet exemple utilise la Rotation Z de l’os « b » de l’armature pour contrôler la valeur d’une forme clé. Le mode de rotation de l’os est mis à XYZ Euler.
The Driver F-Curve is mapped like so:
- Bone Z Rotation 0.0 (0.0): Shape Key value 0.0
- Bone Z Rotation -2.09 (-120.0): Shape Key value 1.0
Ce type de contrôleur peut aussi être installé avec le type de variable Rotational Difference.
Voir Formes clés pour plus d’informations.
Drivers and Multiple Relative Shape Keys¶
Les captures d’écran suivantes illustrent la combinaison de formes clés, d’os, et de contrôleurs pour construire des formes clés chaînées partageant une simple racine. Bien que cela n’ait pas l’avantage du Evaluation Time d’une forme clé absolue, cela vous permet d’avoir des relations plus complexes entre vos formes clés.
The Basis shape key has the stacks fully retracted. Key1 has the base fully extended. Key2A has the left stack fully extended. Key2B has the right stack fully extended. Key2A and Key2B are both relative to Key1 (as you can see in the field in the bottom right of the Shape Keys panel).
La valeur de Key1 est liée à la position des os par un contrôleur avec deux variables. Chaque variable utilise la coordonnée Z du monde d’un os et utilise la valeur maximale pour déterminer la manière avec laquelle la base sera étendue. Le générateur polynomial est conçu de telle manière que le haut de la pile dominante devrait s’aligner avec l’os pour cette pile.
La valeur de Key2A est liée à la position de « Bone.L ». Ses paramètres de générateur sont élaborées de sorte que quand la valeur de Key1 atteint 1, la valeur de Key2A commence à augmenter au dessus de zéro. De cette manière, le haut de la pile gauche va se déplacer bone.L (essentiellement).
La valeur de Key2B est liée à la position de « Bone.R ». Ses paramètres de générateur sont semblables à ceux de Key2A de sorte que le haut de la pile droite va se déplacer avec bone.R (essentiellement).
Alors que c’est plutôt facile pour bone.L et bone.R d’être dans une position qui indique des valeurs en conflit pour Key1 il y aura des fois où les os ne s’alignent pas avec les hauts de leurs piles respectives. Si le contrôleur pour Key1 utiliser Average ou Minimum au lieu de Maximum pour déterminer la valeur de la forme clé alors les « conflits » entre bone.L et bone.R résolus différemment. Vous allez choisir selon les besoins de votre animation.