mcnools 62 Posted May 24, 2018 Hello, I'm making a mission for my group that is supposed to have a simple intro, more exactly, I want a static camera on the ground show our helicopter landing from the ground for a few seconds. I've set up and exported the camera parameters from splendid cam: Quote ["Paste",["fata",[6868.35,6964.27,1.80142],59.3982,0.47,[11.9879,0],0,0,408.146,0.173823,0,1,0,1]] call bis_fnc_camera; or Quote ["fata",[6868.35,6964.27,1.80142],59.3982,0.47,[11.9879,0],0,0,408.146,0.173823,0,1,0,1] (fata is the terrain). However, I can't seem to find any info on how to proceed from here to use that in the mission. All tutorials I can find on cinematics are pre-splendid camera and I honestly can't understand any of it. Is it even possible to use this for a cinematic or does it have to be done in some other way? Share this post Link to post Share on other sites
Harzach 2517 Posted May 24, 2018 Is the old camCreate method not sufficient? Share this post Link to post Share on other sites
AZCoder 921 Posted May 25, 2018 From testing I did about 3 years ago, splendid was only for screen shots, so I just use "0 = this call BIS_fnc_cameraOld;" to invoke the old camera at startup and use an xbox controller to move around and get my positions and whatnot. If splendid can be used or not for intros, I doubt it, but not 100% sure. 1 Share this post Link to post Share on other sites
mcnools 62 Posted May 25, 2018 I will take a look att that AZcoder! Share this post Link to post Share on other sites
MKD3 27 Posted May 25, 2018 ["fata",[6868.35,6964.27,1.80142],59.3982,0.47,[11.9879,0],0,0,408.146,0.173823,0,1,0,1] Bold text is the position. _c = "camera" camcreate [0,0,0]; _c cameraeffect ["internal", "back"]; _c camPrepareTarget [3780.09,2385.09,1.36698]; _c camPreparePos [3812,2384.91,0.326341]; _c camPrepareFOV 0.700; _c camCommitPrepared 0; sleep 5; player cameraEffect ["terminate","back"]; camDestroy _c; This is a very simple example. For static shots in intros, I use 10cm spheres in 3DEN, make them invisible, and call them eg. I_POS_1, I_TAR_1. Then use _c camPrepareTarget getpos I_TAR_1; _c camPreparePos I_POS_1; _c camPrepareFOV 0.300; _c camCommitPrepared 0; Is there better ways than this? Probably. Share this post Link to post Share on other sites
AZCoder 921 Posted May 25, 2018 4 hours ago, MKD3-FHI said: Is there better ways than this? Probably. Well yes, BIS_fnc_cameraOld. It literally provides output like this: _camera camPrepareTarget [3780.09,2385.09,1.36698]; _camera camPreparePos [3812,2384.91,0.326341]; _camera camPrepareFOV 0.700; _camera camCommitPrepared 0; Then typically you want to add this line, especially if doing sequential camera shots: waitUntil {camCommitted _camera }; If you're just doing a static shot then sleep is fine. 2 Share this post Link to post Share on other sites
zagor64bz 1225 Posted May 25, 2018 15 minutes ago, AZCoder said: Well yes, BIS_fnc_cameraOld. It literally provides output like this: _camera camPrepareTarget [3780.09,2385.09,1.36698]; _camera camPreparePos [3812,2384.91,0.326341]; _camera camPrepareFOV 0.700; _camera camCommitPrepared 0; Then typically you want to add this line, especially if doing sequential camera shots: waitUntil {camCommitted _camera }; If you're just doing a static shot then sleep is fine. 2 Share this post Link to post Share on other sites
MKD3 27 Posted May 26, 2018 Haven't done it in a long time due to just using an in house debug camera but there you go. Share this post Link to post Share on other sites
mcnools 62 Posted May 27, 2018 With your help and some help from a more coding-savvy friend I got things to work, thank you very much! this is the relevant code I believe (for anyone searching around about this later) Quote _camera = "camera" camcreate [0,0,0]; _camera cameraeffect ["internal", "back"]; _camera camPrepareTarget [85893.75,54512.32,38777.33]; _camera camPreparePos [6869.15,6965.38,0.40]; _camera camPrepareFOV 0.857; _camera camCommitPrepared 0; 1 Share this post Link to post Share on other sites
Tova 130 Posted November 23, 2019 (edited) I guess this is a bit late to answer your question, but your issue is still relevant, as camera.sqs is still clunky... So for those who still need a solution in the future, I ended up making a script to output data from Splendid Camera in the Old camera.sqs format : while {true} do { waitUntil { uiSleep 1; not isNull findDisplay 314; }; findDisplay 314 displayAddEventHandler ["KeyUp", { params ["_displayorcontrol", "_key", "_shift", "_ctrl", "_alt"]; if (_key isEqualTo 46 && _ctrl) exitWith { _camParameters=call compile copyFromClipboard; _targetPos=screenToWorld [0.5, 0.5]; _camOutput = Format [" %1 camPrepareTarget %2; %1 camPreparePos %3; %1 camPrepareFOV %4; //setAperture %5; //%1 setDir %8; //[%1, %6, %7] call BIS_fnc_setPitchBank; %1 camCommitPrepared 0; //waitUntil {camCommitted %1}; ", "_camera",_targetPos,_camParameters select 1,_camParameters select 3,_camParameters select 6,_camParameters select 4 select 0,_camParameters select 4 select 1,_camParameters select 2 ]; copyToClipboard _camOutput; }; }]; waitUntil { uiSleep 1; isNull findDisplay 314; }; } You just have to run the script from the debug console, and each time you'll press Ctrl+C it will copy in your clipboard the camera data in the format of the old camera.sqs (with a couple bonus features, commented by default). The output will be in the format : _camera camPrepareTarget [13143.1,8857.96,0]; _camera camPreparePos [13140,8859.02,1.75517]; _camera camPrepareFOV 0.75; //setAperture 0; //_camera setDir 109.302; //[_camera, -28.6765, 28.2684] call BIS_fnc_setPitchBank; _camera camCommitPrepared 0; //waitUntil {camCommitted _camera}; EDIT/NOTE : if you use "camPrepareTarget", you won't be able to setPitchBank anymore... So to achieve your desired effect, comment camPrepareTarget and uncomment the combination of setDir/setPitchBank. (Note that you'll have to delete and recreate a camera if you used camPrepareTarget earlier). It's a dirty and imperfect workaround unfortunately 😕 The script pre-edit for reference : Spoiler findDisplay 314 displayAddEventHandler ["KeyUp", { params ["_displayorcontrol", "_key", "_shift", "_ctrl", "_alt"]; if (_key isEqualTo 46 && _ctrl) exitWith { _camParameters=call compile copyFromClipboard; _targetPos=screenToWorld [0.5, 0.5]; _camOutput = Format [" %1 camPrepareTarget %2; %1 camPreparePos %3; %1 camPrepareFOV %4; //setAperture %5; //[%1, %6, %7] call BIS_fnc_setPitchBank; %1 camCommitPrepared 0; //waitUntil {camCommitted %1}; ", "_camera",_targetPos,_camParameters select 1,_camParameters select 3,_camParameters select 6,_camParameters select 4 select 0,_camParameters select 4 select 1 ]; copyToClipboard _camOutput; }; }]; Edited December 18, 2019 by Tova 3 2 Share this post Link to post Share on other sites
johnnyboy 3797 Posted November 24, 2019 That is really useful. Thanks! 1 Share this post Link to post Share on other sites
Alert23 215 Posted November 28, 2019 First of all thank you for this script, but there is a problem if you use "camPrepareTarget" then BIS_fnc_setPitchBank wont work. Do you know a solution for this issue? Share this post Link to post Share on other sites
Tova 130 Posted December 18, 2019 Hi @Alert23 ! I tried to find a solution to use setPitch & Bank together with camPrepareTarget, but I couldn't find a way to... 😢 As a dirty workaround, I added a setDir parameter, if you need to set the bank of the camera, just comment the camPrepareTarget line, and use the combination of setDir and BIS_fnc_setPitchBank instead. Now, let's hope that some SQF guru will find a more elegant solution ! 1 Share this post Link to post Share on other sites