UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneEventSection.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "UObject/Class.h"
8#include "Curves/KeyHandle.h"
9#include "MovieSceneSection.h"
10#include "Curves/NameCurve.h"
12#include "Engine/Engine.h"
17#include "MovieSceneEventSection.generated.h"
18
19struct EventData;
20
21USTRUCT(BlueprintType)
23{
25
27 : PackageFileVersion(GPackageFileUEVersion)
28 , LicenseePackageFileVersion(GPackageFileLicenseeUEVersion )
29 {}
30
33 : StructType(&InStruct)
34 , PackageFileVersion(GPackageFileUEVersion)
35 , LicenseePackageFileVersion(GPackageFileLicenseeUEVersion )
36 {
37 }
38
40
42
48 {
49 return Cast<UScriptStruct>(StructType.TryLoad());
50 }
51
56 {
57 StructType = NewStruct;
58
59 if (!NewStruct)
60 {
61 StructBytes.Reset();
62 }
63 }
64
70 MOVIESCENETRACKS_API void GetInstance(FStructOnScope& OutStruct) const;
71
77 MOVIESCENETRACKS_API void OverwriteWith(uint8* InstancePtr);
78
83
85 {
86 Payload.Serialize(Ar);
87 return Ar;
88 }
89
90private:
91
93 FSoftObjectPath StructType;
94
96 FPackageFileVersion PackageFileVersion;
97 int32 LicenseePackageFileVersion;
98
100 TArray<uint8> StructBytes;
101};
102
103template<>
105{
106 enum
107 {
108 WithCopy = true,
109 WithSerializer = true
110 };
111};
112
113USTRUCT(BlueprintType)
115{
117
120
121 friend bool operator==(const FEventPayload& A, const FEventPayload& B)
122 {
123 return A.EventName == B.EventName && A.Parameters == B.Parameters;
124 }
125
126 friend bool operator!=(const FEventPayload& A, const FEventPayload& B)
127 {
128 return A.EventName != B.EventName || A.Parameters != B.Parameters;
129 }
131 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Event)
132 FName EventName;
133
135 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Event, meta=(ShowOnlyInnerProperties))
137};
138
140USTRUCT()
142{
144
145#if WITH_EDITORONLY_DATA
149 MOVIESCENETRACKS_API void PostSerialize(const FArchive& Ar);
150#endif
151
158 {
159 return TMovieSceneChannelData<FEventPayload>(&Times, &KeyValues, this, &KeyHandles);
160 }
161
171
173 {
174 return Times;
175 }
176
178 {
179 return KeyValues;
180 }
181
182public:
183
184 // ~ FMovieSceneChannel Interface
189 MOVIESCENETRACKS_API virtual void DeleteKeys(TArrayView<const FKeyHandle> InHandles) override;
190 MOVIESCENETRACKS_API virtual void DeleteKeysFrom(FFrameNumber InTime, bool bDeleteKeysBefore) override;
191 MOVIESCENETRACKS_API virtual void RemapTimes(const UE::MovieScene::IRetimingInterface& Retimer) override;
192 MOVIESCENETRACKS_API virtual TRange<FFrameNumber> ComputeEffectiveRange() const override;
193 MOVIESCENETRACKS_API virtual int32 GetNumKeys() const override;
194 MOVIESCENETRACKS_API virtual void Reset() override;
195 MOVIESCENETRACKS_API virtual void Offset(FFrameNumber DeltaPosition) override;
196 MOVIESCENETRACKS_API virtual FKeyHandle GetHandle(int32 Index) override;
197 MOVIESCENETRACKS_API virtual int32 GetIndex(FKeyHandle Handle) override;
198 virtual void Optimize(const FKeyDataOptimizationParams& InParameters) override {}
199 virtual void ClearDefault() override {}
200
201private:
202
203 UPROPERTY(meta=(KeyTimes))
205
207 UPROPERTY(meta=(KeyValues))
208 TArray<FEventPayload> KeyValues;
209
212 FMovieSceneKeyHandleMap KeyHandles;
213
214
215#if WITH_EDITORONLY_DATA
216
217 UPROPERTY()
219
220#endif
221};
222
223#if WITH_EDITORONLY_DATA
224template<>
225struct TStructOpsTypeTraits<FMovieSceneEventSectionData> : public TStructOpsTypeTraitsBase2<FMovieSceneEventSectionData>
226{
227 enum { WithPostSerialize = true };
228};
229#endif
230
234UCLASS(MinimalAPI)
237{
239
240
242
243public:
244
245 // ~UObject interface
246 virtual void PostLoad() override;
247
253 const FMovieSceneEventSectionData& GetEventData() const { return EventData; }
254
255protected:
256
257private:
258
259 UPROPERTY()
260 FNameCurve Events_DEPRECATED;
261
262 UPROPERTY()
264};
265
266template<>
271
274{
275 // Can't evaluate event section data in the typical sense
276 return false;
277}
278
280{
281 // true if any value exists
282 return InChannel->GetData().FindKey(Time) != INDEX_NONE;
283}
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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
UE_FORCEINLINE_HINT bool operator!=(const FIndexedPointer &Other) const
Definition LockFreeList.h:76
bool EvaluateChannel(const FMovieSceneEventSectionData *InChannel, FFrameTime InTime, FEventPayload &OutValue)
Definition MovieSceneEventSection.h:273
bool ValueExistsAtTime(const FMovieSceneEventSectionData *InChannel, FFrameNumber Time, const FEventPayload &Value)
Definition MovieSceneEventSection.h:279
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
const FPackageFileVersion GPackageFileUEVersion(VER_LATEST_ENGINE_UE4, EUnrealEngineObjectUE5Version::AUTOMATIC_VERSION)
const int32 GPackageFileLicenseeUEVersion
Definition ObjectVersion.cpp:22
uint32 Offset
Definition VulkanMemory.cpp:4033
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Archive.h:1208
Definition NameTypes.h:617
Definition StructOnScope.h:13
Definition ArrayView.h:139
Definition Array.h:670
Definition Range.h:50
Definition MovieSceneEventSection.h:237
const FMovieSceneEventSectionData & GetEventData() const
Definition MovieSceneEventSection.h:253
Definition MovieSceneSection.h:243
Definition Class.h:1720
U16 Index
Definition radfft.cpp:71
Definition MovieSceneEventSection.h:115
friend bool operator==(const FEventPayload &A, const FEventPayload &B)
Definition MovieSceneEventSection.h:121
FEventPayload(FName InEventName)
Definition MovieSceneEventSection.h:119
friend bool operator!=(const FEventPayload &A, const FEventPayload &B)
Definition MovieSceneEventSection.h:126
Definition FrameNumber.h:18
Definition FrameTime.h:16
Definition MovieSceneChannelTraits.h:20
Definition KeyHandle.h:15
Definition MovieSceneChannel.h:112
Definition MovieSceneEventSection.h:23
FMovieSceneEventParameters(UScriptStruct &InStruct)
Definition MovieSceneEventSection.h:32
UScriptStruct * GetStructType() const
Definition MovieSceneEventSection.h:47
friend FArchive & operator<<(FArchive &Ar, FMovieSceneEventParameters &Payload)
Definition MovieSceneEventSection.h:84
MOVIESCENETRACKS_API bool Serialize(FArchive &Ar)
Definition MovieSceneEventSection.cpp:295
void Reassign(UScriptStruct *NewStruct)
Definition MovieSceneEventSection.h:55
Definition MovieSceneEventSection.h:142
TMovieSceneChannelData< FEventPayload > GetData()
Definition MovieSceneEventSection.h:157
virtual void ClearDefault() override
Definition MovieSceneEventSection.h:199
virtual void Optimize(const FKeyDataOptimizationParams &InParameters) override
Definition MovieSceneEventSection.h:198
TMovieSceneChannelData< const FEventPayload > GetData() const
Definition MovieSceneEventSection.h:167
TArrayView< const FEventPayload > GetKeyValues() const
Definition MovieSceneEventSection.h:177
TArrayView< const FFrameNumber > GetKeyTimes() const
Definition MovieSceneEventSection.h:172
Definition MovieSceneChannelData.h:37
Definition NameCurve.h:84
Definition ObjectVersion.h:762
Definition SoftObjectPath.h:56
Definition MovieSceneChannelData.h:259
Definition MovieSceneChannelTraits.h:39
Definition MovieSceneChannelTraits.h:63
Definition StructOpsTypeTraits.h:11
@ WithCopy
Definition StructOpsTypeTraits.h:17
@ WithSerializer
Definition StructOpsTypeTraits.h:23
@ WithPostSerialize
Definition StructOpsTypeTraits.h:25
Definition StructOpsTypeTraits.h:46
Definition IMovieSceneRetimingInterface.h:18