Description

When running Movie Render Queue job for a sequence which uses FKControlRig and a sequencer window is opened, Track->ReplaceControlRig() is called every single frame, not only an initial frame. This sets CompliledDataManager->IsDirty and lets a sequencer reconstruct (every frame.)  In a repro project scenario, custom track UMovieSceneTestInfoSection::ImportEntityImpl() is called every single frame. What issue happens is depending on scene setup and custom code, but this can cause that Movie Render Queque produces different results depending on whether a sequence window is opened or not. This behavior difference (due to a certain window is openning or not) should not exist.

Steps to Reproduce

Since it is not easy to prepare a scene for reproduce, please use the attached project for repro. This repro project does not include visual issue itself, but can prove different behavior  in code level depending on a sequence window is opened or closed. It requires visual studio for building and confirming.

  1. Open the repro project and NewLevelSequence from the content browser.
  2. Open Movie Render Queue window and run a job for NewLevelSequence.
  3. Confirm UMovieSceneTestInfoSection::ImportEntityImpl() (or UMovieSceneControlRigParameterTrack::ReplaceControlRig()) is called every single frame.
  4. Close Movie Render Queue window and run the job again,
  5. Confirm the above function calls happen on only initial frame.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-200776 in the post.

0
Login to Vote

Fixed
ComponentUE - Anim - Sequencer - MRQ
Affects Versions5.3.2
Target Fix5.4
CreatedNov 20, 2023
ResolvedNov 27, 2023
UpdatedDec 12, 2023