UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneTimeWarpVariant.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "MovieSceneTimeWarpVariant.generated.h"
7
8
9struct FFrameRate;
16
18
19namespace UE::MovieScene
20{
21 struct FInverseTransformTimeParams;
22}
23
24
26UENUM()
28{
29 FixedPlayRate = 0x0, // FMovieSceneNumericVariant is a fixed double
30 Custom = 0x1, // PAYLOAD_Bits is a UMovieSceneTimeWarpGetter* - matches FMovieSceneNumericVariant::TYPE_CustomPtr - 1
31 FixedTime = 0x2, // PAYLOAD_Bits is a FMovieSceneTimeWarpFixedFrame (explicitly fixed time or zero timescale)
32 FrameRate = 0x3, // PAYLOAD_Bits is a FMovieSceneTimeWarpFrameRate defining a frame rate from outer to inner space
33 Loop = 0x4, // PAYLOAD_Bits is a FMovieSceneTimeWarpLoop
34 Clamp = 0x5, // PAYLOAD_Bits is a FMovieSceneTimeWarpClamp
35
36 LoopFloat = 0x6, // PAYLOAD_Bits is a FMovieSceneTimeWarpLoopFloat
37 ClampFloat = 0x7, // PAYLOAD_Bits is a FMovieSceneTimeWarpClampFloat
38
39 // Max of 8 types supported
40};
41
42
49USTRUCT(BlueprintType, meta=(HasNativeBreak="/Script/SequencerScripting.MovieSceneTimeWarpExtensions.BreakTimeWarp", HasNativeMake="/Script/SequencerScripting.MovieSceneTimeWarpExtensions.MakeTimeWarp"))
51{
53
54
58 : Variant(1.0)
59 {
60 }
61
62
70
71
77 {
78 Set(In);
79 }
80
81
87 {
88 Set(In);
89 }
90
91
97 {
98 Set(In);
99 }
100
101
106 : Variant(NoInit)
107 {
108 Set(In);
109 }
110
111
119
120
125 {
126 Variant = Other.Variant.ShallowCopy();
127 return *this;
128 }
129
130
135
136
141
142
147 {
149 return *this;
150 }
151
152
157 {
158 return A.Variant == B.Variant;
159 }
160
161
166 {
167 return A.Variant != B.Variant;
168 }
169
170
176 {
177 return FMovieSceneTimeWarpVariant(Variant.ShallowCopy());
178 }
179
180
186 {
187 if (GetType() == EMovieSceneTimeWarpType::Custom)
188 {
190 }
191
192 return ShallowCopy();
193 }
194
195
201 {
202 Variant.MakeWeakUnsafe();
203 }
204
205public:
206
207
215
216
217public:
218
219
223 EMovieSceneTimeWarpType GetType() const;
224
225
226 /*
227 * Retrieve this time-warp's constant play rate.
228 * @note: Only valid where GetType() == EMovieSceneTimeWarpType::FixedPlayRate
229 */
230 MOVIESCENE_API double AsFixedPlayRate() const;
231
232
233 /*
234 * Retrieve this time-warp's constant play rate clampoed to the range of a float
235 * @note: Only valid where GetType() == EMovieSceneTimeWarpType::FixedPlayRate
236 */
237 MOVIESCENE_API float AsFixedPlayRateFloat() const;
238
239
240 /*
241 * Cast this variant to a fixed time.
242 * @note: Only valid where GetType() == EMovieSceneTimeWarpType::FixedTime
243 */
245
246
247 /*
248 * Cast this variant to a frame-rate conversion
249 * @note: Only valid where GetType() == EMovieSceneTimeWarpType::FrameRate
250 */
252
253
254 /*
255 * Cast this variant to a frame-based loop
256 * @note: Only valid where GetType() == EMovieSceneTimeWarpType::Loop
257 */
259
260
261 /*
262 * Cast this variant to a clamped range
263 * @note: Only valid where GetType() == EMovieSceneTimeWarpType::Clamp
264 */
266
267
268 /*
269 * Cast this variant to a floating-point loop
270 * @note: Only valid where GetType() == EMovieSceneTimeWarpType::LoopFloat
271 */
273
274
275 /*
276 * Cast this variant to a floating-point clamped range
277 * @note: Only valid where GetType() == EMovieSceneTimeWarpType::ClampFloat
278 */
280
281
282 /*
283 * Cast this variant to a custom time warp implementation
284 * @note: Only valid where GetType() == EMovieSceneTimeWarpType::Custom
285 */
287
288
289public:
290
291
296
297
302
303
308
309
314
315
320
321
326
327
332
333
338
339
343 MOVIESCENE_API void ScaleBy(double ScaleFactor);
344
345public:
346
347 /*~ For TStructOpsTypeTraits */
348 bool Serialize(FArchive& Ar);
349 bool SerializeFromMismatchedTag(const FPropertyTag& Tag, FStructuredArchive::FSlot Slot);
350 bool ExportTextItem(FString& ValueStr, const FMovieSceneTimeWarpVariant& DefaultValue, UObject* Parent, int32 PortFlags, UObject* ExportRootScope) const;
351 bool ImportTextItem(const TCHAR*& Buffer, int32 PortFlags, UObject* Parent, FOutputDevice* ErrorText);
352
360
361private:
362
363 static_assert(PLATFORM_LITTLE_ENDIAN, "This class has not been written with big-endian support.");
364
365 UPROPERTY()
367};
368
369template<>
371{
372 enum
373 {
374 WithCopy = true,
375 WithSerializer = true,
376 WithExportTextItem = true,
377 WithImportTextItem = true,
378 WithIdenticalViaEquality = true,
379 WithStructuredSerializeFromMismatchedTag = true,
380 };
381};
382
383
#define PLATFORM_LITTLE_ENDIAN
Definition AndroidPlatform.h:38
@ NoInit
Definition CoreMiscDefines.h:158
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
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
EMovieSceneTimeWarpType
Definition MovieSceneTimeWarpVariant.h:28
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Archive.h:1208
Definition OutputDevice.h:133
Definition StructuredArchiveSlots.h:52
Definition MovieSceneTimeWarpGetter.h:37
Definition Object.h:95
Definition ConstraintsManager.h:14
Definition FrameRate.h:21
Definition FrameTime.h:16
Definition MovieSceneNumericVariant.h:35
MOVIESCENE_API FMovieSceneNumericVariant ShallowCopy() const
Definition MovieSceneNumericVariant.cpp:81
Definition MovieSceneTimeWarpVariantPayloads.h:131
Definition MovieSceneTimeWarpVariantPayloads.h:92
Definition MovieSceneTimeWarpVariantPayloads.h:28
Definition MovieSceneTimeWarpVariantPayloads.h:148
Definition MovieSceneTimeWarpVariantPayloads.h:110
Definition MovieSceneTimeWarpVariantPayloads.h:70
Definition MovieSceneTimeWarpVariant.h:51
EMovieSceneTimeWarpType GetType() const
Definition MovieSceneTimeWarpVariant.h:384
FMovieSceneTimeWarpVariant(double InLiteralPlayRate)
Definition MovieSceneTimeWarpVariant.h:66
FMovieSceneTimeWarpVariant(FMovieSceneTimeWarpVariant &&)=default
FMovieSceneTimeWarpVariant & operator=(const FMovieSceneTimeWarpVariant &Other)
Definition MovieSceneTimeWarpVariant.h:124
friend bool operator!=(const FMovieSceneTimeWarpVariant &A, const FMovieSceneTimeWarpVariant &B)
Definition MovieSceneTimeWarpVariant.h:165
FMovieSceneTimeWarpVariant(FMovieSceneNumericVariant &&Other)
Definition MovieSceneTimeWarpVariant.h:356
FMovieSceneTimeWarpVariant ShallowCopy() const
Definition MovieSceneTimeWarpVariant.h:175
friend bool operator==(const FMovieSceneTimeWarpVariant &A, const FMovieSceneTimeWarpVariant &B)
Definition MovieSceneTimeWarpVariant.h:156
FMovieSceneTimeWarpVariant(const FMovieSceneTimeWarpFixedFrame &In)
Definition MovieSceneTimeWarpVariant.h:75
FMovieSceneTimeWarpVariant(const FMovieSceneTimeWarpLoop &In)
Definition MovieSceneTimeWarpVariant.h:85
FMovieSceneTimeWarpVariant DeepCopy(UObject *NewOuter) const
Definition MovieSceneTimeWarpVariant.h:185
FMovieSceneTimeWarpVariant(const FMovieSceneTimeWarpVariant &Other)
Definition MovieSceneTimeWarpVariant.h:115
FMovieSceneTimeWarpVariant & operator=(FMovieSceneTimeWarpVariant &&)=default
FMovieSceneTimeWarpVariant(UMovieSceneTimeWarpGetter *In)
Definition MovieSceneTimeWarpVariant.h:105
FMovieSceneTimeWarpVariant & operator=(double InLiteralPlayRate)
Definition MovieSceneTimeWarpVariant.h:146
void MakeWeakUnsafe()
Definition MovieSceneTimeWarpVariant.h:200
FMovieSceneTimeWarpVariant(const FMovieSceneTimeWarpClamp &In)
Definition MovieSceneTimeWarpVariant.h:95
Definition PropertyTag.h:38
Definition StructOpsTypeTraits.h:11
Definition StructOpsTypeTraits.h:46