#0 

13-09-2007 19:53:54

gp2mv3
Abonné
Date d'inscription: 27-06-2007
Messages: 103
Site web

Salut,
Je fais actuellement un mmorpg mais je suis bloqué à un probleme.
Je voudrais que le personnage regarde dans la direction de la camera.
Je m'explique, j'ai fais un système de camera FPS, donc le joueur joue normalement.
Je voudrais que si le joueur regarde par exemple en 34,0,45, les autres joueurs voient qu'il regarde dans cette direction en faisant tourner le modele du personnage.
Qui peut m'aider?

Merci d'avance.

Gp2mv3


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


#1 

13-09-2007 22:55:23

Kevin Leonhart
Membre
Date d'inscription: 07-01-2007
Messages: 33
Site web

Salut.

Tu peux récupérer les coordonnées de l'endroit où regarde la caméra par cette fonction : irr::scene::ICameraSceneNode::getTarget ()

Après reste à déterminer l'orientation de ton personnage en fonction de ce vecteur.
Après un rapide survol de la doc je n'ai pas trouvé de trace indiquant que les mesh stocke par défaut un vecteur indiquant quel est leurs orientation.
Donc il est possible que tu doive le faire toi même et que tu fasse les rotations nécessaires manuellement.

Dis moi si tu trouve des infos sur l'orientation des meshs, ça m'intéresse. smile

Hors ligne


#2 

14-09-2007 17:55:48

izguit
Administrateur
Lieu: 127.0.0.1
Date d'inscription: 14-09-2006
Messages: 306
Site web

un vector3d qui va de la position du node à celle du target, et un node.setRotation ?
Par contre je pense que tu va devoir taper dans le triangleSelector pour avoir la position du target... La fonction donnée par Kevin Leonhart renvoie un vecteur d'orientation de la camera et pas une position


Athlon 64 3000+ // 1Go RAM // Geforce 6600GT 128Mo
Turion 64 X2 // 1Go RAM // ATI X1250

Hors ligne


#3 

14-09-2007 23:12:51

Aranoth
Abonné
Lieu: Toulouse
Date d'inscription: 25-09-2006
Messages: 242
Site web

La fonction donnée par Kevin Leonhart renvoie un vecteur d'orientation de la camera et pas une position


Heu... T'es sur de toi ? ICameraSceneNode::getTarget() renvoie bien la position du point fixé par la cam...


Après le reste, c'est de la simple trigo

Hors ligne


#4 

15-09-2007 01:13:20

firnafin
Abonné
Date d'inscription: 31-03-2007
Messages: 150

GetTarget donne un vecteur non une position il me semble,
Apres il faut juste orienter la tete (et/ou corps) du mesh du joueur avec node.setrotation et getHorizontalAngle () et le tour est jouée,meme pas besoin de sorite l'arsenal de cos sin arccos arcsin arctan ...... .
En gros le pseudo code :

Code:

tete.setRotation(getHorizontalAngle (Camera.getTarget()));

( complexe le code pas vrai ? )
Apres il faut voir comment ta tete est, c'est a dire si il s'agit d'une node ou d'un membre d'un squelette ou prise dans le mesh du personnage ....

PS a izguit - je ne comprend pas ce que vient faire la un triangle selector  , suis-je a cote de la plaque .... ?

Dernière modification par firnafin (15-09-2007 01:16:33)

Hors ligne


#5 

15-09-2007 09:24:39

izguit
Administrateur
Lieu: 127.0.0.1
Date d'inscription: 14-09-2006
Messages: 306
Site web

@ Aranoth : Peut-être ouais, ça m'étonne un peu quand même hmm

@ firnafin : le premier truc auquel j'ai pensé c'est de récupérer le premier triangle en collision avec le vecteur de lookAt de la camera (en fonction de sa position), pour connaitre la position où elle regarde.

Mais en fait soit gp2mv3 veut que tout le monde regarde dans la direction (34,0,45) (vecteur) soit regarde le point de coords (34,0,45) et c'est là qu'on a pas compris pareil je crois :p


Athlon 64 3000+ // 1Go RAM // Geforce 6600GT 128Mo
Turion 64 X2 // 1Go RAM // ATI X1250

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
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
172 invités en ligne
Aucun membre connecté
RSS Feed