UE5: Creating a LevelSequence via Blueprint, how to assign camera?

I’m like to use Unreal to render HQ screenshots via an automated pipeline. The current plan is to use the MovieRenderQueue feature for this, which means for each screenshot position (=CameraActor in the level) I need to create a LevelSequence asset which just contains a single frame and binds that camera.

I managed to create a LevelSequence asset via Blueprint and set playback start/end to end up with an empty 1-frame sequence.

With the “Add Master Track” node I successfully added a MovieSceneCameraCutTrack. Via “Add Possessable”, I could also add a track for the camera.

However, the last thing missing is binding the CameraCutTrack to the camera. Via UI this would be two clicks here, but how do I do that via Blueprint?

Is maybe UMovieSceneCameraCutTrack::AddNewCameraCut what I’m looking for and there is just a node missing to call it?

More Context: My first attempt was of course using the TakeHighResScreenshot function of Unreal. Actually made my own latent version of the node (with some other extras), so I could better integrate it into my pipeline. However, I like to use PathTracing, which is not supported as there seems no way to make it wait for the image to finish rendering. Therefore MovieRenderQueue seems to be the way, and it all works including creating the jobs for the queue and executing them via Blueprint. Well, except that last little step above to automate it.

As suspected, calling AddNewCameraCut was correct. Just needs a tiny node you can add in your Blueprint library somewhere:

UFUNCTION(BlueprintCallable, Category = "MyOwnCategory")
static void AddNewCameraCut(UMovieSceneCameraCutTrack* CameraCutTrack, const FSequencerBindingProxy& CameraActorBinding, int32 StartFrame = 0);
{
	const FGuid& CameraID = CameraActorBinding.BindingID;
	if (CameraID.IsValid())
		CameraCutTrack->AddNewCameraCut(UE::MovieScene::FRelativeObjectBindingID(CameraID), StartFrame);
}

Use like this:

3 Likes