Historique des modifications - Message

Message #11202

Sujet: Découper un mesh 3d pour séparer les animations frame


Type Date Auteur Contenu
Création du message 25-04-2013 15:31:25 johnplayer
Quand tu créés une animation, tu sauvegardes le déplacement relatif de TOUS les bones pour chaque frame de ton animation. Donc à partir du moment que tu appeleras setFrame() ou setFrameLoop(), tu mettras tous les bones dans l'état prévu à la frame courante. Tu ne peux pas faire d'animations imbriquées, c'est une animation par mesh. Par contre, tu peux récupérer les bones et les bouger manuellement mais c'est un sacré casse-tête.

Maintenant, pour ce qui est de la modélisation, tu peux créé un mesh avec tes 2 squelettes indépendants (un pour le haut et un pour le bas). Ensuite, tu découpes ton mesh en deux et tu exportes chacun des morceaux avec son squelette. Tu importes une partie dans Irrlicht que tu prendras pour "pilote" (parent de toutes les autres parties). Quand tu veux bouger ton personnage, tu bouges le node "pilote".

Par contre, le fait de faire ton mesh avec plusieurs membres séparés va certainement te poser des problèmes de jonctions des vertex entres les membres lors des animations. Dans un mesh les vertex sont reliés entre-eux, tandis que si tu as plusieurs parties tu vas avoir des doublons aux niveaux des séparation de membres (et qui ne seront pas forcément synchronisés).

Maintenant, il se peut que tu puisses modifier les données d'animation des bones. Par exemple, tu charges ton mesh avec un squelette et tu remplis l'animation de chaques bones avec les keyframes que tu veux à la volée.
Je m'explique:
  • tu prends une base de 40 frames pour une animation;
  • tu créés plusieurs animations différentes pour le bas et pour le haut (en respectant ces 40 frames);
  • tu récupères les données nécessaires pour chaque frame de chaque animation et tu les stockes dans un fichier xml;
  • dans irrlicht, tu charge ton mesh avec une animation de 40 frames;
  • ensuite, tu remplaces l'animation initiale par celle que tu veux exécuter.


Tu joueras toujours les frames 0 à 39 mais tu changeras les keyframes des bones suivant tes besoins.

Franchement, je pense qu'il vaut mieux modéliser une plus grande animation avec les différentes possibilités (il suffit de copier-coller les keyframes pour les dupliquer). Ce sera infiniment plus simple et plus rapide. Pour ce que tu veux faire, il faudrait qu'irrlicht gère la cinématique inverse afin d'alléger le travail, mais ce n'est pas demain la veille que ça ce fera.^^

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
104 invités en ligne
membre en ligne: -
RSS Feed