Dans la classe IAnimatedMeshX, je retrouve setCurrentAnimation() qui doit, a mon avis, permettre de choisir un n° d'animation basé sur une skeletal animation...
Mais comment accède t-on à cela ?
Jusqu'à maintenant, pour animer je faisais un :
AnimatedMesh mesh = scene.GetMesh("tiny_4anim.x");
AnimatedMeshSceneNode node = scene.AddAnimatedMeshSceneNode(mesh);
Mais avec une animation skeletal, ça fonctionne pas. Comment doit-on procéder ?
Sur le forum d'Irrlicht, j'ai vu qu'ils utilisaient IAnimatedMeshX, mais pas moyen de trouver une quelconque trace de cela dans l'assemblage .NET -- PAS IMPLEMENTE ?
J'ai lu quelque part qu'il suffisait d'utiliser la fonction SetMD2Animation("nom_de_l_animation"). J'ai testé sur tiny_4anim.x qui a un AnimationSet Walk, donc j'ai testé node.SetMD2Animation("Walk"); et mon bonhomme ne marche toujours pas...
Dernière modification par benicourt (14-02-2007 16:37:54)
Hors ligne
Coucou,
Le SetMD2Animation n'est valable que pour les modèles MD2 je pense.
Pour le IAnimatedMeshX même remarque, je constate qu'il n'est pas sous IrrlichtCP.Net.
Peut-être est-ce une classe récente et donc DeusXL n'a pas encore eu le temps de l'implémenter, il faurdait le lui demander pour voir.
Par contre en C++ il existe bien, mais je ne l'ai pas encore testé.
Voilou @+
Hors ligne
Bon testé et emballé ça marche impeccable en C++ :
scene::IAnimatedMeshX* TinyX = (scene::IAnimatedMeshX *)smgr->getMesh("Media/tiny_4anim.x"); TinyX->setCurrentAnimation("Jog"); scene::IAnimatedMeshSceneNode* Tiny = smgr->addAnimatedMeshSceneNode(TinyX); Tiny->setRotation(core::vector3df(270,90,0)); Tiny->setMaterialFlag(video::EMF_LIGHTING,false); Tiny->setScale(core::vector3df(0.02f,0.02f,0.02f)); Tiny->setAnimationSpeed(5000);
Hors ligne
Bon, c'est rassurant de constater que ça fonctionne vien en C++
Par contre, j'avais vu la technique sur le forum officiel, mais concernant IAnimatedMeshX, mais pas moyen de trouver une quelconque trace de cela dans l'assemblage .NET
je me demande si DeusXL l'a implémentée ??
Hors ligne