Manuel du Modding pour Armed Assault
Accueil du site > Tutoriels > Partie V - Techniques avancées > Créer des animations avec O2PE

Créer des animations avec O2PE

samedi 9 février 2008, par lodu


animons

Encore une fois, il s’agit là d’une fonction très mal documentée par le manuel, mais, qu’à cela ne tienne : nous sommes là pour y remédier.

A la base, il s’agit de déformer un personnage, homme ou animal (pour les animaux, je ferai un tuto à part), de manière à ce qu’il accomplisse une action, un mouvement, soit de tout son corps, soit seulement d’une partie de celui ci.

Par exemple, nous voudrions que ce soldat saisisse un micro ou un téléphone de radio de campagne, et le cela de telle façon que nous ayons l’impression, ingame, qu’il accompli vraiment l’action de téléphoner. (faudra pas m’envoyer la facture, hein ?) Celle là est donc une animation d’une partie du corps, et il y a fort à parier que nous nous serons servi d’une animation basique du jeu, pour faire notre transformation.

Dans le cas, plus complexe, ou nous désirerions faire une animation spécifique de A à Z, liée au mouvement de tout le corps du personnage, il nous faudra, pour cela, nous aider d’un modèle, ou, à tout le moins, avoir bien préparé notre travail, pour éviter les imprécisions qui, en ce domaine, sont visibles comme un nez au milieu de la figure.

Dans tout les cas, il nous faudra partir du modèle de Skeleton de BIS, qui nous a été fourni, en plus d’autres mlod « légaux », pour, justement, que nous nous en inspirions, et que nous nous en servions dans ce but là... Dans l’image ci dessus, vous pouvez voir, d’une part, le modèle avec lequel nous allons travailler et la boite de dialogue dédiée à l’animation, dans laquelle vont s’empiler les clés de notre animation, avant que d’être enregistrées au format « rtm », reconnu par le config pour le jeu des animations.

Comme on peut lire dans la fenêtre, « keyframe time », correspond à l’endroit ou seront stockées ces clés d’animation, tandis que « Phase » représente la durée qui leur est attribuée dans ce processus.

Le Skeleton lui même est défini dans le config du personnage, pour la bonne et simple raison qu’il représente, dans tout les sens du terme, son petit cousin dans le jeu. C’est à lui que fait référence le jeu pour « appeler » les animations, et c’est donc tout naturellement par lui que nous allons créer les nôtres, qui ensuite, iront habiller (remarquablement), les personnages, tant militaires que civils du jeu.

A l’évidence, il n’y a pas besoin de s’embarrasser des proxys, ces triangles sans textures qui hérissent le perso, pour faire nos affaires et ce Skeleton rempli très bien son rôle de doublure.

Pour en finir avec cette définition du Skeleton, il faut également savoir que ce modèle simplifié correspond au modèle "basse définition", dont se servent les animateurs professionnels, pour créer leurs animations, qui seront ensuite reportées sur le vrai modèle qui doit en hériter. Cela pour alléger les calculs des processeurs et rendre le travail plus fluide. (chaque perso, dans un contexte d’effet spéciaux pour film, "pèse" plusieurs centaines de milliers de polygones, voire des millions...).

Nous même héritons, dans O2, de cette technologie dont se sont servis les devs pour leur travail avec Maya et Lightwave, logiciels 3d dédiés à cela.

Allez, on se lance ?

Tout d’abord, je vais vous montrer comment se joue une animation du jeu, sur ce Skeleton. Dans le screen ci dessous, je suis allé chercher l’animation dans un ensemble de sous dossiers (ou une vache ne retrouverait pas son veau), en faisant un clic droit dans la fenêtre d’animation, puis « from matrices », qui nous ouvre une boite de dialogue, dans laquelle nous allons à la péche. Pour ma part, j’ai décompressé, à l’aide de « cpbo », le fichier anims du dossier « addons » d’Arma, vers le lecteur virtuel « P », qui a été mis en place lors de l’installation d’O2PE.

Je clique sur la première animation, en haut, et j’obtiens ceci. Et je m’aperçois qu’il ne se passe rien : l’animation ne se joue pas. Tout cela est normal, car il s’agit là de la première frame, neutre ( avec notre personnage en position de modélisation), qui est nécessaire au config, pour qu’il « reconnaisse » cette position de départ, avant de vraiment lancer l’animation « appelée ». Et d’ailleurs, dés la deuxième clé, nous nous apercevons que cela bouge à l’écran. Ca bouge même beaucoup, puisque le personnage est carrément hissé d’un carreau, dans le sens de la hauteur : ceci correspond à une mise au niveau du sol, qui permettra au personnage, dans le jeu, de se mouvoir sur la plante de ses pieds, et non pas à moitié enterré dans le sol.

Autre chose, également qu’il est bon de savoir et de mettre en pratique dans nos propres animations : regardez cette image prise dans l’espace en 3d.

Les articulations du bonhomme se plient comme indiqué avec mon dessin en traits bleus et rouges : en clair, les axes de chaque tubulure en 3d représentant les jambes, ou les coudes, les poignets, etc, doivent se rejoindre autant que faire se peut, pour simuler une bonne déformation de l’articulation du membre.

Pour arriver à ce résultat, nous devrons nous faire aider par une fonction de O2PE, intitulée « LocalAxis ». Nous allons voir cela, en détails, dans un petit moment. Je récapitule donc, avant que de passer à notre animation, à nous^^.

La première clé est une clé neutre, dans laquelle le perso ne subit aucune déformation. La deuxième clé nécessite, avant les déformations proprement dites, une mise à niveau du perso, d’un carreau en hauteur. Les articulations doivent être déformées, pliées, à l’aide de la fonction « Local Axis »

OK. Donc, nous sommes devant notre O2PE, avec, dans la fenêtre, le modèle du Skeleton de BIS. Nous allons créer un mouvement, n’importe lequel, et l’enregistrer en format « rtm », pour notre démonstration.

Je clique droit dans la fenêtre Animations (que je suis allé chercher, auparavant, à l’aide du menu « windows/animations »), et je clique sur « new », en haut. A la suite de quoi, j’obtiens ceci. Cette « Keyframe » ou clé d’animation, correspond à la première clé. Nous la laissons telle quelle : notre travail de déformation commencera véritablement que sur la deuxième. Deuxième clé,que nous la créons de la même façon que la première, avec un clic droit, puis « new ». Vous verrez, que parfois, voire souvent, il est nécessaire de cliquer plusieurs fois sur la « keyframe » que nous voulons sélectionner, et que le menu déroulant de la fenêtre animation, interfère, ou bien qu’une sélection englobante cherche à, précisément englober, toutes les clés présentes.

Pas de panique : il suffit de s’acharner à cliquer gauche sur la frame désirée, pour y arriver, au bout de une à deux fois.

Et c’est maintenant, qu’apparaît la nouvelle fonction, « Local Axis », qui, vous allez vite le comprendre, va considérablement nous aider dans notre tâche. Pour éditer ces « axes locaux »,il suffit d’aller les chercher dans le chemin : Points/Transform 3d/Edit local Axis. Quand nous avons de nouveau, une vue du modèle, il se voit affublé de trois cercles, dans les couleurs rouge verte et bleue, qui correspondent aux trois axes « x,y et z ». Par défaut, les trois sphéres sont positionnées au niveau du bassin, qui correspond, chez l’homme, à peu prés, au centre de gravité du corps,(c’est le point ou toutes les forces s’exerçant vers le bas et dues à la pesanteur, sont exactement équilibrées).

Cette manipulation seule ne suffit pas : il faut retourner dans le menu précédent, et , cette fois ci, décocher l’option « edit Local Axis ». A la suite de quoi, nous nous positionnons en vue de profil, et sélectionnons, dans la fenêtre des sélections, celle nommée « -LeftArm ». ATTENTION, il faut sélectionner là ou le nom commence par le signe « - », qui indique au logiciel, qu’il a affaire à un ensemble animable, doté d’un axe local (comme c’est bizarre^^), et qui va nous être bien utile pour déplacer ce membre, sans lui déboiter l’articulation.

En effet, sont implémentés, pour chaque articulation de ce Skeleton, un axe local constitué des trois cercles précédement décrits, précisément là ou l’articulation va opérer ses déplacements dans l’espace, pour prendre la forme et, ou la place que nous désirons lui donner pour la fabrication de notre animation.

L’axe local de ce bras complet est visible en zoomant sur la partie qui est rattachée à l’épaule. Quand nous bougerons ce bras, en gardant appuyée la touche « Ctrl » du clavier, de la main gauche, tout en faisant tourner, de la main droite, à l’aide du bouton droit de la souris ; dans l’espace 3d, la sélection nommée ; nous nous apercevrons qu’il reste solidaire du reste du corps, comme notre propre bras, quand nous le faisons tourner dans tout les sens. (enfin, j’espère pour vous, que cela se passe ainsi...) Nous avons la une chaîne cinématique, qui se meut selon le principe de l’animation en « cinématique directe ».

N’ayons pas peur des mots : ils ne mordent pas.

La cinématique directe consiste, comme indiqué dans son nom, à animer directement les parties qui doivent être déplacées dans l’espace, et ce les unes après les autres, ou, comme ici, par groupes d’éléments chainés les uns aux autres, dans une logique, un ordre, une hiérarchie du type « parent/enfants ».

Vous connaissez cette hiérarchie, même sans rien connaître à l’animation, puisqu’elle est identique à celle qui ordonne vos dossiers, sous dossiers, etc, sur votre disque dur.

Vous voyez bien, qu’une fois débarrassés de leurs atours venimeux, les mots finissent par devenir aimables...

Pour en terminer avec ses notions, sachez qu’il existe également une autre méthode pour animer, qui s’appelle la cinématique inverse.

Présentement nous devons nous contenter de la cinématique directe, et nous allons faire de belles choses avec. (sauf le café : j’y travaille, mais c’est loin d’être au point.)

Nous prenons une autre chaine, à partir du coude, dans le même ensemble et cela nous donne « -LeftForeArm », que, pour nous familiariser avec le procédé, nous faisons tourner autour de son axe local. En fouillant le modèle, nous allons trouver d’autres chaines cinématiques, telles les deux jambes, dont le bassin est le parent (point d’équilibre). Les épaules, sont les parents respectifs de leurs chaines de bras. Et d’autres encore, avec les splines que vous trouverez en fouinant un peu dans votre modèle de Skeleton : cela vous permettra de vous imprégnez vous même du concept, et ainsi, de mieux assimiler tout cela.

Les rotations, c’est bien joli, mais pas très précis pour faire desanimations qui se déroulent sans heurts.

Nous allons donc reprendre notre modèle de Skeleton, tout simplement en allant le chercher de nouveau dans son emplacement sur le disque dur, et en cliquant sur « Non », dans la boite de dialogue qui vous demandera d’enregistrer votre travail, sous peine de le perdre.

C’est d’ailleurs une constante : il ne faut JAMAIS enregistrer les modifications affectées au Skeleton, pendant le processus de la création de l’animaton. SEULE l’animation sera enregistrée.

Une fois cette nouvelle mouture, vierge de déformations, devant nous, nous nous mettons en vue de profil et sélectionnons la chaine « -LeftUpLeg » Puis nous cliquons sur l’icone de contrainte des « X ». Nous pouvons alors faire bouger l’articulation autour de son axe, mais uniquement dans l’axe des « X ». Si nous continuons et décidons de prendre uniquement la chaine à partir du genou, pour plier celui ci, cela donne quelque chose comme cela. Pour les autres axes, nous nous positionnons de face. Et nous bloquons l’axe « Z » pour faire pivoter, de gauche, ce « pieds/tibia », pour commencer à simuler un effet de marche, au cours duquel nos jambes effectuent ce pivotement vers l’intérieur du corps.

Pour avancer un peu, je vais positionner l’autre jambe, en me servant, alternativement des vues de face et de profil. Vous comprenez le principe ?

Pas de panique : le prochain tuto se jouera, au propre, comme au figuré, sur un pas à pas très démonstratif.

A partir de là, nous affûtons notre souris et nous sélectionnons les éléments que nous désirons bouger pour créer notre animation. Ici, je fais un peu n’importe quoi, principalement pour illustrer mon propos. Dans un autre tutoriel, très détaillé, je vous montrerais comment préparer convenablement une animation, avec l’aide de textures de fond. Pour le moment voici mon « oeuvre ». J’ai bougé un peu de tout dans le modèle, en tournant autour, via les différentes vues à ma disposition, et les contraintes d’axes x, y et z pour certaines opérations de jonction (nous ferons un pas à pas détaillé dans un prochain tuto, qui vous montrera comment opérer).

Je créé une troisième clé, qui, comme la précédente, récupère les informations de position contenues dans la clé précédente, et ce la me donne ceci. Dans cette clé, je refais quelques bougés. Et on va arrêter là, même si cela fait désordonné et court. Je ne veux juste que vous convaincre du procédé pour le moment.

Nous faisons alors un clic droit dans cette fenêtre et enregistrons notre travail en choisissant « export matrice ». Qui nous ouvre une boite de dialogue, dans laquelle nous rentrons un nom pour notre animation, en faisant attention à l’endroit ou va s’enregistrer celle ci. Ici, je fais encore très simple, en tapant « 111 » dans le dossier même du skeleton. ON clique sur « Enregistrer », et le tour est joué.

Prochaine étape : vérification sur un modèle de soldat de la pertinence de notre animation. Pour ce faire, on ouvre une autre instance de O2PE, dans laquelle on monte à l’écran le mlod du soldat fourni par BIS et on lui applique l ’animation. Et nous allons la chercher. Ou avec mon Chernanien, avec sa radio et ses textures multiples regroupées en une seule...

Pour conclure ce tutorial, il me faut vous redire que ce ne sont là que les bases et les principes, méthodes (incomplètes), dont je vous fait part pour une prise de connaissance de cet outil qui recèle en son sein, bien d’autres fonctions intéressantes. Le ou les prochains tutos sur ce vaste sujet, nous en apprendrons encore bien plus.


Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | SPIP