Rigging d'un bras: 1ère partie
Rigging d'un bras - 1ère partie : Mode FK
Ce
tutoriel fait suite à
celui-ci
expliquant le rigging d'une main, on poursuit maintenant
avec le bras.
J'ai longtemps cherché une armature simple
permettant de contrôler facilement le bras d'un personnage, le
mode FK combiné avec quelques astuces de Blender permet de faire ça
très bien.
Par contre, le mode FK ne convient pas à toutes les situations, dans un
deuxième tutoriel,
j'expliquerai le mode IK.
Ouvrir le fichier .blend accompagnant ce tutoriel, il contient le mesh d'un bras prêt à être riggé.
Étape 1 : Le premier bone.
Faire <Space> pour ajouter le premier bone de l'armature.
Comme d'habitude, veiller à
faire coïncider les centres de l'armature et du corps (faire au
préalable <Shift-S> - Cursor->Selection), mettre
également l'affichage de l'armature en mode Wire (<F7>
- panneau Draw) et X-Ray (<F9> - panneau
Armature), et faire apparaître le menu Transform
Properties en appuyant sur <N>.
Placer
le bone comme sur l'image et le renommer « Tronc ».

Étape 2 : Le bras.
L'étape suivante consiste à créer une chaîne de quatre bones correspondants aux os du squelette d'un bras.
Placer
le Curseur3D au niveau de l'épaule gauche en vérifiant
bien son positionnement à la fois dans la vue du haut <7>
et dans la vue de face <1>.


Ajouter un bone <Space>,le placer comme sur l'image et le renommer « Epaule.L », déclarer le comme Child of de l'os « Tronc ». Extruder trois fois(touche <E>) pour créer la chaîne, appeler les bones ainsi créés « Biceps.L », « AvBras.L » et « Paume.L ». Vérifier la position de ces bones dans les deux vues haut et face.
Le point important est d'orienter correctement les bones pour que leurs axes correspondent aux degrés de liberté des articulations. Pour cela, commencer par activer l'affichage de leurs axes (<F9> - panneau Armature). Sélectionner le bone « AvBras.L », ce bone aura pour seul degré de liberté une rotation (qui correspond à l'articulation du coude), par commodité et par soucis d'uniformité, on décide que cette rotation se fera autour de l'axe x de l'os, il faut donc placer cet axe dans la bonne direction.
Faire pivoter « AvBras.L » avec <Ctrl-R> et placer ses axes comme sur l'image :

Les articulations de la main et de l'épaule ayant davantage de degrés de liberté, l'orientation des trois autres bones de la chaîne n'est pas primordiale, on peut juste les faire pivoter pour que leurs axes z soient verticaux.
Notre armature est prête
à être associée au mesh du corps, pour cela, il faut créer les Vertex Groups de chaque os, qui
permettront les déformations. Blender sait le faire seul, il suffit
d'utiliser l'option Bone Heat...
Revenir
en ModeObject, sélectionner le
corps puis l'armature et taper
<Ctrl-P> - Armature – Create
From Bone Heat, l'armature et le corps sont liés,
revenir en Pose Mode, et faire bouger les différents
bones, le bras se plie sans problème.
Étape 3 : Les contraintes.
Dans
cette étape, on restreint les degrés de liberté
de chaque bone, et on ajoute une contrainte améliorant le
fonctionnement de notre
chaîne en mode FK.

Pour le bone « Epaule.L », ne conserver que les rotations autour des axes x et z :
Pour le bone « Biceps.L » laisser libre les différentes rotations et bloquer le reste. Pour le bone « AvBras.L », seule la rotation autour de x est à conserver, quant au bone « Paume.L », lui garder les rotations et les translations.
A
partir de maintenant, le bras est riggé en mode FK, il se pilote en
commandant la rotation de chaque
bone par la touche <R>. Ainsi, pour positionner la main du
personnage, on définit la rotation de chaque bone en commençant par
l'épaule et en finissant par la paume.
Cela fonctionne, mais ce n'est pas très facile ! Heureusement Blender
propose une astuce pour améliorer cela, il suffit d'ajouter une simple
contrainte.

Donner au paramètre ChainLen de cette contrainte la valeur 3, car le bone « Epaule.L » ne doit pas bouger avec le reste du bras.
Maintenant, le bone « Paume.L » se pilote également en translation par la touche <G>, il est ainsi beaucoup plus facile de positionner la main du personnage, cela ressemble à une chaîne IK, mais ce n'en est pas une, on garde toujours la possibilité de faire des rotations sur tous les bones la constituant.

Dans le panneau Armature Bones (F9), cliquer sur LockYRot et sur LockZRot. Cliquer également sur LimitX et entrer les valeurs ci-contre : 0° - 180°.

Pour que le bras reste en place, il suffit de sélectionner le bone « Biceps.L » est de sélectionner l'option Hinge, de sorte à désolidariser les rotations des bones « Epaule.L » et « Biceps.L ».
Voir Image
Étape 4 : Le poignet.
Une
dernière déformation à corriger...
Si l'on fait pivoter la main autour de son axe y, une déformation disgracieuse apparaît au niveau du poignet, pour y remédier, nous allons ajouter un bone supplémentaire qui absorbera une partie de la rotation.

Revenir en Edit Mode, et dupliquer <Shift-D> le bone « AvBras.L », appeler le nouveau bone « Poignet.L », placer le curseur3D au niveau de la jonction avec la main, le choisir comme pivot, et scaler de moitié (en tapant <S> 0.5) le bone « Poignet.L ». Pour finir déclarer « Poignet.L » comme Child of du bone « AvBras.L ».


Ainsi l'os du poignet, pivote en même temps que la main suivant l'axe y.
Il reste à définir un nouveau Vertex Group pour l'os du poignet afin qu'il déforme lui aussi le mesh. Sélectionner le mesh du corps et passer en Weight Paint, cliquer droit sur le bone « Poignet.L » et faire <W> - Apply Bone Heats... Le vertex group du nouveau bone est créé, par contre il faut reprendre le vertex group du bone « AvBras.L » et le modifier pour tenir compte du nouveau bone, pour cela sélectionner « AvBras.L » et faire de nouveau <W> - Apply Bone Heats... Blender adapte les Vertex groups comme il faut.

Revenir en Pose Mode, notre rig est maintenant terminé, il vous reste à vous amuser avec et voir comment le bras réagit aux déplacements des différents bones.
Si vous avez des
difficultés pour réaliser ce tuto, n'hésitez pas à m'envoyer un
Message Privé via le BlenderClan, je vous répondrai...
Tutoriel rédigé pour le Blender Clan par Kiopaa, Août 2008