Bloc d'Avertissement

Page de test, en cours de construction.
Indexation et / ou mise en cache Interdite!!!

Bloc Titre

Tutoz

Bloc reperage

Navigation : DKDesign >

Bloc Navigation Principale

Graphz Movz Photoz Zic XPz Talkz Don-Lodz Pro-Gz Tutoz Libz Linkz

Module de Recherche

Chercher *

Bloc accueil 'Tutoz 3D XSI-Rigging avancé d'un bras'

XSI - Rigging avancé d'un bras

(par Christoph Schinko)

Voici un tutoriel qui vous explique une méthode pour paramétrer au mieux un squelette de bras dans XSI à fin d'avoir un maximum de possibilité pour animer ce dernier.

Ce qu'il faut retenir principalement c'est la façon d'arriver au résultat voulu. Pour cela il faut déterminer ce que nous voulons et dans quel but. Puis trouver les solutions efficaces et ergonomiques pour y parvenir. Et enfin trouver les astuce pour faire fonctionner le système pour que l'animateur puisse faire un maximum de mouvement tout en aillant un accès le plus claire possibles aux réglages.

Bloc Contenu 'Tutoz 3D XSI-Rigging avancé d'un bras'

Méthode

Quand vous paramétrez un personnage, il est facile d'imaginer toute les choses qu'il est possible de faire et comment il est simple de manipuler et de transformer. Durant le Rigging, beaucoup de ces idées s'envolent à cause des contraintes de planning et/ou des difficultés techniques. L'une des choses qu'un animateur rêve de pouvoir faire, c'est de pouvoir animer l'étirement et l'écrasement (squash & stretch), une technique classique de l'animation qui est souvent mis de coté par les professionnels du paramétrage 3D. Bien sûr, le Principe du squash & stretch peut être mis en œuvre dans les poses du personnage et dans le comportement de ses extrémités, mais voyons comment la liste de souhait si dessous peut être mise en œuvre dans le Rigging fonctionnel d'un bras et dont le contrôle du squash & stretch est facile et rapide :

Image 1 – Le Rigging complet et finalisé
Image 1 – Le Rigging complet et finalisé

I. ÉTIRABILITÉ DES OS

II. RÉINITIALISATIONS ET CONTRAINTES

Comme il serait préférable de verrouiller n'importe quelle animation avec un « Verrou », taille des os fixes et animer celle-ci plus tard, la capacité de désactiver la déformation de la chaîne est importante.
De même, quand vous faite une pose à votre personnage, il serait bien de pouvoir réinitialiser les accidentels sur-étirements, ce qui remettrait le bras à sa taille originale tout en gardant la pose (le long de l'axe Effecteur/Racine).
Une condition dans l'Expression de la longueur des os peut prendre en compte ça : seulement autoriser à changer la longueur des os quand le nouveau paramètre reset-and-lock est égal à 0. Comme la longueur des os tient compte de la mesure de la distance, il est plus simple de faire ça pour contrôler le comportement des os.

III. GESTION DES ÉTIREMENTS

A part réinitialiser et verrouiller l'étirement d'une chaîne, il serait bien de pouvoir distinguer l'étirement de chaque os séparément, ou ensemble, ou les 2 en même temps – même avec l'Effecteur fixé sur sa position. Prenez note que ces compensations de longueur pourraient également fonctionner pendant que la chaîne est déjà étiré et pliée. Et elles pourraient nous apporter la capacité a animer à la main l'écrasement des os dont nous avions besoin. Tout cela sera contrôlé par 3 paramètres, respectivement les paramètres de Compensation :

  1. du bras
  2. de l'avant bras
  3. des deux os

IV. LES OBJETS NULLS

Maintenant, il y a énormément d'objet Null sur la scène, pour aider les Expressions. Bien sûr, ces Expressions sont référé à différents paramètre d'un seul Null, ou un paramètre personnalisé, avec les paramètres nécessaires stocké dedans (soyez conscient que XSI n'aime pas trop les CustomPSet avec certains paramètres qui sont stockés dans une objet de chaîne – Il renvoi une erreur de cycle de dépendance).

Et aussi, toutes les Expressions pourraient être piloté par un objet contrôleur présent du Rig du Personnage, qui implémenterait toutes les fonctionnalités présentés clairement dans une vue 3D, lequel serait idéal pour un animateur. Cependant, il est conseillé d'utiliser de Objet Null Séparés pour bien tout paramétrer, comme ils nous donnent une bonne vue d'ensemble et sont facile à retrouver au cas où il y a des problèmes ou un comportement non désiré.

V. GESTION DU COUDE

Voyons une partie différente, un contrôleur suivit par le coude et qui peut corriger l'orientation de celui ci par une simple translation. La racine du bras et l'Effecteur reste en place, mais le coude peut être bougé librement a une position voulu et dans n'importe quelle direction – il est donc très différent d'un upvector constraint.

Cette spécification est utilisé pour perfectionner une pose que l'on voudrait ajuster un peu mieux si le coude est placé de manière anatomiquement incorrect, au cas où, sur quelques frames.
Dans le légendaire livre de Richard Williams, « The Animator's Survival Kit », il parle souvent de « breaking » (cassure) une articulation pour affiner une animation. Avec ce correcteur d'orientation du coude, il peut plus facilement être réalisable en 3D.

Pour faire ça, une seconde chaîne sera créé pour suivre la chaîne originale. C'est en réalité 2 chaînes composées de 1 os plutôt qu'une simple chaîne de 2 os, et cela pour simuler le comportement du bras définie par le correcteur d'orientation du coude.

VI. VOLUMES

Maintenant, quand vous étirez la chaîne, l'enveloppe du bras devrait suivre et grandir, mais il ne conserve pas vraiment son volume, il garde la même épaisseur – à moins que les axes Y et Z des os soient réduit proportionnellement pendant que la longueur de celui ci augmente.

VII. CONFIGURATION ET CONTROLE DU POIGNET

Nous allons rapidement configurer une chaîne pour le poignet et penser à comment faire au mieux pour contrôler celui ci lors de l'animation. Il y a 2 principes de base :
-soit la rotation du poignet suit l'Effecteur du bras, et donc la main est toujours alignée sur l'avant bras quand vous bougez le bras.
-soit la rotation du poignet est conservée et ce dernier fixé dans l'espace quand vous bougez le bras, et dans ce cas, il est toujours orienté dans la même direction et ne suit pas l'orientation de l'avant bras.

Ces 2 méthodes ont leurs avantages et leurs inconvénients. Quand vous faites des poses à votre personnage, ou que vous faites un mouvement du bras, il est plus naturel que le poignet suive l'avant bras, et toutes les animations additionnelles seront facile à contrôler avec les F-curves, comme nous le savons sa rotation est toujours de 0, 0, 0 par rapport au bras.

Cependant, ce comportement n'est pas le bienvenue quand le bras est animé et ses upVector ajustés après (l'ensemble de l'animation de la main va changer avec ça) ou si il y a une interaction avec d'autres objet dans la scène (quand il faut soulever un objet par exemple).

Toutefois, pour avoir le meilleur des 2 possibilités, nous allons essayer et réussir a configurer un controleur de poignet qui peut gérer les 2 solutions, et l'animateur pourra passer d'un comportement à l'autre.

VIII. ENCRAGE DU BRAS & DE LA MAIN

Un autre truc est qu'il arrive toujours, pendant une animation, d'avoir besoin de pouvoir rapidement bloquer une main à un endroit, quand vous la posez sur une table par exemple. Ceci est possible avec la contrainte de Position sur le contrôleur du bras et la contrainte d'orientation sur le contrôleur du poignet.

IX. UNE ORGANISATION VISUEL EFFICACE

Il y a énormément de fonctionnalités et différentes options dans ce paramétrage de bras maintenant, il pourrait amener l'animateur à confusion. Il est donc conseillé de faire quelque chose pour nettoyer un peu tout ça, afin de fournir l'information de manière claire et avoir la possibilité d'avoir un retour de ce qui se passe sur le moment.
Ajouter des annotations pour appeler les objets de contrôle qui ont des fonctions spéciales, par exemple quand vous modifiez l'échelle Y.

X. FK/IK (forward kinematics / inverse kinematics)

(Suivre la cinématique / Cinématique inversée)

Un autre point important c'est la décision à prendre quand vous animez un bras et spécialement savoir si vous devez utiliser le FK ou le IK. Maintenant, ce bras est évidement prévu pour de l'IK, mais avec l'excellente implantation du mixage FK/IK dans XSI, ça serait honteux de ne pas ajuster notre Rig afin qu'il soit capable de tirer partie de ses spécifications.

Vous pourrez trouver les contrôleurs FK/IK d'XSI dans les « Kinematic Chain Properties » sous le PREMIER os de la chaîne. L'interrupteur FK/IK permet effectivement de jouer entre les 2 méthodes d'animation.
La seule chose qui prévoit le passage au mode FK sur notre bras est la contrainte de Position appliqué à l'Effecteur « c_arm ». Cependant, si nous contrôlons l'activité de cette contrainte de Position avec une Expression, il peut aussi, par exemple être désactiver par un changement d'échelle de notre c_arm, et en même temps utiliser le contrôleur FK/IK pour dire à XSI quand il faut passer en mode Chaîne FK.

XI. ÉQUILIBRAGE DES CONTRÔLEURS

Pour finir le Rigging de notre bras, quelques équilibrages de nos contrôleurs s'imposent. Habituellement, il peut être très fastidieux de bien équilibrer les avant-bras pour avoir une belle rotation au niveau du poignet lors de sa rotation sur X. Ceci est dû à l'algorithme naturel de l'enveloppe du bras qui ne s'interpole pas avec la rotation de l'enveloppe osseuse.
Il y a de nombreuses approches différentes sur comment contourner le problème, avec un second os le long ou pas de l'avant bras, pour bien penser à faire un rigging anatomiquement correct de la structure de l'avant bras. Cependant, dans ce tutoriel, les contrôleurs seront positionnés le long de l'avant bras, pour amortir la rotation du poignet par rapport a l'orientation du coude.
Le même problème s'applique pour le bras et son comportement arrive quand il est tourné sur l'axe X.
La partie proche des épaules reste quasiment en place, mais la partie proche du coude tourne plus en suivant la rotation de l'os. La même approche peut être utilisé ici.

Ces contrôleurs sont habituellement appelez « roll divisions », et peuvent être créé automatiquement avec les rigs intégrés à XSI. C'est vraiment génial, au passage, tout est paramétré avec des opérations codées super rapides qui font tout ce qu'il faut et ce qu'il ne faut pas, assurez vous de les tester.

Maintenant nous allons paramétrer manuellement ces « rolls divisions » (séparateurs de torsion) juste pour le fun.

L'AVANT-BRAS

  • 53. Créez un Null (« h_loArmRoll ») et mettez le comme enfant de l'os « b_offsetLo », le contrôleur du coude y est actuellement comme enfant.
  • 54. Mettez sur Off l'activité de l'icone du upVector (sinon l'objet ne sera pas en mesure de prendre en compte les futurs Expressions).
  • 55. Paramétrez un « 2-point-constraint » et sélectionnez « c_elbow » et « e_arm ». Vérouillez les contraints dans le panneau des propriétés. La distance par pourcentage sera utilisée pour répartir le nombre de contrôleurs Null le long de l'avant bras.
  • 56. Mettez une Expression sur le RotX du contrôleur « h_loArmRoll » b_wrist.kine.local.rotx / 2 Désormais, la rotation X de « h_loArmRoll » suivra en parti la même que la rotation du poinget.
  • 57. Copiez « h_loArmRoll » 3 fois
  • 58. Ajustez le pourcentage de distance dans les 2-point-constrain du panneau des propriétés générales des nouvelles copies, répartissez les de manière uniforme le long de l'avant-bras à 25%, 50%, 75% et 100% (pour en avoir un sur le poignet lui même) Pour faire ça rapidement, sélectionnez le premier Null séparateur de torsion dans l'explorateur, ouvrez les paramètre de contraintes dans le paneau des propriétés générales (« select » dans le MPC) et paramétrez le sur « similar » (l'icone des 2 yeux avant l'icone du verrou du panneau des propriétés générales). Appliquez la distance et sélectionnez le Null suivant dans l'explorer – le panneau des propriétés générales se rafraîchira par rapport aux propriétés des nouveaux contrôleurs.
  • 59. Sélectionnez tous les Null de l'avant bras et appuyez sur « 0 » pour ouvrir l'éditeur d'Expression. Ajustez chaque expression pour garantir une bonne répartition des torsions. Le Null au niveau du poignet peut tourner 2 fois moins que la rotation réelle di poignet (si le personnage est vêtu d'une chemise qui n'a pas besoin de suivre le poignet à 100%). Le contrôleur suivant sera à ¼, les suivant à 1/8 et 1/16 de rotation du poignet, au fur et à mesure que l'on s'approche du coude. b_wrist.kine.local.rotx / 16 Maintenant, quand le poignet fait une rotation sur l'axe X, les contrôleurs de torsion de l'avant bras tournent en fonction qu'ils sont influencé par le poignet.
  • 60. Pour être sûre de ne pas avoir un comportement indésirable quand vous réinitialisez un des contrôleurs du bras, appliquez à la rotation Z et Y de tous les contrôleurs de torsion sur 0 (Par une Expression sur ces paramètres).
  • 61. Puis, comme la géométrie enveloppera ces contrôleurs, l'échelle du volume du bras doit être prise en compte par nos nouveaux contrôleurs. Il suffit toutefois de mettre la bonne expression pour SclY et SclZ sur un des contrôleurs de torsion, et tout simplement de lier les autres contrôleurs à ce dernier.

    Image 8 – Séparation des torsions de l'avant bras
    Image 8 – Séparation des torsions de l'avant bras

LE BRAS

De la même manière, des Nulls peuvent être paramétré pour le bras...

  • 62. Créez un Null avec un 2-point-constraint sur « r_arm » et « c_elbow ».
  • 63. Désactivez les influences des tengeantes et upVector dans les propriétés générales.
  • 64. Appliquez une contrainte de direction vers « c_elbow ».
  • Quand vous avez sélectionné pour la première fois le « c_elbow » à l'étape 54, soyez sûre d'avoir appliqué la contrainte de direction en direction du r_arm. Si vous n'êtes pas sure, activé l'affichage des « relations » sous l'icone de l'œil dans votre viewport.
  • 65. Maintenant faites en sorte que la rotation X du contrôleur de torsion soit égale à la moitié de la rotation d'origine de l'os de l'avant bras (« b_upArm », pas le contrôleur du coude).
  • 66. Verrouillez les autres rotations sur 0 en utilisant des Expressions, comme précédemment.
  • 67. Copiez le contrôleur de torsion du bras 4 fois, gérez les pourcentages de distance des 2-point-constraints et éditez les Expression des rotations X de manière graduelle selon la rotation de bras en fonction de la distance du contrôleur par rapport à l'épaule – comme vous l'avez fait tout à l'heure avec l'avant-bras. Ce « upArmRoll » na pas besoin d'être parenté à « b_upArmOffset », et en fait, le « b_upArmOffset » n'est plus du tout utile! Donc, supprimez-le ou gardez-le pour juste garder un guide visuel. Cependant, vous voyez maintenant pourquoi il n'était pas nécessaire de se préoccuper du problème de rotation avec le upVector au part avant dans l'étape 20, (en fait, vous pourrez faire la même chose avec « b_loArmOffset » et ses contrôleurs).

LA GESTION DU COUDE

Maintenant il faudrait ajouter un Null au coude et lui donner une partie de la rotation de l'avant bras, juste pour faire en qu'il soit un peu souple quand on manipule les rotations de l'axe X et pour garder le coude géométriquement où il est sensé être. Bien sûre, il se peut aussi qu'il soit lié à la rotation de l'avant bras directement et que ses valeurs relatives soient appliquées à la translation du nouveau Null, pour faire que le coude viennent un peu en dehors – et ainsi de suite...

XII. SYMETRIE DE NOTRE RIGGING DE BRAS

Quand on fait la symétrie du rigging du bras, sur une autre partie du personnage, soyez sûre que les « freeze negative scaling » dans la boite de dialogue de Skeleton>DuplicateSymmetry est sur Off. Vous voulez dupliquer les contraints, et parfois, il se passe que les contrôleurs se magnétise à une position indésirable. Dans ce cas, réinitialisez simplement en remettant les coordonnées 0.
Je dis ça, évidemment, je suppose que les contrôleurs sont par défaut sur la position 0. Vous pouvez faire ça facilement en sélectionnant Create>Skeleton>SetNeutralPose pour chaque contrôleur. Et aussi, soyez sûre de bien ajuster les Expressions des contrôleurs de séparation de torsion pour que ça fonctionne correctement sur la copie symétrique (exemple : mettez les à « - rotation du poignet / 2 »...etc...)

XIII. SCRIPTS

Observez, cela demande peu de travail de transformer notre chaîne avec cette configuration. Cela peut prendre un peu de temps pour disons, les deux bras et les deux jambes d'un personnage – surtout quand on à besoin de déplacer, tourner ou ajuster les tailles de la chaîne. Il faut également réajuster toutes les Expressions pour la longueur des os, la distance réelle...etc...- assez fastidieux.
Pour éviter ça, assurez-vous que la position des os est définitive, ou utilisez un script pour automatiser un peu le processus.

XIV. CONCLUSION

Nous avons désormais terminé un rigging assez avancé d'un bras de personnage. Il est spécialement adapté aux besoins des animateurs et est capable de combler beaucoup de leurs besoins. Naturellement, différents animateurs préfère différents rigs ou différentes approches, mais j'espère que ce tutoriel vous a donné assez d'information ou idées pour devenir un spécialiste des contrôles de mouvement de bras.

Ma source

N'hésitez pas à me faire part de vos remarques pour améliorer cette page d'aide. Je remercie Christoph Schinko qui a rédigé ce tutoriel en 2006 que j'ai traduit et adapté en français.

Christoph Schinko - Animateur de personnage et créateur de film indépendants, et est un instructeur certifié XSI depuis plus de 5 ans. Vous pouvez lui écrire (en anglais) à : stoph[@]christoph-schinko.com

Module Utilisateurs

Identifiez vous *

Oublié? Oublié?
  Mes sélections     Déconnexion     Mon compte     Administration  

Bloc pied de page

Bloc Utiles du site

Retour Accueil Ma sélection Problème sur cette page Contacts Plan du site

Module de Langues

Bloc Signature, version, auteur, date et Copyright

stats BOINC valid css valid xhtml Copyright DKDesign © - 2016 - tous droits réservés