Pour animer la pose d’une carte dans Unity, il est possible de modifier directement la position des sommets de son maillage avec Shader Graph. Cette méthode permet de courber, plier ou déformer progressivement une carte sans utiliser de textures ni de ressources d’animation.
Dans Unity 2018.2, nous avons ajouté l'entrée "Vertex Position" au Shader Graph, ce qui vous permet d'ajuster et d'animer vos maillages. À l'aide d'une série d'entrées et d'opérations, nous pouvons créer des shaders qui modifient les diverses propriétés de rendu de nos ressources, telles que la couleur et la texture de leur surface, et même la position des vertex du maillage.
Pourquoi utiliser l’animation de sommets pour une carte
Les shaders sont un aspect incroyablement puissant du pipeline de rendu, permettant un grand degré de contrôle sur la façon dont les éléments de la scène sont affichés. Vous pouvez également combiner tous ces éléments pour créer des animations complexes et riches.
Cette scène n'utilise pas de textures ou de ressources d'animation ; tout ce que vous voyez est coloré et animé à l'aide de Shader Graph. Cet article de blog montrera comment vous pouvez commencer avec les animations de vertex, introduira le concept d'utilisation des masques et des propriétés, et terminera en expliquant comment nous avons créé les shaders pour la scène de l'île du Désert.
Pour une carte, cette approche est particulièrement adaptée lorsque l’on souhaite obtenir une déformation visuelle contrôlée : un bord peut rester fixe tandis que le reste de la surface se soulève, se courbe ou oscille. La déformation est calculée sur le maillage et peut être animée à partir du temps ou de propriétés exposées dans Shader Graph.
Préparer Unity et Shader Graph
Pour pouvoir utiliser Shader Graph, votre projet doit remplir les conditions suivantes :
- Fonctionne avec la version 2018.2 ou supérieure de Unity.
- Utilisation des nouveaux pipelines de rendu Lightweight ou High Definition (LWRP est suggéré pour l'expérimentation en raison des temps de compilation plus rapides).
- Le paquet Shader Graph doit être installé dans le gestionnaire de paquets.
Pour installer Shader Graph, créez ou mettez à jour un projet à la version 2018.2 ou supérieure, naviguez vers Fenêtre > Gestionnaire de paquets > Tous, trouvez Shader Graph dans la liste et cliquez sur installer.
Si vos matériaux ne s'animent pas dans la vue de la scène, assurez-vous que l'option Matériaux animés est cochée : Faire quelque chose de fantaisiste avec Shader Graph ? Vous pouvez prévisualiser les matériaux animés en cliquant sur la petite image déroulante en haut à gauche de la vue de la scène.
Préparer le maillage de la carte
Avant de commencer à utiliser des mathématiques sophistiquées pour déplacer des objets, nous devons comprendre ce que nous déplaçons. Une maille de la scène comporte quatre types d'espaces :
- Objet : Position du sommet par rapport au pivot du maillage.
- Vue : Position du sommet par rapport à la caméra.
- Le monde : Position du sommet par rapport à l'origine du monde.
- Tangent : Traite certains cas d'utilisation particuliers, tels que l'éclairage par pixel.
Vous pouvez sélectionner l'espace que vous souhaitez affecter dans le menu déroulant du nœud Position. En utilisant le nœud de division, nous pouvons sélectionner l'axe que nous voulons affecter.
Le nœud Split produit des sorties sur quatre canaux, les trois premiers correspondant à notre axe de transformation (R=X, G=Y, B=Z). Dans l'exemple ci-dessus, j'ai divisé l'axe des y de l'objet et j'ai ajouté 1, déplaçant ainsi notre objet de 1 sur son propre axe.
Pour animer une carte, le maillage doit contenir suffisamment de sommets pour que la déformation soit progressive. Une surface composée de très peu de sommets se déplacera par grandes sections et donnera une courbure irrégulière.
Déplacer les sommets dans Shader Graph
La position des sommets peut être séparée en plusieurs axes afin de modifier uniquement la hauteur, la largeur ou la profondeur de la carte. L’axe vertical permet de soulever la surface, tandis que les axes horizontaux servent à contrôler la direction et la progression de la déformation.
Il peut arriver que vous souhaitiez déplacer l'objet dans l'espace mondial. Pour ce faire, sélectionnez Monde dans le nœud Position, puis reconvertissez la sortie dans l'espace objet à l'aide du nœud Transformation.
Cette conversion est utile lorsque l’animation doit être calculée selon l’environnement global plutôt que selon le pivot local de la carte. Elle permet notamment d’utiliser une position mondiale ou un bruit de gradient pour produire une déformation cohérente.
Limiter la déformation avec un masque
Maintenant que nous savons comment déplacer un Mesh, il est souvent utile de savoir comment en limiter l'effet. En utilisant des nœuds tels que Lerp, nous pouvons mélanger deux valeurs.
L'entrée T est la valeur de contrôle pour le Lerp. Lorsque notre entrée T est à 0 (visualisée en noir), le canal A est utilisé. Lorsque notre entrée est 1 (représentée par le blanc), le canal B est utilisé.
Un masque permet donc de conserver une partie de la carte immobile tout en appliquant la déformation à une autre partie. Pour une carte posée sur une table, le bord fixé peut rester en place tandis que l’extrémité opposée est progressivement déplacée.
Dans l'exemple ci-dessous, le curseur est utilisé pour mélanger les deux entrées. L'un des exemples suivants peut être utilisé à la place du curseur.
Masque UV
Semblable à un masque de texture, le masque UV permet de choisir la partie du maillage que l'on souhaite affecter en fonction de l'enveloppe UV. Dans la capture d'écran ci-dessus, j'utilise l'axe u de l'UV pour créer un dégradé de gauche à droite.
Pour une carte, l’axe u peut servir à créer une influence qui commence sur un bord et augmente jusqu’à l’autre extrémité. Le côté associé à la valeur 0 reste alors proche de sa position initiale, tandis que le côté associé à la valeur 1 reçoit la plus grande partie du déplacement.
Pour décaler le gradient, utilisez un nœud Ajouter; pour augmenter la force, utilisez un nœud Multiplier; et pour augmenter la chute, utilisez un nœud Puissance.
Un masque UV inversé puis multiplié par lui-même pour créer un dégradé lisse sur l'axe des ordonnées. Il est utilisé pour plier le centre du drapeau en l'éloignant de la rame.
Masque de texture
Avec une texture en noir et blanc, nous pouvons utiliser des formes détaillées pour pousser notre Mesh. Dans l'exemple ci-dessus, vous pouvez voir que le blanc représente la hauteur maximale de notre gamme, tandis que le noir n'a aucun effet sur la position du maillage.
En effet, les Noirs ont la valeur numérique 0, et le fait d'ajouter 0 à la position de la maille ne la fait pas bouger. Pour utiliser une texture avec position de vertex, vous devez utiliser le nœud Sample Texture 2D LOD au lieu du nœud Sample Texture 2D typique.
Les textures sont particulièrement utiles si vous avez besoin d'un masque ayant une forme unique ou un certain degré d'affaiblissement.
Masque de couleur des vertex
Chaque sommet stocke une unité d'information Vector3 que nous appelons couleur du sommet. En utilisant le package Poly Brush, nous pouvons directement peindre les couleurs des vertex dans l'éditeur.
Vous pouvez également utiliser un logiciel de modélisation 3D (tel que 3ds Max, Maya, Blender, 3D Coat ou Modo) pour attribuer des couleurs aux vertex.
Il convient de noter que, par défaut, la plupart des logiciels de modélisation 3D exportent les modèles avec la valeur maximale de RVB attribuée à chaque sommet.
Dans la capture d'écran ci-dessus, le nœud Vertex Colour est divisé en canal rouge(R), puis connecté au canal T du nœud Lerp, agissant comme un masque.
Le canal A du nœud Lerp est utilisé lorsque l'entrée est 0, le canal B étant utilisé lorsque l'entrée est 1. En pratique, la configuration ci-dessus n'ajoutera 1 à l'axe des ordonnées que si les sommets ont la couleur rouge.
Masque d’orientation mondiale
En utilisant le nœud Normal Vector, nous pouvons masquer une entrée en fonction de l'orientation des faces du maillage. Là encore, le nœud Split nous permet de sélectionner l'axe que nous souhaitons affecter (R=X, G=Y, B=Z).
Dans la capture d'écran ci-dessus, je masque en utilisant l'axe des y, de sorte que seules les faces orientées vers le haut sont positives. Il est important d'utiliser un nœud Clamp pour écarter toutes les valeurs qui ne sont pas comprises entre 0 et 1.
Masque de position mondiale
Cette série de nœuds masque une entrée si la position de l'objet est supérieure à la position mondiale 0 sur l'axe des y.
Ce type de masque peut limiter la déformation selon la hauteur de la carte dans la scène et empêcher certains sommets de recevoir un déplacement lorsque leur position ne correspond pas à la condition choisie.
Créer une pose animée pour la carte
Une pose de carte peut être construite en combinant une position initiale, un masque et une fonction périodique. Une onde sinusoïdale permet de générer un mouvement continu et régulier, tandis que le masque contrôle la partie qui doit rester fixe.
Une onde sinusoïdale est générée dans l'espace objet, avec des propriétés permettant de contrôler l'amplitude, la fréquence et la vitesse de l'onde. La vague est masquée par un masque UV sur l'axe des x afin que le côté gauche du drapeau reste immobile.
Cette logique peut être adaptée à une carte en remplaçant le côté gauche du drapeau par le bord de la carte qui doit rester posé. L’amplitude définit l’importance du pli, la fréquence définit le nombre d’ondulations et la vitesse définit le rythme de l’animation.
En multipliant la sortie de l'onde sinusoïdale pour contrôler l'amplitude, la distance et la force de l'oscillation, et ajoutez-la à l'axe x de l'objet.
Utilisez un nœud Lerp pour masquer l'avant du poisson en utilisant l'axe x du canal UV. En utilisant un nœud Power avec une propriété, nous pouvons repousser l'effet d'oscillation à l'arrière du poisson.
Pour une carte, le même principe permet de repousser progressivement l’animation vers l’extrémité opposée au bord fixe. Le nœud Power accentue ou adoucit la transition entre la partie immobile et la partie déformée.
Utiliser le temps pour animer le pli
Le nœud Sinus utilise l'espace et le temps du monde pour générer une simple onde sinusoïdale. En ajoutant cette sortie au temps, nous décalons les ondes sinusoïdales, ce qui contribue à briser les lignes droites.
Pour faire basculer l'onde, nous utilisons un nœud absolu pour inverser les valeurs négatives. Le nœud One Minus inverse ensuite ces valeurs de manière à ce que les pointes des vagues se trouvent en haut.
Une autre méthode consiste à utiliser une position mondiale comme entrée de l’onde, puis à ajouter le temps afin que chaque sommet reçoive une valeur légèrement différente selon sa position. La carte semble alors se soulever et se relâcher au lieu de se déplacer comme un bloc unique.
Contrôler l’animation avec des propriétés
Lors de la construction de shaders, il peut être difficile d'obtenir les valeurs d'entrée correctes pour l'effet désiré. Pour cette raison, et pour une personnalisation ultérieure avec des préfabriqués et des préréglages, il est important d'utiliser des propriétés.
Les propriétés permettent de modifier les valeurs du nuanceur après sa compilation. Pour créer une propriété, cliquez sur le symbole + dans le tableau noir (illustration de droite).
Les propriétés utiles pour l’animation d’une carte sont l’amplitude, la fréquence, la vitesse et la force du masque. Elles permettent d’ajuster la pose sans reconstruire le réseau de nœuds.
Il existe six types de propriétés :
- Vecteurs (1 à 4) : Une chaîne de valeurs, avec l'option d'un curseur pour Vector1.
- Couleur : Valeurs RVB avec un sélecteur de couleurs, et une version HDR optionnelle.
- Texture2D et tableau Texture2D : Un échantillon de texture 2D.
- Texture 3D : Un échantillon de texture en 3D.
- Cubemap : Un exemple de Cubemap généré.
- Booléen : Une option de désactivation ou d'activation. Équivalent à 0 ou 1.
Exemple : plier une carte avec une onde
Le principe du shader consiste à récupérer la position du sommet, à isoler l’axe qui doit être déplacé, à calculer une onde animée, à la multiplier par un masque UV, puis à ajouter le résultat à la position du sommet.
- Ajoutez un nœud Position et sélectionnez l’espace Objet.
- Utilisez un nœud Split pour séparer les axes de la position.
- Créez un masque à partir de l’axe u des UV.
- Adoucissez le masque avec un nœud Power.
- Générez une onde avec un nœud Sinus et le temps du monde.
- Multipliez l’onde par l’amplitude et par le masque.
- Ajoutez le déplacement à l’axe choisi de la position.
- Connectez la position modifiée à l’entrée Vertex Position.
Dans l'exemple ci-dessus, j'ai divisé l'axe des y de l'objet et j'ai ajouté 1, déplaçant ainsi notre objet de 1 sur son propre axe. La même opération peut servir de point de départ à une pose plus complexe, à condition de multiplier le déplacement par un masque afin que la totalité de la carte ne se déplace pas uniformément.
Créer une déformation plus naturelle
Le shader de vent utilise le bruit de gradient de l 'espace mondial sur un seul axe pour pousser et tirer doucement les feuilles et l'herbe.
En utilisant la position du monde, nous plaçons un bruit de gradient sur l'axe des y et l'axe des x. En utilisant un Vector2, nous pouvons contrôler la vitesse et la direction à laquelle il est décalé.
Les propriétés sont utilisées pour contrôler la densité et la force du décalage. La soustraction de 0,5 du bruit de gradient permet de s'assurer que la maille est poussée et tirée de manière égale.
Un masque UV est utilisé pour maintenir la base des feuilles et de l'herbe immobile. Enfin, un nœud de transformation est utilisé pour convertir la position du monde en position de l'objet.
Pour une carte, le bruit de gradient peut remplacer ou compléter l’onde sinusoïdale. La soustraction de 0,5 évite que la surface ne soit déplacée uniquement dans une direction et produit un mouvement équilibré autour de la position initiale.

Déformation basée sur plusieurs ondes
Enfin, nous avons le shader océanique ! Ce nuanceur décale le haut du maillage à l'aide de trois ondes sinusoïdales d'échelles et d'angles différents. Ces ondes sinusoïdales sont également utilisées pour générer les couleurs des creux et des pointes des vagues.
Trois ondes sinusoïdales distinctes sont générées dans l'espace mondial, chacune utilisant des propriétés pour contrôler l'amplitude, la fréquence, la vitesse, la convergence et la rotation des ondes.
Les trois ondes sinusoïdales sont ensuite combinées avec deux nœuds Add, et multipliées par un gradient à l'échelle mondiale pour briser la hauteur des pointes d'onde. Ensuite, les ondes combinées sont ajoutées à la position de l'objet.
Deux masques de vertex sont utilisés pour limiter les vagues au sommet du dôme, puis pour les repousser vers le bas lorsque l'écume est peinte.
Pour une carte, plusieurs ondes de faible amplitude peuvent produire une pose plus organique qu’une seule onde régulière. Les variations d’échelle, d’angle et de vitesse évitent que toute la surface ne se plie de façon identique.
Génération des ondes sinusoïdales
En séparant les axes x et z, nous générons des ondes dans deux directions. Les deux multiplicateurs sont utilisés pour définir l'influence de chaque vague.
Par exemple, en multipliant le canal Z par 0, on obtient une onde sinusoïdale exclusivement sur l'axe des x. En divisant un nœud de position mondiale en axes x et z, puis en les combinant dans un Vector2, on obtient un espace UV dans l'espace mondial.
Cela permet d'orienter l'aplat de bruit de gradient à travers le monde. En ajoutant cette sortie au temps, nous décalons les ondes sinusoïdales, ce qui contribue à briser les lignes droites.
Le nœud Sinus utilise l'espace et le temps du monde pour générer une simple onde sinusoïdale. Pour faire basculer l'onde, nous utilisons un nœud absolu pour inverser les valeurs négatives.
Le nœud One Minus inverse ensuite ces valeurs de manière à ce que les pointes des vagues se trouvent en haut.
Propriétés et effets possibles
| Élément | Rôle dans l’animation |
|---|---|
| Position | Fournit la position de chaque sommet. |
| Split | Permet de sélectionner les axes X, Y ou Z. |
| UV | Construit un masque progressif sur la surface de la carte. |
| Lerp | Mélange la position initiale et la position déformée. |
| Power | Contrôle la progressivité de la transition. |
| Sinus | Génère une oscillation périodique. |
| Time | Décale l’onde au fil de l’animation. |
| Multiply | Règle l’amplitude, la force ou l’influence du masque. |
| Transform | Convertit la position entre les espaces objet et monde. |
| Clamp | Limite les valeurs entre 0 et 1. |
Shader Graph ou animation par images-clés
Unity génère des animations à partir de Keyframes. Les Keyframes sont des points définis dans le temps qui marquent une position ou un état spécifique d’un objet ou d’un personnage. L’interpolation entre ces Keyframes crée une animation fluide.
Unity offre des outils pour créer et modifier des animations directement dans l’éditeur, mais il n’est pas aussi puissant pour les animations complexes que des logiciels spécialisés comme Blender. Unity est idéal pour les ajustements simples ou les animations basiques, mais pour des projets exigeant des mouvements détaillés et fluides, un logiciel comme Blender est souvent préférable.
Cela dit, Unity permet tout de même de créer des animations d’objets ou de personnages de manière intuitive et rapide, surtout si vous travaillez sur des interactions simples ou des animations spécifiques à des projets en temps réel.
Pour une carte dont la pose doit être définie précisément à quelques instants donnés, les images-clés constituent une solution adaptée. Pour une déformation continue, répétitive et directement liée au temps, Shader Graph permet de produire le mouvement à partir du matériau.
Créer une animation par images-clés dans Unity
Voici les étapes pour réaliser cette animation :
- Sélection du modèle : Sélectionnez le modèle 3D de Timmy dans la scène.
- Fenêtre Animation : Allez dans Window > Animation > Animation. Cela ouvrira la fenêtre d’animation où vous pouvez créer et modifier des clips d’animation.
- Créer un clip : Cliquez sur « Create » et nommez la nouvelle animation « Coucou ».
- Manipuler les articulations : Avec le clip d’animation sélectionné, vous pouvez commencer à manipuler les parties du corps. Sélectionnez le bras gauche de Timmy dans la hiérarchie des os. Déplacez l’articulation du bras et de la main pour qu’il lève sa main gauche.
- Utilisation de la timeline : Sur la timeline, ajoutez des « keyframes » en déplaçant le curseur de la timeline et modifiez l’angle de la main à chaque position temporelle. Par exemple, à 0 frame, la main est baissée, et à 60 frames, la main est levée. Cela permet de créer un mouvement fluide du bras.
- Prévisualisation : En appuyant sur « Play » dans la fenêtre d’animation, vous pouvez prévisualiser le mouvement de Timmy levant la main pour dire coucou. Ajustez les keyframes et les mouvements si nécessaire pour obtenir le résultat souhaité.
- Sauvegarder et tester : Une fois satisfait, sauvegardez l’animation et assignez-la Comme animation par défaut dans la fenêtre Animator.
Pour une carte plane, l’animation par images-clés peut enregistrer une série de rotations ou de translations de l’objet. Shader Graph, de son côté, modifie directement les sommets et convient davantage à une déformation de surface qui ne nécessite pas de squelette.
Rigging et animation de la carte
Le rigging de personnages, également appelé animation squelettique, est la première étape dans la création d'un personnage numérique animé. La technique consiste à associer un modèle à une hiérarchie de squelette composée d'os et de commandes, permettant ainsi de positionner et d'animer les personnages.
Les animateurs ont recours au rigging pour positionner et animer un personnage ou un objet en utilisant un système de mouvements interconnectés. Les squelettes permettent de contrôler la manipulation de ce personnage ou d'objet.
Plutôt que d'intervenir directement sur l'objet, ils créent une structure hiérarchique capable de produire le mouvement ou le changement souhaité. Voici ce qu'est un squelette, et c'est grâce à ce dernier que l'objet est contrôlé.
Ces changements peuvent être aussi simples que des translations ou des rotations, mais ils peuvent également impliquer l'automatisation de comportements et de mouvements plus complexes.
Pour une carte rigide qui se plie par sections, un petit squelette ou plusieurs articulations peuvent être utilisés. Pour une surface continue, la déformation par sommets permet d’obtenir une courbure sans ajouter une hiérarchie d’os.
Choisir la méthode adaptée
- Shader Graph : adapté à une déformation continue de la surface, à une animation répétitive et à une pose calculée par le matériau.
- Images-clés : adaptées à une séquence précisément définie dans le temps avec plusieurs poses contrôlées.
- Rigging : adapté à une carte segmentée, à un objet articulé ou à une animation reposant sur une hiérarchie d’os.
Le rigging est la technique la plus couramment utilisée pour animer des personnages, des créatures ou des objets dans les films, à la télévision et dans les jeux vidéo. Tout ce qui nécessite un mouvement peut être préparé pour l'animation.
Pour commencer le rigging, les animateurs ont d'abord besoin d'un personnage ou d'un objet en 2D ou 3D. Lors de la création du squelette, les animateurs doivent réfléchir à l'ensemble des mouvements qu'ils souhaitent que leur squelette effectue, ainsi qu'à l'emplacement des articulations et des pivots.
Ensuite, ils créeront une structure hiérarchique, ou un squelette s'il s'agit d'un personnage, ainsi qu'un ensemble de contrôles. Ensuite, ils procéderont à la connexion de l'objet ou du personnage au squelette, ce qui peut être un processus simple ou complexe en fonction du type de structure squelettique requise.
Unity: Bulge, Grow and Deform with Shader Graph!
Contrôler une pose articulée
Pour créer un sens du rythme et de l'équilibre dans l'animation - et un aspect plus réaliste - le mouvement hiérarchique est l'ordre dans lequel les différentes parties d'un personnage ou d'un objet se déplacent.
Afin de donner un aspect plus réaliste à l'animation et d'instaurer un rythme harmonieux, le mouvement hiérarchique consiste à déterminer l'ordre dans lequel les différentes parties d'un personnage ou d'un objet se déplacent.
Le mouvement hiérarchique indépendant peut également désigner la façon dont les différents éléments d'une animation se déplacent les uns par rapport aux autres, comme par exemple deux personnages marchant côte à côte.
Les contraintes de mouvement osseux contrôlent leur degré de liberté dans leur transformation pour créer un mouvement naturel. Les contraintes cinématiques définissent le mouvement d'un objet sans considérer les forces agissant sur celui-ci.
La cinématique directe consiste à manipuler une hiérarchie d'articulations de la racine jusqu'à l'extrémité, en suivant une direction vers l'avant. Pour positionner un bras en utilisant cette technique, commencez par faire pivoter le bras supérieur, suivi du coude, et enfin du poignet.
La cinématique inverse est le processus de manipulation d'une hiérarchie articulaire de l'extrémité à la racine, ou dans le sens inverse. Pour positionner un bras en utilisant cinématique inverse, il vous suffit de déplacer la main, et les rotations du coude et du bras seront calculées automatiquement en fonction de la position finale de la main.
Ces méthodes concernent surtout les objets articulés, mais elles permettent de choisir entre une déformation continue par sommets et une pose contrôlée par une structure hiérarchique.
Peinture de poids et déformation
Un modèle de personnage créé par rigging est lié à une hiérarchie d'articulations ou à un squelette. Chaque vertex du modèle est pondéré entre différentes articulations, ce qui permet à ces dernières de se déplacer lorsque vous manipulez le squelette.
Il est indispensable d'avoir une peinture de poids précise de sorte que le modèle du personnage se déforme correctement lors de l'animation. Il s'agit d'un processus consistant à ajouter ou supprimer du poids sur des vertex spécifiques d'un maillage, en fonction des articulations correspondantes dans le squelette.
Une peinture avec un poids approprié peut offrir un meilleur contrôle sur la déformation d'un personnage et ainsi améliorer l'esthétique du résultat final.
Pour une carte animée avec des os, le même principe détermine la manière dont chaque partie du maillage suit les articulations. Avec Shader Graph, le contrôle équivalent est obtenu par les masques UV, les couleurs de sommets ou les textures en niveaux de gris.
Déformations complémentaires
Pour modifier la forme d'un objet dans une scène d'animation vidéo, des « déformateurs » sont nécessaires. Blend shapes est un déformateur utilisé pour créer l'illusion d'une transformation naturelle d'une forme en une autre, comme par exemple un œil qui cligne des yeux.
Pour une carte, les blend shapes peuvent représenter plusieurs poses précalculées, tandis qu’un shader peut produire une déformation continue entre ces états ou ajouter une oscillation légère à une pose existante.
Pour améliorer un squelette et faciliter sa manipulation, il est possible d'utiliser des contraintes qui permettent de contrôler automatiquement la position, l'orientation ou l'échelle de l'objet.
Il existe plusieurs types de contraintes : les contraintes de visée qui permettent de contrôler l'orientation d'un objet de manière à ce qu'il pointe vers un autre objet de la scène, comme par exemple la direction des yeux. Les contraintes de point qui permettent à un objet de suivre automatiquement un autre, et les contraintes de vecteur qui permettent de contrôler la direction d'une chaîne cinématique inverse en suivant un autre objet, comme par exemple le contrôle de la direction du genou.
Ajuster le mouvement avec les courbes
Toute propriété d'une animation peut avoir une courbe d'animation qui permet de visualiser les valeurs changeantes des propriétés sous forme de lignes sur un graphique, plutôt que de simples pistes linéaires indiquant uniquement les moments où les images-clés sont présentes.
Une courbe de contrôle d'animation est constituée de plusieurs clés qui servent de points de contrôle que la courbe traverse. La courbe entre chaque image-clé d'un mouvement animé définit le mouvement entre les deux images-clés.
Les courbes permettent d’obtenir une montée progressive, un maintien temporaire ou un retour plus doux à la pose initiale. Elles sont particulièrement utiles lorsque la carte doit passer d’une position plane à une position pliée sans changement brutal.