A ja wiem

_showcinemaborder false
titlecut ["", "black in", 5]
camera = "camera" camCreate [11872.27,108026.29,-1604.00]
_camera cameraEffect ["internal", "back"]
1 SetOvercast 1
1 SetFog 0.98
0 SetRain 0
#loop
;=== 23:04:01
_camera camPrepareTarget [11872.27,108026.29,-1604.00]
_camera camPreparePos [11873.58,8039.46,0.82]
_camera camPrepareFOV 0.700
_camera camCommitPrepared 0
@camCommitted _camera
~5
;=== 23:04:25
_camera camPrepareTarget [33515.60,105674.16,-1570.67]
_camera camPreparePos [11873.12,8058.79,1.43]
_camera camPrepareFOV 0.700
_camera camCommitPrepared 60
@camCommitted _camera
~1
;=== 23:04:41
_camera camPrepareTarget [33515.60,105674.16,-1570.67]
_camera camPreparePos [11881.33,8095.93,1.49]
_camera camPrepareFOV 0.700
_camera camCommitPrepared 60
@camCommitted _camera
~5
goto "loop"
;exit
_camera cameraEffect ["terminate","back"]
camDestroy _camera
exitTo jest przykładowy skrypt filmiku (czyt. intro/cutscenka/outro) jakie można robić w ArmA i tym samym w TKOH. Dzisiaj sprawdzałem, działa na 100%. Są dwie metody tworzenia filmików, no właściwie trzy ale jednej z nich nie warto opisywać.
Sposób 1:
Tworząc misję w edytorze, wpisz w wyzwalaczu, albo w init jakiejś jednostce takie polecenie
[] exec "camera.sqs" to odpali tak zwaną kamerę i przy każdym ujęciu po kliknieciu LPM do schowka zapisuje się coś na kształt tego co podałem powyżej. Jak działa camera.sqs i jak jej używać, znajdziesz
TUTAJ.
Sposób 2:
;Intro.sqs
titleCut ["","BLACK IN",10]
_cam = "CAMERA" CamCreate [0,0,0]
_cam CameraEffect ["INTERNAL","BACK"]
txt = [] execVM "txt.sqf"
_cam CamSetTarget heli1
_ox = GetPos f1 Select 0
_oy = GetPos f1 Select 1
_cam CamSetPos [_ox,_oy,10]
_cam CamCommit 0
_cam CamSetTarget heli1
_ox = GetPos f2 Select 0
_oy = GetPos f2 Select 1
_cam CamSetPos [_ox,_oy,5]
_cam CamSetFOV 0.5
_cam CamCommit 15
~15
_cam CamSetTarget heli1
_ox = GetPos f3 Select 0
_oy = GetPos f3 Select 1
_cam CamSetPos [_ox,_oy,1]
_cam CamSetFOV 0.1
_cam CamCommit 15
~15
titleCut ["","BLACK OUT",4]
~3
heli1 setPos [(getPos f4 select 0), (getPos f4 select 1), 150]
titleCut ["","BLACK IN",4]
_cam CamSetTarget heli1
_ox = GetPos f5 Select 0
_oy = GetPos f5 Select 1
_cam CamSetPos [_ox,_oy,200]
_cam camSetFOV 0.01
_cam CamCommit 0
~10
_cam CamSetTarget heli1
_ox = GetPos f5 Select 0
_oy = GetPos f5 Select 1
_cam CamSetPos [_ox,_oy,200]
_cam camSetFOV 0.05
_cam CamCommit 10
~10
titleCut ["","BLACK OUT",10]
~5
_cam cameraeffect ["TERMINATE","BACK"]
CamDestroy _cam
koniec=true
Exit Wygląda podobnie do sposobu 1, ale działa nieco inaczej.
Tutaj zamiast tworzenia filmików za pomocą camera.sqs, robimy wszystko ręcznie. Czyli z góry planujemy w jakim miejscu ma być ujęcie i w co ma być skierowana kamera.
sukcesywnie:
_cam CamSetTarget heli1 // cel w który skierowana jest kamera
_ox = GetPos f5 Select 0 // kamera w pozycji f5 (w grze, na mapie ustawiamy wyzwalacz o nazwie f5 w wybranym miejscu)
_
oy = GetPos f5 Select 1 // kamera w pozycji f5 (to samo co wyżej, rozumiecie oś X, Y)
_cam CamSetPos [_ox,_oy,200] // tutaj dochodzi oś Z czyli wysokość w tym przypadku 200m nad ziemią, albo nad poziomem morza, nie pamiętam dokładnie
_cam camSetFOV 0.05 // zoom, możliwa wartość od 0 do 1 gdzie 0 = maksymalne przybliżenie, 1 = bez przybliżenia, mozliwe miejsca po przecinku np 0.02
_cam CamCommit 10 // czas w którym kamera WYKONA ujęcie, jeśli wpiszemy "0" ujęcie zostanie wykonane natychmiast
~10 // czas w którym kamera WYKONUJĘ ujęcie, czyli przy _cam CamCommit 10 i czas usawiony na ~10 kamera przemieszcza się z poprzedniej pozycji w ciągu 10 sek. i trwa 10 sek. Przy np _cam CamCommit 0 i czas na ~10 kamera natychmiast przyjmuję pozycję w tym przypadu f5 i trwa 10 sek.
dodatkowo, w niniejszym skrypcie znajduje się taka komenda:
heli1 setPos [(getPos f4 select 0), (getPos f4 select 1), 150]To powoduje natychmiastowe przemieszczenie się heli1 na pozycję f4 na wysokość 150m.
Komenda ta, w tym przypadku wykonywana jest "jak nikt nie patrzy" czyli jak obraz się ściemni przechodząc w następne ujęcie:
titleCut ["","BLACK OUT",4] // obraz w czasie 4 sek. się ściemnia
~3 // po 3 sek.
heli1 setPos [(getPos f4 select 0), (getPos f4 select 1), 150] // heli1 przechodzi w pozycję f4
titleCut ["","BLACK IN",4] // i obraz, również w czasie 4 sek się rozjaśnia, ukazując nam to co jest już w nowym ujęciu
Filmik utworzony tymi sposobami, zapisujemy jako "nazwa_pliku.sqs" w folderze z misją i odpalamy komendą
[] exec "nazwa_pliku.sqs" wpisaną w wyzwalacz, albo w init jakieś jednostki

Jestem po paru kielichach i mam nadzieje, że nie namąciłem zabardzo