David Della Rocca
website
Size: 441 ko
Platform: Mac/PC

infos:
Si vous préférez partir de 0 et suivre ce tutorial en pas à pas, téléchargez le fichier Animate_a_car2.sit et ouvrez le fichier Animator "Car_starter2.prj".
Il ne comporte que le model basique de la voiture en position de départ.

Si vous êtes de ceux qui préfèrent décortiquer le projet avant de lire ces quelques lignes, ouvrez plutôt le fichier Animator "Car_finished2.prj".
Celui-ci est fini et prêt à être réutilisé
.


Pour gérer la direction ainsi que la rotation des roues, reportez-vous au tutorial précédent "Animer un véhicule - part 1".

Pour plus de contrôle vous pouvez jeter un oeil sur "XPressionist" ou bien encore sur le simulateur de conduite "Reelmotion".

Animer un véhicule - Part 2
 
Ce tutorial explique comment faire suivre à un véhicule la forme d'un terrain, et comment auto-orienter la carosserie par rapport à la hauteur des roues.
Import des models
- Importez votre terrain
- Mettez-le à la bonne échelle et placez-le un peu en dessous de votre véhicule
- Exportez-le en allant dans le menu Object -> Export Parked Fact Object
Vous devez remettre à 0.0 les paramètres de Scale, position et rotation - Cette manip est inutile si votre terrain est déjà bien placé quand vous l'importez.
- Exportez-le en allant dans le menu Object -> Export Parked Fact Object
- Ré-importez le nouveau terrain

- Importez votre véhicule en position de départ, un peu au dessus du terrain et aligné sur l'axe Z.


Etape 1 - Coller le véhicule au sol
- Créez 4 Null objects et placez-les au centre, mais vers l'interieur de chaque roue
- Renomez-les "wheel fix 1", "wheel fix 2", "wheel fix 3" et "wheel fix 4"

Nous allons maintenant utiliser 4 cubes de la taille des roues qui vont servir à les coller sur le terrain.
- Dans le menu Plugins, choisissez Uber Shape EIU.plm
- Dans le plugin choisissez un cube
- Entrez les dimension d'une roue. Dans cet exemple c'est : x: 22 y:66 z:66
- Décochez "Auto-name" et faites OK
- Exportez-le en allant dans le menu Object -> Export Parked Fact Object
- Ré-importez le cube
- Placez son axe en bas (Ouvrez le Joint Editor, dans l'onglet X-form, Link alignment Position, choisissez "Bottom")
- Dupliquez-le en quatre exemplaires et calez-les sur vos 4 vraies roues

- Renomez-les "wheel contact 1", "wheel contact 2",
"wheel contact 3" et "wheel contact 4"
- Groupez chaque roue (wheel 1, 2, 3, 4)
respectivement sur wheel contact 1, 2, 3, 4
- Ensuite groupez wheel contact 1, 2, 3, 4
respectivement sur wheel fix 1, 2, 3, 4

Nous voilà enfin prèt. nous allons maintenant appliquer la contrainte "Geometry" sur les 4 cubes "wheel contact".
Cette contrainte va forcer les cubes à suivre la géométrie, c'est à dire la forme de notre terrain, et comme les roues sont groupées dessus, elles en feront de même.

- Sélectionnez les 4 "wheel contact"
- Dans le menu Constraint, choisissez Geometry
- Cliquez OK sur le premier message d'alerte
- Cliquez ensuite sur le terrain.
Normalement vous devez voir les 4 cubes et les 4 roues se positionner pile au raz du terrain.
- Ouvrez la fenêtre Constraint Editor de "wheel contact 1"
- Décochez les position X et Z en ne laissant que la position Y activée.
Ainsi les roues ne suivront la forme du terrain que sur leur axe Y, un peu comme si elles coulissaient sur un tube, ou un ammortisseur.
Voilà donc les pneus collés au bitume :-)) Et si on faisait bouger tout ça...


Etape 2 - Animer la voiture
- Créez un Null Object et placez-le au centre de l'essieu arrière
- Renommez-le "Car mover"
- Dans le menu Constraint, choisissez Auto Bank et appliquez lui la contrainte à lui-même
- Ouvrez la fenêtre Constraint Editor de "Car mover"
- Cliquez sur Car Mover dans la liste et réglez le Weight sur 0.0
- Décochez "Enable Auto Roll"

- Pour finir, groupez les 4 "wheel fix" avec leurs enfants sur "Car mover"
- Dans la Project window, décochez les 4 cubes "wheel contact" car ils n'ont pas à être visibles.

Mettez l'animation en lecture et vous verrez les 4 roues suivre parfaitement le terrain.

Voilà un bon début, non... Mais après ça il reste tout de même à faire suivre la carosserie.
Pour cela je vous propose une méthode relativement simple et efficace dont le but est que la carosserie interpole sa rotation par rapport à la position de chacune des 4 roues.


Etape 3 - Alignement de la carosserie sur les roues
- Créez en vue de dessus un bone qui part de la roue arrière gauche jusqu'à la roue avant gauche
- Renomez-le Bone L (Animator ajoute un Null Object au bout nommé Joint End, laissez-le)

- Dupliquez ce bone et déplacez-le au niveau des roues droites, renommez-le Bone R
- Créez un troisième bone qui par du centre de Bone L et qui fini au centre de Bone R
- Renomez-le "Bone Roll Z"
- Groupez-le sur Bone L (avec son Joint End)

- Sélectionnez "Bone L" et son Joint End
- Allez dans le menu Character et faites Add IK Handle
- Renommez l'IK Handle "IK Handle L"
- Sélectionnez "Bone R" et son Joint End
- Allez dans le menu Character et faites Add IK Handle
- Renommez l'IK Handle "IK Handle R"
- Dupliquez le Joint End qui est groupé sur "Bone Roll Z"
- Groupez cette copie de Joint End sur le "Bone R" et renommez-la "Joint End Roll Z"
- Sélectionnez "Bone Roll Z" et son Joint End
- Allez dans le menu Character et faites Add IK Handle
- Renommez l'IK Handle "IK Handle Roll Z"
- Groupez-le sur "Bone R"

Ne déprimez pas, c'est presque fini :-)
- Créez un dernier Null Object et placez-le au centre de "Bone Roll Z"
- Renommez-le "car fixation" et groupez-le sur "Bone Roll Z"
- Groupez la carosserie (Car) sur "car fixation"

Dernière ligne droite... c'est ici que toute la magie opère.
- Sélectionnez "Bone L"
- Dans le menu Constraint, choisissez Position, et désignez "wheel contact 1" (roue arrière gauche) comme cible.
- Sélectionnez "Bone R"
- Dans le menu Constraint, choisissez Position, et désignez "wheel contact 2" (roue arrière droite) comme cible
- Sélectionnez "IK Handle L"
- Dans le menu Constraint, choisissez Position, et désignez "wheel contact 3" (roue avant gauche) comme cible.
- Sélectionnez "IK Handle R"
- Dans le menu Constraint, choisissez Position, et désignez "wheel contact 3" (roue avant droite) comme cible.
Si vous avez bien suivi ces manips, vous deviez voir la carosserie s'aligner et s'orienter sur les 4 roues.


Etape 4 - Orienter les roues
Il reste un dernier détail à régler, mais c'est facultatif et c'est à vous de voir si c'est nécessaire dans votre animation. Si vous regardez de plus près vous constaterez que les 4 roues restent irrémédiablement droites, et ce, quelque soit l'inclinaison du terrain.

Une solution simple serait d'activer "Use surface normals" dans la contrainte de Geometry... mais du coup chaque roue s'inclinerait en fonction de la petite portion de terrain sur laquelle elle est contrainte, et résultat, chaque roue partirait dans une direction différente à chaque bosse.
Nous allons donc utiliser une autre méthode pour incliner les 4 roues par rapport à la carosserie.

- Créez un bone qui part du centre de la roue avant et qui monte vers la carosserie, exactement comme si il s'agissait d'un ammortisseur.
- Renommez-le "wheel Roll Z" avec des numéros correspondants aux roues (1, 2, 3, 4)
- Dupliquez-le et placez-en un à chaque roue
- Ajoutez-leur des numéros correspondants aux roues (1, 2, 3, et 4)

- Sélectionnez "wheel Roll Z1" ainsi que son Joint End
- Allez dans le menu Character et faites "Add IK Handle"
- Répétez l'opération pour les 3 autres bones.
Nous nous retrouvons à présent avec 4 IK Handle au sommet de nos 4 bones. Ces IK Handle servent à controller l'orientation des bones, si vous en déplacez un, le bone s'inclinera pour le suivre.
- Groupez ces 4 IK Handle à "car fixation", le Null Object sur lequel est fixé la carosserie.

- Groupez "wheel Roll Z1" sur "wheel contact 1"
- Groupez ensuite la roue (wheel 1) sur "wheel Roll Z1" au lieu de "wheel contact 1"
Faites la même chose avec les 3 autres roues.

Comme vous le voyez à droite de cette page, la hiérarchie finale est un peu complexe... mais après quelques essais vous verrez que ça en vallait bien la peine.
Voilà, c'est la fin de ce deuxième épisode, je vous dis à la prochaine et... ciao!!!
David

Astuces en plus :
- Toutes ces bonnes recettes sont utilisables sur tout genre de véhicule, allant du 3 roues (ATC) au camion à 10 roues ou bien à je ne sais quel véhicule imaginaire, alors n'en restez pas là, expérimentez !

- La contrainte de geometry ne permet pas d'utiliser plusieurs objets comme cible, par exemple une route et un trottoir, ou un terrain et un rocher, ce qui est un peu gènant parfois.
Pour contourner cette limitation, dupliquez l'ensemble des objets qui doivent servir de cible et groupez-les sur le plugin "Dicer". Dans Dicer réglez "Segment count" à 1. Exportez le plugin Dicer en FACT en cochant l'option "selected only". Puis ré-importez le model que vous venez de créer.
Toutes les pièces sont maintenant soudées et ne font plus qu'un seul objet. Il ne vous reste donc qu'à utiliser cet objet comme cible et à le rendre invisible en le décochant dans la project window. Ainsi votre véhicule grimpera sur les trottoirs et les rochers.