Cut Scenes and Cam Actions

@BitVenom not looking for any HOW TO, just is it possible so I do not waste my time trying to figure it out…

  1. Can Extra Mission Maps play their own Cinematics (WEBM)? I tried to get some in my mission map but it never would play… I so wanted to hire an artist to make some new scenes to add into the mission but if I could not play them it was moot…

  2. Is there any way to get CamActions to work via LUA script from inside a Extra Mission Map? I could make much better scenes (even without NIS editor) if I could call a CamAction function from inside the mission LUA file. We are talking 1st person perspective, ship rolls, and all kind of camera tricks to add to the player experience!

One day somebody will make a NIS editor… but until that day I would love to see more people make mission, if only so I could play them! If I can make one, any of these talented MODerds could do the same 10X better! It is just I do not see it happening as actively… yet.

-B8factor and @Gameg1rl

1 Like

First, let me start by saying that while I have the code, and know many things, I certainly don’t know all (or even a quarter!) of it…

1 - I think you can play movies - aren’t there examples in the campaign NIS scripts for how to do that?
2 - If the Cam Actions don’t work in gameplay/missions (you are sure they don’t?) - then probably not until a patch. I am 99% sure you can get to those in SP code… somebody here may know. That said, if you are looking for ‘easy’ cinematics, one other option is to lock out the user (many examples in the NIS scripts), then spawn an invisible ‘camera’ ship, have the camera follow that, and fly it around. The camera can be given pretty granular commands in NIS scripts. It is a bit of a pain (though CamActions are a pain too!) - but it will work.
3 - I may be convinced to update HODOR with DAE->NIS support - what we have is pretty basic, and it won’t do NIS->DAE at all. But with an example, it would be possible to build camera paths, smaller animations, etc. I’ll add it to my holiday todo list :slight_smile:

6 Likes
  1. WEBM there are lots of examples, I tried though and my WEBM files, for what ever reason, would not play. The game engine just kept minimizing and the WEBM played in a 1" square at the top left of my monitor as I got an access violation. It is sure to be user error, I simply wanted to make sure it was possible before I tried. Adding custom WEBM would be impressive to a single player mission map IMO. Though it is Very much a bridge for the artist and the coder to produce high quality missions. (I believe single player is were more life will come from this game not that I like single better than multi it is just where people go when they cant find others to play with)
    What i remembered being an issue for me was the location of the WEBM when doing extra missions. And as a steam workshop I did not know if I could get WEMB in the location the user needed to be for them to work in game?

  2. CamAction I am “not sure” they do not work, I just could not get them to work. I have all your instructions how to use Camactions, I make videos for utube with it, but how to have those files in place for someone downloading the mission from steam workshop? And how to access the action (the method you showed me was using HOTKEYS) from within LUA file is a mystery to me. (The mission map is my very first LUA and HW MOD attempt so i am sure to be lacking some expertise)

I do use an invisible ship (Pouk made for me) for both camera and to simulate explosions etc in desired areas. The problem is the camera is always looking at a specific point. I can not, without cam actions, make videos that show the viewer the smooth turns and rolls of a specific ship like the real cut scenes do. Or like these videos from cata: Cataclysm GIF Spam

  1. Could you give me an example of the code you tried which gave you a 1*1 square ? I suppose you need a specific defined frame in the UI which would be used to play the video.

  2. If it works from hotkeys, it should work from a lua file. I could create a specific UI with buttons to test those functions. What I’m currently doing for the stat screen could even be used to do that in fact ! I just have to add a “button” type in my EasyUI system.

I will work on trying to find my attempt at it in my SVN source repository… it was a very old version.

But real quick this was one thing I was not sure of… how to get these files into these locations… can you do that in steam workshop? Highlighted files.

and

For Modding, My knowledge was built around overriding files in the original game directories with files in my MOD directory. I was not sure how, with steam workshop, to get these files, for CamAction functions @BitVenom showed me how to use, in place and then call them instead of using the hot keys: (ex below From Billy.lua file)

–Load the localexec.lua in BIN directory
bind3(“dofilepath(“bin:localexec.lua”)”, CONTROLKEY, ALTKEY, RKEY)

–Set camera fiew to follow the direction of the craft.
bind3(“camAction_EnableMirroring(-1)”, CONTROLKEY, ALTKEY, AKEY)

–Load camaction.txt in BIN directory
–0 off, 1 on, -1 toggle
bind3(“camAction_LoadActions(“BIN:CamActions.txt”, 0)”, CONTROLKEY, ALTKEY, QKEY)

–Zoom action.
bind3(“camAction_PlayAction(“Epic Pan”)”, CONTROLKEY, ALTKEY, EKEY)
bind3(“camAction_StopAction()”, CONTROLKEY, ALTKEY, SKEY)
bind3(“camAction_PlayAction(“Zoom And Pull1”)”, CONTROLKEY, ALTKEY, PKEY)
bind3(“camAction_PlayAction(“Zoom Push”)”, CONTROLKEY, ALTKEY, PKEY)
bind3(“camAction_PlayAction(“30 Degree Orbit”)”, CONTROLKEY, ALTKEY, OKEY)
bind3(“camAction_PlayAction(“11 Degree Dutch Angle”)”, CONTROLKEY, ALTKEY, DKEY)
bind3(“camAction_PlayAction(“Pitch and Pull Slow”)”, CONTROLKEY, ALTKEY, PKEY)
bind3(“camAction_PlayAction(“Pitch and Pull Drama”)”, CONTROLKEY, ALTKEY, RKEY)
bind3(“camAction_PlayAction(“Zoom and Push Drama”)”, CONTROLKEY, ALTKEY, ZKEY)
bind3(“camAction_PlayAction(“Simple Zoom”)”, CONTROLKEY, ALTKEY, IKEY)
bind3(“camAction_PlayAction(“Canted Zoom”)”, CONTROLKEY, ALTKEY, TKEY)
bind3(“camAction_PlayAction(“Go Wide”)”, CONTROLKEY, ALTKEY, VKEY)
bind3(“camAction_PlayAction(“Push Through”)”, CONTROLKEY, ALTKEY, MKEY)
bind3(“camAction_PlayAction(“Push Through Orbit”)”, CONTROLKEY, ALTKEY, NKEY)
bind3(“camAction_PlayAction(“Flythrough 90 Right”)”, CONTROLKEY, ALTKEY, XKEY)
bind3(“camAction_PlayAction(“Flythrough Lazy”)”, CONTROLKEY, ALTKEY, ZKEY)
bind3(“camAction_PlayAction(“Pull back Reveal”)”, CONTROLKEY, ALTKEY, BKEY)

What’s the content of the CamActions.txt, localexec.lua, and autoexec.lua ?

Is it not possible to relocate them in the data folder and change

bind3("dofilepath(\"bin:localexec.lua\")", CONTROLKEY, ALTKEY, RKEY)
to
bind3("dofilepath(\"data:localexec.lua\")", CONTROLKEY, ALTKEY, RKEY)

and

bind3("camAction_LoadActions(\"BIN:CamActions.txt\", 0)", CONTROLKEY, ALTKEY, QKEY)
to
bind3("camAction_LoadActions(\"DATA:CamActions.txt\", 0)", CONTROLKEY, ALTKEY, QKEY)

?

Edit :
I’m just trying to understand how the camera system works, as I’ve never used it ^^
(I don’t see why the camera functions wouldn’t work from a button or directly from lua code)

I am unsure I was simply following instructions how to get CamActions to work see this quote from another post by Bit:

BitVenomDave E. - GBX ProgrammerJun 71
There isn’t, and won’t be, pilot view - but you can ‘follow’ selected ships if you assigned a key to this commend:

camAction_EnableMirroring(-1)

You can do that in LUA via a custom screen, or add it to a command in a file called ‘autoexec.lua’ in your ‘Bin\Release’ folder’s root… The full line for my personal version is:

bind3(“camAction_EnableMirroring(-1)”, CONTROLKEY, ALTKEY, AKEY)

Which means Ctrl-Alt-A toggles this…

I placed the files were I did based on instruction from BitVenom to do so… that is all I know. It seemed like they should be able to be called via LUA, but I just do not know how… and beyond that if I could I would need to make sure the Mission map MOD delivered to the players the ability if they needed the files to be somewhere specific. Unless the ability is there from the LUA and the files I listed where put inplace just to give the ability to use CamActions on the fly… again I do not know outside of some sparse comments in the forums I do not have any other reference to use.

Another older post:

I just saw you PM. Let’s continue there until a solution is found :slight_smile:

As a note,
bind3("camAction_LoadActions(\"BIN:CamActions.txt\", 0)", CONTROLKEY, ALTKEY, QKEY)
can be changed to
bind3([[camAction_LoadActions("BIN:CamActions.txt", 0)]], CONTROLKEY, ALTKEY, QKEY). No need for quote escaping.

1 Like

Yep, and
bind3("camAction_LoadActions('BIN:CamActions.txt', 0)", CONTROLKEY, ALTKEY, QKEY)
should work too

all I know is if we can get it to work… I am going to produce some amazing new cut scenes in the next mission, “B8-2 Gehenna Outskirts - Revisited”

And if I can get WEBM files to play @Talros is going to get some commissions from me (if he wants) as I produce some new cut scenes for the next mission map. Muahahaha All I need is an artist to paint an image in layers and I can animate them myself in After Effects!

These guys ( @Dwarfinator, @radar3301 ) have got your back, and they are correct…

The old examples were for manually adding actions - you can (and in your case SHOULD) move them to your data folder - that part is easy. Calling the actions from script is easy too - just call the function you are binding…

So yeah, I think you’ll find this works very fast!

3 Likes

That is going to be amazing… now I can do cockpit view in scenes… it can be a bit twitchy on turns and using in game units for scenes adds a bit of the “unsure it will always behave as desired each time”, but with some work some very cool scenes can be produced!

1 Like

@BitVenom, if I may ask for your knowledge, I’m currently looking to do an UI for @b8factor to help him test his scenes.

When I took a look in the exe for camActions functions (other than the ones you gave him in your example), I found those things in the same area :

camAction_SetActionRate
cameraCollision
lawnmower_MowTheLawn
Create360Screenshots

Are those valid functions, and if so, what are they used for ? (if you remember them of course)

3 Likes

One issue people have run into, I think the stargate mod team had a thread about it, was that the mod tool does not appear to package movie files at all, or the game doesn’t load them from .big files, or something of that nature. I believe people have gotten them to work through old style mod distribution but not through steam.

3 Likes

Yeah in the original single player game they are WEBM sitting in a folder. That is what I meant when I was not sure how that would work with steam workshop… getting the files to the player.

EDIT : I’M AN IDIOT ^^
just a problem of \ instead of /

camAction_LoadActions("DATA:CamActions.txt", 0) works.
But camAction_LoadActions("DATA:anysubfolder\CamActions.txt", 0) don’t.
(I mean, using camAction_PlayAction after the latter does nothing)

BitVenom, could you confirm if we can only use the root of the data folder with this function, please ?
And what’s the 0 parameter at the end if you remember ?
(I’m asking this because it would be logical to put the camActions file into the folder of the corresponding mission if possible)

2 Likes

Did you try / instead? Otherwise the C is escaped.

2 Likes

Thanks !

And I’m an idiot ! Not even capable of copying the doFilePath format correctly ahah.

SHAME ON ME ! SHAAAAAAAAME !

3 Likes

We all have our moments. :slight_smile:

1 Like