How to Execute an Unreal Engine Batch Mode Render
Realtime rendering is fast, but you can still speed up and automate your workflows by batch rendering your Sequencer shots.
Using this approach you’ll be able to render your master sequence or
shots with the same options available to you via the Sequencer’s render
button, but you won’t need to open up the UE4Editor to do so. By
providing the UE4Editor.exe
with additional flags, you can have it run
the scripts on your projects without further interaction. In this case,
we’re running an AutomatedLevelSequenceCapture
script to run our renders
and all we need to tell Unreal is which project, map, and level sequence
to render. Here’s a simple example with some of the most basic options:
### Template -- Flags are case insensitive
### Only -game -MovieSceneCaptureType, -LevelSequence, and -NoLoadingScreen are required ###
UE4Editor.exe <PROJECT> <MAP> -game -MovieSceneCaptureType="/Script/MovieSceneCapture.AutomatedLevelSequenceCapture" -LevelSequence=<LEVEL_SEQUENCE_PATH> -NoLoadingScreen
### Example ###
"C:\Program Files\Epic Games\UE_4.25\Engine\Binaries\Win64\UE4Editor.exe" "D:\Unreal Projects\TestProj\TestProj.uproject" "/Game/TestProj/Maps/Overview" -game -MovieSceneCaptureType="/Script/MovieSceneCapture.AutomatedLevelSequenceCapture" -LevelSequence="/Game/Cinematics/shots/shot0010_01" -NoLoadingScreen -Windowed -MovieName="shot0010_01_render"
This will open a game window, play through the level sequence, and write
out a movie with the name “shot0010_01_render.avi” to your project’s
“Saved/VideoCaptures” directory.
Note that the project path is a file system path, but map and level
sequence are specified using UE4 asset paths. You’ll need a GPU to
render and as far as I can tell, you can’t run this headless or
offscreen. I experimented with -WinX
and -WinY
to move the render
window offscreen , but that didn’t work for me. Instead, I just use
-Windowed
so that it doesn’t default to fullscreen and I can just
leave it behind my active window and continue working.
That simple command isn’t going to give you great results though. Here’s a command with more options for better quality:
"C:\Program Files\Epic Games\UE_4.25\Engine\Binaries\Win64\UE4Editor.exe" "D:\Unreal Projects\TestProj\TestProj.uproject" "/Game/TestProj/Maps/Overview" -game -MovieSceneCaptureType="/Script/MovieSceneCapture.AutomatedLevelSequenceCapture" -LevelSequence="/Game/Cinematics/shots/shot0010_01" -NoLoadingScreen -Windowed -MovieName="shot0010_01_render" -ResX=1920 -ResY=816 -ForceRes -Windowed -MovieCinematicMode=yes -MovieWarmUpFrames=24 -NoTextureStreaming -NoScreenMessages -MovieQuality=100 -VSync
Hope that helps you get started with batch rendering your cinematics or other linear media. There are more options for rendering frames, rendering render passes, and increasing the quality even further in the documentation.