Dans cette leçon, vous allez apprendre à faire tourner les roues en fonction de la distance parcourue par le modèle de la voiture.
Commençons par observer la trigonométrie pour le calcul de la rotation des roues.
Pour un objet circulaire, le degré de rotation (α) est défini par le rayon du cercle et la longueur de l'arc compris dans l'angle α. Le degré de rotation (α), exprimé en radians, est égal à la longueur de l'arc, divisée par le rayon du cercle (longueur arc / R), où :
- Le rayon de la roue de la voiture est constant et égal (dans ce cas) à 13 unités.
- La longueur de l'arc (aplati) représente la distance parcourue par la voiture et ses roues.
Par conséquent, le calcul de la rotation des roues (longueur arc / R) devient distance / 13. Le rayon de la roue est constant et égal à 13, mais la distance parcourue est variable.
Préparation de la leçon :
- Poursuivez à partir de l'exercice précédent ou
ouvrez le fichier
car_rig_02.max.
Faire pivoter les roues (coordonnées X univers) :
- Dans la fenêtre Perspective, sélectionnez le Châssis.
La voiture est actuellement orientée sur l'axe X univers : commencez à travailler dans ce système de coordonnées.
- Cliquez avec le bouton droit de la souris sur la caisse de la voiture, puis, dans le menu Quadr., choisissez Mise en relation des paramètres.
- Dans le menu contextuel, choisissez Transformation
Position
(2e) Position XYZ
Position X.
Remarque : Il est important de ne jamais toucher le premier contrôleur d'animation situé en haut de la liste (dans ce cas, le contrôleur Position XYZ), car il sert de "verrou" à la relation parent/enfant. Lorsque vous choisissez les contrôleurs à utiliser, partez toujours du haut de la liste de contrôleurs, en commençant par le deuxième contrôleur.
La bande élastique permet d'identifier le lien entre les deux objets sélectionnés.
- Sélectionnez la roue avant gauche de la voiture (Wheel-FL).
- Dans le menu contextuel, choisissez Transformation
Rotation
(2e) Euler XYZ
Rotation Z.
La boîte de dialogue Mise en relation des paramètres n°1 s'affiche. Cette boîte de dialogue vous permet de configurer des relations unidirectionnelles et bidirectionnelles entre les objets. La position et la rotation des deux objets que vous avez sélectionnés pour affecter un autre objet sont mises en surbrillance.
- Dans la boîte de dialogue Mise en relation des paramètres, cliquez sur la flèche droite au-dessus de "contrôle direction".
Cela permet de s'assurer que la position X de Châssis contrôle la rotation Z de Wheel-FL, et non le contraire.
Le groupe de fonctions Expressions de la roue s'affiche dans l'angle inférieur droit de la boîte de dialogue Mise en relation des paramètres. Il affiche la distance parcourue pour Position_X.
- En regard de Position_X, entrez /13.
L'expression doit désormais correspondre à Position_X/13, soit la distance divisée par le rayon de la roue.
- Cliquez sur Connecter, mais ne fermez pas la boîte de dialogue.
- Testez votre travail en déplaçant la caisse de la voiture sur l'axe X.
Vous remarquerez que la roue avant gauche ne tourne pas. Même si vous ajoutez un contrôleur de liste de position à la voiture et à la roue, le premier contrôleur de la liste (celui qui applique le "verrou" parent/enfant) reste actif. Vous devez rendre le deuxième contrôleur de position (celui utilisé dans le processus de mise en relation) actif.
- Si vous avez déplacé le modèle de la voiture, appuyez sur Ctrl+Z pour annuler le déplacement.
- Une fois la voiture sélectionnée, dans le
groupe de fonctions Mouvement
panneau déroulant Paramètres PRE, cliquez sur le bouton Position en bas du panneau déroulant.
- Dans le panneau déroulant Liste Position, mettez en surbrillance le deuxième contrôleur Position XYZ, puis cliquez sur Rendre actif.
- Tentez à nouveau de déplacer la voiture sur l'axe X.
Conseil : Pour mieux voir la rotation des roues, utilisez la fenêtre Face et remplacez le mode d'affichage par Ombré (ou Lissage + Reflets si vous utilisez un ancien pilote de fenêtre).
Désormais, la roue pivote à la vitesse correcte, mais vers l'arrière.
- Dans le groupe de fonctions Expressions de la boîte de dialogue Mise en relation des paramètres, ajoutez un signe moins (-) devant l'expression, puis cliquez sur Mettre à jour.
- Déplacez une nouvelle fois la voiture sur l'axe X et notez que les roues tournent dans le bon sens.
- Répétez les étapes précédentes pour chacune des trois autres roues.
Conseil : Pour sélectionner les roues droites de la voiture, vous pouvez appuyer sur la touche H après avoir sélectionné la position X de la caisse de la voiture, puis utilisez la boîte de dialogue Choisir objet pour choisir les roues.
Les roues ayant été mises en miroir, vous n'avez pas besoin d'ajouter le signe moins devant l'expression des roues de droite, mais en revanche, vous devez l'ajouter devant celles de gauche.
-
Fermez toutes les boîtes de dialogue Mise en relation des paramètres.
Ajouter des sous-contrôleurs pour la rotation Y :
Lors de la procédure précédente, vous avez appris à ajouter des contrôleurs déterminant la rotation des roues de la voiture en fonction de la distance parcourue par le modèle le long de l'axe X univers. Toutefois, si vous tentez de faire pivoter la voiture dans un autre sens, la rotation des roues est réduite ou interrompue. Par conséquent, vous devez ajouter des contrôleurs prenant en compte le déplacement de la voiture dans une direction Y.
- Dans la fenêtre Dessus, sélectionnez l'objet Châssis et faites-le pivoter de 90 degrés (aiguilles d'une montre) afin que son pare-chocs se trouve dans la position dite "12 heures".
La voiture est désormais orientée sur l'axe Y univers : commencez à travailler dans ce système de coordonnées.
-
Mettez la fenêtre Perspective en orbite pour voir le côté avant gauche de la voiture.
-
Déplacez la voiture d'avant en arrière sur l'axe Y. Notez que les roues ne tournent pas. Pour faire tourner les roues, vous avez besoin de contrôleurs d'animation supplémentaires pour contrôler le déplacement de la voiture dans la direction Y. Ajoutez ces sous-contrôleurs pour ne pas remplacer les contrôleurs déjà existants.
- Dans l'angle inférieur gauche de la fenêtre 3ds Max, cliquez avec le bouton droit de la souris sur la zone MAXScript et choisissez Ouvrir fenêtre récepteur.
- Dans le groupe de fonctions Enregistreur de macro, mettez en surbrillance la ligne suivante :
$.rotation.controller.Available.controller = Euler_XYZ ()
Lors de la sélection de la ligne, veillez à ne pas inclure le retour chariot. Appuyez sur Ctrl+C pour copier cette ligne dans la mémoire.
Si vous n'avez pas réalisé l'exercice précédent et que la ligne ne s'affiche pas dans la boîte de dialogue Ouvrir fenêtre récepteur, copiez la ligne à partir du texte de ce didacticiel.
-
Fermez la fenêtre Récepteur MAXScript, puis
sélectionnez la roue avant gauche (Wheel-FL).
- Cliquez dans le champ de saisie MAXScript (zone blanche dans l'angle inférieur gauche de la fenêtre 3ds Max), appuyez sur Ctrl+V pour coller la ligne de code, puis appuyez sur Entrée.
- Dans le
groupe de fonctions Mouvement
panneau déroulant Paramètres PRE, assurez-vous que le bouton Rotation est actif puis, dans le panneau déroulant Liste Rotation, vérifiez qu'un nouveau sous-contrôleur a été ajouté à la liste Rotation (il devrait y en avoir 3 en tout).
- Répétez l'étape 7 pour ajouter un quatrième sous-contrôleur de rotation. Vous en aurez besoin plus tard dans ce didacticiel.
La roue avant gauche doit désormais comporter quatre pistes Euler XYZ.
-
Sélectionnez une autre roue et répétez les étapes 7 à 9 jusqu'à ce que les quatre roues comportent quatre pistes Euler XYZ dans leur liste Rotation respective.
Faire pivoter les roues (coordonnées Y univers) :
- Sélectionnez le Châssis, puis cliquez avec le bouton droit de la souris et, dans le menu Quadr., choisissez Mise en relation des paramètres.
- Dans le menu, choisissez Transformation
Position
(2e) Position XYZ
Position Y.
- Sélectionnez la roue avant gauche (Wheel-FL).
- Dans le menu, choisissez Transformation
Rotation
(3e) Euler XYZ
Rotation Z.
- Dans la boîte de dialogue Mise en relation des paramètres, cliquez sur la flèche droite située au-dessus de "contrôle direction" pour vérifier que la position Y de Châssis contrôle la rotation Z de Wheel-FL.
- Dans le groupe de fonctions Expressions de droite, entrez /13, puis cliquez sur Connecter.
L'expression pour les roues de gauche doit être Position_Y/13.
- Cliquez sur Connecter.
- Répétez les étapes 2 à 7 pour les trois autres roues.
Remarque : L'expression pour les roues de droite doit être –Position_Y/13.
-
Fermez les boîtes de dialogue Mise en relation des paramètres.
- Dans la fenêtre Dessus,
faites pivoter la voiture de sorte qu'elle ne soit pas orientée horizontalement ou verticalement.
- Dans la barre d'outils principale, cliquez sur
(Sélection et déplacement), puis affectez la valeur Local au système de coordonnées.
- Si nécessaire, ajustez la fenêtre Perspective pour voir le côté de la voiture.
- Déplacez la voiture sur l'axe local X. Notez que les roues tournent correctement.
- Dans la fenêtre Dessus, faites pivoter la voiture jusqu'à ce que le pare-chocs pointe vers la gauche.
- Enregistrez votre fichier sous mycar_rig_03.max.
Faire pivoter les roues (sous une contrainte de trajectoire) :
Dans la procédure précédente, vous avez appris à ajouter des contrôleurs permettant de faire pivoter les roues de la voiture pour n'importe quelle distance parcourue dans l'espace X et Y univers. Par conséquent, les roues tournent correctement lorsque vous déplacez manuellement la voiture dans n'importe quelle direction autour de la scène.
Toutefois, la plupart du temps, vous devez animer le mouvement d'une voiture en la plaçant sur une trajectoire prédéfinie à l'aide de l'option Contrainte Trajectoire. Ce type d'animation requiert une expression différente.
Cette nouvelle expression utilise la même formule (distance divisée par rayon) que celle que vous utilisez déjà, mais même si le rayon de la roue reste constant, la distance parcourue est calculée différemment.
- Poursuivez à partir de la dernière procédure ou
ouvrez le fichier
car_rig_03.max.
- Dans la
liste Jeux de sélections du menu principal, choisissez Trajectoire de la voiture.
Un message d'avertissement s'affiche.
- Cliquez sur Oui pour afficher la trajectoire à utiliser pour animer le mouvement de la voiture.
- Dans le menu principal, choisissez Créer
Assistants
Point.
- Dans le panneau déroulant Paramètres, activez la case à cocher et définissez l'option Taille sur 100.0.
Cela permet d'augmenter la taille du gizmo Assistant et de faciliter sa sélection dans la scène.
Remarque : De nombreux animateurs utilisent l'assistant Factice à la place de l'assistant Point. L'assistant Point vous permet d'ajuster sa taille sans avoir à le mettre à l'échelle. La mise à l'échelle d'un assistant dans une hiérarchie affecte ses objets enfants : il s'agit d'un effet que vous préférez généralement éviter.
- Dans la fenêtre Dessus, cliquez sur un point près de la voiture pour placer un assistant Point.
- Alors que l'assistant Point est toujours sélectionné, cliquez sur
(Aligner) dans la barre d'outils principale, puis sélectionnez l'objet Châssis dans une fenêtre.
- Dans la
zone Position d'alignement de la boîte de dialogue Alignement, vérifiez que les positions X et Y sont activées et que la position Z est désactivée.
- Dans les zones Objet courant et Objet cible, assurez-vous que l'option Point de pivot est sélectionnée, puis cliquez sur OK.
- Dans la fenêtre Face, déplacez l'assistant Point vers la droite sur l'axe X jusqu'à ce qu'il se trouve à gauche de l'essieu arrière de la voiture.

Assistant Point déplacé à gauche de l'essieu arrière
L'emplacement de l'assistant Point que vous avez spécifié devient le point de pivot de la voiture lorsque les roues avant tournent.
- Dans le
panneau déroulant Nom et couleur du groupe de fonctions de commandes, renommez l'assistant Factice_VOITURE.
- Dans une des fenêtres, sélectionnez le Châssis.
- Dans la barre d'outils principale, cliquez sur
(Sélection et liaison), puis dans la fenêtre Face, cliquez sur le châssis de la voiture et faites-la glisser vers l'assistant Point. La caisse de la voiture devient l'enfant de l'assistant Point.
- Dans la barre d'outils principale, cliquez sur
(Sélectionner objet) pour quitter le mode lier.
- Dans la liste Jeux de sélections de la barre d'outils principale, choisissez Garage_All. Cliquez sur Oui pour ignorer l'avertissement et afficher le reste de la géométrie de la scène.
- Dans la fenêtre Dessus, utilisez l'option
(Cadrer) pour visualiser l'ensemble du parking.
- Dans la fenêtre Perspective, cliquez sur l'étiquette Perspective et dans le menu, choisissez Caméras
Camera_Wall-E.
Animer l'objet factice en contraignant sa trajectoire :
- Dans la fenêtre, sélectionnez l'assistant Factice_VOITURE.
- Dans le menu principal, choisissez Animation
Contraintes
Contrainte Trajectoire.
- Dans la fenêtre Dessus, cliquez sur la trajectoire verte (CarPath).
L'assistant et la voiture liée sont replacés au début de la trajectoire.
Remarque : Vous pouvez également contraindre la voiture à appliquer directement la trajectoire. Toutefois, dans ce cas, il est préférable de contraindre l'assistant apparenté à la voiture afin de conserver un contrôle supplémentaire sur le comportement de la voiture (tel que la définition de cales autour des coins).
La trajectoire est une courbe NURBS.
Conseil : Lorsqu'elles sont utilisées en tant que trajectoires d'animation, les courbes NURBS fournissent une "course" plus lisse que les splines ordinaires.
- Epurez l'animation.
L'orientation de la voiture reste constante tout au long de l'animation.
- Dans le
groupe de fonctions Mouvement
panneau déroulant Paramètres trajectoire
zone Options trajectoire, activez l'option Suivre.
- Accédez à la zone Axe et activez l'option Basculer.
L'option Basculer empêche la voiture de rouler en sens inverse.
- Nettoyez à nouveau l'animation.
La voiture est correctement orientée sur la trajectoire, mais les roues ne tournent plus. Cela est dû au fait que l'expression définissant la rotation des roues que vous avez formulée plus tôt ne s'applique plus. La distance parcourue par la voiture était dépendante du déplacement dans les directions X et Y dans le système de coordonnées Univers. Désormais, le déplacement est associé à la longueur de la trajectoire et au pourcentage de la trajectoire parcouru par la voiture. Vous devez ajouter des fils qui tiennent compte de cette modification.
Mettre en relation la rotation des roues avec une trajectoire :
- Dans une fenêtre, sélectionnez la trajectoire d'animation (CarPath), puis accédez au groupe de fonctions
Utilitaires.
- Cliquez sur Mesures et, dans la zone Formes, notez la longueur de la trajectoire.
- Sélectionnez et cliquez avec le bouton droit de la souris sur l'assistant Point, puis dans le menu, choisissez Mise en relation des paramètres.
- Dans le menu, choisissez Transformation
Position
Contrainte Trajectoire
Pourcentage.
- Cliquez sur l'une des roues de la voiture et choisissez Transformation
Rotation
(4e) Rotation Euler
Rotation Z.
- Dans la boîte de dialogue Mise en relation des paramètres, définissez la direction de contrôle sur Droite afin de placer le paramètre Pourcentage sous le contrôle de la rotation des roues.
- Dans le groupe de fonctions Expressions de droite, entrez (2365*Pourcentage)/13.
Remarque : La valeur 2365 correspond à la longueur de la trajectoire d'animation que vous avez mesurée précédemment. Une fois multipliée par le pourcentage, elle calcule la distance parcourue par la voiture à un moment donné lors de la trajectoire. Une fois divisée par le rayon de la roue (13), elle fournit le degré de rotation nécessaire pour que la roue tourne.
- Cliquez sur Connecter.
- Nettoyez l'animation pour voir la rotation des roues.
- Pour mieux voir l'animation, cliquez sur
(Configuration durée) et, dans la boîte de dialogue Configuration durée
zone Unités de temps, activez IMAGE: REPERES.
- Répétez les étapes 3 à 8 pour lier l'assistant Point aux trois roues restantes.
Pensez à ajouter un signe moins (-) à l'expression des roues droites du modèle afin qu'elles ne tournent pas dans le sens inverse.
- Enregistrez votre fichier sous mycar_rig_04.max.