Historique des modifications - Message

Message #2804

Sujet: La conception d'un jeu sous Irrlicht (voir Irrlicht CP)


Type Date Auteur Contenu
Création du message 09-08-2007 11:06:48 Alesk
Bonjour à tous,

Je suis nouveau sur ce forum, je m'interesse depuis peu à irrLicht, et je pense que ça va s'accentuer dans les jours qui viennent.
Cependant, je peux vous clarifier certains points qui ne semblent pas trés clair pour certains jusqu'ici : les animations par bones, keyframes (dans le cas d'un fichier MD2), cinématique directe, cinématique inverse.

tout d'abord, la cinématique directe et la cinématique inverse sont deux méthodes 'opposée' de manipulation d'une hiérarchie de bones en vue de leur donner une posture (ou bien de les animer en enchainant les postures dans le temps)

Avec le cinématique directe, on va faire pivoter les bones (et rarement les repositionner, car dans un squelette les os pivotent mais se baladent que trés rarement, sauf en cas de broyage d'une jambe sous un tractopelle par exemple) en partant de la racine de la hiérarchie et en pivotant un à un les bones enfants, exemple : d'abord le bassin, puis la colonne vertébrale, puis l'épaule, le bras, l'avant bras et enfin la main.

Au contraire, la cinématique inverse consiste à agir sur le squelette en repositionnant un enfant afin que les parent suivent le mouvement selon des contraintes de rotation : par exemple on positionne la main d'un personnage à tel endroit, et le coude devra se plier correctement (sans partir à l'envers), l'épaule devra elle aussi pivoter, etc... selon les contrainte et les limitations que l'on a déterminé pour la hiérachie influencée par la cinématique inverse : par exemple on pourra définir que lorsqu'on déplace la main, les modification n'influencent que les bones du bras et ne remontent pas jusqu'à ceux du haut du dos, s'arrêtant à l'épaule.

Donc, comme vous pouvez le déduire, la cinématique inverse est intrinsèquement liée à la notion de bones, de plus aucun format de fichier supportant les bones ne conditionne ou non l'utilisation de cinématique inverse : ceci dépend totalement de votre aptitude à programmer un moteur de cinématique inverse ou à en utiliser un déjà fait.

Du moment qu'un fichier 3d contient une hiérarchie de bones, il est possible d'utiliser de la cinématique inverse dessus.

Sachez cependant que la cinématique inverse est trés gourmande en calculs, pour un jeu il donc trés souvent préférable d'utiliser une animation en cinématique directe, où il n'y a que des interpolations de rotations qui interviennent.

Ensuite, l'animation 'sans bones', ou par 'keyframes' : ceci est plus généralement le résultat d'une animation par bones faites dans un logiciel d'animation, cette animation étant convertie en une suite de posture clés pour l'animation de votre personnage.

Au final, ça n'est ni plus ni moins qu'une série d'étapes de morphing : chaque keyframe correspond à une nouvelle forme, c'est à dire une nouvelle position pour chaque vertex de votre mesh 3d, et pour peu que ça soit bien fait, en 'morphant' votre objet d'une keyframe à l'autre, vous obtiendrez une animation de votre personnage.


Les bones :

Avantages :
  • on peut animer séparément chaque partie du corps
  • il est possible de parenter dynamiquement des objets sur n'importe quel bones du squelette (un hachoir à viande dans la main droite par exemple)
  • on peut effectuer des transitions d'une animation à l'autre
  • consomation mémoire faible (en fonction de la complexité de l'animation tout de même)


Inconvénients :
  • quoi qu'on en en dise, ça demande 'plus' de calculs que l'animation par keyframes, ou du moins des calculs plus complexes, pour déformer l'objet.
  • selon les capacités du moteur d'animation et/ou du format d'objet, les jointures sur le mesh lors de l'animation seront plus ou moins jolies (selon que les vertex peuvent être influencé par 1 ou plusieurs bones)



Animation par keyframes :
Avantages :
  • calculs simple pour jouer l'animation, car ce ne sont que des interpolations de points
  • les problèmes de jointures peuvent être réglé par l'infographiste en amont au cas par cas
  • comme on travaille avec une liste d'étapes de morphing, on peut s'autoriser plus de fantaisies puisque tout est précalculé (par exemple un drapeau qui ondule dans le vent)


Inconvénients :
  • ça peut consommer pas mal de ram puisque l'on garde en mémoire la position de tous les points de l'objet pour toutes les images clés
  • pas possible d'animer séparément les parties du corps (sauf s'il si on travaille avec des objets séparés bien sur)
  • du fait de la consommation mémoire, les séquences d'animation sont limitées en durée


bien entendu, ceci n'est pas une liste exhaustive wink


voilà, j'espère que ça vous aidera un peu

Alesk

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
553 invités en ligne
membre en ligne: -
RSS Feed