Camera Tutorial: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "\{\{ *codecomment *\| *\/\/ *([^ ]+) *\}\} " to "{{cc|$1}}") |
Lou Montana (talk | contribs) m (revert + fix) |
||
Line 23: | Line 23: | ||
==== Object target ==== | ==== Object target ==== | ||
_camera '''[[camPrepareTarget]]''' [[player]]; {{cc| a camera will automatically target the human target's face}} | _camera '''[[camPrepareTarget]]''' [[player]]; {{cc|a camera will automatically target the human target's face}} | ||
==== Position target ==== | ==== Position target ==== | ||
_camera '''[[camPrepareTarget]]''' [[getPosATL]] [[player]]; | _camera '''[[camPrepareTarget]]''' [[getPosATL]] [[player]]; | ||
Line 37: | Line 38: | ||
=== Apply camera's Field of View === | === Apply camera's Field of View === | ||
_camera '''[[camPrepareFOV]]''' 0.5; {{cc| standard FOV is 0.7; lesser (e.g 0.5) is zoomed in, greater (e.g 0.9) is zoomed out}} | _camera '''[[camPrepareFOV]]''' 0.5; {{cc|standard FOV is 0.7; lesser (e.g 0.5) is zoomed in, greater (e.g 0.9) is zoomed out}} | ||
=== Apply all the changes === | === Apply all the changes === | ||
_camera '''[[camCommitPrepared]]''' 0; {{cc| 0 for immediate change, value in seconds for transition}} | _camera '''[[camCommitPrepared]]''' 0; {{cc|0 for immediate change, value in seconds for transition}} | ||
=== Check that the commit happened === | === Check that the commit happened === | ||
Revision as of 17:17, 29 January 2021
Basics
A cinematic camera is what is commonly known as a "cutscene"; the player's input are dismissed and events happen during the video.
A camera is local to the computer where the script has been called; one player could see a cutscene but still get killed by another player that didn't trigger the video.
How to
The list of all camera commands can be found in the Camera command group category.
Create the camera
private _camera = "camera" camCreate getPosATL player;
Enter the camera
_camera cameraEffect ["internal", "back"];
Select a target
Object target
_camera camPrepareTarget player; // a camera will automatically target the human target's face
Position target
_camera camPrepareTarget getPosATL player;
Place the camera
World position
_camera camPreparePos (player getRelPos [5, 0]);
Relative position
_camera camPrepareRelPos [0,5,0];
Apply camera's Field of View
_camera camPrepareFOV 0.5; // standard FOV is 0.7; lesser (e.g 0.5) is zoomed in, greater (e.g 0.9) is zoomed out
Apply all the changes
_camera camCommitPrepared 0; // 0 for immediate change, value in seconds for transition
Check that the commit happened
camCommitted _camera;
Leave the camera
_camera cameraEffect ["terminate", "back"];
Delete the camera
camDestroy _camera;
Specific cases
- A camera of bird type (seagull or crowe) cannot be controlled via "Prepare" commands - only camSet* ones.
- A camera of bird type is always camCommitted even if it is still moving toward its destination.
Full example
Standard example
private _camera = "camera" camCreate [0, 0, 0]; _camera camPrepareTarget player; _camera camPrepareRelPos [0, -5, 10]; _camera cameraEffect ["internal", "back"]; _camera camCommitPrepared 0; waitUntil { camCommitted _camera }; _camera camPrepareRelPos [90, 25, 8]; _camera camCommitPrepared 5; waitUntil { camCommitted _camera }; _camera camPrepareRelPos [-90, -5, 5]; _camera camCommitPrepared 3; waitUntil { camCommitted _camera }; sleep 3; _camera cameraEffect ["terminate", "back"]; camDestroy _camera;
Operation Flashpoint SQS example
_camera = "camera" camCreate [0, 0, 0] _camera camSetTarget player _camera camSetRelPos [0, -5, 10] _camera cameraEffect ["internal", "back"] _camera camCommit 0 @camCommitted _camera _camera camSetRelPos [90, 25, 8] _camera camCommit 5 @camCommitted _camera _camera camSetRelPos [-90, -5, 5] _camera camCommit 3 @camCommitted _camera ~3 _camera cameraEffect ["terminate", "back"] camDestroy _camera