Description

5.8 added Sequencer.AllowPausedClock (on by default) in FMovieSceneTimeController_ExternalClock::OnRequestCurrentTime (MovieSceneTimeController.cpp):

PausedTime = Context.World()>RealTimeSeconds - Context.World()>AudioTimeSeconds;

double CurrentSequenceTimeSeconds = UndilatedDeltaTime + AccumulatedDilation - PausedTime;

RealTimeSeconds - AudioTimeSeconds is the total time the world has been paused since it started, not since playback started. If the world was paused at any point before Play(), the first ticks return a time before the start frame.

ShouldStopOrLoop only checks the upper bound in forward playback, so the player evaluates at that negative time. Everything active at frame 0 is unlinked right after being linked. For example, IMovieSceneEvaluationHook::End fires one frame after Begin. The sequence then holds before its start until the elapsed time catches up with the total paused time.

This affects the Audio, Platform and RelativeTimecode clocks.

Steps to Reproduce

Steps to Reproduce

  1. Create a Level Sequence with Clock Source = Audio (or Platform) and a section starting at frame 0.
  2. In PIE, pause the game for a few seconds (SetGamePaused(true)), then unpause.
  3. Call Play() on the sequence.
  4. With log LogMovieScene VeryVerbose, TimeController ... Sequence Offset Seconds is negative, and the frame-0 section is torn down immediately.

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Audio - Sequencer
Affects Versions5.8
CreatedOct 17, 2026
UpdatedOct 17, 2026
View Jira Issue