Network :
ico_magazine
www.3dvf.com
ico_boutique
www.3dvf.fr
ico_cgjobs
www.cgjobs.eu
space
Actualités Logiciéls Tutoriéls Galeries Concours Forums WIP Emplois Boutique
 

Nova : Animation de personnages avec le Companion Scene et l'Action Builder

Bienvenue dans cette troisième partie des tutoriaux dédiés à NOVA! Cette fois-ci, nous allons voir comment exporter une animation de personnage dans NOVA. Attention cependant!. Il ne s'agit ici en aucun cas d'expliquer comment animer un perso sous 3ds Max. De nombreux tutoriaux de méthodes existent sur Internet pour ceci.
D'ailleurs je vous recommande celui-ci -
http://www.daniel3d.com/pepe-school-land/misc/videotut/biped2bones/biped2bones_pepe-shool-land-com.html-, par Mr Martinez Lara, car la méthode employée est très proche de celle utilisée pour ce tutoriel). Nous resterons focalisé sur NOVA 2008. Avec ces tutoriaux seront généralement fournis les fichiers sources et une vidéo.

Téléchargez la vidéo et les fichiers 3dsmax de cet exercice
Pour d'infos : www.vertice.fr
Pour toutes questions techniques ou commerciales : www.3dvf.fr

Exporter l'animation d'un personnage
Vous pouvez ouvrir le fichier joint avec ce tutorial qui se nomme Anim.max. Nous pouvons voir un Biped de Character Studio, converti en simple mesh, disposant de contrôleurs d'animation (les splines de couleurs). Si l'on joue l'animation, on voit que le personnage se déplace, s'arrête sur une position neutre, effectue un mouvement de recul, revient en position neutre, effectue une parade et revient en position neutre. Ces animations ont été pensées comme séquentielles, c'est à dire qu'elles pourront être appelées et jouées par morceaux. Le retour à la position neutre garantit la cohésion entre les séquences.

Lorsque l'on parle d'animation pour le temps réel, il convient en premier lieu de paramétrer le temps de 3ds Max et de lui faire correspondre celui de NOVA. Afin de régler le temps de NOVA, faites un clic droit sur une portion vide de la vue 3D et dans le Quad menu, sélectionnez NOVA Properties. Cela va afficher les propriétés NOVA de la scène. En bas de ce panneau, dans l'onglet Animations, vous trouverez un champ nommé Animations Synchro. Celui ci permet de régler  la cadence des animations dans NOVA (qui n'est pas forcément la même que la cadence d'affichage). Sélectionnons 15 fps. Cela ne veux pas dire que l'animation sera saccadée, puisque NOVA interpole l'animation.

Ensuite nous devons régler la cadence du Replay de 3ds Max. Cliquons sur le bouton , en bas de l'interface, près des contrôles du magnéto. Cela ouvre une fenêtre qui permet, dans l'onglet Frame Rate, de régler la cadence d'affichage de 3ds Max. S'assurer que la barre de temps ne descend pas en dessous de 500 (dans ce cas, il faut la réajuster).
Maintenant que nos deux logiciels partagent les mêmes vitesses d'animation, nous allons pouvoir exporter la solution.


Voici la vue du fichier en cours


Faire correspondre la cadence de 3ds Max et celle de NOVA

Allons dans le panneau des utilitaires, ouvrons le panneau NOVA et choisissons d'exporter la scène. Attention de bien cocher la case Animations dans ce panneau. Ceci fait, ouvrons NOVA et la scène qui vient d'être exportée. La scène s'affiche bien, mais il manque tout de même l'animation ! Ceci est dû au fait que les animations employées regorgent de cinématiques inverses. NOVA sait gérer un grand nombre d'animations directement depuis 3ds Max, mais les cinématiques inverses nécessitent souvent une adaptation. Retournons sous 3ds Max et sélectionnons tous les bones (pas les contrôleurs, qui ne sont utiles que sous 3ds Max). Faites un clic droit pour afficher le menu Quad et affichez les NOVA Properties des Bones. Dans ce panneau, cochez la case Uncompressed Animations. Ceci a pour effet de débrancher le moteur d'analyse des clefs de l'export de NOVA et de capturer les clefs frame par frame. Ce système est beaucoup plus long en terme d'export mais aussi très précis et strictement similaire au contexte 3ds Max.

Réexportons la scène. Nous voyons que le temps d'export est sensiblement plus long. Repassons sous NOVA et rechargeons la scène (F5). Cette fois-ci, la scène est exportée avec les animations et celles-ci se jouent correctement. Toutefois, en laissant NOVA jouer la piste d'animation, nous pouvons voir que le personnage se décale. C'est parce que les clefs de début d'animation ne rebouclent pas avec celles de fin. Cela n'est pas grave puisque nous n'aurons pas besoin d'atteindre le bout de la timeline, au final.

 

S'interfacer avec une scène Compagnon...

Le but de la manœuvre ici est de lier l'animation du personnage à des contrôles graphiques (une interface). Si je clique sur un bouton, telle partie de l'animation se joue, telle autre sur un autre bouton. Pour cela, NOVA dispose de deux outils : la Companion Scene afin de rajouter une interface par dessus le viewport 3D et l'Action Builder qui permet de créer très simplement des interactions. La scène compagnon est donc une scène 3D autonome qui est jouée en layout par dessus le viewport principal. Elle peut contenir ses propres animations et ses propres caractéristiques de rendu (lumières, effets, etc...). Elle peut aussi contenir des informations d'interactions vers la scène principale.

Commençons par ouvrir un nouveau 3ds Max, tout en gardant celui contenant la scène principale ouvert. Dans la vue de face, créons une caméra Free et deux boites. Assignons des matériaux différents pour les deux boites et déplaçons-les de manière à ce qu'elles soient visibles depuis le viewport de la caméra. Ces boites vont devenir nos boutons. Sélectionnons-les et appelons leurs NOVA Properties. Cochons les cases Can Be Picked (afin de déclarer à NOVA que ces objets sont interactifs), Locked (afin de définir les objets comme fixes) et No Vertex Optimisation (afin d'empêcher l'optimisation des sommets au moment de l'export). Ajoutons une source lumineuse et plaçons-la judicieusement. Enfin, exportons cette scène 3D sous le nom de CompanionS.mxb, de préférence dans le même répertoire que votre scène principale. Passons sous le NOVA Explorer et ouvrons dans un nouvel onglet le scène CompanionS.mxb. Celle-ci apparait dans le viewport et les boutons changent l'apparence du curseur lors de leur survol. Nous allons maintenant ajouter un effet de Roll-Over sur les boutons et lier cette scène au viewport principal. Vous pouvez fermer cet onglet et repasser sur 3ds Max.

Sélectionnons une des deux boites. Appelons l'Actions Builder pour cette entité (Clic droit-> Quad menu->Actions Builder). La première entité qui apparaît dans la fenêtre principale est Start, qui représente le point de départ de la construction de l'interaction. Cliquez, dans la toolbox, à gauche sur le trigger Mouse Enter, déplacez le et relâchez-le sur l'objet Start. Un nouvel évènement sur l'objet boite vient d'être créé. Ajoutons un comportement à cet évènement. Cliquez dans la toolbox sur l'action Change State et relâchez-le sur l'objet Mouse Enter du viewport principal. Dans les panneau Properties, à droite, vous pouvez voir apparaitre les propriétés de cette action et les modifier. Pour le type, il s'agit bien d'un objet (notre boite), dans le champ Name, spécifier le nom de la boite (ou cliquez sur le bouton adjacent et sélectionnez la boite dans le viewport de 3ds Max).Dans le champ Operation, choisissez la valeur affect, ce qui vous permet de choisir la propriété à modifier qui est Generate Glow dans le champ Properties. Une fois cette propriété choisie, les informations relatives à cette entrée sont affichée en dessous. Nous allons spécifier en Direct Value la valeur True.

Pour récapituler, ça donne ceci : lorsque la souris passe sur l'objet boite, l'état de l'objet change et fait passer la valeur Generate Glow de cet objet à vrai, donc l'objet va émettre une surbrillance.


Vue de l'Actions Builder et des effets de "Roll Over"

Afin d'éteindre le glow de l'objet lorsque la souris sort de la zone de survol, Nous pouvons créer de la même manière en Trigger Mouse Leave, assorti d'un comportement Change State similaire, excepté que la valeur Target doit être placé sur False pour le Generate Glow. Répétez cette opération depuis le début pour la deuxième boite. Une fois vos actions définies, exportez à nouveau cette scène et repassez sur le 3ds Max comportant votre scène principale (Anim.max). Nous allons maintenant câbler la scène compagnon à la scène principale.

Appelez les NOVA Properties de la scène et  allez dans l'onglet Misc. Sous le label Companion Scene, cliquez sur le bouton Browse et sélectionnez CompanionS.mxb. Voilà, votre scène compagnon est maintenant liée. Exportez la scène principale et retournez sous NOVA Explorer. Rechargez la scène principale. Vous pouvez voir votre animation de personnage et en layout vos deux boutons (qui changent d'aspect lorsque vous passez le curseur de la souris dessus).Vous pouvez vous approcher à l'extrême de votre personnage sans risquer de voir les boutons disparaitre dans la géométrie. Ils sont effectivement calculés à part, dans un processus différent.  

La scène Compagnon vient se jouer par dessus la scène principale.

 

L'animation par l'interaction

Nous allons maintenant ajouter des comportements sur les boutons de notre scène compagnon afin de piloter les animations de notre personnage. Pour cela, regardons d'un peu plus près l'animation de notre personnage:

De la clef 0 à la clef 100, le biped arrive et stoppe en position neutre. Cette partie sera lancée avec la scène et ne dépendra pas d'un bouton. De la clef 101 à la clef 200, le biped effectue un mouvement de recul et revient à sa position neutre. Cette séquence correspondra au premier bouton. De la clef 201 à la clef 280, le biped effectue un mouvement de protection et revient en position neutre. Cette séquence sera pilotée par le deuxième bouton.

Commençons par régler le début de l'animation, de la clef 0 à la clef 100. Nous devons indiquer à NOVA de ne jouer que cette partie de l'animation au lancement. Cela veut dire que nous allons ajouter un évènement à notre scène et que l'animation doit être pilotée par cet évènement et non plus par la gestion standard de l'animation dans NOVA. Donc, nous pouvons débrayer l'animation sur l'objet Bip02, qui est l'ancêtre le plus haut de la chaine cinématique du personnage. Sélectionnons cet objet et appelons le panneau NOVA Animation (clic droit sur l'objet-> Menu Quad->NOVA Animation). Dans ce panneau décochons Animated et Loop. Cela a pour effet non pas de supprimer l'animation de l'objet mais de la stocker pour un replay déclenché sur interaction. Laissez la case Transmit Parameter cochée car cela permet de dupliquer ces paramètres sur l'ensemble de la hiérarchie. Si vous exportez la scène telle-quelle et la jouez sous NOVA, vous constaterez que le personnage n'est plus animé. Ces clefs ne sont plus prise en compte par le moteur linéaire d'animations de NOVA. Voyons comment activer les clefs comprises entre 0 et 100.

Appelons l'Actions Builder de la scène principale, faisons glisser sur l'entité Start un trigger de type StartUp. Sur ce trigger déposons une action de type Play Animation. Dans le panneau de propriétés de cette action spécifions dans Entity notre Bip02, laissons Start key à 0 et indiquons 100 pour End Key. Enfin, cochons la case Queued. Cette option est très importante puisqu'elle va éviter un saut d'animation si l'on clique sur un des boutons avant que l'animation principale ne soit terminée. La mise en queue permet de forcer l'interaction à attendre la fin d'une animation déjà commencée.

Pour récapituler, au lancement de la scène, NOVA à l'ordre de jouer l'animation de Bip02 (et donc de ses descendants grâce au flag Transmit Parameters) de la clef 0 à la clef 100. Exportons ceci, rechargeons la scène dans NOVA et contrôlons que ce comportement est suivi.

Réglages de l'animation de base du Biped

Maintenant, il est temps de câbler le reste de l'animation avec les boutons de la scène compagnon. Revenons sur la scène compagnon dans 3ds Max. Sélectionnons le premier bouton et ouvrons le panneau Actions Builder. Faites glisser sur Start un trigger de type User Interaction. Une fois celui-ci positionné, faites glisser dessus une action de type Play animation. Dans le panneau Properties, indiquez que l'Action pointe vers Bip02. Peu importe qu'il se trouve ou non dans votre scène actuelle. Ensuite pour la Start Key, indiquez 101 et 200 pour la End Key. Pensez aussi à cocher la case Queued.

En ce qui concerne le second bouton, renouvelez l'étape précédente en spécifiant 201 pour la Start Key et 280 pour la End Key. Ceci fait, réexportez votre Companion Scene.

Les actions du bouton 1

Repassons sous NOVA Explorer, rechargez la scène principale. Nous pouvons constater que l'animation de début se joue au lancement de la scène de manière autonome, et que nous pouvons déclencher les différentes parties de l'animation avec nos boutons. Notez que si vous cliquez sur un bouton pendant qu'une animation se joue, celle ci est reportée après que celle en cours soit achevée.

 

Allez plus loin avec le skinning

Dans ce cas également, nous ne reviendrons pas sur la manière de skinner un personnage. Ceci dit, deux remarques s'imposent. Premièrement, NOVA ne gère que le modificateur Skin. Ensuite, NOVA ne gère que 4 influences par sommet au maximum et nous recommandons, dans un souci de performances de s'en tenir à 2 ou 3. Ensuite, il ne reste qu'à appliquer la peau et soigner les enveloppes. Vous trouverez dans la vidéo un exemple de skinning basé sur le fichier biped.

 
Les paramètres du skin

Dernière chose à connaître afin d'avoir un skinning performant : il s'agit d'un modificateur, pas d'une transformation. Cela veut dire que l'objet reste à sa place, mais que seuls ses sommets sont déplacés. Cet argument implique que l'objet skinné peut très bien être dans le visuel, mais que son origine peut se trouver derrière la caméra. Dans ce cas, NOVA croit que l'objet n'est plus à afficher et risque de le supprimer du visuel. Afin de palier à ce souci, vous pouvez créer un objet factice englobant le skin, de type non-rendu, et le définir comme bounding reference de l'objet skinné. Ensuite, on liera l'objet bounding à Bip02 afin que celui-ci suive le biped. L'objet skinné ne disparaitra plus. Cette astuce fonctionne aussi avec les particules dont les billboards les plus lointains peuvent être très distants du point d'émission. N'hésitez pas à consulter la vidéo pour de plus amples informations sur les bounding references.

Téléchargez la vidéo et les fichiers 3dsmax de cet exercice
Pour d'infos : www.vertice.fr
Pour toutes questions techniques ou commerciales : www.3dvf.fr


Connexion
Pseudo/password:
Connection auto



Newsletter
Abonnez-vous

Boutique
Textures-Modèles
Logiciels 3D
Logiciels 2D
Promo


Google

Publicité


space