Pages: 1
Bonjour,
J'ai récemment voulu intégrer le mouvement d'une mesh qui a comme parent la caméra: j'aimerai avoir une vue à la première personne et lorsqu'un événement survient (bouton/click) je voudrais que la mesh en question bouge. Et ne voulant pas créer une animation squelettique, j'ai décidé d'utiliser cette fonction. Mais il me faudrait un peu plus d'informations sur cette dernière.
1. Est-il possible de faire en sorte que la mesh bouge lors d'un événement tel qu'un click/bouton car je ne vois que le "Start time" qui ne peut correspond que à une valeur numérique ?
2. Pourriez vous me donner un petit exemple d'une création de tableau avec des points ? Si je veux que le mouvement soit accordé au mouvement de ma caméra dois-je utiliser des coordonnées grâce à : posCam = camera->getPosition() (soit des coordonnées relatives) ou est-ce que le fait que la mesh qui doit être animée est un enfant de la caméra suffit ? (pour mieux comprendre: ma mesh est déjà enfant de la caméra et donc elle reste toujours avec la caméra mais j'aimerai en plus du fait qu'elle suive la caméra qu'elle bouge lorsqu'un événement survient)
3. (Si le point de départ n'est pas le même point que le point d'arrivée) Est-ce que lorsque cette fonction est executée, à la fin du mouvement, la mesh restera à la dernière position indiquée sur le tableau ou reviendra-t-elle à la première ? (en prenant en compte que loop = false et pingpong =false)
J'aurai pu répondre à ces questions par moi-même en testant mais je n'arrive pas à créer un tableaux de points c'est pour cela que je vous demande un petit exemple.
En espérant que vous ayez compris mes questions,
je vous prie de m'aider, merci.
Hors ligne
1: oui tu crée ton follow animator a ce moment la avec start time = irr::IrrlichtDevice::getTimer()::getTime()
2:
oui les coordonnée relatif sont nécéssaire dans le cas ou la camera est parent
dans le cas d'un rpg like la camera doit être parent du node pas l'inverse, dans le cas d'un fps le joueur est virtuel, il n'éxiste pas en temps que node ou entiter
dans le cas ou la camera est parent du node qu'elle est l'intérais de surcharger d'un animator alors qu'importe le cas la camera suivra toujours ton node ?
3: le node resteras a la derniere poistion de l'array
4: la doc et les samples sont la pour ça
ps: c'est un mesh, et tu confond mesh et node
sur ce ...
Hors ligne
1. D'accord merci !
2 Et bien en réalité, pour l'instant dans mon projet j'essaie juste de voir si j'ai la possibilité de mettre en place tout ce que j'aimerai que mon jeu comporte sans que ça en soit trop difficile. Dans ce projet: C'est un FPS/Av enture où il y a la possibilité de ramasser des objets et de les observer sous plusieurs angles et les utiliser, et donc pour l'instant ces objets se résument à des cubes que l'on tient dans la main tout le long, et j'aimerai que lorsqu'on appuie sur un bouton notre personnage fasse tourner l'objet sur lui-même pour mieux l’observer (réussi) et que en appuyant sur un autre bouton il rapproche l'objet de lui (soit la caméra) pour voir l'objet plus en détail (sur le point d'être réussi grâce à ton aide).
3. D'accord !
4. Oui mais je suis resté un peu sceptique devant la doc...
Merci pour tout en tout cas !
Hors ligne
REbonjour,
Après beaucoup de tentatives j'en ai jamais réussi à obtenir le résultat voulu avec ce createFollowSplineAnimator et j'ai donc abandonné cette fonctionnalité de mon jeu et ai plus travailler sur des choses plus basiques en espérant que avec l'expérience j'arriverai à trouver comment utiliser ce fameux createFollowSplineAnimator. Mais maintenant j'en suis au point où dans mon projet il me manquerait plus que cela pour avoir toutes les fonctionnalités basiques, et c'est pour cela que je reviens vous consulter en vous montrant ce que j'ai écrit et en espérant que vous arriverez à me corriger :
Premièrement je relève la position de la caméra sur chaque axe :
Puis je construit mon path que doit suivre mon objet pour qu'il se rapproche de la caméra:
Et finalement je créé l'animator lors d'un click droit:
Me manque-t-il quelque chose ?!!
j'espère que vous pourrez m'aider.
Hors ligne
juste une parenthèse à la fin de createFollowSplineAnimator entre false et ; ...
Hors ligne
:Troll:
Non plus sérieusement ?
J'ai écrit le message précédent depuis mon téléphone donc pour les erreurs du genre...
Hors ligne
ben a par ITimer::getTime() qui ne va pas, c'est device->getTimer()->getTime()
et comme tout les debutant tu utilise 3 float pour stocker un vector3df sinon c'est bon
sinon la tu poste juste un code, sans erreur, en demandant ce qui va pas, c'est un peut light ...
Hors ligne
D'accord je comprend.
Comment ça c'est light ? Dis-moi ce qu'il faut que je dise de plus, si y en a besoin.
Parce que là je n'ai aucun problème à compiler le code pas d'erreurs, ni rien, mais en jeu rien ne se passe lorsque je click droite.
Hors ligne
simplement par ce que tout les classes (casiment) irrlicht que tu inclue dans ton projet on leur fonction en "pure virtual" et que leur appelle n'ont aucune influence car elle ne sont pas "déclaré"
donc ton apelle ITimer::getTime() ne resulte rien
virtual u32 getTime() const = 0;
et certe déclaré mais n'est pas "executer"
car la fonction vaut 0, d'ou pourquoi on parle de pure virtual, ce sont les class "fille" qui procure l'implementation
dans irrlicht cela ce crée en interne via createDevice qui instanci la class mère IrrlichtDevice qui elle même va instancier les autres principal class
irrlicht instancie CTimer qui est deriver de ITimer et te le retourne
d'ou pourquoi je te disais que ITimer::getTime() n'est pas correct et qu'il faut passer par device->getTimer()->getTime()
j'èspere être asser explicite
edit: faudrais aussi donner l'animator a l'obj sinon sa ne risque pas de faire grand chose
ISceneNodeAnimator * a = smgr->createFolowSplineAnimator(...);
node->addAnimator(a);
a->drop();
et pensser a le suprimmer quand tant a plus beusoin ... (node->removeAnimators ())
normalement
Hors ligne
Pages: 1