Automatic movie creation from level

I’m trying to set up our automatic build server to be able to play a level and record a video of the output automatically (so we can have a visual record of where any rendering errors were introduced). Is this possible? All of the replay stuff I can find in the docs seems like it caches parameters on the actors, rather than actually rendering out from a camera, and I want it to be able to run without any user interaction (so starting a recording from the command prompt is out).

Either c++ or blueprint would be fine. Depending on the solution, I would either drive it with a command line argument or just have a dedicated level that always records and then exits.

Thanks!

Hi Aaron,

If you’re looking for a rendered video recording, your best option may be to use third party recording software. We have ways in the engine of rendering out video such as Sequencer (with the Sequence Recorder), but you’d need to make modifications to automate it and it wouldn’t be compressed as efficiently as dedicated recording software.

We do have a built-in replay system that leverages our multiplayer framework to recreate the game session. You may need to add some custom camera code to automate where the camera is recording from, but the resulting file will be substantially smaller than a video and should allow you to recreate any rendering artifacts that may have occurred. If you’re interested, I can send you more information about how to enable the replay system and where to find some examples.

Best,

Cody

Thanks, Cody! Unfortunately, we’re looking to capture the state of the shaders/engine/etc at that build, in addition to the motion or character behavior, so I don’t think a replay is going to work for us.

Could you give any more guidance on the Sequence Recorder option? I’m happy to dig into making changes to enable automation, if you can at least point me in the direction of where that code lives. Compression isn’t as important to me, since I can always post-compress the video files if I have to.

The Sequencer toolset is still being actively developed, so you may want to do some feasibility testing to see if it’ll work for you before you dive in. That being said, you can find the basic documentation on recording gameplay with Sequencer here.

You’re essentially looking at a two part process. First, you’d need to run Sequence Recorder to create a Level Sequence with all of the relevant actors. Then, you’d use Sequencer to render that level sequence out to a video file. Of course, I’m not sure this would catch any rendering artifact that the replay system wouldn’t, since we’re still recording actor properties and playing them back to render out the video.

That might work for me. The problem with using a replay isn’t that it’s using actor properties, but rather that it’s only storing actor properties, and relies on a future state of the engine to know how to render those properties. So if a change we make to the engine breaks rendering of a certain character, it would break it for all past replays. I want to store the actual visual output so I can peek back through previous builds to see where, exactly, it broke.

I’ll play around with the Sequencer in the editor and see if I can get something like what I’m looking for manually, and if that’s working out well I’ll poke around and try to find the guts in the engine. :slight_smile:

Thanks again!

Ah, that makes sense. Feel free to post back here with any questions and I’ll get in contact with the Sequencer team to see if we can help!

Hey,

I was wondering if you managed to get this working? We want to do the same thing.

Thanks!