#1 

13-09-2007 17:53:54

gp2mv3
Membres
Date d'inscription:
Messages: 103
IP: 81.243.146.232
Courriel  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


#2 

13-09-2007 20:55:23

Kevin Leonhart
Membres
Date d'inscription:
Messages: 33
IP: 83.198.100.199
Courriel  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


#3 

14-09-2007 15:55:48

izguit
Administrateurs
Avatar de izguit
Date d'inscription:
Messages: 306
IP: 83.154.47.249
Courriel  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


#4 

14-09-2007 21:12:51

Aranoth
Membres
Avatar de Aranoth
Date d'inscription:
Messages: 242
IP: 86.201.1.53
Courriel  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


#5 

14-09-2007 23:13:20

firnafin
Membres
Avatar de firnafin
Date d'inscription:
Messages: 150
IP: 78.114.52.81
Courriel

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 :

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 .... ?


Hors ligne


#6 

15-09-2007 07:24:39

izguit
Administrateurs
Avatar de izguit
Date d'inscription:
Messages: 306
IP: 83.154.47.249
Courriel  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é
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
154 invités en ligne
membre en ligne: -
RSS Feed