Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Irrlicht] Widok pierwszoosobowy

Ostatnio zmodyfikowano 2013-08-12 19:29
Autor Wiadomość
kubek3898
Temat założony przez niniejszego użytkownika
[Irrlicht] Widok pierwszoosobowy
» 2013-08-11 09:52:35
Mam wczytaną mapę i model na scenie. Jak zrobić, by kamera nie była względem sceny, a względem modelu? Chodzi mi o widok z "oczu", albo chociaż widok zza ramienia.

Próbowałem addCameraSceneNodeFps(), ale nic nie daje, chociaż możliwe jest, a racczej pewne że coś knocę.

Pozdrawiam
P-89961
MrPoxipol
» 2013-08-11 11:14:45
Ustawiaj kamerę tam gdzie jest model, a następnie przesuń ją o tyle ile chcesz, aby była od modelu.
P-89963
kampar
» 2013-08-11 11:30:11
Użyj addCameraSceneNode(), dzięki temu będziesz mógł wszystko ręcznie ustawiać. Pamiętaj tylko, że domyślnie kamera ma ustawioną metodę bindTargetAndRotation(bool) na false i przez to nie możesz zmienić rotacji kamery, a jedynie cel na który jest ona zwrócona. Przy kamerze pierwszoosobowej lepiej jest ustawić camera->bindTargetAndRotation(true) i dzięki temu możesz dowolnie obracać kamerą.
P-89966
kubek3898
Temat założony przez niniejszego użytkownika
» 2013-08-11 15:43:26
No ale wtedy również, zamiast obracać modelem, będę obracać w około mapy, a ja chcę zamontować kamerę w modelu. Tak jak jest to w różnych grach typu cRPG (widok z oczu).
P-90006
kampar
» 2013-08-11 16:31:25
No to ustaw kamerę tuż przed oczami modelu i gdy będziesz obracał model to obracaj również kamerę.
P-90013
megatron
» 2013-08-11 23:25:32
W grach typu rpg używa się kamery maya. Irrlicht także oferuje obsługę tej kamery.
Jest w tym mały kruszek gdyż kamera maya jest statyczną kamerą, ale można ją łatwo "przyczepić"do postaci. Sam wykorzystuję tą kamerę i polecam do gier właśnie typu rpg.
Jeśli coś źle zrozumiałem to serdecznie przepraszam.

#@#EDIT#@#
Kamere maya tworzysz podobnie do fps:
ICameraSceneNode * kam = smgr->addCameraSceneNodeMaya( 0, - 1000, 0, 0, 2000, 11 );
to co podałem to kamera z moimi ustawieniami. to tylko dla przykładu.
a później tylko ustawiasz kamerę:
C/C++
void Game::CamSetProperties( int height_kam )
{
    kam_pos = kam->getPosition();
    kam_tar = kam->getTarget();
   
    kam_tar.X = charac.pos_pos.X;
    kam_tar.Z = charac.pos_pos.Z;
    kam_tar.Y = charac.pos_pos.Y + height_kam;
    kam->setTarget( kam_tar );
   
}
height_kam
 to wysokość na jakiej ma znajdować się kamera ;)
P-90057
MrPoxipol
» 2013-08-12 11:52:31
@up
Nie lepiej tak? Dużo krócej ;p
C/C++
void Game::CamSetProperties( int height_kam )
{
    kam_pos = kam->getPosition();
    kam_tar = kam->getTarget();
   
    kam_tar = charac.pos_pos;
    kam_tar.Y += height_cam;
    kam->setTarget( kam_tar );
   
}

;>
P-90078
megatron
» 2013-08-12 11:59:07
nie do końca ponieważ musisz umieścić to w pętli ponieważ postać się porusza a
kam_tar.Y += height_cam;
 spowoduje że kamera będzie leciała w górę ;)

#@#EDIT#@#

sry, jednak tak też jest git :D
pomyliłem pozycję z celem ;)

#@#EDIT_2#@#

Można by jeszcze pozbyć się
kam_pos = kam->getPosition();
 bo do niczego nie jest wykorzystywane :D

#@#EDIT_3#@#

@up
Dużo krócej ;p
-1 linijka ;)
P-90079
« 1 » 2
  Strona 1 z 2 Następna strona