Batch editor automation of sequencer, HRSS, python

anonymous_user_9cc077d2
Tue, 28 Jan 2020 01:58:46 +0000
Cinematics & Media

We’re developing an automation routine for the UE editor in python (4.24.1). Our requirements are to generate individual PNG image frames from a scene that we are manipulating in script. The # of combinations we have go into the thousands for our use-case, which is why we’ve been trying to leverage UE’s real-time rendering with GPUs.

We’ve been approaching this from two directions…

1. Alter the scene dynamically in the viewport, perform a high res screen shot, and store to disk. This actually works, except we’re unable to properly “wait” for the task to complete before queuing another task. We have a question out as to how to do this (if possible) from python. Doing them in a loop causes the prior tasks for that operation to be overwritten so we only get a single image output in the end.

2. Alternatively, we could automate the sequencer, place the objects onto the sequencer and upon each revision, insert a key frame, and continue. Upon completion, we’d export the frames to individual images. We’ve encountered two issues here - the first is that we can’t have each “image” be a single keyframe as the cinematic creation process seems to want multiple frames to give us an accurate “shot”. Putting each unique scene as a single keyframe generates blurs, light artifacts, and even some random elements showing up. What we’ve seen is a need to have each unique scene generate 30 keyframes. Once exported, we grab the 29th frame from each 1 second sequence. This seems to give us a good image. Knowing that does decrease our overall production rate, as we can render and export out of the sequencer at around 68fps but it requires 30 frames for each clear picture, so we’re effectively at 2FPS (more or less). The bigger issue is that creating a sequencer and injecting all of the keyframes programmatically does not seem possible from the python API. We’ve not found in the documentation a way of doing this at that level.

So my question is can this be done effectively and can we do it in python, C++, or would we have to engineer an alternative approach to batch render these custom scene iterations?

11 posts - 6 participants