Panneau Drivers (Pilotes)#

../../_images/animation_drivers_drivers-panel_panel.png

Le menu déroulant Edit Driver .#

Reference

Éditeur:

Éditeur Graph

Mode:

Drivers

Panneau:

Sidebar region ‣ Drivers

Raccourci:

N

Reference

Menu:

Context menu ‣ Edit Driver

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.

../../_images/animation_drivers_drivers-panel_add-variable.png

Add, Copy, Paste buttons.#

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
../../_images/animation_drivers_drivers-panel_single-property.png

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 ou location[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 Copy As New Driver de la propriété d’entrée et à coller le résultat dans le pilote via Paste Driver Variables.

Transform Channel
../../_images/animation_drivers_drivers-panel_transform-channel2.png

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.

../../_images/animation_drivers_drivers-panel_rotational-difference.png
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
../../_images/animation_drivers_drivers-panel_distance.png

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
../../_images/animation_drivers_drivers-panel_context-property.png

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 ou camera.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 de camera.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 :

../../_images/animation_drivers_drivers-panel_angle-curve.png

Courbes d’atténuation pour les angles pondérés.#

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.