Jump to content
woofer808

indiCam - independent camera mod

Recommended Posts

indiCam - independent camera

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 can never be too much Arma.
  • 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.

 

Resources

The mod version and script version are contained in a single package and can be downloaded here:

https://drive.google.com/open?id=1pvVD-zwCXnvWj5zHwPgXfgkvo4MEJ9FL

 

Steam mod download:

https://steamcommunity.com/sharedfiles/filedetails/?id=1372800247

 

On my youtube channel there are already videos containing footage from indiCam.

https://www.youtube.com/channel/UCi3gV_w80QkjgOd7H4Zu46w

 

Test the script directly in an example scenario from the Steam workshop:

https://steamcommunity.com/sharedfiles/filedetails/?id=1372803729

 

There is a Discord on the subject where you can get in touch and download future beta versions.

https://discord.gg/gM4RyTd

 

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.

 

Contributors

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

 

That is it!

 

love,

woofer

  • Like 4
  • Thanks 7

Share this post


Link to post
Share on other sites

Wow. Just amazing. What a wonderful piece of work!

Will be using this for sure.

  • Like 3

Share this post


Link to post
Share on other sites

Had a good play with this over the weekend and I love it!  Some of the camera angles are a little janky (the overhead one when on foot is a little high) but in the main I’m really impressed.  One thing that I couldn’t sort (and yes it is because I didn’t read the manual!) was jumping out of indicam view without respawning the camera person.

 

Having a functional action cam has been a wish of mine for AGES.  Good job @woofer808 !

  • Like 1

Share this post


Link to post
Share on other sites

Thanks @kremator!

To be perfectly honest, you shouldn't have to read the actual manual in order to be able to close the camera. That's just bad design on my part. Maybe a very quick notification when you start the camera back up? I could also give a hint when any "wrong key" is pressed, but I really want to keep clutter away from the screen as much as possible.

I'd prefer the close key to be something that isn't pressed by mistake to easily so I opted out of the any-key solution.
Escape key is also something that I shy away from since that gives access to the debug console in the main menu.

Is there some sort of key that is common in other mods that people to some extent take for granted?

  • Like 1

Share this post


Link to post
Share on other sites

New version. See main post for links and such.

 

Version 1.1 published  2018-05-02:
Some new significant 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


 

  • Like 5
  • Thanks 1

Share this post


Link to post
Share on other sites

This looks so cool! Great work. 

  • Like 1

Share this post


Link to post
Share on other sites

Is there a key for the mod version?

Share this post


Link to post
Share on other sites

Aaw, crap. You got me there. I'll make sure it's all properly signed with a working key that is included on the next release which is in the works. This is all very new to me.

 

In the meantime I put the woofer.bikey in the google drive release folder, but I'm not sure the pbo was properly signed this last time.

https://drive.google.com/open?id=1I-KFyO14lZEOLeFDJ5X5CMSGL62FviFl

  • Like 1

Share this post


Link to post
Share on other sites

That key does work with the current build. :)

  • Like 1

Share this post


Link to post
Share on other sites

Not sure if I did something to break it, but the AI killed the player running Indi and that seemed to crash the other player in my server.  Both lost connection to the server, which usually means the server has gone down, but in this case, it was just the clients.

 

Also, the enemy AI will still attack the Indicam player, so he needs to be moved well out of the way or he'll be killed.

 

Personal taste, but I think the distant views are too far, especially the high-looking-down ones and those for dismounted actors.

 

I'd quite like to see, when actors are in fixed-wing, a camera 'bolted' to the top of the tailplane looking forward, or close to a weapon pylon. Perhaps it could switch near pylon/gun when player changes fire mode?

 

Similar for land vehicles, when the player is in a Prowler, for example, a camera bolted to the roll cage would be funky.

 

Also, F3 seems not to be selecting pilots?

  • Like 1

Share this post


Link to post
Share on other sites

Thanks @Tankbuster! That is a lot of valuable info. 

 

Quote

That key does work with the current build. :)

Yay! First time I did that stuff, so glad it worked out.

 

Quote

Not sure if I did something to break it, but the AI killed the player running Indi and that seemed to crash the other player in my server.  Both lost connection to the server, which usually means the server has gone down, but in this case, it was just the clients.

Very weird. Any particular game mode or scenario going on?
 

Quote

Also, the enemy AI will still attack the Indicam player, so he needs to be moved well out of the way or he'll be killed.

I guess cheat mode is already on since it's possible to see all units on the map. I could make the cameraman invincible, captive or something along those lines while the script is running.
 

Quote

Personal taste, but I think the distant views are too far, especially the high-looking-down ones and those for dismounted actors.

I need a lot of personal tastes to be able to arrive at a good middle ground. I try and keep track of it, so it's appreciated.

 

Quote

I'd quite like to see, when actors are in fixed-wing, a camera 'bolted' to the top of the tailplane looking forward, or close to a weapon pylon. Perhaps it could switch near pylon/gun when player changes fire mode?
Similar for land vehicles, when the player is in a Prowler, for example, a camera bolted to the roll cage would be funky.

I hadn't thought about detecting weapon switching, only actual firing of weapons. I'll look into that for sure.

 

Quote

Also, F3 seems not to be selecting pilots?


This is not expected behaviour. I'll have to add that to the list of things to investigate.

  • Like 1

Share this post


Link to post
Share on other sites
Just now, woofer808 said:

Thanks @Tankbuster! That is a lot of valuable info. 

 

 

 

Very weird. Any particular game mode or scenario going on?

 

2

It was my own mission, clients were running Bad Benson's Enhanced Movement and Duda's Rappelling. Server is vanilla. Further investigation shows no crashfiles on either client, so it might have been a catastrophic drop to 0 FPS.

  • Thanks 1

Share this post


Link to post
Share on other sites

New version: V1.11 - General changes and updates for smoother development workflow. See OP for links.

 

//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

 

  • Like 5

Share this post


Link to post
Share on other sites

Love the mod. It has made my ZEUS multiplayer sessions more interesting.

My current wishlist for the mod:

1. TFAR/ACRE integration, so that we can hear when player talks near the camera.

  • Like 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×