Pages: 1
Bonjour,
Je suis entrain d'animer manuellement un personnage constitué d'un squelette (bones,skeleton) pour cela j'utilise :
cependant et à ma grande surprise quand je fait :
PersoJambeOSDroite->addChild(Narmurejambe);
Le "addChild n'est pas prit en compte et mon armure n'est pas associé à la jambe droite de mon perso, alors que pourtant ce devrait être l'inverse.
Quand j’enlève setJointMode(irr::scene::EJUOR_CONTROL);
le AddChild est prit en compte , l'armure est associé au perso mais l'animation de mon squelette ne fonctionne plus.
Si quelqu'un comprend où est la cause de ce phénomène, merci de bien vouloir me répondre svp
Merci.
Hors ligne
Bon après de multiples test, je me suis rendu compte que les bones de mon perso restent immobiles alors que je leur applique des rotations sur le "joints".
Visiblement il n'y a rien qui permet de récupérer la position d'un "bone", la position est toujours (0,0,0) que je me trouve n'importe où sur la map.
Par conséquent j'ai beau créer un child ou mettre un parent de toute façon il considère que mon perso est toujours à la même position.
Pourtant quand je fais des setPositions() ou setRotation() cela fonctionne mais quand je fait les getPos et getRot rien à faire c'est zéros.
Visiblement çà ne fonctionne pas comme pour les mesh, il y a surement quelque chose qui m'échappe mais là j'ai épuisé mon stock d 'inventivité pour bidouillé une solution.
Si quelqu'un connait l'origine de ce problème, merci de me contacter
Hors ligne
Salut Jonath,
As-tu creusé du côté du forum officiel car j’avoue n'avoir jamais trifouillé le système d'animation par Bones sous Irrlicht...Et je ne sais pas si beaucoup d'entre nous ici y ont touché d'ailleurs...
Dans tout les cas, postes nous tes résultats afin qu'on sache ce qu'il en est car cela pourrait être utile à d'autre !
Bon courage
Hors ligne
Salut !
Hé bien j'ai passé mon après midi à faire des recherches et surtout analyser ce qu'il se passe.
Enfait on ne peut pas faire un parent entre un joint et un mesh très simplement car irrlicht dessine la position des bones au repos et quand on anime il recrée une deuxième structure de bones qui elle suit les mouvement. On se retrouve donc avec 2 possibilité (visuelle). Il faudrait que j'arrive à récupérer la position réelle de mes joints par rapport à la scéne.
Il y a très peux de gens qui font de l'animation manuelle. Et moi qui étais comptant d'avoir fais marcher ma Lara Croft avec que des fonctions mathématiques.
Pas d'inquiétude je posterais les réponses pour tout les problèmes que j'aurais résolu .
Hors ligne
tu pourrais crée un scene node qui inclue 2 scene node
l'un qui est afficher, l'autre qui calcule les animations, puis dans OnEvent tu recopie les positions des nodes connus du node 1 au node 2, les joins parent node 2 suivront
node1 = addSceneNode....
node1->grab();
node1->remove(); // ou smgr->removeSceneNode..
de sorte que ce soit le scene ton interface qui les gèrent et non le smgr
je te l'accord c'est bourin, mais si le squelette est géré en interne a par modifier les sources tu n'a pas beaucoup de choix
même si ça me semble bisard qu'il n'y est pas acces
Hors ligne
Le plus simple reste d'animer par frame car vue le nombre de calculs mon pc ne suit plus de toute façon, donc autant abandonner l'idée, après je pense que le plus simple est de gérer çà par une lib physique. Merci pour votre aide
Hors ligne
Pages: 1
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 31 invités en ligne Aucun membre connecté RSS Feed |