Wysokość celu kamery.
Moderator: Inkwizytor
-
- Posty: 10
- Rejestracja: 11 lutego 2009, 19:58
- ID Steam:
- ID gracza: 0
Wysokość celu kamery.
Witam.
Jak ustawić żeby cel kamery (wyzwalacz) był na wys. np: 150 m.
Jak ustawić żeby cel kamery (wyzwalacz) był na wys. np: 150 m.
Re: Wysokość celu kamery.
_wspolrzednax = position twoj_cel select 0;
_wspolrzednay = position twoj_cel select 1;
_wporzednaz = 150;
pozycja_celu = [_wspolrzednax,_wspolrzednay,_wspolrzednaz];
_camera CamSetTarget _pozycja_celu;
gdzie:
twoj_cel to nazwa wyzwalacza w edytorze
_camera to nazwa kamery, ktora tworzona jets na poczatku pliku z filmikiem.
_wspolrzednay = position twoj_cel select 1;
_wporzednaz = 150;
pozycja_celu = [_wspolrzednax,_wspolrzednay,_wspolrzednaz];
_camera CamSetTarget _pozycja_celu;
gdzie:
twoj_cel to nazwa wyzwalacza w edytorze
_camera to nazwa kamery, ktora tworzona jets na poczatku pliku z filmikiem.

-
- Posty: 10
- Rejestracja: 11 lutego 2009, 19:58
- ID Steam:
- ID gracza: 0
Re: Wysokość celu kamery.
A może ktoś napisać jakiś przykład bo nie chce mi działać.
Może napiszę dokładniej.
Koncepcja jest następująca:
Kamera ma cel na wysokości 150 m, ale też kamera musi być na wysokości 150 m.
Może napiszę dokładniej.
Koncepcja jest następująca:
Kamera ma cel na wysokości 150 m, ale też kamera musi być na wysokości 150 m.
Re: Wysokość celu kamery.
Plik jakis intro.sqs:
_Camera="CAMERA" CamCreate [0,0,0]
_Camera CameraEffect ["INTERNAL","BACK"]
_wspolrzednax = position cel select 0;
_wspolrzednay = position cel select 1;
_wporzednaz = 150;
pozycja_celu = [_wspolrzednax,_wspolrzednay,_wspolrzednaz];
_Camera CamSetTarget _pozycja_celu;
_ox=GetPos kamera Select 0
_oy=GetPos kamera Select 1
_Camera CamSetPos [_ox,_oy,3]
_Camera CamCommit 0
_Camera CameraEffect ["TERMINATE","BACK"]
CamDestroy _Camera
Exit
Legenda:
cel - nazwa wyzwalacza zawierajacego cel w edytorze
kamera - nazwa wyzwalacza-kamery

-
- Posty: 10
- Rejestracja: 11 lutego 2009, 19:58
- ID Steam:
- ID gracza: 0
Re: Wysokość celu kamery.
Nie wiem czemu, ale skrypt mi nie działa.Trance pisze:Plik jakis intro.sqs:
_Camera="CAMERA" CamCreate [0,0,0]
_Camera CameraEffect ["INTERNAL","BACK"]
_wspolrzednax = position cel select 0;
_wspolrzednay = position cel select 1;
_wporzednaz = 150;
pozycja_celu = [_wspolrzednax,_wspolrzednay,_wspolrzednaz];
_Camera CamSetTarget _pozycja_celu;
_ox=GetPos kamera Select 0
_oy=GetPos kamera Select 1
_Camera CamSetPos [_ox,_oy,3]
_Camera CamCommit 0
_Camera CameraEffect ["TERMINATE","BACK"]
CamDestroy _Camera
Exit
Legenda:
cel - nazwa wyzwalacza zawierajacego cel w edytorze
kamera - nazwa wyzwalacza-kamery
Domyślam się że tam gdzie pogrubiłem ma być "wspolrzednaz".
Re: Wysokość celu kamery.
Kod: Zaznacz cały
_Camera CamCommit 0
_Camera CameraEffect ["TERMINATE","BACK"]
CamDestroy _Camera
Re: Wysokość celu kamery.
No tak, klepałem z klawiatury i nie bardzo sprawdzałem, chodziło mi o sam zarys. Podobnie z tym czekaniem 


-
- Posty: 10
- Rejestracja: 11 lutego 2009, 19:58
- ID Steam:
- ID gracza: 0
Re: Wysokość celu kamery.
A czy jest jakaś inna metoda żeby ustawić wysokość celu (wyzwalacz).
Ta podana przez trance nie działa.
Ta podana przez trance nie działa.

Re: Wysokość celu kamery.
Oczywiście, że jest.
Najpierw ustawiasz cel dla kamery. Zakładam, że cel jest obiektem, który sobie leci bo zaapewne chcesz pokazać jakieś przelatujące źródło destrukcji:
cam camSetTarget cel;
Przesuwasz kamere relatywnie (w stosunku do tego na co patrzy kamera):
cam CamSetRelPos [zmiana odległości dla X, zmiana odległości dla Y, zmiana wysokości dla Z];
u Ciebie w WP wystarczy: this exec 'skrypcik.sqs';
'skrypcik.sqs'
Tylko jedna uwaga. Jeśli chcesz kamerkę sterować po wielu wyzwalaczach, lub wielu WP, to obiekt 'cam' musi być zmienną globalną (nie może być '_cam'). W wyzwalaczu (WP) inicjującym scenkę powołaj do życia kamerkę, w wyzwalacach (WP) steruj sobie nią 'CamSetRelPos' a na koniec usuń obiekt kamery. Szczególy już znasz, bo koledzy podali.
Zaproponowane Ci wcześniej rozwiązania polegające na ustawieniu celu dla kamery:
cam CamSetTarget _pozycja_celu;
Kieruje obiektwy statycznie w konkretne miejsce. To jest dobre jeśli kadrujesz otocznie. Natomiast jeśli chcesz aby obiektyw PODĄŻĄŁ za obiektem na który patrzy, to cel ustawiasz jako obiekt a nie jego współrzędne:
cam CamSetTarget obiekt_w_który_celuje_kamera;
np:
cam CamSetTarget player;
CamSetTarget ma dwa alternatywne sposoby wkazywania celu: WSPÓŁRZĘDNE lub OBIEKT.
Najpierw ustawiasz cel dla kamery. Zakładam, że cel jest obiektem, który sobie leci bo zaapewne chcesz pokazać jakieś przelatujące źródło destrukcji:
cam camSetTarget cel;
Przesuwasz kamere relatywnie (w stosunku do tego na co patrzy kamera):
cam CamSetRelPos [zmiana odległości dla X, zmiana odległości dla Y, zmiana wysokości dla Z];
u Ciebie w WP wystarczy: this exec 'skrypcik.sqs';
'skrypcik.sqs'
Kod: Zaznacz cały
_cel = _this select 0;
cam camSetTarget _cel;
cam CamSetRelPos [10, -10, -1];
cam CamCommit 0;
@CamCommitted cam;
exit;
Tylko jedna uwaga. Jeśli chcesz kamerkę sterować po wielu wyzwalaczach, lub wielu WP, to obiekt 'cam' musi być zmienną globalną (nie może być '_cam'). W wyzwalaczu (WP) inicjującym scenkę powołaj do życia kamerkę, w wyzwalacach (WP) steruj sobie nią 'CamSetRelPos' a na koniec usuń obiekt kamery. Szczególy już znasz, bo koledzy podali.
Zaproponowane Ci wcześniej rozwiązania polegające na ustawieniu celu dla kamery:
cam CamSetTarget _pozycja_celu;
Kieruje obiektwy statycznie w konkretne miejsce. To jest dobre jeśli kadrujesz otocznie. Natomiast jeśli chcesz aby obiektyw PODĄŻĄŁ za obiektem na który patrzy, to cel ustawiasz jako obiekt a nie jego współrzędne:
cam CamSetTarget obiekt_w_który_celuje_kamera;
np:
cam CamSetTarget player;
CamSetTarget ma dwa alternatywne sposoby wkazywania celu: WSPÓŁRZĘDNE lub OBIEKT.
"True glory consists in doing what deserves to be written, in writing what deserves to be read." - Pliny The Elder
-
- Posty: 10
- Rejestracja: 11 lutego 2009, 19:58
- ID Steam:
- ID gracza: 0
Re: Wysokość celu kamery.
Celem jest wyzywalacz (nieruchomy)
Poprostu chcę ustawić żeby ten cel (wyzwalacz) (na który będzie skierowana kamera) był na wysokości np 150 m
Poprostu chcę ustawić żeby ten cel (wyzwalacz) (na który będzie skierowana kamera) był na wysokości np 150 m
Re: Wysokość celu kamery.
W Arma na obiekty działa grawitacja, więc obiekt (obdarzony masą) zawsze spadnie na ziemie. Nie chce mi się teraz grzebać w configach, czy empirycznie sprawdzić czy obiekt typu Tigger spadnie na ziemie (ma masę). Najprościej (jak Ci się chce) to przetestować:
'wyzwalacz' to nazwa Twojego... wyzwalacza.
Jakby się okazało, że kamera zaczyna patrzeć coraz niżej, to:
edit:
argument dla 'getpos' podaje się oczywiście za funkcją, czyli:
(getpos wyzwalacz)
zamiast:
(wyzwalacz getpos) < - mój błąd
Tak, to jest jak się pisze z palca... Popraw tylko to sobie i powinno być (na pierwsze testy) wystarczające.
'wyzwalacz' to nazwa Twojego... wyzwalacza.
Kod: Zaznacz cały
wyzwalacz setPos [((wyzwalacz getpos) select 0), ((wyzwalacz getpos) select 1), 150];
cam = "CAMERA" CamCreate position wyzwalacz;
cam CamSetTarget wyzwalacz;
cam CamSetRelPos [0, 0, 0];
cam CamCommit 0;
@CamCommitted cam;
~10
camDestroy cam;
exit;
Kod: Zaznacz cały
_pos = [(wyzwalacz getpos) select 0), ((wyzwalacz getpos) select 1), 150];
cam = "CAMERA" CamCreate _pos;
cam CamSetTarget _pos;
cam CamCommit 0;
@CamCommitted cam;
~10
camDestroy cam;
exit;
argument dla 'getpos' podaje się oczywiście za funkcją, czyli:
(getpos wyzwalacz)
zamiast:
(wyzwalacz getpos) < - mój błąd
Tak, to jest jak się pisze z palca... Popraw tylko to sobie i powinno być (na pierwsze testy) wystarczające.
"True glory consists in doing what deserves to be written, in writing what deserves to be read." - Pliny The Elder