Author: woofer
Author Website:

Requirements: No addons required

Version: 1.13
Signed: Yes

Short description: The core idea for indiCam is to use a separate computer to record secondary gameplay footage around a player on a multiplayer server without the need to manually move the camera around.

Date: 2019-08-20 11:45


Comments: (0)
Rating:



 







indiCam - independent camera

by
woofer


Description:
This is a script that I built to help me with recording Arma 3 cinematics.

The core idea for indiCam is to use a separate computer to record secondary gameplay footage around a player on a multiplayer server without the need to manually move the camera around.

That stems from me wanting a secondary perspective to mix with my regular first-person footage in a video editor.

No actual recording is done by the script. For that you will have to use screen recording software like OBS, nVidia Shadowplay or Radeon ReLive on the machine that is running indiCam.

So it turns the game into an automatic camera robot. Once it has been started, it will follow your selected unit around while automatically switching between camera angles depending on situation and visibility of the target. The target unit can be a player or AI as well as of any faction.

The camera will completely take up the screen. The computer running it will not be able to participate in regular gameplay.

indiCam is short for independent camera. It needs to run independently on a separate copy of Arma, preferably on another machine entirely.

Examples of usage:
Observe players on a multiplayer server (and record it) to get all the juicy details
Let AI duke it out in epic single player scenarios and use as screensaver, cause the Arma must go on.
Record your own gameplay in a multiplayer scenario from another client, since it’s never enough.
Record the trials and tribulations from the perspective of the opposing force so that you can watch that after the fact and bask in your own shock and awe.


Technical description
Definition: actor - the technical name for the current unit that the camera is tracking

Definition: scene - the complete set of variables that defines how the camera should behave at any given situation such as camera position, zoom, target object or things like that.

The script is built in a modular fashion and picks a scene type depending on the current situation. Each scene can be tweaked and optimized to suit by editing the code.

The main factor that the script takes into account is for vehicle type. If the actor is on foot - which is considered a vehicle type - the scenes will look different from when the actor is in a helicopter for example.

Depending on vehicle type, the script will then adjust for level of action around the target and speed/altitude of vehicles.

Currently you select an actor on the battlefield using a map selection functionality through the scroll wheel menu. If the actor dies, the script will automatically switch to the nearest unit of the same side. If it was a specific player that died and you want the camera to keep following that person around, you’ll have to manually assign that player as an actor again.

Each scene has an individual duration time defined. After that time has run out, the script will do a line of sight check and pick a new scene where the actor is visible from the camera position. Currently that means that the actor might not necessarily be in frame, but below or behind the camera. There is also a possibility of making the scene ignore the line of sight check so that it will be applied anyway.

Many scenes randomizes the camera position in space and zoom level. So each time they are applied they will not look exactly the same. This makes the footage more varied. It also helps with finding a camera position that works within a confined space like a house as well as open areas by placing those far away camera angles with a high level of zoom.

So creating new scenes of your own should be pretty straightforward, just copy a similar existing one and put it in the situation where you want it. In the scene selection script there is a code block that can force a scene to execute. This is where new scenes can be trimmed in properly before being put into the randomizing loop.

On the more advanced side of things, the script uses hidden proxy objects for camera placement and orientation. They’re called “game logic” in code, but maybe should have been called proxies instead. These proxies allow for producing movement of the camera that is decoupled from the unit it is tracking. It makes for much more smooth camera movement and tracking.


Installation:
To install indiCam - independent camera you should use modfolders to keep it seperate from the official game content to prevent issues.
With Arma 3 you can use different ways to set up your modfolders to use custom content you have downloaded.
Please visit the Arma 3 Mod install instructions page for more information about using custom mods and addons in Arma 3.


Included files:
INDICAM.pbo


Media:



Armaholic.com has its own Youtube channel where we will cover the Community made releases.
Subscribe to the Armaholic.com Youtube channel


Future plans:
Between work and family life I just cannot reliably commit much time to projects like these. That is the main reason it was released in it’s initial not-really-perfect state. If you want something changed, please report it but don’t expect too much in way of fixes or releases quickly. I’ll try to stay on top of things, but it never seems to work out entirely as I hoped.

With that said, I have a bucket full of ideas that I want to implement as soon(TM) as I can manage. Stuff like more types of camera movement with camera shake, panoramics, vehicle weapon cameras and so on. Then there is always the weapon cam that I wanted to make work.

The other way to have things changed, by the way, is to do it yourself. Feel free to modify the script, it was written with that purpose in mind. If you create any new scenes that are especially cool, consider posting them on the BI forum thread so that others can get those killer camera shots.


Credits & Thanks:
Many thanks to Reggaeman, Ripppe and Mad_Cheese that helped me test and come up with ideas as I built this from just being my own little helper to something that is polished enough for others to use.

Special thanks goes out to Reggaeman for condensing hours and hours of gameplay into shorter videos with the little gold nuggets where indiCam did something interesting or just plain weird. It has been incredibly helpful and I wouldn't have been able to spend that kind of time myself.

You’ll find his videos here: https://www.youtube.com/channel/UCdDmtot-tNsTJMmdk-soeHA


Changelog:
1.13
Complete redesign of the core scripts have been made. No script was left untouched and most got re-written from scratch.
Major redesign of camera movement system has been done as well. It now gets calculated on each frame to alleviate jitter as much as possible. That means that all the old scenes were wiped and I have started to create new ones. There is a basic set of scenes in and I will add more as I manage to get them stable and smooth enough. The upside is that switching scenes and actors are a whole lot more stable.

The second large addition is the new system that detects special events and cuts to a scene to show that. The only one implemented just yet is the detection of launcher usage by a unit.
//REMOVED- The number of scenes are now back to only a few due to core rewrite. Future releases will see more of them added back in the new system.
//ADDED- Actor auto switching added to gui with controls for duration and nine different modes.
//ADDED- If a player is the current actor, that player will be selected in player list upon loading the gui
//ADDED- Made the player list in gui display what side each player is on. Runs out of space real fast though.
//ADDED- Automatic night vision will now take terrain and current date into account and turn on half an hour after sunset and turn off half an hour before sunrise
//ADDED- Made actor deaths handeled by the scripted scene system and more reliable.
//ADDED- Manual mode added to gui.
//ADDED- Slider in GUI: Chance of capture cinematic scenes upon detection (0-100%). Zero means off.
//ADDED- The initial drop-down selection on map side will be whatever side the player is.
//ADDED- Pressing F9 during camera will now also store the scene name in a list. Going out of the camera immediately after pressing F9 will list the contents in a hint. Good for finding scenes that aren't working.
//ADDED- barrelWatch scene which will track barrel direction. Only for tanks for now.
//FIXED- GUI now looks as intended in both the script and the mod version. Thanks Taro!
//FIXED- Actor death now takes actor auto switch setting into account.
//FIXED- Units of any side can now be selected on the gui map.
//FIXED- Scene override timer now works in scripted version without gui.
//FIXED- Eventhandlers weren't removed from non-actor units in a controlled fashion
//FIXED- Changed wording of gui elements and tooltips for some controls.
//FIXED- Updated diary with information on GUI.
//FIXED- Start button could be pressed repeatedly and launch several instances of the camera.
//FIXED- Settings changed in gui will now be applied even if the camera isn't already running.
//FIXED- Culled a whole lot of unused code.
//FIXED- When debug was on it spawned the indicator spheres on every client.
//FIXED- indiCam settings window could be shown ontop of regular map which caused issues with cursor and markers
//FIXED- If there is only one unit (the player) on a terrain, the camera will not find eligable actors and try to switch actor indefinitly
//FIXED- An occational CTD when calculating too large or small movement values after switching actors.

1.2 published 2018-12-27
//ADDED- Automatic switching between players or AI depending on what the current actor is. Cycles intervals ON-10min/ON-5min/ON-2,5min/ON-1min/OFF
//ADDED- A GUI as a new main way for controlling the script. The keystrokes stays - to help with easy access over remote desktop during gameplay.
//TWEAKED- Key F1 will now start GUI during camera operation.
//ADDED- Added abilitiy to override scripted scene duration with a fixed timer in the GUI.
//ADDED- Added "Hold switching of scene" checkbox. It makes a sense to use in conjunction with "force next scene"

V1.11 - General changes and updates to smooth development workflow
//ADDED- Keypress: F9 - Press during running camera to get the current scene ID name printed on screen. Good for debug and bug reports.
//ADDED- Dev switch: Set {indiCam_devMode = true} to run everything uncompiled which will facilitate script and scene development on the fly.
//ADDED- Camera logic: randomLinear - Plan is to use for random camera panning movement or as camera shake.
//ADDED- New scene: nonStabilizedCam - Simulated unstable binocular movement using randomLinear logic on foot mobiles and vics
//FIXED- Some of the top-down scenes have been lowered somewhat and given more zoom (tip by Kremator and Tankbuster).
//ADDED- New Scene: shakyChasePerson - A hectic third person sene for high action level
//FIXED- The cameraman is now invisible to all unts and can't take damage while the camera is running (tip by Tankbuster)
//FIXED- Scene selection now differentiates between helicopters and planes
//FIXED- Scenes divided into separate files for each vehicle category to give better overview.
//ADDED- Possibility to state conditions in a scene to disqualify it. For example if a scene should only be used for a specific vehicle.
//FIXED- Scene will now switch directly upon actor mounting or dismounting a vehicle instead of waiting for the scene timer to run out
//FIXED- Situation check eventhandlers no longer gets stacked from previous actors, but transfers to each new actor
//ADDED- Serverkey added to release package

V1.1 - Some significant new functionality, thus the jump directly to V1.1
//ADDED- F3 to switch to another random unit that is of the same side and within a certain distance of the current actor.
//ADDED- A very rudimentary Manual camera mode. Access with F4. For a proper manual camera, see the gCam mod.
//FIXED- Map selection completely rewritten from scratch and works better now.
//ADDED- It's now possible to differentiate between units within some vehicles while selecting actor on the map.
//FIXED- Selecting a unit that is in a vehicle as actor no longer makes the actual vehicle the actor
//FIXED- Keypresses no longer stack between restarts of the camera
//FIXED- Camera no longer resets vision mode when restarted
//FIXED- Camera controls stay on the player between remoting with the "Advanced AI command" mod.
//FIXED- Some diary entries corrected
//ADDED- New scene: Medium and high altitude, medium far, front view with randomization

v1.00
- first release


Forum topic:
- BI forums


Steam Workshop:
- Subscribe




Enable javascript to be able to download from Armaholic please!