Introduction#

La cinématique inverse (IK) simplifie le processus d’animation et permet de réaliser des animations plus avancées avec moins d’effort.

La cinématique inverse vous permet de positionner le dernier os d’une chaîne d’os et alors les autres os sont positionnés automatiquement. C’est comme si le mouvement du doigt de quelqu’un ferait que son bras le suivrait. Avec les techniques de pose normales, vous devriez commencer à partir de l’os racine et définir les os de manière séquentielle jusqu’à ce que vous atteigniez l’os de pointe : lorsque chaque os parent est déplacé, son os enfant hériterait de son emplacement et de sa rotation. Ainsi, faire de petits changements précis dans les poses devient plus difficile plus bas dans la chaîne, car vous devrez peut-être d’abord ajuster tous les os parents.

Cet effort est effectivement évité en utilisant IK.

IK est principalement réalisée avec des contraintes d’os, bien qu’il existe également une simple fonction Auto IK en mode Pose. Les deux fonctionnent selon la même méthode mais les contraintes offrent plus d’options et de contrôle. Veuillez vous référer aux pages suivantes pour plus de détails sur ces contraintes :

Panneau Armature IK#

Référence

Mode:

Mode Pose

Panneau:

Properties ‣ Armature ‣ Inverse Kinematics

Ce panneau permet de sélectionner le type de IK Solver pour l’armature : Standard ou iTaSC. La plupart du temps, les gens utiliseront le solveur IK Standard.

Standard#

À faire.

iTaSC#

iTaSC signifie instantaneous Task Specification using Constraints.

iTaSC utilise une méthode différente pour calculer le Jacobian, ce qui le rend capable de gérer d’autres contraintes que la position et l’orientation des effecteurs d’extrémité : iTaSC est un solveur IK générique multi-contraintes. Cependant, cette capacité n’est pas encore pleinement exploitée dans l’implémentation actuelle, seuls deux autres types de contraintes peuvent être traités : la distance dans l’espace cartésien et la rotation articulaire dans l’espace articulaire. Le premier permet de maintenir un effecteur terminal à l’intérieur, au niveau ou à l’extérieur d’une sphère centrée sur une position cible, le second est la capacité de contrôler directement la rotation d’un os par rapport à son parent. Ceux qui s’intéressent aux mathématiques peuvent trouver ici une brève description de la méthode utilisée pour construire le Jacobian.

iTaSC accepte un mélange de contraintes, et plusieurs contraintes par os : le solveur calcule la pose optimale selon les poids respectifs de chaque contrainte. C’est une amélioration majeure du système de contraintes actuel où les contraintes sont résolues une par une dans l’ordre de définition afin que les contraintes en conflit remplacent l’une l’autre.

Précision

La variation maximale de l’effecteur terminal entre deux itérations successives au cours desquelles une pose est obtenue suffisamment stable et le solveur doit arrêter les itérations. Des valeurs plus basses signifient une plus grande précision sur la position de l’effecteur final.

Iterations

La limite supérieure pour le nombre d’itérations.

Solveur

Sélectionne le solveur Jacobian inverse qu’utilisera iTaSC.

SDLS

Calcule l’amortissement automatiquement en estimant le niveau “d’annulation” dans la cinématique de l’armature. Cette méthode fonctionne bien avec la contrainte Copy Pose mais présente l’inconvénient d’amortir plus que nécessaire autour de la pose singulière, ce qui signifie des mouvements plus lents. Bien sûr, cela n’est visible qu’en mode Simulation.

DLS

Calcule l’amortissement manuellement, ce qui peut offrir plus de réactivité et plus de précision.

Damping Max

Niveau maximal d’amortissement. Des valeurs basses signifient moins d’amortissement, et par conséquent plus de vitesse et une meilleurs précision mais aussi plus de risque d’oscillation à la pose particulière. 0 signifie aucun amortissement du tout.

Damping Epsilon

Plage de la zone d’amortissement autour de la pose singulière. Des valeurs plus petites signifient une zone de contrôle plus petite et un plus grand risque de dépasser la pose singulière, ce qui signifie une oscillation.

Note

Damp et Epsilon doivent être ajustés pour chaque armature. Vous devriez utiliser les plus petites valeurs qui préservent la stabilité.

Note

  • Le solveur SDLS ne fonctionne pas avec une contrainte Distance. Vous devez utiliser le solveur DLS si vous prévoyez une pose singulière dans votre animation avec la contrainte Distance.

  • Les deux solveurs fonctionnent bien, si vous n’avez pas de pose particulière.

Animation#

En mode Animation, iTaSC fonctionne comme un solveur IK : il est sans état et utilise la pose de l’interpolation des F-Curves comme pose de départ avant la convergence IK. La vitesse cible est ignorée et le solveur converge jusqu’à ce que la précision donnée soit obtenue. Néanmoins, le nouveau solveur est généralement plus rapide que l’ancien et fournit des fonctionnalités inhérentes à iTaSC : plusieurs cibles par os et plusieurs types de contraintes.

Simulation#

Le mode Simulation est le mode avec état du solveur : il estime la vitesse de la cible, fonctionne dans un contexte “temps réel”, ignore la rotation des images-clés (sauf via une contrainte de rotation conjointe) et crée automatiquement un cache d’état.

Reiteration
Never

Le solveur commence depuis la pose de repos et ne fait pas d’itération (converge) même pour la première trame. Ce qui signifie que cela va prendre quelques trames pour aller à la cible au début de l’animation.

Initial

Le solveur commence à partir de la pose de repos et réitère jusqu’à ce que la précision donnée soit atteinte, mais uniquement sur la première image (c’est-à-dire une image qui n’a pas d’image précédente dans le cache). Cette option vous permet essentiellement de choisir une pose de départ différente de la pose de repos et c’est la valeur par défaut. Pour les images suivantes, le solveur suivra la cible en intégrant la vitesse conjointe calculée par le solveur Jacobian sur l’intervalle de temps que l’image représente. La précision du suivi dépend du coefficient de rétroaction, du nombre de sous-étapes et de la vitesse de la cible.

Always

Le solveur réitère sur chaque image jusqu’à ce que la précision donnée soit atteinte. Cette option omet l’essentiel du comportement dynamique de l’iTaSC : la vitesse d’articulation maximale et la continuité entre les cadres ne sont plus garanties en compensation d’une meilleure précision sur les positions des effecteurs terminaux. C’est un mode intermédiaire entre l’animation et la simulation en temps réel.

Auto Step

Utilisez cette option si vous souhaitez laisser le solveur définir le nombre de sous-étapes à exécuter pour chaque image. Une sous-étape est une subdivision du temps entre deux images pendant laquelle le solveur évalue l’équation IK et met à jour la position de l’articulation. Plus de sous-étapes signifie plus de traitement mais une meilleure précision sur le suivi des cibles. L’algorithme de pas automatique estime le nombre optimal d’étapes pour obtenir le meilleur compromis entre traitement et précision. Il fonctionne par estimation de la non-linéarité de la pose et en limitant l’amplitude de la variation conjointe lors d’une sous-étape. Il peut être configuré avec les deux paramètres suivants :

Min

Durée minimale de sous-étape proposée (en seconde). L’algorithme d’auto-étape peut réduire davantage la sous-étape en fonction de la vitesse de l’articulation.

Max

Durée maximale des sous-étapes (en seconde). L’algorithme de pas automatique n’autorisera pas de sous-étape plus longue que cette valeur.

Steps

Si Auto Step est désactivé, vous pouvez choisir un nombre fixe de sous-étapes avec ce paramètre. La sous-étape ne doit pas dépasser 10 ms, ce qui signifie que le nombre d’étapes est de 4 pour une animation à 25 fps. Si l’armature semble instable (vibre) entre les cadres, vous pouvez améliorer la stabilité en augmentant le nombre de pas.

Feedback

Coefficient d’erreur de position de l’effecteur d’extrémité pour régler la vitesse du joint correctif. La constante de temps de la correction d’erreur est l’inverse de cette valeur. Cependant, ce paramètre a peu d’effet sur la dynamique de l’armature puisque l’algorithme évalue dans tous les cas la vitesse cible. Mettre ce paramètre à 0 signifie “ouvrir la boucle” : le solveur suit la vitesse mais pas la position ; l’erreur s’accumulera rapidement. Une valeur trop élevée signifie une correction excessive et un risque d’instabilité. La valeur doit être comprise entre 20 et 100. La valeur par défaut est 20, ce qui signifie que les erreurs de suivi sont corrigées dans un temps typique de 100 à 200 ms. Le coefficient de rétroaction est la raison pour laquelle l’armature continue à bouger légèrement en mode Simulation même si la cible a arrêté de bouger : l’erreur résiduelle est progressivement supprimée image après image.

Max Velocity

Vitesse articulaire maximale indicative en radian par seconde. Ce paramètre a un effet important sur la dynamique de l’armature. Une valeur plus petite entraînera un déplacement lent de l’armature et un retard si les cibles se déplacent rapidement. Vous pouvez simuler une inertie en définissant ce paramètre sur une valeur faible.

Panneau Bone IK#

Référence

Mode:

Mode Pose

Panneau:

Properties ‣ Bone ‣ Inverse Kinematics

Ce panneau est utilisé pour contrôler le fonctionnement des Pose Bones dans la chaîne IK.

IK Stretch

Étendre l’influence à la cible IK.

Lock

Empêcher le mouvement autour de l’axe.

Stiffness

Raideur (stiffness) autour de l’axe. Influence désactivée si Lock est utilisé.

Limit

Limiter le mouvement autour de l’axe.

iTaSC Solver#

Si le iTaSC IK Solver est utilisé, le panneau IK de l’os change pour ajouter ces paramètres supplémentaires.

Control Rotation

Active une contrainte joint rotation sur cet os. La rotation de la pose calculée sera convertie en une valeur de joint et passée au solveur comme cible de l’articulation. Ceci va vous donner le contrôle sur l’articulation pendant que le solveur suit toujours les autres cibles IK. Vous pouvez utiliser cette fonction pour offrir une pose préférée aux articulations (ex. pose de repos) ou pour animer un angle d’articulation en jouant une action sur lui.

Weight

L’importance de la contrainte de rotation de l’articulation basée sur le poids des contraintes au cas où toutes les contraintes ne peuvent pas être atteintes en même temps. Par exemple, si vous souhaitez appliquer fortement la rotation d’articulation, définissez un poids élevé sur la contrainte de rotation d’articulation et un poids faible sur les contraintes IK.

Exemple d’armature du bras#

Ce bras utilise deux os pour surmonter le problème de torsion de l’avant-bras. IK locking est utilisé pour arrêter l’avant-bras de plier, mais l’avant-bras peut encore être tordu manuellement en pressant R Y Y en Mode Pose, ou en utilisant d’autres contraintes.

../../../../../_images/animation_armatures_posing_bone-constraints_inverse-kinematics_introduction_example.png

Exemple de IK Arm.#

Notez que, si une Pole Target est utilisée, le verrouillage IK ne fonctionnera pas sur le bout racine.