Flux de travail et exemples

Simple Drivers can be configured from the pop-over that appears when adding a new Driver. When adding multiple Drivers or for more advanced configurations, it is useful to have open the Drivers Editor.

Pilote de transformation

Control a property with an object’s transform. In this example, the Y rotation of Object 2 will be driven by the X position of Object 1. Starting from a simple setup with two objects:

  1. Ajoutez un pilote à la propriété Rotation Y du second objet via le menu contextuel ou avec Ctrl-D.

    ../../_images/animation_drivers_workflow-examples_transform-driver-1.png
  2. Ouvrez le Drivers Editor et sélectionnez la propriété Y Euler Rotation dans la région des canaux.

  3. Ouvrez la région Sidebar et sélectionnez l’onglet Drivers.

  4. Configurez le pilote pour qu’il soit à la Averaged Value d’un Transform Channel du premier objet.

    ../../_images/animation_drivers_workflow-examples_transform-driver-2.png
  5. Expérimentez le déplacement du premier objet et remarquez comment il affecte la rotation en Y du second objet.

Scripted Expression - Orbit a Point

Orbit an object’s position around a point with a custom Scripted Expression. The object’s position will change when scrubbing the timeline. Using trigonometry, circular motion can be defined in 2D using the sine and cosine functions. (See Unit Circle.) In this example, the current frame is used as the variable that induces the motion. frame is a Simple Expression that corresponds to bpy.context.scene.frame_current.

../../_images/animation_drivers_workflow-examples_object-rotation.png
  1. Ajoutez un pilote à la propriété X Location.

    1. Réglez le Driver Type sur Scripted Expression.

    2. Ajoutez l’expression 0 + (sin(frame / 8) * 4), où :

      • frame/8 : est la trame courante de l’animation, divisée par 8 pour ralentir l’orbite.

      • (sin( )*4) : multiplie le résultat de sin(frame/8) par 4 pour obtenir un cercle plus grand.

      • 0 + : est utilisé pour contrôler le décalage par rapport au point central de l’orbite.

  2. Ajoutez un pilote à la propriété Y Location avec l’expression « 0 + (cos(frame / 8) * 4)``.

  3. Balayez la chronologie (timeline) pour voir l’effet. Expérimentez avec les variables pour contrôler la taille et le centre de l’orbite.

Fonction personnalisée - Square Value

Create a custom function to get the square of a value (i.e. value2). Adding the function to the Driver Namespace allows it to be used from driver expressions. The Driver Namespace has a list of built-in functions for use in driver expressions, as well as constants such as π and e. These can be inspected via the Python Console:

>>> bpy.app.driver_namespace[' <tab>
                              acos']
                              acosh']
                              asin']
                              asinh']
                              atan']
                              ...

Pour ajouter une nouvelle fonction au Driver Namespace, la fonction elle-même doit être implémentée et ensuite ajoutée au bpy.app.driver_namespace.

  1. Ajoutez ce qui suit à l’Éditeur de texte dans Blender et appuyez sur Run Script.

    import bpy
    
    def square(val):
       """Returns the square of the given value"""
       return val * val
    
    # Add function to driver_namespace.
    bpy.app.driver_namespace['square'] = square
    
  2. Ajoutez un pilote avec une Scripted Expression telle que square(frame).

  3. Observez l’effet lors du balayage de la chronologie.

There are more custom function examples available in Blender’s Text Editor Templates ‣ Python ‣ Driver Functions. Since Simple Expressions cannot access custom functions, using them only makes sense for complex computations.

Pilotes de forme clé

Amélioration de la déformation de maillage

Régler les problèmes d’intersection qui surviennent lors de l’utilisation d’armatures et de peinture de poids, en particulier au niveau des articulations. Les clés de forme peuvent également être utilisées pour ajuster et affiner une armature, par exemple pour suggérer des formations musculaires. Dans cet exemple, une clé de forme est utilisée pour améliorer la déformation au niveau du coude d’un bras rudimentaire.

../../_images/animation_drivers_workflow-examples_shape-key-improved-deformation.png

À gauche : déformation du maillage du squelette sans correction. À droite : application d’une clé de forme corrective

Setup
  1. Ajoutez un maillage (dans cet exemple, un cylindre avec des coupes en boucle).

  2. Ajoutez une armature avec une chaîne d’os.

  3. Skin the mesh to the armature using weight painting.

(Note : pour parenter le maillage à l’armature : sélectionnez d’abord le maillage, puis l’armature et utilisez Ctrl-P pour parenter avec des poids automatiques)

Expérimentez la pose de l’armature et observez la déformation au niveau de l’articulation. Pour résoudre les problèmes d’intersection ou les angles qui semblent insatisfaisants, vous pouvez associer une Clé de forme à une pose.

Clé de forme
  1. Placez l’armature de manière à ce que les problèmes soient visibles. Veillez à couvrir les poses extrêmes que vous voulez prendre en charge pour le rig.

  2. Avec le maillage sélectionné, ajoutez une nouvelle Shape Key en plus de la clé Basis. Properties ‣ Mesh tab ‣ Shape Keys

  3. Afin de créer la clé de forme au-dessus de la déformation de l’armature, activez à la fois Edit Mode Display et Cage Editing dans le modificateur Armature. Properties ‣ Modifiers tab ‣ Armature Modifier ‣ Header

  4. Entrez en Mode Édition et sélectionnez la nouvelle clé de forme dans le panneau properties. Ajustez les sommets comme vous le souhaitez. Sélectionnez la clé Basis pour basculer entre le maillage original et vos modifications. (Remarque : veillez à n’appliquer les modifications qu’à votre forme et non au maillage d’origine ou à d’autres clés existantes).

Une fois que vous êtes satisfait de l’aspect de la déformation pour la pose problématique, vous devrez configurer un pilote pour activer la forme en douceur lors de l’entrée dans cette position.

Driver
  1. Ajoutez un pilote à la Value de la clé de forme que vous avez créée.

  2. Ouvrez l’éditeur Drivers et sélectionnez le pilote.

Méthode 1 – Affectation directe à une valeur de rotation d’un os

Une façon simple de configurer le pilote est d’établir une correspondance directe entre la valeur du canal de rotation d’un os et l’activation de la clé de forme Value. Cette méthode présente l’inconvénient de reposer sur un seul canal de rotation de l’os, ce qui peut être insuffisant pour exprimer précisément la condition dans laquelle la clé de forme doit être activée.

  1. Dans l’onglet Drivers, sélectionnez la Averaged Value de la rotation de l’os que vous posez.

    Comprenez l’axe de rotation qui vous intéresse en activant l’affichage des axes dans l’armature ou en observant les valeurs de transformation de l’os dans Properties.

    Sélectionnez le canal de rotation et réglez-le sur local, c’est-à-dire la valeur de rotation de l’os par rapport à son os parent.

    ../../_images/animation_drivers_workflow-examples_shape-key-method1.png
  2. Définissez manuellement des points dans la courbe du pilote en sélectionnant une poignée et en la faisant glisser ou en insérant des valeurs dans l’onglet F-Curve. L’axe Y représente la clé de forme Value, qui doit aller de 0.0 à 1.0. L’axe X est généralement la trame, mais pour ce pilote, il représente la valeur de rotation en radians. Vous pouvez avoir plus de deux points dans la courbe et ajuster les transitions avec les poignées dans la vue de la courbe (G pour déplacer).

  3. Pour vérifier que le pilote se comporte correctement, désélectionnez l’option permettant de n’afficher que les pilotes des objets sélectionnés. De cette façon, vous pouvez poser l’armature et garder un œil sur le pilote.

Méthode 2 – Différence de rotation par rapport à un os cible

Cette méthode nécessite un os cible supplémentaire ou os correctif, mais elle exprime mieux la condition spatiale dans l’espace 3D de l’os qui cause le problème.

  1. En Mode Édition d’armature, ajoutez un nouvel os extrudé de l’os 1, dans la position où l’os 2 doit avoir la clé de forme active. Ce type d’os suit généralement une convention de dénomination telle que « TAR-« . (cible) ou « COR-« . (correctif).

  2. Dans l’onglet Drivers, sélectionnez la valeur moyennée (Averaged Value) de la différence de rotation entre l’os que vous faites tourner et l’os cible. Une différence de rotation est l’angle minimum entre deux objets dans l’espace World. Il est donc important que les os aient la même racine, de sorte que la seule chose qui affecte l’angle entre les os soit la rotation de l’un d’entre eux. Lorsque l’os de déformation (Bone 2) atteint la rotation cible (TAR-Bone 2), la différence de rotation sera de 0°.

    ../../_images/animation_drivers_workflow-examples_shape-key-method2.png
  3. Ajustez manuellement les poignées de la courbe pilote de sorte que Value de la clé de forme (axe Y) soit 1,0 lorsque la différence de rotation (axe X) est de 0 °. La valeur doit être de 0,0 lorsque le bras est étendu, à ce point la différence de rotation doit être d’environ 90 ° ou plus (en radians).

  4. Consultez les étapes de la méthode 1 pour savoir comment ajuster les poignées de courbe et confirmer que la fonctionnalité fonctionne. Posez l’armature pour vérifier que les plages sont correctes.

Chained Relative Shape Keys

Activez successivement différentes touches de forme. Dans cet exemple, déplacer un seul os activera d’abord la clé 1 puis la clé 2. Voir aussi les touches de forme relatives se mélangent de manière additive.

Clés de forme

Ajoute deux clés de forme à un maillage, en plus de la base Basis.

../../_images/animation_drivers_workflow-examples_chained-shape-keys-basis.png

La base (Basis)

../../_images/animation_drivers_workflow-examples_chained-shape-keys-key1.png

Clé 1: faces supérieures remontées de 1 m

../../_images/animation_drivers_workflow-examples_chained-shape-keys-key2.png

Clé 2: dessus intérieur remonté de 1 m.

Drivers

Ajouter une armature avec un seul os pour contrôler les clés de forme. Le but est d’activer successivement les clés au fur et à mesure que cet os monte.

../../_images/animation_drivers_workflow-examples_chained-shape-keys-result.png

Comme le montre l’image ci-dessus, lorsque l’os est à mi-hauteur, la clé 1 et la clé 2 ont une influence. C’est une question de préférence si la clé 1 doit être à sa valeur maximale avant que la clé 2 ne commence à devenir active, ou dans quelle mesure elles doivent se chevaucher. Cet exemple montre un mélange homogène.

Pour un mélange homogène en cas de chevauchement, la Key 1 doit avoir une valeur de 0,0 lorsque l’os est au bas et augmenter linéairement jusqu’à 1,0 jusqu’à ce que l’os dépasse la hauteur médiane. La Key 2 doit avoir une valeur de 0,0 avant la hauteur médiane, puis augmenter à la même vitesse que la Key 1 jusqu’à atteindre la valeur 1,0 lorsque l’os est à la hauteur maximale.

  1. Ajoutez un pilote à la valeur de la Key 1 et de la Key 2. Dans l’onglet Drivers, configurez les deux pilotes pour être la Averaged Value (Valeur moyenne) d’une variable avec l’emplacement Z de l’os.

  2. Determine the range of the bone’s motion in the World Z axis by moving it up so that it is aligned with the top of the mesh when both keys are active. Here we will use [0.0, 2.5].

  3. Configurez les fonctions du pilote de manière à ce que la Value des clés de forme (axe Y) corresponde à la hauteur de l’os (axe X).

    Les fonctions pilotes doivent être linéaires, par conséquent, elles peuvent être définies analytiquement avec une fonction de type \(y = a + bx\), où \(a\) est un décalage en \(y\) et \(b\) est la pente.

    1. Dans l’onglet Modifiers, ajoutez un Generator de type Extended Polynomial pour les deux pilotes.

    2. Play with the values of \(a\) and \(b\) so that the curves go from [0.0, 1.0] in the Y axis and from [0.0, 2.5] in the X axis. The curves should overlap in the mid area of the X axis and they should have the same slope (\(b\)).

      Les valeurs possibles sont Key 1: \(y = 0.0 + 0.6x\) et Key 2: \(y = -0.5 + 0.6x\).

      ../../_images/animation_drivers_workflow-examples_chained-shape-keys-driver-setup.png

      Note that the functions go outside the range [0.0, 1.0] for the shape keys” Value, but that has no effect because Value is clamped in a Range in the Shape Keys panel.