Difference between revisions of "Cutscene capture"

From Dragon Age Toolset Wiki
Jump to: navigation, search
(Batch files for capturing and converting cutscene videos)
({{Infobox cutscenes}})
Line 1: Line 1:
 +
{{Infobox cutscenes}}
 +
 
A series of command line commands to help capture in game video footage and screenshots without any unwanted user interface elements.
 
A series of command line commands to help capture in game video footage and screenshots without any unwanted user interface elements.
  

Revision as of 18:56, 9 February 2010

Cutscene topics

A series of command line commands to help capture in game video footage and screenshots without any unwanted user interface elements.

Note: this document was copied from internal documentation, not all of the command line parameters have been verified to work with the final shipped version of the game.

Run Cutscene

  • Format: -runcutscene=[string CutsceneName]
  • ie: -runcutscene=dog_intro.cut

Must be used in conjunction with autologin to put the game in the right module where the cutscene is to be run. The CutsceneName must include the “.cut” extension, and the file must exist where the game can find it (the base override directory works well) This only works for cutscenes that have the “area” specified in the editor, those that only have a layout will not work with this feature. This is an engine limitation that will be extremely costly to fix. When the cutscene is completed (or cancelled) the game will just sit there, it won’t shut down automatically.

Staging

  • Format: -cutscenestage=[string StageName]
  • ie: -cutscenestage=cli400st_the_speech

Allows staged cutscenes to be recorded.

Force High Res.

  • Format: -forcehighres

Shuts down both dynamic and static LOD systems and forces all models to their highest possible resolution.

FPS Override

  • Format: -fpsoverride=[float FPS]
  • ie: -fpsoverride=29.95

Regardless of how fast the game is running, every frame will advance the time by the exact amount needed to match the FPS specified here. This lets you capture the movie at a constant 30fps regardless of how slow it takes to actually draw the frames to the screen. Note: This is a float value, so values of 29.95 are valid.

Disable GUI

  • Format: -disablegui

Shuts off the ingame GUI elements so you can capture the movie without the extra bits on the edges. Extra useful in the “single player” module as it gets rid of the “character generation” GUI that blocks the screen when you fire it up.

Height & Width Overrides

  • Format: -height=[int HeightOverride]
  • Format: -width=[int WidthOverride]
  • ie: -height=1080 –width=1920

Overrides the ini file and built-in defaults and forces the system to run at this resolution. Note: This can NOT create a window larger than your current screen, that is a limitation of the D3D system. So if you want a larger resolution, you’ll have to get a larger monitor.

Capture Movie

  • Format: -capturemovie=[string CaptureName]
  • ie: -capturemovie=movie_test

Starts capturing every frame rendered as soon as the game starts. Useful when automatically running a cutscene.

The movie frames are all written out as TGA files into the directory you give as a [CaptureName] inside your LOGS directory. (ie: look here: \Documents and Settings\<name>\My Documents\bioware\dragon age\Logs\<CaptureName>)

The frames start counting at 00000 and work their way up, and you can clear out the unwanted frames after a capture by simply deleting them.

Max FPS

  • Format: -maxfps=[int FPS]

Forces the game to slow down to the FPS specified here, this does not alter the time delta between frames, just sleeps after drawing the frames out until this FPS is reached. Useful if you’re planning on using FRAPS to capture a movie and you want to make sure that every frame is caught.

Not suggested for movie captures, use “CaptureMovie” instead, it’s much more reliable to catch every frame.

No Warning Popup

  • Format: -nowarningpopup

Shuts down the Warning message box that pops up when the programmers are trying to tell you that something is going wrong. This isn’t “directly” related to movie capturing, but those boxes do get in the way when you’re trying to capture a movie, so it’s part of this interface.

Auto Login

  • Format: -autologin=[string CampaignName]
  • ie: -autologin=single player

Used to automatically load up the Campaign specified when the game starts up. Also shuts down the startup movies so you don’t constantly recapture the “BioWare Logo”.

Full Screen

  • Format: -fullscreen

Not specifically used for movie captures, but might be useful if the resolution you’re trying to capture just happens to be exactly your screen’s resolution. This does make the game run a bit faster, so the capture might be a bit quicker.

Batch files for capturing and converting cutscene videos

The following batch file will take a text file (named da_cins.txt) with one cutscene name per line and generate frames for each of them. If your game is installed somewhere other than C:\Program Files remember to edit the corresponding line to point to the proper location of bin_ship. Edit the autologin parameter to point to the UID of the module containing your cutscenes.

@ECHO OFF

cd C:\Program Files\Dragon Age\bin_ship\

SET INPUT=da_cins.txt

for /f "tokens=1 delims=" %%a in (%INPUT%) do (
dragonage.exe -runcutscene=%%a -forcehighres -fpsoverride=30 -capturemovie=%%a -nowarningpopup -autologin=single player 
)

echo COMPLETE

pause

Converting into video with VirtualDub

You can then use the following batch file with the free video-manipulation program VirtualDub to stitch the images together into movies.

@ECHO OFF

SET INPUT=da_cins.txt

for /f "tokens=1 delims=" %%a in (%INPUT%) do (
virtualdub /s preview_cin.vcf /p ..\%%a\00000.tga  ..\preview\%%a.avi /r /x  
)

echo COMPLETE

pause

You'll also need to create a text file in the same directory as your batch files named preview_cin.vcf that contains configuration information for VirtualDub:

VirtualDub.audio.SetSource(1);
VirtualDub.audio.SetMode(0);
VirtualDub.audio.SetInterleave(1,500,1,0,0);
VirtualDub.audio.SetClipMode(1,1);
VirtualDub.audio.SetConversion(0,0,0,0,0);
VirtualDub.audio.SetVolume();
VirtualDub.audio.SetCompression();
VirtualDub.audio.EnableFilterGraph(0);
VirtualDub.video.SetInputFormat(0);
VirtualDub.video.SetOutputFormat(7);
VirtualDub.video.SetMode(3);
VirtualDub.video.SetSmartRendering(0);
VirtualDub.video.SetPreserveEmptyFrames(0);
VirtualDub.video.SetFrameRate2(30,1,1);
VirtualDub.video.SetIVTC(0,0,-1,0);
VirtualDub.video.SetCompression(0x64697678,0,8000,0);
VirtualDub.video.SetCompData(3532,"AAAAALwCAACQsggAXHZpZGVvLnBhc3MALgBwAGEAcwBzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAEAACh1bnJlc3RyaWN0ZWQpAABpAGMAdABlAGQAKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAEdlbmVyYWwgcHVycG9zZQBwAHUAcgBwAG8AcwBlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAIERITFRcZGxESExUXGRscFBUWFxgaHB4VFhcYGhweIBYXGBocHiAjFxgaHB4gIyYZGhweICMmKRscHiAjJiktEBESExQVFhcREhMUFRYXGBITFBUWFxgZExQVFhcYGhsUFRYXGRobHBUWFxgaGxweFhcYGhscHh8XGBkbHB4fIQAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAACWAAAAZAAAAAEAAAAAAAAABAAAAAMAAAABAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAZAAAAPQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABkAAAAZAAAAAEAAAAKAAAAAQAAABQAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAAoCgAAAAAAAQAAAAEAAAAeAAAAAAAAAAIAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAYAAAABAAAAAAAAAAEAAAAAAAAALAEAAAAAAAABAAAAHwAAAAEAAAAfAAAAAQAAAB8AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==");
VirtualDub.video.filters.Clear();
VirtualDub.audio.filters.Clear();