Animation sur OpenSim (1/2)

Peut être avez vous envie de nouvelles animations ? Et ni le courage d’apprendre a maitriser les poids-lourds de cette technique, ni les moyens de vous les offrir (Motion Builder 4.400€ H.T.)

Plus sérieusement, le logiciel le plus adapté serait sans doute Poser, ne serait-ce que pour son intégration naturelle avec Second Life (et donc opensim) puisque leurs avatars ne sont que les mannequins d’une ancienne version (la version 2). Mais bon, 200€ quand même.

Il existe une alternative qui s’appelle “motion capture”. Il existe des milliers de fichiers au format normalisé bvh en téléchargement libre dans lesquels vous trouverez probablement votre bonheur. Encore faut il les adapter, ce sera le sujet de cette première leçon, dédiée aux membres de Francogrid .

Notre principal outil de travail sera bvhacker que vous allez télécharger ici .

Prenez connaissance de son fonctionnement sur cette page.

Nous allons prendre notre exemple sur la Carnegie Mellon University Motion Capture Database (environ 2.500 fichiers). Rendez vous sur la page de téléchargement au format bvh Motion Builder qui se trouve ici .

Lancez le téléchargement du fichier zip  BVH directories 01-09 (32 MB) et allez prendre un café.

Dézipper le fichier. Le zip contient un fichier d’index avec la description des motions capture existantes qui pourra vous orienter par la suite dans vos choix.

Dans la série 02, nous allons travailler sur le fichier 02_01 Walk pour créer une courte animation de marche. Ouvrir le fichier avec bvhacker et lancer l’animation . Nous allons devoir apporter plusieurs corrections :

  • le sujet n’est pas centré
  • il se déplace suivant l’axe des Z (alors qui nous voulons une marche “sur place”)
  • le squelette est au format Motion Builder et non au format de Poser/SL
  • nous voulons une marche en boucle

Par contre sa position en rotation Y est correcte, il est face à nous. Une autre position devrait être corrigée, nous verrons comment par la suite.

De même l’alignement des bras (signalé en bas à gauche : arm alignment along X axis) est correct. Un alignement selon les Y devrait être également corrigé.

  1. Modification du squelette

Sauvegarder le fichier (bouton save) dans un répertoire de travail, bvhacker est parfois un peu capricieux pour les manipulations que nous allons effectuer.

Voici le tableau de passage du format des joints de Motion Builder au format Poser :

Hips (ou Hip) hip
LHipJoint Supprimé
Thigh (ou LeftUpLeg) lThigh
LeftLeg lShin
LetfFoot lFoot
LeftToeBase Supprimé
End Site OK
RHipJoint Supprimé
RightUpLeg rThigh
RightLeg rShin
RightFoot rFoot
RightToeBase Supprimé
End Site OK
LowerBack Supprimé
Spine abdomen
Spine1 chest
Neck Supprimé
Neck1 neck
Head head
End Site OK
LeftShoulder lCollar
LeftArm lShldr
LeftForeArm lForeArm
LeftHand lHand
LeftFingerBase Supprimé
LFingers Supprimé
End Site OK
LThumb Supprimé
End Site Supprimé
RightShoulder rCollar
RightArm rShldr
RightForeArm rForeArm
RightHand rHand
RightFingerBase Supprimé
RFingers Supprimé
End Site OK
RThumb Supprimé
End Site Supprimé

Pour modifier le nom d’un joint, sélectionnez le dans le tableau en haut a gauche, clic droit et Rename joint.

Pour le supprimer, clic droit et Delete Joint..

Attention à respecter parfaitement les noms et la casse, sinon le fichier ne fonctionnera pas.

Nous devons aboutir à ceci :

image

Si vous êtes arrivé jusque là sans crash de bvhacker, sauvegardez cette étape. Sinon, recommencez avec des sauvegardes intermédiaires.

2. Correction des positions et translations

image Vérifiez que le joint sélectionné est bien hip et sélectionnez le mode translation. La position en X est à 10.42 . Ramenez la à zéro avec le curseur. Ramenez éventuellement le champ du curseur au minimum (2) pour vous aider

Attention au fonctionnement de bvhacker. Toute modification de la position des curseurs change la totalité des images et pas uniquement celle sur laquelle vous êtes positionné. Cette fonction est très puissante et va nous être très utile, mais bvhacker n’autorise pas la modification d’une image (ce n’est pas un logiciel d’animation).

Ensuite, en haut à droite de l’écran, cliquez sur le bouton Z. Cela va mettre tous les champs de translation sur l’axe Z à zéro. Lancez l’animation. Notre sujet est maintenant centré au milieu de l’écran et marche sur place.

image Dans le champ des vues à droite (View) cliquez sur le bouton Floor pour vérifier que l’avatar ne va pas flotter au dessus du sol. Dans le cas présent nous n’avons pas de modification à apporter. Sinon nous aurions modifié sa position avec le curseur Y. Placez vous maintenant en vue right pour faire la boucle.

Remarque : nous aurions pu utiliser le bouton X pour mettre a zéro les translations en X, mais comme le sujet marche droit, un simple centrage des vues nous permet de conserver le balancement des hanches.

Sauvegardez cette étape.

3. Mise en place de la boucle

Comme il s’agit d’une animation de marche, nous souhaitons mettre en place une boucle infinie. Pour cela faites défiler l’animation pour essayer de trouver aux deux bouts de l’animation des positions les plus similaires possible dans le même mouvement.

Choisissons par exemple les images 9 et 278.

Positionnez vous sur l’image 9 et cliquez en bas à droite de l’écran sur le bouton Mark in. Puis sur l’image 278 et cliquez sur le bouton Mark out.

Ensuite cliquez sur Crop, ce qui va effacer les images hors du champ que vous avez sélectionné. Puis cliquez sur Knit ce qui va adoucir la transition entre la première et la dernière image.

Lancez l’animation. Voilà une belle boucle ! Sauvegardez cette étape.

4. Mise en forme du fichier pour opensim

image Dans Second Life, la première image d’une animation sert uniquement de référence pour définir les parties du corps à animer et la position initiale des hanches. Cette image n’est jamais jouée.Toutes les translations et les rotations sont à  0 sur cette première image (pose en T).

Cliquez sur le bouton Set T qui va la générer.

Cliquez enfin sur le bouton Slify qui va contrôler la compatibilité SL.

Sauvegardez votre projet final prêt pour l’import.

5. Importation de l’animation sur opensim

image Connectez vous à OpenSim et dans le menu, utilisez File, Upload animation pour charger votre fichier bvh.
Cochez la case loop. Vérifiez le bon fonctionnement de votre animation.
Au moment de l’import, une priorité d’exécution est donnée à l’animation. Le niveau de priorité varie entre 0 et 4, 4 étant la priorité la plus haute. Les animations standards ont en général une priorité de 2. Si par exemple votre animation est destinée à un “animation overrider”, mettez la priorité à 4.

Upload ! Félicitations, vous venez d’importer votre première animation sur OpenSim. Dans un billet suivant, nous verrons quelques astuces complémentaires.

Publicités

Un commentaire

  1. Suboceana said,

    septembre 4, 2011 à 4:10

    J’ai commencé à réaliser des animations avec une Kinect, je récupère directement les fichiers dans BVH Hacker, le résultat est très propre au vu du coût du matériel. Maintenant, mon avatar danse comme moi : mal.


Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :