Newtek LightWave : Animation des chenilles d'un Tank sous Lightwave 6.5.
Introduction
Travaillant sur un petit projet d'animation d'un tank, j'ai cherché vainement un cours ("tutorial") concernant l'animation des chenilles. Après avoir trouvé la solution, et montrant le résultat à un ami, celui-ci me conseilla d'en réaliser un cours. Celui-ci est le premier que je réalise; il est est donc peut-être quelque peu rustique. Néanmoins, je crois qu'il pourra vous être utile.
Section du Modeler
J'ai tout d'abord réalisé un maillon de la chenille : de 200 mm de large, centré en 0,0 sur les axes x & z et à plat sur l'axe y.
Ensuite, sur la couche suivante, j'ai réalisé un Spline représentant la forme globale de la chenille à l'aide de 2 disques et d'un point supplémentaire situé au centre (0,0,0) entre les deux disques. Utilisez la fonction "Rest on ground" pour plaquer les disques au niveau du sol et assurez-vous que tous les éléments soient centrés sur l'axe des x.
Sélectionnez les points utiles à la réalisation du spline et en mode point, faites un copier/coller sur un autre calque. Vous ne devriez plus voir que les points utiles à la fabrication du spline.
0Le point supplémentaire doit se trouver en 0,0. Si non déplacez-le à cet endroit. Ce point sera le départ du spline. Sélectionnez-le et tous les autres à contresens du mouvement des aiguilles d'une montre et faites :M ake a closed spline
Make Curve/Close Curve
Ensuite, j'ai utilisé la fonction railclone
Il est important de sélectionner les points dans le bon ordre. Rail clone utilisera cette séquence pour réaliser la chenille et cet ordre est déterminant pour le morphing qui suivra.

Maintenant, affichons notre maillon de chenille et copions-le sur un calque vide. Le maillon doit être affiché à l'avant-plan (en 0,0,0) et le Spline en arrière-plan. Activez l'outil Railclone réglé en Uniform lengths, le nombre de Knots va dépendre de de la longueur du Spline. Par une série d'essais erreurs, nous devons déterminer le nombre de Knots, de manière à ce que les maillons soient presque bord à bord, mais sans se toucher. Multiply/Rail Clone.
Vous devriez obtenir quelque chose de semblable à l'illustration ; Si non, revoyez les étapes de votre travail :-)
0Zoomez sur deux maillons dans le bas, au centre et mesurez exactement la distance séparant deux maillons. Il suffit de sélectionner deux points semblables de 2 maillons adjacents et d'afficher les "info" sur la position de ceux-ci. Vous pouvez également employer : Construct/Mesure.
Notez cette valeur, car nous en aurons besoin! :-)
Dans mon cas, les valeurs sont : x = 63.0052mm et x = -190.8326mm leur différence font : = 253.8378mm ou notez le résultat de l'outil Mesure
Copiez le maillon original sur un autre calque, affichez également votre Spline (les deux calques étant activés). Sélectionnez au lasso tous les point du maillon situé au point de départ du Spline (près de 0,0,0),ainsi que le point de départ du Spline et activez l'outil Move (t), numérique (n) et déplacez en x négativement du nombre que vous avez noté précédemment (la distance entre 2 maillons de centre à centre)
Dans notre exemple, la valeur sera : -253.8378mm elle est négative car c'est dans cette direction que je désire animer la chenille quand j'appliquerai le morph :-)
A présent, le maillon et le point de départ du spline devraient avoir été déplacés exactement de la distance séparant 2 maillons de centre à centre. En plaçant le maillon à l'avant-plan et le Spline à l'arrière-plan, et refaites un Rail Clone comme précédemment en gardant les même valeurs.
Vous avez à présent une autre chenille semblable à la première à l'importante différence près, qu'une rotation d'une valeur d'une maille a été accomplie : Ce sera notre cible de morphing (morph target).
Les utilisateurs d'anciennes versions de Lightwave devront utiliser ces deux objets pour le mouvement pour réaliser un morphing de l'un vers l'autre dans le Layout, mais avec la version 6.5, nous avons le fantastique outil "Morph Maps". Morph maps permet de sauvegarder toutes les informations de morphing du Layer (calque) et quand celui-ci est chargé dans le Layout, le réglage du morphing est aisément contrôlé par une tirette ou une enveloppe. Si cela vous semble obscur, n'ayez crainte, la suite vous éclairera. :-)
OK maintenant, placez le calque de la 1ère chenille à l'avant-plan et celui de la 2ème par derrière, en fond comme sur l'illustration. Cliquez sur "bkg to morph" que vous trouverez en maps/bkg to morph
Une boite de dialogue vous demande alors de nommer la morph map ; appelez-la "roll".
Si vous cliquez sur le bouton M dans le bas de l'écran, vous verrez apparaître "roll", félicitation, vous venez de réaliser un morph map. Rien de particulier ne semble s'être passé, mais ayez confiance, vous comprendrez bientôt :-))
Maintenant, nous devons copier la première chenille, celle qui contient l'information du morph ; cliquez sur copy ("c") et ouvrez un nouvel objet et et faites coller ("v") ou cliquez sur paste.
Vous devez avoir votre chenille sur un calque et si vous cliquez en bas à droite sur M, vous devez voir le mot "base" apparaître en dessous. Cliquez dessus et vous devriez voir le mot "roll", ce qui vous montre que les infos de Morph ont également été bien copiées.
Ok Sauvegardez cet objet sous le nom de "tank" (vous pouvez, si vous le désirez construire le reste de l'engin).
Avant d'aller dans le Layout, nous devons donner un nom à notre calque afin que nous puissions le reconnaître facilement. Ce n'est pas indispensable, mais c'est une bonne habitude à prendre.
Ouvrez le "layer browser" sous Modeler/layer browser ou plus simplement tapez "Y" ; le layer browesr affiche certains éléments, dans ce cas, tank et tread (maillon), cliquez sur la petite flèche devant l'objet tank pour faire apparaître la liste des couches et leur nom. Double Cliquez sur "unnamed" , une boite s'ouvre, permettant de renommer le calque : renommez le "belt", en français, "chenille".
La fenêtre du layer devrait ressembler à ceci. Et maintenant sauvez tous vos objets avant qu'un problème ne survienne ! :-)
Nous avons modelé tout le nécessaire à cette démonstration ; il est temps d'animer notre Bébé et pour cela de se déplacer dans le Lay-out.
Layout section
Dans la précédente section, nous avons construit la chenille d'un tank en incluant un morph map du déplacement d'un maillon de la chenille et nous utiliserons les outils morphmixer et expression de Lightwave pour l'animer.
Bien, vous êtes dans le Modeleur et votre chenille s'affiche sur le calque actif. Cliquez sur la petite flèche en bas et à gauche de votre écran ; déroulez et cliquez "send object to layout". Après une petite attente, le Layout s'ouvre et votre chenille apparaît dans la scène au milieu de l'écran.
Premièrement, nous devons tester le Morph pour nous assurer que tout fonctionne. L'objet Tank étant sélectionné, cliquez le bouton (dans le bas, au milieu) item properties la boite Object Properties s'affiche. Comme un morph est une déformation cliquez cette zone.
Morph mixer est un plugin de déplacement (displacement), donc cliquons sur le menu déroulant add displacement et choisissons "LW Morphmixer" dans la liste. Maintenant, nous voyons l'indication : "mixing 1 MORPHs in 1 group". Jusqu'à présent tout va bien.
Maintenant testons le morph.
double cliquons sur "mixing 1 MORPHs in 1 group" ; la boite de dialogue endomorph mixer apparaît, celle-ci est employée pour controler la force du morph. Vous voyez une tirette au centre ; si vous déplacez délicatement son bouton de contrôle, vous verrez la chenille entrer en rotation.
Donc, le morph fonctionne bien mais, qu'allons-nous faire avec lui ? Je parie que vous désirerez faire en sorte que lorsque la chenille se déplace vers l'avant, celle-ci entre automatiquement en rotation. Ce que nous devons réaliser, c'est la répétition, en continu de cette rotation tant que la chenille se déplace.
Nous utiliserons, pour ce faire un autre des jouets de lightwave, appelé "expression engine". Nous utiliserons des notions de mathématique de base pour créer une équation qui liera le réglage du morph avec la valeur de la distance de déplacement.
Vous vous rappelez certainement que dans la première partie nous avons noté la distance séparant 2 maillons : (253.8378mm dans mon cas). Donc, nous savons que le déplacement d'un maillon (ce que nous avons accompli à l'aide du morph) est de : 253.8378mm ; encore faut-il passer l'information à lightwave !
Heureusement, j'ai bouquiné les manuels de lightwave et la syntaxe des expressions à utiliser et j'ai pu définir une assez jolie équation, simple et efficace que je vous livre ici ;-). Maintenant, ce n'est peut-être pas la meilleure manière de le faire, mais elle est simple et claire. Je vais vous expliquer comment fonctionne cette équation et comment l'utiliser.
Expression = (A/0.2538) % 1.0
Où A = move_null.pos(Time).x - master_null.pos(Time).x
Avant de vous enfuir, concentrez-vous, que je puisse vous expliquer :-)
A = la distance parcourue
0.2538 est votre distance en M (en mètre, je ne sais pas pourquoi, mais Lightwave aime cela).
%1.0 convertit la valeur en pourcentage.
La section A est nécessaire pour calculer la distance parcourue par la chenille et pour ce faire, j'ai ajouté quelques null objects .
.master_null est un simple point nul(null objet) placé en 0,0 ; c'est un simple point de référence de la distance et move_null est un autre null objet ; celui-ci servira au déplacement de la chenille.
pos(Time).x permet de mesurer la position de move_null à n'importe quel moment sur l'axe des x axis, ainsi, la variable x est envoyée à l'expression finale.
Vous voyez, c'est simple !
Maintenant, avant tout, nous allons "parenter" la chenille à move_null de manière à ce que le mouvement soit correctement analysé.
Bien après la théorie, passons à la pratique...
Fermez toutes les boites ouvertes et ajoutez un null object (avec add/add null) et appelez-le "master_null" , puis ajoutez-en un autre que vous appellerez "move_null"
A présent, nous devons parenter la chenille à move_null de manière à ce qu'elle suive ses mouvements. Sélectionnez la chenille ( en cliquant dessus ou en la sélectionnant dans la liste du bas de l'écran). Cliquez "motion options" et au dessus du panneau : assigner "move_null" comme parent, fermez le panneau.
Maintenant, réglons l'expression :-)
Assurons-nous que l'objet tank soit sélectionné et ouvrons à nouveau item properties/deformation/morphmixer et cette fois au lieu de déplacer la tirette, cliquons sur le bouton graph edit. Le Motion graph editor apparaît. C'est à cet endroit que nous devons définir notre expression. En haut, à droite, vous voyez l'effet engendré par le canal Morph ; celui-ci sera modifié à l'étape suivante, lorsque nous aurons introduit l'expression dans le canal. Au centre du panneau vous voyez 3 onglets : cures/expressions/modifiers
Plaçons-nous sur l'onglet modifiers, choisissons add expressions où nous voyons apparaître "LW expression" Méfions-nous des réactions de Lightwave : il est grand temps de sauvegarder notre scène.
Double cliquons sur "LW expression" pour nous permettre de définir celle-ci.
Il suffit d'ajouter l'expression expliquée précédemment ; voici à quoi cela doit ressembler.
Cliquez sur Test Expression pour vous assurer que tout est OK, puis cliquer sur Continue.
Fermez tous les panneaux, organisez convenablement votre écran en affichant la chenille et les Null Objects, sélectionnez l'objet move_null et déplacez-le d'une valeur positive en X.
Si tout se passe bien, vous devriez voir la chenille entrer en rotation dès que vous déplacez le Null Object.
Quand vous aurez terminé, votre travail devrait ressembler à ceci (400kb divx)
Ici, vous trouverez la scène finale
Conclusion
Bien que ce ne soit pas une longue étude, j'espère vous avoir fait découvrir quelques fonctions de Lightwave et de la puissance qui s'y cache. J'espère que vous avez apprécié ce guide et qu'il vous a appris quelque chose.
Si vous avez des commentaires à me faire, n'hésitez pas à me contacter.
Adrian
Je remercie spécialement Lars "Morek" Johansson pour son aide, lorsque je testais les Expressions ; Allez voir son site, "he's a top lightwaver "
Ecrit par Adrian Thompson Traduction française par Roland Dubois, alias Kernel |