UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieScenePlaybackManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8#include "Misc/Optional.h"
9#include "MovieSceneFwd.h"
10
12
13namespace UE::MovieScene { struct FSharedPlaybackState; }
14
24{
30 None,
31
38
45};
46
55{
56public:
57
59
62
65
72
82
87
95
101
104
109
112
117
118public:
119
121 FFrameRate GetDisplayRate() const { return DisplayRate; }
123 FFrameRate GetTickResolution() const { return PlaybackPosition.GetOutputRate(); }
124
126 EMovieSceneLoopDissection GetDissectLooping() const { return DissectLooping; }
129
131 EMovieScenePlayerStatus::Type GetPlaybackStatus() const { return PlaybackStatus; }
134
136 int32 GetNumLoopsToPlay() const { return NumLoopsToPlay; }
139
141 int32 GetNumLoopsCompleted() const { return NumLoopsCompleted; }
143 void ResetNumLoopsCompleted() { NumLoopsCompleted = 0; }
144
146 double GetPlayRate() const { return PlayRate; }
148 void SetPlayRate(double InPlayRate) { PlayRate = InPlayRate; }
149
151 bool IsPlayingForward() const { return PlayDirection == EPlayDirection::Forwards; }
153 bool IsPlayingBackward() const { return PlayDirection == EPlayDirection::Backwards; }
155 EPlayDirection GetPlayDirection() const { return PlayDirection; }
160
162 bool IsPingPongPlayback() const { return bPingPongPlayback; }
169
180
187
189 bool ShouldTransformPlaybackTime() const { return bTransformPlaybackTime; }
192
197 const FMovieSceneSequenceTransform& GetPlaybackTimeTransform() const { return TimeTransform; }
198
199 /*
200 * Sets the time transform to apply to the current time when updating.
201 * Only used if ShouldTransformPlaybackTime is true.
202 */
204
205private:
206
207 void InternalUpdateToTick(const FFrameNumber NextTick, FContexts& OutContexts);
208
209 void ResetPlaybackSettings();
210
211 void SetStartAndEndOffsetTicks(FFrameNumber InStartOffsetTicks, FFrameNumber InEndOffsetTicks);
212
213 FFrameNumber GetLastValidTick() const;
214
215private:
216
217 FMovieScenePlaybackPosition PlaybackPosition;
218
219 FFrameRate DisplayRate;
220
221 EMovieScenePlayerStatus::Type PlaybackStatus;
222 EPlayDirection PlayDirection;
223
224 FFrameNumber SequenceStartTick;
225 FFrameNumber SequenceEndTick;
226
227 FFrameNumber StartOffsetTicks;
228 FFrameNumber EndOffsetTicks;
229
230 TOptional<FFrameNumber> PlaybackEndTick;
231
232 int32 NumLoopsToPlay = 1;
233 int32 NumLoopsCompleted = 0;
234
235 double PlayRate = 1.0;
236
237 FMovieSceneSequenceTransform TimeTransform;
238
240
241 bool bPingPongPlayback = false;
242 bool bTransformPlaybackTime = false;
243};
244
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EMovieSceneLoopDissection
Definition MovieScenePlaybackManager.h:24
EPlayDirection
Definition MovieScenePlayback.h:26
Definition MovieScenePlaybackManager.h:55
EPlayDirection GetPlayDirection() const
Definition MovieScenePlaybackManager.h:155
MOVIESCENE_API void SetCurrentTime(const FFrameTime &InFrameTime)
Definition MovieScenePlaybackManager.cpp:376
MOVIESCENE_API void SetPlaybackEndTime(const FFrameTime &InEndTime)
Definition MovieScenePlaybackManager.cpp:479
int32 GetNumLoopsToPlay() const
Definition MovieScenePlaybackManager.h:136
void SetPlayDirection(EPlayDirection InPlayDirection)
Definition MovieScenePlaybackManager.h:157
MOVIESCENE_API FFrameTime GetStartOffset() const
Definition MovieScenePlaybackManager.cpp:457
bool IsPingPongPlayback() const
Definition MovieScenePlaybackManager.h:162
MOVIESCENE_API FFrameTime GetEffectiveStartTime() const
Definition MovieScenePlaybackManager.cpp:407
MOVIESCENE_API void SetPingPongPlayback(bool bInPingPongPlayback)
Definition MovieScenePlaybackManager.cpp:510
MOVIESCENE_API FFrameTime GetCurrentTime() const
Definition MovieScenePlaybackManager.cpp:370
bool IsPlayingBackward() const
Definition MovieScenePlaybackManager.h:153
void ResetNumLoopsCompleted()
Definition MovieScenePlaybackManager.h:143
MOVIESCENE_API FMovieScenePlaybackManager()
Definition MovieScenePlaybackManager.cpp:11
MOVIESCENE_API void SetEndOffsetAsTime(const FFrameTime &InEndTime)
Definition MovieScenePlaybackManager.cpp:435
void SetPlayRate(double InPlayRate)
Definition MovieScenePlaybackManager.h:148
MOVIESCENE_API TOptional< FFrameTime > GetPlaybackEndTime() const
Definition MovieScenePlaybackManager.cpp:469
MOVIESCENE_API void ClearPlaybackEndTime()
Definition MovieScenePlaybackManager.cpp:488
FFrameRate GetTickResolution() const
Definition MovieScenePlaybackManager.h:123
void SetTransformPlaybackTime(bool bInTransformPlaybackTime)
Definition MovieScenePlaybackManager.h:191
MOVIESCENE_API void ReversePlayDirection()
Definition MovieScenePlaybackManager.cpp:498
MOVIESCENE_API FMovieSceneContext UpdateToNextTick()
Definition MovieScenePlaybackManager.cpp:359
MOVIESCENE_API FFrameTime GetEffectiveEndTime() const
Definition MovieScenePlaybackManager.cpp:413
FFrameRate GetDisplayRate() const
Definition MovieScenePlaybackManager.h:121
MOVIESCENE_API void UpdateTo(const FFrameTime NextTime, FContexts &OutContexts)
Definition MovieScenePlaybackManager.cpp:81
MOVIESCENE_API void SetStartOffset(const FFrameTime &InStartOffset)
Definition MovieScenePlaybackManager.cpp:419
MOVIESCENE_API void SetCurrentTimeOffset(const FFrameTime &InFrameTimeOffset)
Definition MovieScenePlaybackManager.cpp:385
MOVIESCENE_API void SetEndOffset(const FFrameTime &InEndOffset)
Definition MovieScenePlaybackManager.cpp:427
double GetPlayRate() const
Definition MovieScenePlaybackManager.h:146
void SetDissectLooping(EMovieSceneLoopDissection InDissectLooping)
Definition MovieScenePlaybackManager.h:128
MOVIESCENE_API void SetNumLoopsToPlay(int32 InNumLoopsToPlay)
Definition MovieScenePlaybackManager.cpp:493
TArray< FMovieSceneContext, TInlineAllocator< 2 > > FContexts
Definition MovieScenePlaybackManager.h:58
bool IsPlayingForward() const
Definition MovieScenePlaybackManager.h:151
bool ShouldTransformPlaybackTime() const
Definition MovieScenePlaybackManager.h:189
const FMovieSceneSequenceTransform & GetPlaybackTimeTransform() const
Definition MovieScenePlaybackManager.h:197
MOVIESCENE_API FMovieSceneContext UpdateAtCurrentTime() const
Definition MovieScenePlaybackManager.cpp:365
int32 GetNumLoopsCompleted() const
Definition MovieScenePlaybackManager.h:141
EMovieSceneLoopDissection GetDissectLooping() const
Definition MovieScenePlaybackManager.h:126
void SetPlaybackStatus(EMovieScenePlayerStatus::Type InPlaybackStatus)
Definition MovieScenePlaybackManager.h:133
void SetPlaybackTimeTransform(const FMovieSceneSequenceTransform &InTimeTransform)
Definition MovieScenePlaybackManager.h:203
MOVIESCENE_API FFrameTime GetEndOffset() const
Definition MovieScenePlaybackManager.cpp:463
EMovieScenePlayerStatus::Type GetPlaybackStatus() const
Definition MovieScenePlaybackManager.h:131
MOVIESCENE_API TRange< FFrameTime > GetEffectivePlaybackRange() const
Definition MovieScenePlaybackManager.cpp:394
Definition Array.h:670
Definition Range.h:50
Definition MovieSceneSequence.h:73
Type
Definition MovieSceneFwd.h:43
Definition ConstraintsManager.h:14
Definition FrameNumber.h:18
Definition FrameRate.h:21
Definition FrameTime.h:16
Definition MovieScenePlayback.h:184
Definition MovieScenePlayback.h:510
FFrameRate GetOutputRate() const
Definition MovieScenePlayback.h:534
Definition MovieSceneSequenceTransform.h:625
Definition Optional.h:131