From BlenderWiki

Jump to: navigation, search
Blender3D FreeTip.gif
IMPORTANT! Do not update this page!
We have moved the Blender User Manual to a new location. Please do not update this page, as it will be locked soon.

Cinématique inverse

Beaucoup de travail a été accompli sur le “solveur” de cinématique inverse (“Inverse Kinematics Solver”, ou “IK Solver”), aussi bien pour améliorer ses performances que pour lui ajouter de nouvelles fonctionnalités. Par ailleurs, créer une chaîne IK est maintenant plus faciles que jamais !

Interface

Pour permettre la résolution d’IK (comprendre : le calcul des positions, rotations… des bones d’une chaîne IK en fonction de celles de leur cible), sélectionnez l’extrémité de la chaîne d’os, pressez ⇧ ShiftI et choisissez To New Empty Object (“Vers un nouvel objet Empty”) dans le menu qui apparaît. Un nouvel empty (“vide”) est créé et défini comme la cible (“target”) de la chaîne IK. L’os d’extrémité est coloré en jaune, et une ligne pointillée relie son extrémité à la racine du premier bone de la chaîne pris en compte, permettant de voir le domaine d’action du “solveur” IK. Le nouveau paramètre ChainLen (“longueur de chaîne”) de la contrainte IK Solver (dans le panneau Constraints du contexte Editing – F9) permet de contrôler jusqu’à quel os de la chaîne le “solveur” IK “remonte” – il remplace le vieux bouton IK du mode Edit. Une “longueur” de 0 signifie que tous les os ancêtres du bone contraint feront partie de la chaîne IK, jusqu’à l’os racine. Cela signifie aussi que les bones d’une chaîne IK n’ont plus besoin d’être connectés, mais peuvent avoir un décalage par rapport à leur parent. L’autre option du menu pop-up Add IK Constraint, Without Target (“Sans cible”), est abordé à la fin de cette page, au paragraphe “Combiner IK et FK”.

Pour utiliser un os comme cible IK (sans avoir à créer un objet vide), sélectionnez d’abord l’os cible, maintenez la touche ⇧ Shift appuyée et sélectionnez le bone qui se trouve à l’extrémité de votre chaîne IK. Pressez ⇧ ShiftI et choisissez l’option To Selected Bone (“Vers l’os sélectionné”) dans le menu pop-up pour que l’os d’extrémité (de la chaîne) utilise l’os cible comme sa cible IK. Notez que l’os cible ne peut pas faire partie de la chaîne d’os qui utilisera cette IK.

Arbre IK

Os, mode Pose, contrainte IK.

Il y a maintenant un support pour “l’arbre IK” (ou “arborescence IK” ?, “tree IK”). Les chaînes IK partant du même os seront automatiquement résolues ensemble, s’influençant les unes les autres autant que nécessaire pour atteindre leurs cibles respectives. Le curseur PosW (pour “Position Weight”, “poids de la position”) définit l’importance de chaque cible, au cas où toutes les cibles ne pourraient pas être atteintes.

Rotation de la cible IK

L’option Rot (“rotation”) dans le panneau de la contrainte IK Solver permet que l’extrémité de la chaîne suive la rotation de la cible. Son importance, par rapport au fait d’atteindre la position de la cible, peut être contrôléé via le curseur RotW (pour “Rotatation Weight”, “poids de la rotation”).

Cible IK “Pôle”

Cette contrainte d’os vous permet de définir un “pôle”, qui est la direction dans laquelle devrait “pointer” (“to point track to”) un “genou”, ou tout autre point intermédiaire (“articulation”) dans une chaîne IK. Voyez les notes de version pour plus d’informations (en anglais). La contrainte IK Solver pour une chaîne d’os a à la fois une cible IK (vers laquelle pointe l’os d’extrémité), et une cible “pôle” (“Pole”), vers laquelle l’ensemble de la chaîne doit pointer, ou à laquelle elle doit “faire face” en permanence. C’est particulièrement utile pour les genoux et coudes, mais cela pourrait aussi vous servir pour contrôler dans quelle direction une queue se “plie” quand elle se compresse (NdT : traduction incertaine de «[…], but would also work to allow you to control which way a tail “crinks” when compressing»). Apparentez un empty à l’armature, puis utilisez-le comme cible pôle. Animez l’emplacement de cet empty pour guider l’orientation des “pliures” de la chaîne d’os quand elle se déforme. Pour les genoux, faites flotter l’empty devant la jambe (étudiez des “mocaps” – “motion captures”, “captures de mouvement” – pour voir comment les rotations des jambe et hanche donnent la rotation du genou au cours du cycle de la marche). Pour les coudes, faites flotter l’empty derrière la bras et, là aussi, étudiez des mocaps pour voir quand le coude vagabonde ou reste collé au corps, pour différents mouvements.

Blender3D FreeTip.gif
Qu’est-ce qu’une cible “pôle” ?
«Une cible pôle est une cible secondaire pour un bone avec une contrainte IK.
La première cible est l’emplacement que la chaîne d’os essaye d’atteindre, et la seconde (la cible pôle), la direction dans laquelle la chaîne se plie pour atteindre cette première cible.
Voici un exemple pratique : une chaîne de
bones (comme bras → avant-bras) a une contrainte IK sur le dernier os enfant (avant-bras), réglée pour cibler une cible IK (comme un succédané de main).
Pour contrôler alors la direction dans laquelle pointe le coude, on utilise une autre cible, la cible “pôle”.
» — Citation (légèrement modifiée, puis traduite) de FreakyDude, dans ce thread.


Limiter la rotation

Le comportement individuel des os dans une chaîne IK peut être modifié. Pour les os d’une chaîne IK, il y a plein d’options disponibles en mode Pose, dans le contexte Editing (F9).

Pour défaut, les os ont trois “degrés de liberté” (“Degrees of Freedom”, ou DoF – ne pas confondre avec la profondeur de champ, ou Depth of Field !), ce qui signifie qu’ils peuvent tourner autour des axes X et Z, ainsi qu’autour de leur axe Y de roulis. Chaque DoF peut maintenant être bloqué, pour interdire la rotation sur un axe particulier.

À titre d’exemple, considérons un bras humain. Le poignet à deux DoF : il peut se courber dans toutes les directions, mais il ne peut pas tourner (eh oui, regardez bien, quand vous croyez tourner le poignet, ce sont en réalité le coude et l’avant-bras qui tournent !). Le coude aussi a deux DoF : il peut tourner, mais il ne se courbe que dans une seule direction. Enfin, l’épaule a trois DoF. Le genou est un exemple d’articulation qui n’a qu’un seul degré de liberté.

La “raideur” (“stiffness”) définit, par DoF, l’enthousiasme que met l’os à tourner.

Définir les limites des rotations

Vous pouvez aussi définir des minima/maxima pour ces rotations. Limit X et Limit Z définissent jusqu’où peuvent aller les rotations de l’os sur les axes X et Z respectivement. Si les deux sont activés, cela définit une région conique de section elliptique (de laquelle ne peut s’échapper l’extrémité du bone). Limit Y définit jusqu’où il peut tourner autour de son axe de roulis.

Il y a deux choses importantes à retenir :

  • DoF et limites de rotation sont définis par rapport à la position au repos de l’os (de l’armature).
  • Ils ne fonctionnent que pour des os qui appartiennent à une chaîne IK.


Combiner IK et FK

Bien souvent, vous ne voulez utiliser l’IK que pour vous assister dans la “pose” des personnages, sans avoir un IK définissant (contrôlant) le mouvement durant toute une animation. Deux fonctionnalités ont été prévues à cet effet :

IK sans cible
Quand une chaîne IK n’a pas de cible définie (elle est “targetless”), elle peut tout de même être utilisée pour “poser” l’armature. Contrairement à une IK normale, vous devez définir des clés sur tous les os de la chaîne si vous voulez garder la “pose”. Les os utilisant ce type d’IK sont dessinés en orange.
Automatic IK
Cette option du panneau Armature (contexte Editing – F9) assigne automatiquement une chaîne IK provisoire à tout os déplacé, produisant le même effet que si l’os sélectionné avait été assigné à une chaîne IK sans cible. Cette chaîne ne propagera (ses mouvements) qu’à travers les bones qui lui sont connectés.