UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneEvaluationTrack.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Array.h"
8#include "CoreMinimal.h"
15#include "HAL/Platform.h"
16#include "Misc/Guid.h"
17#include "Misc/InlineValue.h"
18#include "MovieSceneTrack.h"
19#include "Templates/EnableIf.h"
22#include "UObject/Class.h"
23#include "UObject/NameTypes.h"
27
28#include "MovieSceneEvaluationTrack.generated.h"
29
30class FArchive;
32class UObject;
37
39UENUM()
41{
43 Static,
44
46 Swept,
47};
48
53USTRUCT()
55{
57
58
60
65
69
73
74public:
75
79 inline const FGuid& GetObjectBindingID() const
80 {
81 return ObjectBindingID;
82 }
83
90 {
91 return TArrayView<FMovieSceneEvalTemplatePtr>(ChildTemplates.GetData(), ChildTemplates.Num());
92 }
93
98 {
99 return TArrayView<const FMovieSceneEvalTemplatePtr>(ChildTemplates.GetData(), ChildTemplates.Num());
100 }
101
105 inline const FMovieSceneEvalTemplate& GetChildTemplate(int32 TemplateIndex) const
106 {
107 return *ChildTemplates[TemplateIndex];
108 }
109
113 inline bool HasChildTemplate(int32 TemplateIndex) const
114 {
115 return ChildTemplates.IsValidIndex(TemplateIndex) && ChildTemplates[TemplateIndex].IsValid();
116 }
117
118public:
119
126 {
127 return EvaluationGroup;
128 }
129
141 {
142 EvaluationGroup = InEvaluationGroup;
143 }
144
145public:
146
153 {
154 return EvaluationPriority;
155 }
156
163 {
164 EvaluationPriority = InEvaluationPriority;
165 }
166
173 {
174 return EvaluationMethod;
175 }
176
183 {
184 EvaluationMethod = InMethod;
185 }
186
194 {
195 bEvaluateInPreroll = bInEvaluateInPreroll;
196 bEvaluateInPostroll = bInEvaluateInPostroll;
197 }
198
203 {
204 return bEvaluateInPreroll;
205 }
206
211 {
212 return bEvaluateInPostroll;
213 }
214
219 {
220 bTearDownPriority = true;
221 }
222
227 {
228 return bTearDownPriority;
229 }
230
231public:
232
243
254
265
276
285
286private:
287
292
297
298public:
299
305 MOVIESCENE_API void DefineAsSingleTemplate(FMovieSceneEvalTemplatePtr&& InTemplate);
306
314
319 {
320 SourceTrack = InSourceTrack;
321 }
322
327 {
328 return SourceTrack.Get();
329 }
330
337 template<typename T>
340 {
342 TrackTemplate->SetupOverrides();
343 }
344
348 MOVIESCENE_API void SetupOverrides();
349
353 MOVIESCENE_API void PostSerialize(const FArchive& Ar);
354
356 {
357 return TrackTemplate.IsValid() && TrackTemplate->HasCustomInitialize();
358 }
359
360public:
361
369 {
370 if (!TrackTemplate.IsValid())
371 {
372 return;
373 }
374 TrackTemplate->OnBeginEvaluation(PersistentData, Player);
375 }
376
384 {
385 if (!TrackTemplate.IsValid())
386 {
387 return;
388 }
389 TrackTemplate->OnEndEvaluation(PersistentData, Player);
390 }
391
392private:
393
395 UPROPERTY()
396 FGuid ObjectBindingID;
397
399 UPROPERTY()
400 uint16 EvaluationPriority;
401
403 UPROPERTY()
404 EEvaluationMethod EvaluationMethod;
405
407 UPROPERTY()
408 TWeakObjectPtr<UMovieSceneTrack> SourceTrack;
409
411 UPROPERTY()
412 TArray<FMovieSceneEvalTemplatePtr> ChildTemplates;
413
415 UPROPERTY()
417
419 UPROPERTY()
420 FName EvaluationGroup;
421
423 UPROPERTY()
424 uint32 bEvaluateInPreroll : 1;
425
427 UPROPERTY()
428 uint32 bEvaluateInPostroll : 1;
429
431 UPROPERTY()
432 uint32 bTearDownPriority : 1;
433};
434
436
437#if WITH_DEV_AUTOMATION_TESTS
438
440{
443
446};
447
448#endif
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
EEvaluationMethod
Definition MovieSceneEvaluationTrack.h:41
#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
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition NameTypes.h:617
Definition IMovieScenePlayer.h:90
Definition ArrayView.h:139
Definition Array.h:670
Definition EnableIf.h:20
Definition InlineValue.h:22
Definition MovieSceneTrack.h:206
Definition Object.h:95
Definition Guid.h:109
Definition MovieScenePlayback.h:184
Definition MovieSceneEvalTemplate.h:214
Definition MovieSceneEvalTemplate.h:47
Definition MovieSceneEvaluationOperand.h:15
Definition MovieSceneEvaluationTrack.h:55
bool ShouldEvaluateInPreroll() const
Definition MovieSceneEvaluationTrack.h:202
const FMovieSceneEvalTemplate & GetChildTemplate(int32 TemplateIndex) const
Definition MovieSceneEvaluationTrack.h:105
bool HasCustomInitialize() const
Definition MovieSceneEvaluationTrack.h:355
EEvaluationMethod GetEvaluationMethod() const
Definition MovieSceneEvaluationTrack.h:172
void OnBeginEvaluation(FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player) const
Definition MovieSceneEvaluationTrack.h:368
FMovieSceneEvaluationTrack(const FMovieSceneEvaluationTrack &)=default
TEnableIf< TPointerIsConvertibleFromTo< T, FMovieSceneTrackImplementation >::Value >::Type SetTrackImplementation(T &&InImpl)
Definition MovieSceneEvaluationTrack.h:339
void SetEvaluationPriority(uint16 InEvaluationPriority=1000)
Definition MovieSceneEvaluationTrack.h:162
FMovieSceneEvaluationTrack & operator=(FMovieSceneEvaluationTrack &&)=default
void SetSourceTrack(UMovieSceneTrack *InSourceTrack)
Definition MovieSceneEvaluationTrack.h:318
TArrayView< const FMovieSceneEvalTemplatePtr > GetChildTemplates() const
Definition MovieSceneEvaluationTrack.h:97
void SetEvaluationGroup(FName InEvaluationGroup)
Definition MovieSceneEvaluationTrack.h:140
const FGuid & GetObjectBindingID() const
Definition MovieSceneEvaluationTrack.h:79
bool HasTearDownPriority() const
Definition MovieSceneEvaluationTrack.h:226
void SetEvaluationMethod(EEvaluationMethod InMethod)
Definition MovieSceneEvaluationTrack.h:182
bool HasChildTemplate(int32 TemplateIndex) const
Definition MovieSceneEvaluationTrack.h:113
FName GetEvaluationGroup() const
Definition MovieSceneEvaluationTrack.h:125
void PrioritizeTearDown()
Definition MovieSceneEvaluationTrack.h:218
bool ShouldEvaluateInPostroll() const
Definition MovieSceneEvaluationTrack.h:210
FMovieSceneEvaluationTrack & operator=(const FMovieSceneEvaluationTrack &)=default
void OnEndEvaluation(FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player) const
Definition MovieSceneEvaluationTrack.h:383
UMovieSceneTrack * GetSourceTrack() const
Definition MovieSceneEvaluationTrack.h:326
TArrayView< FMovieSceneEvalTemplatePtr > GetChildTemplates()
Definition MovieSceneEvaluationTrack.h:89
uint16 GetEvaluationPriority() const
Definition MovieSceneEvaluationTrack.h:152
void SetPreAndPostrollConditions(bool bInEvaluateInPreroll, bool bInEvaluateInPostroll)
Definition MovieSceneEvaluationTrack.h:193
FMovieSceneEvaluationTrack(FMovieSceneEvaluationTrack &&)=default
Definition MovieSceneExecutionTokens.h:35
Definition MovieSceneEvaluationField.h:544
Definition MovieSceneTemplateInterrogation.h:70
Definition MovieSceneTrackImplementation.h:130
Definition PersistentEvaluationData.h:91
Definition StructOpsTypeTraits.h:11
Definition StructOpsTypeTraits.h:46
Definition WeakObjectPtrTemplates.h:25