#0 

19-10-2009 00:48:00

nabouill
Abonné
Date d'inscription: 17-09-2009
Messages: 242
Corrections: 1

RESOLUE

Salut.
Savez s’il est possible de mettre le même animateur qu'une cameraFPS sur un IAnimatedMeshSceneNode.
J'ai beau chercher dans la doc, je ne vois pas bien comment je pourrais mi prendre. J'ai essayé de récupérer l'animateur d'une cameraFPS et de la mettre sur mon node, mais le node ne bouge pas. (ni avance, ni tourne, ni rien sad  )

Quelqu’un aurais une idée ?

Dernière modification par nabouill (24-10-2009 12:00:44)


mes sites: www.manga-vf.fr et www.series-vf.fr

Hors ligne


#1 

19-10-2009 09:07:03

Hawk
Membre
Lieu: Wissous
Date d'inscription: 08-11-2008
Messages: 91
Site web

Je pense que c'est à toi de coder ton "animateur" en utilisant un "EventReceiver", et définir toi même le comportement de ton SceneNode en fonction des actions de l'utilisateur.

Une autre idée, mais je ne sais pas si ça marche, tu peux mettre ton IAnimatedMeshSceneNode en tant que fils d'une caméra FPS. Si ça marche comme je l'imagine, ton Mesh bougera dans l'environnement global (comme ta caméra FPS), mais l'angle de vue restera le même.

Hors ligne


#2 

19-10-2009 10:50:18

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

Salut, je pense que faire tourner ton node manuellement n'est pas un soucis.
Cependant, le faire avancer dans la direction souaitée n'est pas simple je te l'accorde.
Voilà la methode qui va bien pour ça :

Code:

//--- move ship acording to its rotation ---
void move(irr::scene::ISceneNode *node, //node to move
            irr::core::vector3df vel) //velocity vector
            // for example to move node 10 units forward use vector3df(0,0,10)
{
    irr::core::matrix4 m;
    m.setRotationDegrees(node->getRotation());
    m.transformVect(vel);
    node->setPosition(node->getPosition() + vel);
    node->updateAbsolutePosition();
}

"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#3 

20-10-2009 14:10:47

nabouill
Abonné
Date d'inscription: 17-09-2009
Messages: 242
Corrections: 1

Ok merci pour vos reponses,

hawk :

Je pense que c'est à toi de coder ton "animateur" en utilisant un "EventReceiver"


Oui, je croi que c'est ce que je vais faire du coup.

hawk :

tu peux mettre ton IAnimatedMeshSceneNode en tant que fils d'une caméra FPS


ça c'est ce que faisait avant, ça marche très bien (enfin presque) . Le problème, c'est que sur ma camera je mais aussi un autre anim que gere les collisions du terrain. Et quand je veut me baisser (position accroupie) je change d'anim pour gerer une collision plus basse. Un drole de bug : c'est que 2 fois sur 3, quand je change d'aminateur, ma position change legerement, et c'est génant. Je prefererait donc mettre un anim du genre cameraFPS sur mon node et y mettre une camera basic tant que fils.

TUpac :

Voilà la methode qui va bien pour ça :


Merci pour le tuyau. je vais étudier ça.

Dernière modification par nabouill (20-10-2009 14:11:38)


mes sites: www.manga-vf.fr et www.series-vf.fr

Hors ligne


#4 

22-10-2009 22:23:34

nabouill
Abonné
Date d'inscription: 17-09-2009
Messages: 242
Corrections: 1

Ok, mon truc avance un peut mais me vlà encore bloqué sur un petit truc.
Je créer un anim du genre :

Code c++ :

anim = sceneMgr->createCollisionResponseAnimator(meta, myCamera, vector3df(15,15,15), vector3df(0,-5,0),vector3df(0,60,0));
myCamera->addAnimator(anim);



Le truc est que j'aimerais changer l'ellipsoidTranslation de cette anim (le dernier parametre) en cours de route.
Mais j'ai beau chercher, je ne vois vraiment pas comment faire. Quelqu'un aurait une petite idée ? SVP.

Dernière modification par nabouill (22-10-2009 22:23:59)


mes sites: www.manga-vf.fr et www.series-vf.fr

Hors ligne


#5 

24-10-2009 00:12:42

nabouill
Abonné
Date d'inscription: 17-09-2009
Messages: 242
Corrections: 1

UP !

Dernière modification par nabouill (24-10-2009 00:12:57)


mes sites: www.manga-vf.fr et www.series-vf.fr

Hors ligne


#6 

24-10-2009 00:33:34

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 907
Corrections: 2
Site web

Code:

anim->setEllipsoidTranslation (const core::vector3df(0,0,0));

bizarre quand même le site off propose une doc .... faut y jeter un coup d'œil des fois
http://irrlicht.sourceforge.net/docu/cl … ponse.html

Hors ligne


#7 

24-10-2009 12:00:03

nabouill
Abonné
Date d'inscription: 17-09-2009
Messages: 242
Corrections: 1

Merci bien.

En effet, en faite c'est que je créait nom animateur comme ça :

Code c++ :

ISceneNodeAnimator* anim


Du coup on n'a pas acces directement a cette methode.
Mais effectivement (je n'avait pas vue ça) en créant mon anim avec :

Code c++ :

ISceneNodeAnimatorCollisionResponse* anim


ça marche parfaitement.
Merci pour ta réponse, et désoler si desfois je suis un peu un boulet.
++


mes sites: www.manga-vf.fr et www.series-vf.fr

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
881 membres
1426 sujets
11116 messages
Dernier membre inscrit: Bidule
15 invités en ligne
Aucun membre connecté
RSS Feed