Les animations

 Premier chapitre, la modèlisation de base :
 Deuxième chapitre, le placement des textures :
 Troisième chapitre, la liaison au Biped :
 
Généralités :
 
Si votre personnage est un être humain standard, les animation seront grandement facilitées grâce aux nombreuses animations disponibles , en effet vous trouverez des fichiers biped pour toute sortes de mouvements, vous pouvez également plaquer les animations de personnages de Half-Life si vous avez les sources fournies par Valve.
Pour utiliser des animations existantes , il suffit d'ouvrir la scène max des sources correspondant à l'animation, puis d'enregistrer l'animation au format biped (dans le panneau Biped). Puis d'ouvrir la scène contenant le personnage à animer et de charger le fichier biped.
C'est une des application les plus fantastiques de Character Studio, une animation réalisée pour un personnage peut être plaquée à un autre personnage même si son squelette biped est différent en proportions.
 
Pour savoir quelles animations il faudra réaliser, il suffit de jeter un coup d'oeil aux sources ou alors de regarder la liste des animations dans le fichier de compilation du modèle, le fichier.qc.
Avant de commencer à animer il faut penser au fait que les diverses animation devront pouvoir s'enchaîner sans trop de heurts. Si le personnage est au repos et doit partir en courant il faudra que la position de repos ne soit pas trop éloignée de la position de départ de la course.
Toutefois il n'est pas nécessaire que les enchaînements soient parfaits, de toute façon ce serait inutile, car rien ne garantit que le personnage va attendre que l'animation de repos soit terminée pour partir en courrant.
Dans le feu de l'action on ne remarquera rien des fautes d'enchaînement.
De plus pour les animations de marche ou de course, il est impératif qu'elles soient en boucle, car la course ou la marche ont des durées variables. Une animation en boucle est une animation dans laquelle la position de départ est la même que celle d'arrivée.
Il y a des animations de base et des animations particulières pour les séquences de script (scripted sequence). Les animations de base sont indispensables mais les autre sont facultatives, c'est seulement si une action particulière doit être accomplie qu'on en fera l'animation. 
 
Les animations indispensables :
 
Prenons par exemple un modèle complexe tel que le soldat humain (human_grunt).
Voici la liste des animations indispensables :
 
 Walk : c'est la marche, animation en boucle
 Run : c'est la course, animation en boucle
 Victorydance : dance de victoire, lorsque l'adversaire est éliminé.
 Cower : animation de mise à couvert (accroupis) lors d'un tir de grenade
 Smflinch : mouvement de douleur légère
 Leftlegsmflinch : douleur à la jambe gauche
Rightlegsmflinch : douleur à la jambe droite
Rightarmflinch : douleur au bras droit 
Leftarmflinch : douleur au bras gauche
Launchgrenade : tir d'une grenade avec le lanceur
Throwgrenade : lancer de la grenade 
Idle1 : séquence de pause , animation en boucle
Idle2 : séquence de pause , animation en boucle
Combatidle : position de visée en attente du combat, en boucle
Frontkick : coup de pied pour l'attaque de mèlée.
Crouching_idle : pause en position accroupie, en boucle
Crouchshootcycle (down) : tir vers le bas en position accroupie.
Crouchshootcycle (up) : tir vers le haut en position accroupie.
Shootcycle (down) : tir vers le bas en position debout.
Shootcycle (up) : tir vers le haut en position debout.
Reload : recharge de l'arme
Advancesignal : signal en avant!
Flanksignal : signal de côté!
Retreatsignal : battre en retraite!
Dropgrenade : pose une grenade au sol
Limpingwalk : marche boiteuse (blessé)
Limpingrun : course boiteuse (blessé)
180L : demi tour à gauche
180R : demi tour à droite
Strafeleft : marche en crabe à gauche
Straferight : marche en crabe à droite
 
En fait toutes ces animations ne sont pas réellement indispensables, si elles sont absentes, le personnage ne fera rien, ça ne bloquera pas le moteur du jeu.
Tous les personnages n'ont pas toute ces animations, j'ai utilisé cet exemple pour avoir un évantail large des possibilités du moteur.
 
En fait une animation de pause, une animation de marche, une pour la course, une autre pour la position accroupie, les 4 animations de tir debout et accroupie suffisent pour un modèle simple, on perdra en réalisme mais c'est suffisant pour rendre un personnage vivant.
 
Préparations pour l'animation :
 
Il est indispensable que le personnage se trouve à l'origine X=0, Y=0, Z=0 au début de l'animation, sinon il va faire un saut brusque au démarrage, le Pelvis doit se trouver sur l'origine et les pied sur le sol (s'aide de la grille). Si on utilise les footsteps de Character Studio , il faudra les translater pour que le personnage se trouve sur l'origine au moment du début de la séquence d'animation.
Souvent les animations existantes ne sont pas en boucle, ou alors le départ se fait dans une position indésirable, on va alors n'utiliser qu'une partie de l'animation, en choisissant une séquence qui est en boucle.
Par exemple pour la marche, le modèle est en position de repos, puis démarre , marche en boucle, ralentit et s'arrête.
Dans Half-Life on n'utilisera que la partie en boucle de l'animation, on va repèrer le moment du début de la boucle de la marche, puis la fin de la boucle. On translate ensuite les footsteps pour que le modèle soit au dessus de l'origine au moment du départ de la boucle.
On configure alors le temps de l'animation, image de départ, longueur et fin, pour qu'il ne reste que la boucle sur la glissière d'animation. On lance l'animation pour vérifier que la boucle est correcte et on corrige si nécessaire.
 
Modification d'une animation et animation libre :
 
Après avoir procédé aux préparatifs ci-dessus, il faut encore ajuster les mouvements du personnage, position des mains, de l'arme, pour individualiser l'animation.
 
Mais souvent il faudra créer une animation libre pour certains mouvements, il faudra alors créer l'animation de toute pièce.
Après avoir enclenché le bouton animer, il faut sélectionner tous les éléments du squelette et créer une clé de départ pour chacun, ce n'est pas indispensable, mais très utile et évite des problèmes par la suite, car si on veut créer une boucle, il sera très simple de copier la clé de départ et de la placer à la fin.
Je ne vais pas détailler la technique d'animation, mais donner juste quelques indications.
 
Première chose , ne pas hésiter à étudier de façon approfondie les animations existantes des personnages du jeu. Les sources contiennent de nombreux exemples et Milkshape permet de décompiler les fichiers mdl et d'étudier toutes les animations du jeu.
Celà sera nécessaire pour voir de quelle longueur et de quelle manière elles ont été réalisées. C'est très important car ensuite il faudra compiler le modèle et pour celà rester dans les limites du raisonnable.
 
Il y a un cas particulier, c'est celui des animations de tir, elles sont chaque fois faites debout et accroupis, de plus, il faut en faire une en tirant vers le haut et une autre vers le bas. Ce qui fait 4 animations, par contre il ne faut pas faire d'animation de tir horizontal, c'est le moteur du jeu qui va faire la moyenne des deux animations, vers le bas et vers le haut. Il faut donc qu'elles aient la même longueur et la même allure générale. Pour simplifier on fait une animation horizontale qu'on modifie par la suite en faisant pivoter le torse vers le haut et vers le bas et on anime ensuite.
 
La presque totalité des animations devra être en boucle, c'est la logique qui vous fera décider si c'est nécessaire ou non.
Il faudra aussi faire attention aux positions de début et de fin d'animation pour qu'elles puissent se fondre les unes dans les autre sans trop de secousses.
Par exemple la fin de la pause devrait se fondre dans le début de l'autre animation de pause, ou de dans le début de celle de tir . Il y a donc certaines limites à la liberté d'animation pour les mouvements standards.
 
Exportation des animations :
 
Pour exporter, c'est très simple, il suffit d'exporter comme pour la référence, mais en choisissant Skelettale animation au lieu de reference frame.
Il faut aussi choisir un nom bien parlant pour pouvoir s'y retrouver lorsqu'il faudra compiler le modèle.