Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Body Rig

Télécharger au format odt, pdf ou txt
Télécharger au format odt, pdf ou txt
Vous êtes sur la page 1sur 13

1.

La Colonne :

Vérifier que le personnage est au centre du monde

On se met de face, vue orthographique, avec grille.

La colonne est composée d’entre 4 et 8 joints, ici 5/6

On crée les joints en snap to grid

La colonne doit être rigée droite

En vue de face on crée 6 joints en snap to grid. (cf1)


On leur donne tous la même valeur de translate, ici 4,6

On les repositionne de profil, on pose la chaine sur l’attache de la cuisse

On renomme la chaine de joints :


-Bind_Root
-Bind_Spine_01(et ainsi dessuite)
On les colore en blanc et on freeze transform
On les oriente en : X-Z-X, pour avoir le y vers l’avent, on oriente le dernier vers world
On ajoute un move et un offset sur la chaine

On prend notre groupe offset et notre groupe geo et on les mets dans un nouveau groupe, on crée le
GlobalMove_01, le Joints_01, et le Bind_Joints_01. (cf2)

On duplique la géométrie des objets sur la colonne

On crée une ik, nommée ik_Spine et sa curve Crv_Spine et son effector Eff_Spine
Elle crée telle que cf7

---

On duplique la chaine de joint, on ne garde que le premier et le dernier joint


On les agrandit et on les renomme JNT_Root et JNT_Shoulder, on les met en jaune
On les mets dans un groupe JNT_Joints qu’on glisse dans Joints_01

On ajoute a chacun un move et un offset, on les met en violet

On ajoute le groupe Iks_01 avec l’ik_Spine dedans

On prend le JNT_Root puis le JNT_shoulders puis la curve et on bind skin selon les options de (cf4)
Sur la version slice les 2 premiers ont leur pivot au premier joint, puis chacuns a sont pivot sur le
joint du dessous.

On range chacun dans sont joint correspondent avec le pelvis et le neck dans les JNT

On crée un controleur pour le joint du bas et un pour celui du haut


On les parente aux groupes move des JNT

DANS IK SOLVER ATTRIBUTE


On prend l’ik_Spine et on active les twist controls dans advanced twist control
Dans world up object on met JNT_Root et dans world up object 2 on met : JNT_Shoulder
(cf5)

dans les up vector on indique la perpendiculaire de l’axe principal, le forward axis est l’axe
principal

On va changer le rotate order de tout les joints en ZXY (le troisième)

On crée une seconde chaine de joints, son premier joint est sur le premier de la premiere chaine, le
dernier sur le dernier point de la premiere, il y a 2 autres joints répartis au milieu des deux
on les nommes comme (cf6) et on les colore en bleu, on glisse ce groupe dans le groupe des joints.
Et in leur ajoute le groupe FK_Joints.

On prend les deux contoleurs et on leur ajoute un move chacuns

Je prend le FK Root et le groupe move du route et je parente, pareil pour shoulder.

On crée un circle que l’on laisse au centre du monde, on le scale en mode componnent grand max.
On le renomme : CTRL_FK_Spine_01 et on le dupplique
On affiche les shapes des objets dans l’outliner
On attrape la shape et le joint spine correspondant
On tappe dans la barre MEL : « parent -r -s » puis enter du pavé numérique
On appuie sur f8 avec la curve sélectionnée, on sélectionne les points et on les rotate
STRETCH AND SQUASH
(uniquement pour le cartoon)

Fonctionne uniquement sur de l’IK (on cache donc la FK)

On prend la dernière slice et on la met sur le dernier joint du bind de la colonne


De même pour la première que l’on glisse dans le joint du bind du root

ON OUVRE LE NODE EDITOR


on adapte les options telles que (cf9).
On importe la curve et on ne garde que sa shape

On ajoute un « curve_info », que l’on renomme Spine_Info.


On connecte le world space [0] de la curve à l’input curve du curve_info

On ajoute un multiply divide, on le règle en mode divide, on branche l’arc lenght du spine info à
l’input 1 X du multiply divide, on le nomme Spine_Stretch_Pourcent_Div
Dans l’input 2 on remet la longueur de base de la spine.

On importe la chaine de joint (cf10)

On branche l’output X dans le scale X de tout les joints (cf11)

Il faut maintenant rescale les autres axes

On ajoute un multiplydivide, on le renomme Spine_Stretch_Pow, On le met en mode power

On met l’output X du premier multiplydivide en input 1, on met 0,5 en input 2 afin de faire une
racine carrée

On ajoute un multiplydivide, nommé Spine_Stretch_Invert_Div, on le met en mode divide


On branche l’output du dernier sur l’input 2 et on met 1 en input 1

On branche le résultat dans l’input Y et Z de tout les joints (cf12)

On veut maintenant créer un attribut pour l’activer et le désactiver

On crée un nouvel attribut, un séparateur, enum nommé de tirets et 1 seul enum name en tirets aussi

On en ajoute un second nommé Stretch_Column, On lui donne un nice name et on le met en


boolean

Off est 0, On est 1 (basique)

ON RETOURNE SUR LE NODE EDITOR


On va créer des global scale pour que les squash and stretch fonctionne a n’importe quelle échelle

Pour cela on importe le global move, origine du scale global

On ajoute un multiply divie, nommé Global_Relative_Scale_Mult

On branche le scale Y du global move que l’on branche dans l’input 1 X du multiplv

On met l’arc lenght du spine info que l’on met en input 2 X du scale_mult, puis l’on branche son
output X dans l’input 2X du mult de la spine (cf13)

On importe le CTRL_Root dans lequel se situe notre stretch column

On va créer un node condition que l’on renomme Cond_Stretch_Column_Ik

On le règle en equal

On branche l’attribut que l’on a créer en First Term, cela met le first term en off, on indique donc le
second comme étant 1

On met l’output X du spine_stretch_pourcent_Div en Color_If_True R

On déconnecte le scale X de tout les nodes


On met l’Out Color R à la place

On met l’output X de invert_div dans l’if true G, et on branchel’out color dans tout les scales Y et Z

Cela on nous donne (cf14) que l’on bookmark (cf14)


LES JAMBES

3 techniques d’IK/FK :
1 chaine avec IK, switch avec hiérarchie de controleurs (parisien)
2 chaines de joint, 1IK/ 1 FK (classique)
3 chaines de joints, 1 chaine basique, 1 IK, 1 FK (opti mocap)

Les chaines s’accroche à la base du bassin, au milieu du genou, en haut de la cheville,

Les jambes doivent être parfaitement verticales

On se snap to grid et on pose les joints su le meme axe


on essaie d’être aligné avec la colonne vertébrale

On met une légère rotation au genou(-4,676)

ON FREEZE TRANSFORM

On les renomme DrvJnt_Leg_R, Knee, Ankle,Ball (cf15)

On met le tout en jaune

On fait apparaître les axes de la colonne pour vérifier les axes

On va dans orient joint, on oriente en XZX


Une jambe est en positif, l’autre en négatif(cf16)

On sélectionne le joint ankle, on va dans skeleton et on fait « disconnect join »


On nomme le nouveau Joint Bind_Foot_R et Bind_Ball_R

On ajoute un joint qui va au bout de pied et on l’ajoute a la chaine, on l’oriente(cf17)

FT

On ajoute des offset et move aux 2 chaines, on les ranges dans leurs dossiers correspondants (cf18)

On duplique le Bind_Root, on le renomme Bind_Hip, on le retourne (180° en Y), on FT, et on le


parente sous le root(cf19)

On copie le premier joint de chaque jambe, que l’on renomme Bind_Leg_R et Bind_Leg_L
On met les deux dans le hip(cf20)

On contraint les Joint leg aux move des chaines des jambes
De meme entre DrvJnt_Ankle et le move du bind foot (cf21)

On crée un IK en Rotate_Plane, on activesticky (cf22)


On la pose du premier joint a l’ankle
On ajoute un controleur sur le genou, pointe vers l’arrière

On crée une contrainte pole vector entre ce dernier et l’IK

On ajoute un controleur pied et on retire les points inutiles

FT

On crée un cercle ajusté a 90°

On ajoute le plugin parent shapes, on sélectionne les 2 objets et on utilise parent shapes
Il faut ensuite modifier les pivots

On n’en garde que les translates et les rotates

On ajoute un attribut séparateur (enum avec les tirets)


On ajoute :
-Twist_Leg_R, sans limite en float
-séparateur
-Foot_Roll (float, -1,1)
-Twist_Heel (float, -1,1)
-Twist_Toe (idem)
-Flex_Toe (idem)
-Bank (-30,30)

On crée 5 locators :
-Loc_Ball_R
-Loc_Heel_R
-Loc_Toe_R
-Loc_Bank_Ext_R
-Loc_Bank_Int_R

On crée 3 groupes Null:


-Pivot_Ball_R
-Pivot_Toe_R
-Pivot_Toe_R_Offset

Les 3 groupe doivent avoir leur pivot sur le Ball

On me la taille des locator a 0,5, et on les place tous aussi sur le ball

On crée 2 IK en single_chain avec sticky activé :


-ik_Ball_R
-ik_Toe_R

On met le locator toe sur le dernier joint du pied, le heel sur la contact arrière du pied, au niveau du
sol, le ball reste sur le ball, on met les 2 banks au niveau du sol et on les mets sur les bords de la géo
ON NE FT PAS
On met le bank int dans le ctrl_foot, on met le bank ext dedans, le bank, le ball, le toe,heel

pivot et toe offset dans heel, toe dans toe offset.

CF25(trop de trucs a ranger)

On importe dans le node editor notre CTRL_Foot_R


On met :
-le twist de la jambe sur le twist de l’ik
-le twist heel (rotaY) en driven key, 80° de rotation
-le toe (rota Y)en set driven key , 70°
-le flex (rota X) sdk,50°
-le foot roll ( 4 positions) setup cf26 clé en rotate X
En -1 le loc_heel va a -40
a 0,5 le pivot ball va a 45
a 1 le loc toe r va a 45

On sélectionne tout et on passe en linéaire

PIVOT toe : 40, -70

On va dans windows animation editor, expression editor


On crée ne nouvelle expression : Exp_Bank_Legs
et on copie colle l’expression, on fait create
Ce sont les locators de bank en rotate Z que l’on selecitonne
CF29

ON EVTE LES SET DRIVEN KEY :

On crée un « setRange » nommé SetR_Twist_Heel_R avec les infos du SDK dedans


On le duplique et on l’adapte au twist toe, min max : rota, old min old max : limites

On ajoute un remap value

RmV_Flex_Toe_R
-1
1
40
-70
mais il faut changer une valeur intermédiaire :
on clique sur la courbe de value pour créer un point, cela ajoute une position intermédiaire

On crée un remap value : RmV_FootRoll_Heel_R


Les limites sont -1 et 0, output : -40 et 0

on le duplique pour le toe


entre 0,5 et 1, 0 et 45

Remap value : RmV_FootRoll_Ball_R


0 et 1, 0 et 45
sur la courbe de value on lui donne 0 a 0, 1 a 0,5 et 0 a 1, CF27

On crée un bookmark nodes_FootRoll_R

Le stretch des jambes :

On crée un locator (en rose) que l’on dupplique, l’un : Loc_DistB_Leg_R et l’autre :
Loc_DistB_Ankle_R
On les snap sur le jnt du haut de la jambe, on les freeze transform
On les met dans un groupe : Loc_DistB
On attrape le second loc pour le mettre sur ankle, ON NE FT PAS

On prend le bind_leg_R, celui de la colonne, on le parente au loc_leg


On prend le CTRL_foot et on le parente sur le loc_ankle

On ajoute un attribut au CTRL du pied nommé Stretch_Leg_R, en boolean(on/off)

Node Editor : Display Connection type S-Type

On récupère les shapes de nos deux loc

On ajoute un distancebetween nommé : DistB_Leg_R


On met leurs world position[0] que l’on met en point 1 et 2
CF33

On ajoute un multiplyDivide : Leg_R_Stretch_Pourcent_Div


On met le distance du DistB dans sont input 1X
On ajoute le globalMove, on crée un global_relative_scale en multiply divide
On va chercher le Scale Y que l’on branche en input 1

On tend la jambe pour voir la vraie valeur de distance néscessaire

On branche ensuite comme ceci CF 34.

MtpDvd : Leg_R_Stretch_Pow dans lequel on branche l’output X

MtpDvd : Leg_R_Stretch_Invert_Div, ce qui nous donne cela

On importe le CTRL_Foot_R

On ajoute 2 Condition Node

nommé Cond_Stretch_Leg_R recevant le Stretch leg au first term avec 1 en second terme CF 36

et le second nommé : Cond_Evaluate_Dist_Leg_R avec la distance en terme 1 et le global relative


scale e terme 2, le tout en global or equal. CF37

On ajoute des branchement en R et G avec le stretch invert en G et le stretch pourcent div en R ? CF
38
On branche le out R au X des jnt de la jambes, et le G au Y et au Z
CF39

On Bokkmark le tout CF40.

REGLAGES :
Pow en power avec 0,5 en input2
Pourcent_div en Div
invert Div en Div

Placement des bras :

Il faut des clavicules


Elle est attaché a l’avant dernier joint de la colonne
On se met en snap to grid et on crée 2 jnts
Le second point est sur l’axe entre le sommet de l’épaule et l’essaile

nommés :
Bind_Calivicle_01_R
Bind_Clavicle_End_R

FT

On oriente en XYX
Si ça ne marche pas on déconnecte et on réoriente
Ou on affiche les LRA et on réoriente a la main puis on reparente
On met ensuite le dernier en world

On crée 3 joints
1 sur le dernier de la clavicule :DrvJnt_Shoulder_R
1 sur l’articulation du coude :DrvJnt_Elbow_R
et 1 au niveau du poignet :DrvJnt_Wrist_R
On met le tout en jaune

On positionne notre chaine a l’horizontale


On vérifie les LRA

On FT

On oriente tout

CF42

On met move et offset sur la chaine

On met le tout dans un groupe DrvJnt_Arms


Et c’est avec le move que l’on met a la bonne rotation CF43
On fait une contrainte parent (QUE EN TRANSLATE) du dernier de la clavicule et dossier move
du bras

LA MAIN

On duplique la géométrie de la main, on la parente sur le dernier jnt du bras

On key la rota du bras en A pose, n va plus loin et on kay en rota a 0


On crée une chaine de joint, on commence par l’index, en 5 jnt (4 segments), que l’on aligne avec la
symétrie.
On ne rotate que le premier jnt pour les placer, pour replacer en translate on se met en objet.
On ne rotate les autres que sur l’axe principal de rotation.

On duplique le dernier jnt de la chaine du bras, on le débranche et on le renomme : «Bind_Hand_R»


On le réduit un peu en taille.

On renomme : Bind_Metacarpus_Index_R, Bind_Index_01_R, Bind_Index_02_R,


Bind_Index_03_R, et Bind_Index_End_R

On le parente au jnt de la main.


On le duplique et replace le tout pour chaque doigt.
On renomme selon : Middle, Ring, Pinky

On FT nos chaines

Une fois tout bien placé on ajuste les LRA. X vers l’avant, Y vers le fond,Z vers le bas
(test X Y Z en négatif)

On range le tout dans Bind_Joints.

On fait un move et un offset sur le jnt : « Bind_Hand_R »

On parent le dernier Jnt du bras sur le Move du dernier groupe créé

On crée le pouce comme thumb avec seulement 4 joints (3 segments), nommé pareil sans la
métacarpe.

Arm ik :

Le controleur du bras, on crée une EP curve tool en vue de haut pour faire une jolie tête de flèche
comme controleur, on le place sur le dessus de la main, un peu en l’air, avec le pivot au poignet.

On ajoute un Ik en RP du début à la fin du bras avec les trois dernières cases de cochées. On l’apelle
ik_Arm_R.

On met un groupe par dessus le controleur nommé Grp_CTRL_Arm_R, le pivot de ce groupe est
placé sur le jnt de l’épaule
Squash and Stretch des bras

On duplique la chaine des bras, on retire tout le surplus, et on les renomme : « Fk_nom_R »
on ajoute move et offset.

On place le tout dans un groupe Fk_arms mis dans Fk_Joints

On crée 2 locators, Loc_DistB_Arm_R et Loc_DistB_Wrist_R, en rose , on les scale en local scale.


On les mets sur le loc de l’épaule, en freeze, puis on place le second sur le poignet.
On les range das le groupe des Locs_DistB.

On fait contraindre le move de la chaine Fk par le end de la clavicule, on casse les rotates.

On parente le loc de l’épaule au jnt Fk, on parente le second loc au contoleur du bras.

On parent le Move de la chaine FK du bras sur le groupe du controleur du bras (celui au niveau de
la main).

On add attribute sur le controleur avec un séparateur : « Stretch Arm_R » en boolean

Puis setup stretch classique, tmtc :


DistB entre les deux locs nommé DistB_Arm_R, avec leur world position 0.
MtpDiv nommé Arm_R_Stretch_Pourcent_Div avec la dist en input 1X
On tend le bras
On crée le MtpDiv Global_Relative_Scale_Arm_R_Mult, on y branche le scale y du global move,
en input 1X, on met la valeur tendue du bras en 2X.
On met le résultat dans l’input 2 du Pourcent_Div.
MtpDiv Arm_R_Stretch_Pow en Power avec 0,5 en 2X et l’output 1 du pourcent_div en input 1X.
Arm_R_Stretch_Invert_Div avec 1 en input 1X et l’output 1X du Stretch_Pow en 2X
Cond_Evaluate_Dist_Arm_R en greater or equal et Condi_Stretch_Arm_R avec 1 en second term
Condi_Evaluate_Dist_Arm avec longueur en first term et distance générale en second term, output
X du pourcent_div en R et le Stretch_Invert_Div en G.
Condi_Stretch_Arm_R avec Stretch_Arm_R du CTRL en first term
Out color R au color if true R et idem pour le G
R en scale X et G en scale Y et Z, no need le wrist

Switch IK/FK

Pour la jambe :
On duplique les 2 chaines de joints, jambe et pied, on supprime le dernier point de la jambe. On
duplique l’offset du DrvJnt de la jambe, on remplace drnjnt par FK, on supprime l’effector et la
contrainte, on le déplace dans le groupe FK et on le met en bleu.

Pour le pied on duplique uniquement la chaine de jnt que l’on met au bout de la précédente, en
pensant bien a ne garder que la cheville de la chaine du pied.
On parente le move de la chaine sur le Bind_Leg_R.
On va dans create>type
On écrit FK IK, on choisi sa police, calibri est recommandée
Dans l’onglet geometry on fait create curve from type
On scale le tout a une échelle acceptable et on place a un endroit sympa, en parallèle de la jambe,
collé a la cuisse, on met le pivot du groupe de texte sur le premier jnt de la la chaine.
On lui donne un vrai nom : Switch_Leg_R
On utilise le script parent shape pour combiner les curves, les IK ensemble et les FK ensemble, on
utilise « parent -r -s » en mode shapes pour tout combiner.
On le renomme Ik_Fk et on contraint son groupe par le premier Jnt de la chaine DrvJnt non sans
mettre son pivot dessus avant

On y ajoute un séparateur et « Switch_FK_IK » on lui donne un nice name, on le règle en float


entre 0 et 1

Node editor :
On importe la nouvelle chaine de jnt
On importe la chaine de DrvJnt, on fait disparaître l’ankle
On importe les jnt du pied
Le switch
Les Ik : leg ball et foot tous rangé dans le controleur du foot
Le texte

on crée un pairBlend nommé PB_Leg_R, clic droit, show all attribute.


On branche le rotate du FK_Leg_ que l’on branche dans le In_Rotate puis dans le rotate du DrvJnt,
on met le switch Fk Ik au weight.
On met le switch Ik dans le Ik blend des chaines Ik.

Pour chaque duo de jnt on leur donne un pairBlend avec un nom cohérent.

Pour la visibilité :
On branche le switch IK FK dans la visibilité du texte pour cacher les lettres qui ne correspondent
pas, pour le second pack de lettre on met un reverse nommé ReV_Visibility_Leg_R
On branche pareil dans le premier jnt des 2 jambe et dans le pied IK
C’est les FK qui utilisent le reverse
On ajoute aussi le pole vector pour la visibility

Il faut maintenant des controleurs FK :


On crée un circle nommé FK_Leg_R
On affiche les shapes, et on le parent -r -s a son jnt logique, on passe en mode component (f8) pour
ajuster sa rotation, son scale, on recommence pour tout les jnt.
Les CTRL de la main :

On crée un circle, puis un joint, on va dans modify>match transformation>match all tansformation


On le renomme CTRL_Metacarpus_Index_R
En mode component on le réajuste proprement, au dessus en petit du controleur
on lui ajoute un offset, on cache tout sauf les rotates
On lui ajoute un groupe nommé : Grp_CTRL_Hand_R ayant pour pivot le jnt de la main

On prend le jnt de la main, que l’on parente sur le groupe de controleur de la main

Et on recommence pour tout les doigts tels que : CTRL_Index_01_R

On hiérarchise les phalanges dans le groupe précédent du même doigt

Une fois tout ça fait, on fait une contrainte orient du controleur au joint

Lier la main aux 2 chaines :

On prend le Bind_Hand_R_Move, le CTRL_Arm_R, et les 2 chaine de jnt


on prend les 2 wrist et le bind hand, on fait un contrainte de parent

On prend le CTRL_Arm_R que l’on parent uniquement en rotate sur le wrist

On branche le switch ik fk sur la la contrainte pour le FK et avec le reverse pour le IK

Vous aimerez peut-être aussi