Panneau Drivers (Pilotes)¶
Référence
- Éditeur:
Éditeur Graph
- Mode:
Drivers
- Panneau:
- Raccourci:
N
Référence
- Menu:
- Raccourci:
Ctrl-D
Ce panneau est visible dans la Sidebar de l” Éditeur Drivers ou en tant que menu déroulant lors de l’ajout d’un pilote à une propriété.
Il indique la propriété qui est pilotée, suivie d’une série de paramètres qui déterminent le fonctionnement du pilote.
Paramètres de Driver¶
Type¶
Voici deux catégories de pilotes :
Built-in functions (Average, Sum, Min and Max)
La propriété pilotée aura la valeur de la moyenne, de la somme, de la valeur la plus basse ou de la plus haute (respectivement) des valeurs des Driver Variables référencées. S’il n’y a qu’une seule variable pilote, ces fonctions donneront le même résultat.
Custom (Scripted Expression).
Une expression Python arbitraire qui peut se référer aux Driver Variables par le nom. Voir Expressions.
Driver Value¶
Le résultat actuel de la configuration du pilote. Utile pour le débogage.
Variables¶
Voir Driver Variables.
Update Dependencies¶
Ceci va forcer une mise à jour des dépendances de la Driver Value.
Show in Drivers Editor¶
Ouvre l”Éditeur Drivers pleinement fonctionnel. Ce bouton n’apparaît que dans la version popover du panneau Drivers.
Variables de pilote¶
Les variables sont des références aux propriétés, aux canaux de transformation ou au résultat d’une comparaison entre des transformations de deux objets.
Les pilotes doivent accéder aux données des objets via des Driver Variables, plutôt que par des références directes dans l’expression Python, afin que les dépendances soient correctement suivies.
- Add Input Variable
Ajoute une nouvelle variable de pilote.
- Copy/Paste Variables
Copie la liste de variables actuelle afin de pouvoir la coller dans la liste de variables d’un autre pilote.
- Name
Nom à utiliser pour les expressions de script. Le nom doit commencer par une lettre, et ne contenir que des lettres, des chiffres ou des tirets bas.
- Variable Type
Le type de variable à utiliser.
- Single Property
-
Récupère la valeur d’une propriété RNA, spécifiée par une référence de bloc de données et une chaîne de chemin.
Dans le cas des propriétés de transformation, cela rendra la valeur exacte de la propriété UI, tandis que Transform Channel prendra en compte le parentage et/ou les contraintes selon les besoins.
Voir aussi Custom Properties.
- ID Type
Le type d’ID-block. Par exemple : Key, Image, Object, Material.
- ID
L’ID du type de l’ID-Block. Par exemple : “Material.001”.
- RNA Path
Le nom RNA de la propriété, basé sur un sous-ensemble de la syntaxe d’accès aux attributs Python. Par exemple :
location.x
oulocation[0]
pour la valeur de la localisation du canal d’animation X (avant parentalité ou contraintes), ou['prop_name']
pour une propriété personnalisée.- Fallback
Si activé, permet de spécifier une valeur de secours à utiliser comme valeur de variable si le chemin RNA ne peut pas être résolu, au lieu de provoquer un échec d’évaluation du pilote. Pour plus d’informations, voir Propriété de contexte ci-dessous.
Astuce
Le moyen le plus simple de créer une variable de ce type consiste à utiliser l’option de menu contextuel Copier comme nouveau pilote de la propriété d’entrée et à coller le résultat dans le pilote via Coller les variables du pilote.
- Transform Channel
-
Récupère la valeur d’un canal Transform d’un objet ou os.
- ID
ID de l’objet. Par exemple : Cube, Armature, Camera.
- Bone (Os)
Pour les armatures, le nom de l’os de l’armature. Par exemple : “Bone”, “Bone.002”, “Arm.r”.
- Type
Par exemple : Position X, Rotation X, Échelle X.
L’option Average Scale récupère la valeur d’échelle combinée, calculée comme la racine cubique du changement total de volume. Contrairement à X/Y/Z Scale, cette valeur peut être négative si l’objet est retourné par une mise à l’échelle négative.
- Mode (Rotation)
Pour les canaux de rotation, spécifie le type de données de rotation à utiliser, y compris les différents ordres d'Euler explicites. Par défaut, l’ordre d’Euler de la cible est utilisé. Voir Modes de canal de rotation.
- Space
World Space, Transform Space, Local Space.
- Rotational Difference
Fournit la valeur de la différence rotationnelle entre deux objets ou os, en radians.
- Bone (Os)
Pour les armatures, le nom de l’os de l’armature. Par exemple : “Bone”, “Bone.002”, “Arm.r”.
- Distance
-
Fournit la valeur de la distance entre deux objets ou os.
- Bone (Os)
Pour les armatures, le nom de l’os de l’armature. Par exemple : “Bone”, “Bone.002”, “Arm.r”.
- Space
World Space, Transform Space, Local Space.
- Context Property
-
Fournit la valeur d’une propriété qui fait implicitement référence à une scène ou à un layer de vue du système d’animation en cours d’évaluation. Il s’agit d’une référence faible qui ne conduit pas à la liaison de la scène ou de la couche de vue référencée à partir du pilote lors de la liaison des données d’animation.
Un exemple où de telles propriétés entrent en jeu fait référence à une transformation de la caméra active. Il est possible de paramétrer un pilote dans un fichier de personnage et de lui faire utiliser la caméra du groupe lorsque le personnage est lié à un groupe.
- Context
Active Scene, Active View Layer.
- RNA Path
Nom RNA de la propriété, basé sur un sous-ensemble de la syntaxe d’accès aux attributs Python. Par exemple :
camera.location.x
oucamera.location[0]
pour la valeur du canal d’animation de l’emplacement de la caméra X (avant parentalité ou contraintes), ou [« prop_name »]` pour une propriété personnalisée.- Fallback
Si activé, permet de spécifier une valeur de secours à utiliser comme valeur de variable si le chemin RNA ne peut pas être résolu, au lieu de provoquer un échec d’évaluation du pilote.
Cette fonctionnalité peut être très utile pour rendre les pilotes plus robustes lors de l’implémentation d’options globales de scène à l’aide de propriétés personnalisées. Lorsque l’objet est lié à une scène différente, ces propriétés personnalisées peuvent ne pas y exister et les solutions de secours peuvent être utilisées pour fournir des valeurs par défaut raisonnables.
Les solutions de repli peuvent également être utilisées pour émuler le comportement de recherche du mode View Layer du Nœud Attribute.
Astuce
Bien que les valeurs des canaux d’animation x/y/z pour l’emplacement de la caméra soient accessibles via
camera.location[0/1/2]
, la récupération de son emplacement et de son orientation dans l’espace mondial après la parentalité et les contraintes nécessite actuellement l’utilisation decamera.matrix_world
. Cette propriété peut être facilement comprise en visualisant la matrice comme un tableau de quatre vecteurs dans l’espace mondial :matrix_world[0][0/1/2]
est le vecteur de direction Screen Right de l’écran (caméra locale X).matrix_world[1][0/1/2]
est le vecteur de direction Screen Up (caméra local Y).matrix_world[2][0/1/2]
est l’opposé de la direction vers laquelle pointe la caméra.matrix_world[3][0/1/2]
est l’emplacement (location) de la caméra.
- Value
Affiche la valeur de la variable.
Rotation Channel Modes¶
Rotation Transform Channels prennent en charge un certain nombre de modes d’opération, y compris:
- Auto Euler
Utilise l’ordre d'Euler de la cible pour décomposer la rotation en canaux.
- XYZ Euler, …
Spécifie explicitement l’ordre de rotation d” Euler à utiliser.
- Quaternion
Fournit la représentation Quaternion de la rotation.
- Swing and X/Y/Z Twist
Décompose la rotation en deux parties : une rotation Swing qui vise l’axe spécifié dans sa direction finale, suivie d’une rotation Twist autour de cet axe. Ceci est souvent nécessaire pour piloter les Shape Keys et les os correctifs pour la rotation des articulations organiques.
Cette décomposition est souvent produite dans les rigs en utilisant un os auxiliaire avec la contrainte Damped Track pour extraire la partie swing, et son enfant avec Copy Transforms pour extraire la composante twist.
Les valeurs des canaux pour Swing et Y Twist sont :
- Y Rotation
Angle réel de la rotation twist.
- W Rotation
Angle réel de la rotation swing, indépendamment de sa direction.
- X Rotation, Z Rotation
Les angles pondérés qui représentent la quantité de swing autour de l’axe X/Z.
L’amplitude de l’angle est égale à W Rotation lorsque la rotation est purement autour de cet axe, et s’atténue vers zéro lorsque la direction change vers l’autre axe, en suivant les courbes d’atténuation du graphique de droite.
Mathématiquement, les angles d’oscillation sont calculés à partir des composantes quaternionals, en utilisant \(2 \arccos(w)\) pour W et \(2 \arcsin(x)\) etc. pour les autres. La composante rotation de l’oscillation qui correspond à l’axe de torsion est toujours 0 et est remplacée par l’angle de torsion.
Expressions¶
- Expression
Un champ de texte où vous pouvez entrer une expression Python arbitraire qui fait référence aux Driver Variables par leur nom.
L’expression a accès à un ensemble de constantes standard et de fonctions mathématiques de
math
,bl_math
et d’autres modules, fournis dans le Driver Namespace. Pour un exemple d’ajout d’une fonction personnalisée à l’espace de noms, voir l” driver namespace example.Pour des raisons de performance, il est préférable d’utiliser le sous-ensemble Simples Expressions autant que possible.
- Use Self
Si cette option est activée, la variable
self
peut être utilisée pour que les pilotes référencent leurs propres données. Utile pour les objets, les os, pour éviter d’avoir à créer une variable Driver pointant vers elle-même.Exemple :
self.location.x
appliqué à la propriété de rotation Y du même objet fera basculer l’objet lors de son déplacement.Notez que les dépendances des propriétés accessibles via
self
peuvent ne pas être entièrement suivies.
Simple Expressions¶
Blender peut évaluer directement un sous-ensemble utile d’expressions de pilotes Python, ce qui améliore considérablement les performances, en particulier sur les systèmes multi-cores. Pour en tirer parti, l’expression du pilote doit uniquement utiliser les fonctionnalités suivantes :
- Variable Names
Utiliser uniquement des caractères ASCII.
- Literals
Virgule flottante et entier décimal.
- Globals
frame
- Constants
pi
,True
,False
- Opérateurs
+
,-
,*
,/
,==
,!=
,<
,<=
,>
,>=
,and
,or
,not
, opérateur conditionnel/ternaire if- Fonctions standards
min
,max
,radians
,degrees
,abs
,fabs
,floor
,ceil
,trunc
,round
,int
,sin
,cos
,tan
,asin
,acos
,atan
,atan2
,exp
,log
,sqrt
,pow
,fmod
- Fonctions fournies par Blender
lerp
,clamp
,smoothstep
Les expressions simples sont évaluées même lorsque l’exécution des scripts Python est désactivée.
Lorsqu’une expression en dehors de ce sous-ensemble est utilisée, Blender affiche un avertissement “Slow Python expression”. Cependant, tant que la majorité des pilotes utilisent des expressions simples, l’utilisation d’une expression complexe dans un petit nombre de pilotes est acceptable.
Voir aussi