[Movie Render Queue] Render a level sequence actor with transforms

Hi,

We’re using world partition, and we have a fairly big world.

We have cutscenes created by our animators, these are level sequence actors with an offset added via the Transform origin instance data that we play at runtime.

These level sequences are master sequences containing many shot tracks.

We’re trying to come up with a system to render these sequences via movie render queue/graph for reviews and marketing purposes through the editor.

When rendering these sequences (through MRQ), we loose the transform applied via the Override instance data, because MRQ is rendering the level sequence asset, and is not referencing the level sequence actor and its transforms.

So we made a little editor utility widget to create and allocate a job and render it, from there I can render my sequence with the transforms from my actor. The problem I have though is that rendering from that context is causing other issues in our renders, it seems to break bindings from some possessable references as well as references from other spawnables throughout the master sequence.

To add a bit of context:

  • After we saw the bindings issue, we tried to render that same sequence with the sequencer, reset the transform on the actor sequence and added an additive tracks to emulate the same offset, and we couldn’t observe rendering issues. The bindings remained intact. So the issue is probably coming from the fact that we are rendering via Blueprint.

My questions are :

  • Is there a way to have these transforms rendered through MRQ or MRG, without going in the blueprint blackbox rabbithole. Because going through blueprint to trigger the renders prevents our artists to use the MRQ interface.
  • Would having all our cutscenes placed at the origin of the world be a bad idea or something that could cause issues with loading our data ? We have a very large world and some sequences offset are very far from the orgin. We could potentially add these offsets as additive tracks or embed them directly in the fbxs from our animation team. We’re just not sure what would be ideal. Do you have any recommandations ?
  • Is there something wrong with the way the job was created in this blueprint example ?

Many thanks !

settings on level sequence actor.png(21 KB)
Creating and rendering job to movie render queue.png(429 KB)

Steps to Reproduce
Steps to repro initial issue :

1 ) Create a level sequence actor.

2 ) Add transforms to have the sequence offset via the Override Instance Data ( see screenshot )

3 ) Render the sequence via Movie Render Queue or Graph.

4 ) See the render didn’t take in account the offset.

Steps to repro partial fix :

1 ) Create an editor utility widget.

2 ) Create a job from sequence using the sequence found on the level sequence actor.

3 ) Allocate the job and render it.

4 ) See that the transforms have been rendered successfully, but that your render may have issues with various bindings. The sequence I’m rendering is a master sequence with many Shot tracks, in these shot tracks there are binds to possessable actors that we use for camera focus, or Day Sequence settings.. Some of these break on rendering.

Hi Chad,

Thank you so much for such a swift reply.

What do you mean exactly by keying the transforms of a shot ?

Is there a special track type to add transforms directly on a MovieSceneCinematicShotTrack or its sections ?

Also, I’m not sure I’m understanding what you mean by keying the Origin Override Location.

On a Level Sequence Actor :

Override Instance Data, Transform origin, and Transform origin actor don’t seem to be “ExposedToCinematics”, I can’t key them.

But moreover, if the principle is that we are rendering the sequence asset directly and ignoring the actor when using MRQ, I’m not sure I understand the logic behind adding a transform track to the actor ?

To add a bit more detail, I think I found a possible solution. All of our level sequence actors are currently placed in Data Layers.

If I try to render using MRQ/MRG through the sequence actor directly, and without doing anything else, no additive transforms whatsoever. I still have the problems mentionned yesterday.

On render time, a Level sequence actor gets created LevelSequenceActor0, and that actor doesn’t inherit the Override Instance Data from my original actor. So my transforms are broken.

But if I remove my initial sequence actor from this data layer and try to render again, on render time, the LevelSequenceActor doesn’t get created, so I assume it renders from the actor context directly ?

And then the transforms are applied correctly.

Do you think that’s a safe route to go ?

Thank you so much !

Hi Chad,

Thank you so much for this explanation, it does make sense. Looks like everything is working for me !

For the Data layers, I just created level sequences that are duplicated, but not part of data layers, and our animators are now rendering their playblasts from this context. And for the transform track option on the sequence itself, I’m keeping that in my back pocket in case rendering from duplicated actors doesn’t cut if for me anymore !

Thanks again for the clear explanation, that really helped !