Licence CC BY-NC-SA

Animation de véhicules et de caméras

Publié :

Faisons circuler notre petite tuture dans la ville ! :) Vous allez utiliser pour ça la technique du motion path et gérer l'interpolation de façon à modifier la vitesse de déplacement de la voiture et à la faire s'arrêter à un carrefour. Je vous montrerai comment déplacer une caméra le long d'un motion path et à changer son orientation au cours de l'animation.

En route ! :D

Modélisation de la scène

Commençons par modéliser une partie de la route à partir d'un plan :

Sélectionnez l'edge à son bord et faites trois extrusions pour obtenir le trottoir :

Faites une symétrie de la route, placez snappez le pivot à son bord et faites un scale en -1 :

Voilà ce que donne la route symétrisée :

Combinez les deux parties et mergez les vertices qui sont au centre :

Après avoir attaché les deux demi-routes, sélectionnez l'edge central et faites Delete Edge (si vous appuyez sur Suppr les vertices de chaque coté de l'edge resteront).

Pour la tuture, ça ne devrait pas vous poser trop de problème pour la modéliser. :p Ajustez sa taille par rapport à la route :

Élevez le cube et ajoutez les roues (souvenir, souvenir ! :D ).

Mettez le radius à 0.5 :

Ensuite, snappez le pivot et alignez-le au vertice le plus haut de la roue et à celui le plus à gauche puis snappez-le à la grille :

Ensuite, c'est du déjà vu, snappez le pivot dans le coin de la roue et snappez-la à la grille.

Faites une symétrie de la roue.

Puis dupliquez-les à l'avant de la voiture… ou, non, l'arrière est de l'autre côté… euh, mettez les roues à l'autre bout de la voiture. :p

Dupliquez votre route pour en avoir quatre parties. Ce que vous allez faire, c'est un bridge entre les edge pour générer deux routes qui vont se croiser. En plus de ça on pourra se servir de la curve générée par le bridge pour s'en servir comme motion path ! :D

Combinez la route à gauche et à droite :

Sélectionnez les edges au bord d'une des routes (les plus proches de la route opposée) :

Voici un gros plan sur les edges à sélectionner :

Sélectionnez les edges de l'autre route et allez dans les options du bridge. Vous pouvez vous y rendre à partir du Marking Menu :

Dans le bridge option cochez Smooth path + curve qui permettra de faire apparaitre une curve entre les deux routes tout en ayant un tracé smoothé et pas en ligne droite.

Voilà ce que donnera la route après avoir fait le bridge :

Faites la même chose avec les deux autres morceaux de route. N'oubliez pas de les combiner avant de faire le bridge, sinon ça ne marchera pas. ;)

Sélectionnez toute la tuture et créez un groupe Tuture :

Déplacez-la avec le bout de route pour les garder de côté. Le bout de route pourra vous servir à générer de nouvelles routes. :)

Modélisation du carrefour

Éditez les curves pour déplacer les routes pour que les faces qui se croisent aient à peu près le même centre :

Sélectionnez une partie de la route du carrefour et supprimez-la :

Faites pareil pour l'autre route :

Rapprochez les vertices entre eux, mergez-les avec l'autre route :

Combinez les deux routes et mergez les vertices :

Voilà ce que cela donne quand tous les vertices d'un coin du carrefour sont mergés :

Quand vous aurez mergé tous les vertices, déplacez-les pour que le trou soit le plus carré possible :

Faites un Append Polygon Tool pour reboucher le trou :

Modélisation du panneau stop

Ajoutez un panneau stop au carrefour qui obligera la tuture à s'arrêter. Faites ça avec deux cylindres. Mettez une division de 8 pour le panneau :

Orientez-le ensuite à 22.5° :

Ajout des bâtiments

Modélisez les bâtiments à partir de cubes. Ne perdez pas trop de temps à faire ça, l'important c'est l'animation. ;)

Mettez le bout de route dans un calque pour le cacher :

Et enfin, supprimez l'historique de la route, car on va se servir de la curve comme motion path, donc il faut que la route ne soit plus liée. Pour supprimer l'historique, faites Edit >> Delete by Type >> History ou encore appuyez sur Verr. Maj pour activer la majuscule et faites Alt + D.

Animation

On passe maintenant à l'animation de la tuture. Il faudra que la voiture avance jusqu'au panneau Stop, s'arrête quelques secondes pour laisser passer un camion puis se dirige vers le bout de la route.

Pour commencer, mettez dans la Range Slider 480 frames pour que l'animation dure 20 secondes. On pourra arranger la durée de l'animation pour modifier la vitesse de la voiture par la suite.

Avant de lier la tuture à la curve pour en faire une motion path, je vais vous donner une petite astuce pour que l'objet se déplace sur le côté de la curve, pour que la voiture roule à droite sur la route et pas au milieu. Quand vous attachez un objet à une motion path, c'est son pivot qui passe par le motion path et non le centre de l'objet. En déplaçant le pivot à côté de la voiture, elle se déplacera à côté du motion path. N'oubliez pas de sélectionner le groupe Tuture car c'est tout le groupe qui va être attaché. C'est donc le pivot du groupe qu'il faut déplacer.

Attachez ensuite le groupe Tuture à la curve en faisant (pour rappel) Animate >> Motion Paths >> Attach to Motion Path :

J'ai fait un playblast pour avoir un aperçu de la vitesse de l'animation, faites la même chose. Même si vous aussi vous avez défini 480 frames, la vitesse de déplacement de la tuture ne sera pas la même selon la longueur de la route.

Lire la vidéo

La tuture se déplace très lentement, mais avant de réduire le nombre de frames pour accélérer sa vitesse, nous allons la faire s'arrêter au stop. Elle avancera plus rapidement avant et après s'être arrêtée.

Imaginons que la voiture arrive au stop en 5 secondes, nous allons entrer la valeur 120 (24 frames/s * 5 secondes = 120) à droite de la Time Slider :

Faites apparaitre l'Attribute Editor et cochez "Parametric Lenght" pour pouvoir déplacer la voiture sur la curve. Modifiez la valeur U Value pour placer la voiture avant le Stop. J'ai mis la valeur 0.288, n'oubliez pas ensuite d'entrer une key (clic droit près de U Value >> Set Key) et retenez la valeur que vous avez entrée. Si vous l'oubliez, il vous suffira de revenir en frame 120 :

Je veux que la voiture s'arrête 6 secondes, ça fait 24 frames/s * 6 secondes = 144 frames qui sont ajoutées aux frames précédentes donc 120 + 144 = 264. Pour faire de l'animation, vous aurez très souvent besoin de faire des maths, mais ce seront des opérations très simples, des multiplications pour déterminer combien il y a de frames par seconde et des additions pour calculer sur quelle frame on est si on ne part pas de la frame 1. Je passe en frame 264 :

On ne voit plus la tuture, car celle-ci a continué son chemin, elle s'est déplacée. Entrez la valeur U Value que vous avez retenue pour placer la tuture devant le Stop et ajoutez une key :

Voilà ce que donne l'animation avec la voiture qui s'arrête au stop :

Lire la vidéo

Ajustement de la vitesse de déplacement

La tuture se déplace encore une fois trop lentement, mais un peu plus rapidement quand même. Pour ajuster la vitesse, il va falloir modifier l'espacement entre les keys. Nous allons faire ça dans le Graph Editor. Sélectionnez le groupe Tuture et faites apparaitre le Graph Editor. Pour faire apparaitre les F-curves correctement, pressez la touche F. Sélectionnez toutes les curves, sauf celle en frame 1, qui ne bougera pas :

Activez le scale avec la touche R. Faites un clic depuis le milieu et déplacez la souris vers la gauche pour les rapprocher ou au contraire vers la droite pour les éloigner. Cliquez sur l'image pour qu'elle s'anime :

Utilisez le Move Tool pour déplacer les keys. Faites Shift + clic du milieu pour les déplacer selon un axe. Déplacez selon l'axe horizontal X :

Faites plusieurs playblasts jusqu'à avoir une vitesse d'animation correcte. Il faut que la voiture se déplace pratiquement à la même vitesse avant le Stop et après l'avoir franchi. Utilisez le scale pour modifier la distance entre les keys et le move tool pour les rapprocher ou éloigner de la key en frame 1. J'ai délimité l'animation entre la frame 1 et 192, n'oubliez pas de réduire ou agrandir la range slider.

Je vous montre ce que me donne mon playblast :

Lire la vidéo

Modélisation et animation du camion

Modélisez un camion à partir de deux pavés. Le deuxième est plus long pour la remorque. Ensuite, placez les roues. Faites attention à ce qu'il ne soit pas trop gros pour tenir sur la route. ;)

Créez un groupe camion et placez le pivot à côté :

Attachez le camion au motion path de l'autre route :

Si le camion n'est pas dans le bon sens, modifiez la valeur Up Twist dans la Channel Box ou l'Attribute Editor :

La valeur entrée est exprimée en degrés, mettez 90° :

Voici le playblast avec le camion :

Lire la vidéo

Ajout d'une caméra

Histoire de ne pas garder le même angle de vue et de rendre l'animation plus dynamique, nous allons ajouter une caméra. :) La caméra suivra un motion path. Créez une caméra et esquissez une curve au-dessus de la scène :

Attachez la caméra au motion path et passez en vue de caméra (Panels >> Perspective >> camera1) :

Dans l'Attribute Editor ou la Channel Box ajustez les valeurs de Front Twist et Up Twist pour que la tuture soit centrée en vue de caméra :

N'oubliez pas d'ajouter des keys aux paramètres, la caméra effectuera plusieurs rotations au cours de l'animation :

Si la caméra est trop proche de la tuture, élevez davantage le motion path au-dessus de la scène :

Le motion path est toujours éditable, vous pouvez déplacer ses components pour modifier la trajectoire :

Placez une série de keys pour les Twist Up et Front. Essayez d'avoir la tuture à peu près toujours au centre de la vue. Si vous avez placé des keys en trop vous pouvez les supprimer en sélectionnant directement les chiffres sur le motion path et en les supprimant :

Voilà à quoi ressemble mon motion path après avoir ajouté des keys :

Le playblast me donne ceci :

Lire la vidéo

Rendu de l'animation avec Maya Hardware 2.0 et playblast

Paramétrage du rendu

Une fois que vous serez satisfaits par votre playblast, vous pourrez commencer à faire le rendu. Celui-ci sera effectué en séquence d'images. Pourquoi pas directement un fichier vidéo ? La réponse est simple. Si vous faites un rendu qui doit être sauvegardé directement dans un format vidéo comme le .AVI, .MP4, etc. et que votre ordinateur plante ou que vous avez une coupure de courant, vous perdrez tout. Ça peut être très embêtant sur un rendu qui aura duré une dizaine d'heures. :-° En enregistrant chaque frame dans une image, les images sont conservées si l'ordinateur plante et vous pourrez reprendre là où vous en étiez. :)

Mais si j'ai des images, comment je joue la vidéo ?

Si vous êtes sous Windows, je vous montrerai un logiciel pour unir vos images et exporter vos vidéos en AVI. ;)

Configurons tout ça pour lancer un rendu de chaque frame et les enregistrer au format BMP. Ouvrez les paramètres du moteur de rendu et je vous conseille d'utiliser Mental Ray si vous voulez utiliser l'éclairage Sun and Sky et le Final Gathering. ^^ Dans l'onglet Common, vous trouverez Image Format. C'est le format des fichiers qui seront enregistrés. Mettez bmp. Notez que Mental Ray ne permet pas d'exporter directement en AVI par rapport à Maya Software, ça prouve qu'enregistrer directement au format vidéo n'est pas recommandé. ;)

En dessous, à Frame/animation ext vous devez indiquer quel nom porteront vos fichiers. Par défaut c'est "name.ext (single frame)" qui est sélectionné. Votre fichier sera enregistré sous son nom suivi de son extension et une seule frame sera rendue, donc ça ne nous intéresse pas puisqu'on veut faire le rendu de toutes les frames. En dessous, vous avez à peu près la même chose, mais avec le symbole "#" (croisillon) qui apparait. C'est le numéro de la frame. Par exemple si vous sélectionnez "name_#.ext", cela donnera sur la frame 1 : "tuture_1.bmp".

Plus bas, un paramètre très important est la rangée de frames sur laquelle faire le rendu. Par défaut, elle est toujours de 1 à 10. Puisque mon animation comporte 196 frames, je vais mettre 196. Évidement vous n'aurez sûrement pas le même nombre de frames que moi. :p

Une autre option à ne pas oublier, c'est la caméra utilisée pour le rendu. Par défaut c'est sur "persp", mettez sur "camera1".

Je vous laisse paramétrer la qualité du rendu (final gathering, etc.), la résolution selon la puissance de votre ordinateur. Le mien n'étant pas très puissant je laisse l'antialiasing au minimum. >_< Pour finaliser un peu la scène, ajoutez un plan :

Et n'oubliez pas de choisir le dossier du projet. C'est dans ce dossier que seront enregistrées vos images. Parce que franchement, avoir 196 images qui apparaissent sur le bureau, ça risque d'être le bazar ! :lol:

Faites un rendu dans le render view d'une frame au hasard et jugez de la qualité d'image et surtout du temps de rendu.

J'ai fait un rendu d'une frame en 14 secondes. Si je multiplie ça par 196 frames ça me donne 14 * 196 = 2744 secondes à peu près au total (le rendu ne durera pas pile 14 secondes sur chaque frame). Pour l'avoir en minutes, il faut diviser cette valeur par 60, cela nous fait 2744 / 60 = 45 min. 45 minutes pour le rendu d'une animation, c'est très court. Si vous voulez avoir une meilleure qualité de rendu, je vous suggère de modifier les paramètres de Mental Ray pour avoir entre 5 et 10 heures de rendu. Vous pourrez comme ça laisser votre ordinateur faire le rendu toute une nuit.

Voilà c'est le moment de faire le rendu de l'animation ! Vous l'attendiez, hein ? Eh bien j'hésite à vous l'expliquer, j'ai la flemme, je fais grève !

Bon, c'est bien parce que c'est vous ! ^^ Passez en mode rendering dans la status line. Pour faire le rendu de l'animation nous n'allons pas utiliser le Render View mais le batch render. Vous ne verrez donc pas en direct ce qu'affiche le rendu, vous saurez où ça en est grâce à la ligne de commande qui s'affiche en bas de l'interface ou en allant dans le dossier où les images sont enregistrées. Pour lancer le Batch Render, allez dans le menu Render et cliquez sur Batch Render :

Vous pouvez voir en bas à droite de l'interface où ça en est. J'en suis à 85 % du rendu de la frame 2. Allez, plus que 194 !

Cliquez sur la petite icône à droite pour ouvrir le Script Editor et avoir plus de détails :

Voilà ce qui s'affiche sous forme de lignes de commande :

Le rendu de la frame 10 commence.

Vous pouvez voir les rendus apparaitre dans le dossier du projet. Mon Windows cache l'extension des fichiers, mais ce sont bien des .bmp. ;)

Attacher des images pour avoir un fichier vidéo

Le logiciel que j'utilise pour réunir mes images est léger et gratuit. Il s'appelle Virtualdub.

Télécharger Virtualdub

Lancez le logiciel, sélectionnez toutes vos images et faites-les glisser sur l'interface de Virtualdub :

Vous pouvez jouer la vidéo avec le bouton play en bas de l'interface. Avant d'exporter en AVI, il va falloir paramétrer le nombre d'images par seconde. Allez dans Video >> Frame Rate… (ou utilisez le raccourci CTRL + R) :

Par défaut l'animation est configurée sur 10 frames par seconde. Cochez "Change frame rate to (fps)" et entrez 24, pour 24 images par seconde.

Une fois ça de fait, vous pouvez exporter l'animation. Faites File >> Save as AVI…

Eh voilà le résultat (je n'ai pas mis une qualité de rendu très élevée, si vous avez un bon PC vous pouvez avoir bien mieux ^^ ):

Lire la vidéo


Le motion path, l'édition des keys et l'édition de l'interpolation n'ont plus de secret pour vous. :D N'hésitez pas à vous entrainer en créant des animations plus complexes. Reprenez le TP de la tuture, ajoutez des véhicules et gérez toutes les interactions entre eux. Créez des playblasts pour vous donner une idée de la vitesse de déplacement des objets.

Dans le prochain chapitre, vous allez voir comment créer des animations cycliques pour avoir un mouvement infini (une hélice qui tourne par exemple) ou encore dupliquer un objet le long d'une curve grâce aux outils d'animation. ^^