Level Sequence fails to play if level is instanced
I have a level which plays a level sequence when a trigger box is entered. It works fine when tested as a level on its own. However when I instantiate it dynamically as a level instance the sequence does not play. I know it is getting triggered as I have a play indicator from the same trigger that is working.
Here is the code in the instance - It sets the display base (from the content demo) colour to indicate activation and then plays the sequence. And here is the calling code in the dynamic environment. InfoID is the level text for the Test level shown above.
Has anyone else faced this problem? What am I missing?
Yes, this is a thing. The bindings between Sequencer and the actors in the sequence do not resolve for instanced levels. Sequencer doesn't know which level instance the actors refer to (UWorld vs ULevel), so it fails the binding.
A work-around is to dynamically bind the actors before playing. This could be clunky for sequences involving a lot of actors, but may work great to get around this limitation for smaller setups.
In the World Outliner of the level that is being streamed in, I had to make sure the actors used in the sequence were children of the Level Sequence actor, otherwise the actors would animate relative to the origin rather than relative to the offset of the instanced level. Using the "attach to actor" blueprint node might do the same thing if you want to do everything dynamically (ex: dynamically spawning actors through blueprint that you also want to use in the sequence that's in this dynamically streamed instanced level), although I didn't test it.
Some documentation: https://docs.unrealengine.com/en-US/Engine/Sequencer/HowTo/AnimateDynamicObjects
Follow this question
Once you sign in you will be able to subscribe for any updates here