Initialiser le biped dans 3dsmax 5

Écrit le 10/04/2004 par FreeZeBiT
Dernière mise à jour : 31/01/2006

INTRODUCTION

Nous allons voir comment créer un biped et assigner les vertex de notre mesh à ce dernier pour pouvoir l'animer.
Dans un premier temps, pour nous faciliter la tâche du placement du biped, nous allons nous interdire de déplacer notre mesh.
Sélectionnez donc votre mesh puis faîtes un clic droit et cliquez sur 'Freeze selection'. A ce moment, votre mesh devient gris et vous ne pouvez plus le bouger.

CREER LE BIPED

Bien logique, nous allons donc créer notre 'biped'.
Pour cela, allez dans l'onglet 'Create' puis cliquez sur le bouton 'Systems' et enfin 'Biped' :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/01_systems.gif

Dessinez ensuite votre biped simplement en maintenant le bouton gauche enfoncé et en déplaçant votre souris.
Essayez de faire en sorte que le "cadre" rouge soit à peu près à la même échelle que votre mesh.
Lorsque vous lachez le bouton, 3dsmax se charge de dessiner toutes les parties du squelette :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/02_biped.jpg

Si cela ne correspond pas tout à fait à la forme de votre mesh, ne vous en faîtes pas, nous allons corriger ça de suite.

DIMENSIONNER LE BIPED

Oui, par défaut, on peut voir que notre biped n'a, par exemple, qu'un seul doigt à chaque main...
Si ça ne vous convient guère, vous allez devoir remédier à cela en sélectionnant votre biped.
Cliquez sur le bouton de sélection par nom ('Select by Name'), dans la liste, double cliquez sur 'Bip01' :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/03_select.jpg

Ensuite, allez dans l'onglet 'Motion' et cochez le bouton 'Figure Mode' :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/04_figuremode.gif

C'est en fait par ce mode que vous allez pouvoir faire tous les "réglages" de votre biped, y compris le redimensionnement du squelette.
Bref, vous pouvez donc maintenant modifier la liste 'Structure' :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/05_structure.jpg

Je ne vais pas tout vous traduire en français, mais par exemple, pour les doigts, changer la valeur de 'Fingers' ; pour les orteils, c'est 'Toes'.
De toute façon, essayez de modifier toutes les valeurs, vous verrez bien le résultat... Les possibilités sont assez nombreuses.

Bien, ça, c'était une petite précision. On va donc maintenant placer les éléments en fonction de notre mesh.
On va commencer par centrer le squelette sur le mesh, sélectionnez donc l'objet 'Bip01' et déplacez le comme vous le feriez avec n'importe quel objet :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/06_move.jpg

On va maintenant régler les jambes, je ne vous présenterai que cela car la manipulation est la même pour tous les membres.
Sélectionnez l'objet 'Bip01 L Thigh' (cuisse gauche), puis cliquez sur le bouton 'Symmetrical' (http://www.game-lab.com/images/tuts/3dsmax_init_biped/07_symmetrical.jpg). Ce bouton vous servira en fait à appliquer toutes les modifications sur l'objet sélectionné à son symétrique, de manière symétrique.
Ensuite, utilisez les outils 'Scale' et 'Rotate' pour placer le membre convenablement :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/08_thigh.jpg

Procédez de la même façon pour l'objet 'Bip01 L Calf' (tibia gauche) :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/09_calf.jpg

Bref, faîtes pareil pour tous les membres du biped pour arriver à quelque chose qui devrait ressembler à cela :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/10_all.jpg

DERNIERS REGLAGES

Bien, maintenant, on va reprendre notre mesh. Pour cela, il faut d'abord le débloquer : clic-droit dans une vue puis 'Unfreeze All'.
Votre mesh devrait reprendre ses couleurs.
Nous allons donc lier notre biped au mesh de façon à ce que quand on bouge un membre du biped, une partie du mesh suive ce même mouvement.
Sélectionnez votre mesh puis appliquez lui le 'Modifier' intitulé 'Physique' :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/11_physique.gif

Cochez le bouton 'Attach to Node' (http://www.game-lab.com/images/tuts/3dsmax_init_biped/12_attach_node.jpg), cliquez sur le bouton 'Select by Name'.
La fenêtre 'Pick Object' s'ouvre. Elle a le même design que celle de la sélection d'objets. Là, sélectionnez 'Bip01' et cliquez sur le bouton 'Pick'.
La fenêtre 'Physique initialization' apparaît. Cliquez sur le bouton 'Initialize'.
Hop ! 3dsmax bosse un peu (ben oui, faut bien de temps en temps ;) ). En fait, il calcule les vertex qu'il va pouvoir joindre au biped en fonction de la position du biped.
C'est pour cette raison qu'il faut autant que possible placer le biped correctement, car cela nous évite de définir manuellement quel vertex sera affecté par le squelette.

Normalement, si vous sélectionnez votre mesh maintenant, vous devriez voir qu'une "ligne" orangée parcourt tout le mesh :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/13_attach_node2.jpg

Ensuite, on va tester les mouvements. Oui, car même si 3dsmax calcul en grande partie les vertex affectés par le squelette, il arrive souvent que l'on ait des surprises !
Faîtes une sélection par nom, sélectionnez l'objet 'Bip01' et, si ce n'est déjà fait, décochez le bouton 'Figure Mode'.
Maintenant, sélectionnez un des membres du biped, par exemple 'Bip01 R Thigh', et déplacez le dans une des fenêtres pour tester (Ctrl + Z est là pour annuler ce mouvement).

Voici ce que l'on peut obtenir en cas d'erreur lors de l'initialisation :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/14_bug.gif

On remarque aisément qu'un vertex de la cuisse gauche est affecté par le déplacement de la cuisse droite. Ce qui est totalement absurde !

MODIFIER L'ENVELOPPE DU SQUELETTE

Il y a 2 solutions pour remédier à notre problème.
Le premier étant de faire un 'Scale' sur l'enveloppe de la partie du squelette qui pose problème.
Pour cela, sélectionnez votre mesh, et là où vous aviez appliqué le modificateur 'Physique', développez ce dernier et sélectionnez 'Envelope' :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/15_envelope.jpg

Dans l'une des vues, sélectionnez le membre, l'enveloppe apparaît :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/16_select_envelope.jpg

Notez que certains vertex sont dotés d'une croix de couleur. C'est en fait une codification pour indiquer le degré d'affectation par le membre.
Plus la couleur vire au rouge, plus votre vertex sera affecté par le mouvement du membre sélectionné.

Bon, utilisez l'outil 'Scale' et réduisez la taille de l'enveloppe :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/17_scale_envelope.jpg

Il est fort à parier que le problème est symétrique donc faîtes de même avec l'autre cuisse.
Réessayez de déplacer l'objet 'Bip01 R Thigh', c'est déjà beaucoup mieux :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/18_ok.gif

Bien, il ne vous reste plus qu'à faire de même pour tous les membres afin d'avoir un mouvement le plus correct possible.

MODIFIER L'AFFECTATION DES VERTEX

Et oui, je vous ai parler de 2 solutions. En fait, cette deuxième solution est plus destinée à peaufiner les affectations des vertex.
Elle consiste en fait à définir manuellement les vertex qui seront affectés à tel ou tel membre. Elle est surtout efficace lorsque l'on est obligé d'avoir des enveloppes qui se supperposent (c'est souvent le cas pour les doigts par exemple).
Pour être plus rapide, je ne traiterais pas le problème de tous les doigts, mais du fait que je n'ai qu'un doigt.

Voyez plutôt : je veux que la main affecte la main (bien sûr ;) ), mais aussi le pouce. Or, on voit ici que 2 vertex du pouce ne sont pas affectés par le squelette de la main :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/19_pb_vertex.jpg

On va donc les affecter à la main : plutôt que de sélectionner 'Envelope' dans 'Physique', sélectionnez 'Vertex' puis cochez le bouton 'Select' :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/20_vertex_select.jpg

Sélectionnez les vertex qui vous intéressent, ils sont alors colorés :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/21_vertex_selected.jpg

Cochez alors 'Assign to Link' :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/22_assign_link.jpg

Et cliquez sur le membre qui vous interesse. Vous verrez que rien ne se passe !
Et pourtant, les vertex seront bien affectés par ce membre, même si rien ne l'indique.

Bien, maintenant, pour les doigts, on va en fait faire en sorte que si le seul doigt du biped bouge, les quatres doigts du mesh bougent avec.
On suit la même méthode, sauf que pour chacune des 3 parties du doigt, on va affecter des vertex différents.
Par exemple le bout des doigts du mesh seront affectés par le bout du doigt du biped :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/23_fingers.jpg

Voilà en gros le principe. A vous de jouer avec ça pour faire des réglages corrects.

TESTER LES ANIMATIONS

Oui, avant de vous lancer dans l'animation, je vous conseille fortement de tester si votre biped est bien "réglé" ou pas.
Pour cela, il y a un moyen très simple : charger les animations fournies dans les tutoriaux de CS. Ce sont des fichiers ".bip".

Pour les charger, comment fait-on ?
Eh bien c'est très simple :
Pour avoir une meilleure visibilité de notre mesh, on va déjà cacher tous les objets SAUF le 'Bip01' et notre mesh...
Sélectionnez ensuite le 'Bip01', puis allez dans l'onglet 'Motion'. Si le bouton 'Figure Mode' est coché, décochez-le.
Cliquez ensuite sur le bouton 'Load File' (http://www.game-lab.com/images/tuts/3dsmax_init_biped/24_load_file.jpg).
Allez chercher un fichier .bip et vous aurez l'animation de charger !

Pourquoi faire cela ?
Pour détecter d'éventuelles erreurs que l'on aura pu manquer autrement.
Par exemple, regardez cette animation
http://www.game-lab.com/images/tuts/3dsmax_init_biped/25_bip.gif

On peut constater qu'il y a des retouches à faire au niveau des fesses du perso :
http://www.game-lab.com/images/tuts/3dsmax_init_biped/26_test.jpg

Voilà, c'est tout pour cette partie, on verra plus tard comment faire nos propres animations.