Looks like MovieGraphSequenceDataSource::CacheLevelSequenceData(ULevelSequence* InSequence) is where it looks for and overrides the level sequence actor when using Movie Render Graph. Debugging that shows that my level sequence actor is not found in the world. In my pre-job callback a activate the data layer that holds my level sequence actor.
UUnrealEditorSubsystem* UnrealEditorSubsystem = GEditor->GetEditorSubsystem<UUnrealEditorSubsystem>(); UWorld* World = UnrealEditorSubsystem->GetGameWorld(); UDataLayerManager* DataLayerManager = UDataLayerManager::GetDataLayerManager(World); UDataLayerInstance* DataLayerInstance = const_cast<UDataLayerInstance*>(DataLayerManager->GetDataLayerInstanceFromAssetName(DataLayerAssetFName)); DataLayerManager->SetDataLayerInstanceRuntimeState(DataLayerInstance, EDataLayerRuntimeState::Activated, true);
This seems correct, but happy to have you verify this.
The question then is, how do I force this to finish up, load the geometry into the world, before proceeding with the render so that the level sequence actor - and all my actual world geometry - is available for the render?