UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LevelSequence.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"
13#include "LevelSequence.generated.h"
14
15class UBlueprint;
16class UMovieScene;
18class UAssetUserData;
19
23UCLASS(BlueprintType, MinimalAPI)
26{
28
29public:
30
32 UPROPERTY()
34
35public:
36
39
40public:
41
42 // UMovieSceneSequence interface
45
46 UE_DEPRECATED(5.5, "Use the version that takes a SharedPlaybackState")
47 LEVELSEQUENCE_API virtual FGuid FindBindingFromObject(UObject* InObject, UObject* Context) const override;
48 LEVELSEQUENCE_API virtual FGuid FindBindingFromObject(UObject* InObject, TSharedRef<const FSharedPlaybackState> SharedPlaybackState) const override;
49
51 LEVELSEQUENCE_API virtual UMovieScene* GetMovieScene() const override;
52 LEVELSEQUENCE_API virtual UObject* GetParentObject(UObject* Object) const override;
53 LEVELSEQUENCE_API virtual void UnbindPossessableObjects(const FGuid& ObjectId) override;
55 LEVELSEQUENCE_API virtual void UnbindInvalidObjects(const FGuid& ObjectId, UObject* InContext) override;
56 LEVELSEQUENCE_API virtual bool AllowsSpawnableObjects() const override;
57 LEVELSEQUENCE_API virtual bool AllowsCustomBindings() const override;
58 LEVELSEQUENCE_API virtual bool CanRebindPossessable(const FMovieScenePossessable& InPossessable) const override;
59 LEVELSEQUENCE_API virtual UObject* MakeSpawnableTemplateFromInstance(UObject& InSourceObject, FName ObjectName) override;
60 LEVELSEQUENCE_API virtual bool CanAnimateObject(UObject& InObject) const override;
61 LEVELSEQUENCE_API virtual UObject* CreateDirectorInstance(TSharedRef<const FSharedPlaybackState> SharedPlaybackState, FMovieSceneSequenceID SequenceID) override;
62 LEVELSEQUENCE_API virtual const FMovieSceneBindingReferences* GetBindingReferences() const override;
64#if WITH_EDITORONLY_DATA
66#endif
67
68 LEVELSEQUENCE_API virtual void PostInitProperties() override;
69 LEVELSEQUENCE_API virtual bool Rename(const TCHAR* NewName = nullptr, UObject* NewOuter = nullptr, ERenameFlags Flags = REN_None) override;
70
71
72 //~ Begin IInterface_AssetUserData Interface
73 LEVELSEQUENCE_API virtual void AddAssetUserData(UAssetUserData* InUserData) override;
74 LEVELSEQUENCE_API virtual void RemoveUserDataOfClass(TSubclassOf<UAssetUserData> InUserDataClass) override;
75 LEVELSEQUENCE_API virtual UAssetUserData* GetAssetUserDataOfClass(TSubclassOf<UAssetUserData> InUserDataClass) override;
76 LEVELSEQUENCE_API virtual const TArray<UAssetUserData*>* GetAssetUserDataArray() const override;
77 //~ End IInterface_AssetUserData Interface
78
79
80#if WITH_EDITOR
82 LEVELSEQUENCE_API virtual bool IsFilterSupportedImpl(const FString& InFilterName) const override;
85 UE_DEPRECATED(5.4, "Implement the version that takes FAssetRegistryTagsContext instead.")
89public:
90
93
96
97
98#endif
99
100 LEVELSEQUENCE_API virtual void PostDuplicate(bool bDuplicateForPIE) override;
101
103
104 UE_DEPRECATED(5.4, "Use the base class LocateBoundObjects()")
105 LEVELSEQUENCE_API void LocateBoundObjects(const FGuid& ObjectId, UObject* Context, const FLevelSequenceBindingReference::FResolveBindingParams& InResolveBindingParams, TArray<UObject*, TInlineAllocator<1>>& OutObjects) const;
106
107
108#if WITH_EDITOR
109
111
112public:
113
117
122
124
125protected:
126
127 LEVELSEQUENCE_API virtual FGuid CreatePossessable(UObject* ObjectToPossess) override;
128 LEVELSEQUENCE_API virtual FGuid CreateSpawnable(UObject* ObjectToSpawn) override;
129
131
136
137private:
138#if WITH_EDITOR
139 // Used to convert any old spawnables in this movie scene to use the custom binding system
141 // Used to convert possessables using deprecated 'DynamicBinding' to a custom director blueprint binding
144#endif
145
146#endif // WITH_EDITOR
147
148protected:
149
151 UPROPERTY()
153
154#if WITH_EDITORONLY_DATA
155
157 UPROPERTY()
159
161 UPROPERTY()
163
164#endif
165
170 UPROPERTY()
171 TObjectPtr<UClass> DirectorClass;
172
173public:
179 UFUNCTION(BlueprintPure, Category = "Level Sequence", meta=(DevelopmentOnly))
180 UObject* FindMetaDataByClass(TSubclassOf<UObject> InClass) const
181 {
182#if WITH_EDITORONLY_DATA
183 auto const* Found = MetaDataObjects.FindByPredicate([InClass](UObject* In) { return In && In->GetClass() == InClass; });
184 return Found ? CastChecked<UObject>(*Found) : nullptr;
185#else
186 return nullptr;
187#endif
188 }
189
195 UFUNCTION(BlueprintCallable, Category = "Level Sequence", meta=(DevelopmentOnly))
196 UObject* FindOrAddMetaDataByClass(TSubclassOf<UObject> InClass)
197 {
198#if WITH_EDITORONLY_DATA
199 UObject* Found = FindMetaDataByClass(InClass);
200 if (!Found)
201 {
204 }
205 return Found;
206#else
207 return nullptr;
208#endif
209 }
210
217 UFUNCTION(BlueprintCallable, Category = "Level Sequence", meta=(DevelopmentOnly))
218 UObject* CopyMetaData(UObject* InMetaData)
219 {
220#if WITH_EDITORONLY_DATA
221 if (!InMetaData)
222 {
223 return nullptr;
224 }
225
226 RemoveMetaDataByClass(InMetaData->GetClass());
227
228 UObject* NewMetaData = DuplicateObject(InMetaData, this);
229 MetaDataObjects.Add(NewMetaData);
230
231 return NewMetaData;
232#else
233 return nullptr;
234#endif
235 }
236
241 UFUNCTION(BlueprintCallable, Category = "Level Sequence", meta=(DevelopmentOnly))
242 void RemoveMetaDataByClass(TSubclassOf<UObject> InClass)
243 {
244#if WITH_EDITORONLY_DATA
245 MetaDataObjects.RemoveAll([InClass](UObject* In) { return In && In->GetClass() == InClass; });
246#endif
247 }
248
249#if WITH_EDITORONLY_DATA
250
251public:
252
256 template<typename MetaDataType>
257 MetaDataType* FindMetaData() const
258 {
259 UClass* PredicateClass = MetaDataType::StaticClass();
260 auto const* Found = MetaDataObjects.FindByPredicate([PredicateClass](UObject* In){ return In && In->GetClass() == PredicateClass; });
261 return Found ? CastChecked<MetaDataType>(*Found) : nullptr;
262 }
263
268 template<typename MetaDataType>
269 MetaDataType* FindOrAddMetaData()
270 {
272 if (!Found)
273 {
276 }
277 return Found;
278 }
279
284 template<typename MetaDataType>
285 MetaDataType* CopyMetaData(MetaDataType* InMetaData)
286 {
288
289 MetaDataType* NewMetaData = DuplicateObject(InMetaData, this);
290 MetaDataObjects.Add(NewMetaData);
291
292 return NewMetaData;
293 }
294
298 template<typename MetaDataType>
299 void RemoveMetaData()
300 {
301 UClass* PredicateClass = MetaDataType::StaticClass();
302 MetaDataObjects.RemoveAll([PredicateClass](UObject* In){ return In && In->GetClass() == PredicateClass; });
303 }
304
305private:
306
308 UPROPERTY()
310
311#endif
312
313protected:
315 UPROPERTY(EditAnywhere, AdvancedDisplay, Instanced, Category = Animation)
317};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_RetVal_OneParam(ReturnValueType, DelegateName, Param1Type)
Definition DelegateCombinations.h:54
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
ETrackSupport
Definition MovieSceneSequence.h:57
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
uint32 ERenameFlags
Definition ObjectMacros.h:2302
#define REN_None
Definition ObjectMacros.h:2305
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
T * DuplicateObject(T const *SourceObject, UObject *Outer, const FName Name=NAME_None)
Definition UObjectGlobals.h:1977
Definition AssetRegistryTagsContext.h:98
Definition NameTypes.h:617
Definition Interface_AssetUserData.h:20
Definition MovieScene.Build.cs:6
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition SharedPointer.h:153
Definition ContainerAllocationPolicies.h:894
Definition SubclassOf.h:30
Definition AssetUserData.h:18
Definition BlueprintGeneratedClass.h:433
Definition Blueprint.h:403
Definition Class.h:3793
Definition LevelSequence.h:26
Definition MovieSceneSequence.h:73
virtual void LocateBoundObjects(const FGuid &ObjectId, UObject *Context, TArray< UObject *, TInlineAllocator< 1 > > &OutObjects) const
Definition MovieSceneSequence.h:138
Definition MovieScene.h:358
FORCEINLINE UClass * GetClass() const
Definition UObjectBase.h:217
Definition Object.h:95
virtual COREUOBJECT_API bool Rename(const TCHAR *NewName=nullptr, UObject *NewOuter=nullptr, ERenameFlags Flags=REN_None)
Definition Obj.cpp:245
virtual void PostDuplicate(bool bDuplicateForPIE)
Definition Object.h:538
virtual COREUOBJECT_API void GetAssetRegistryTags(FAssetRegistryTagsContext Context) const
Definition Obj.cpp:2423
virtual COREUOBJECT_API void PostInitProperties()
Definition UObjectGlobals.cpp:3961
TVariant< bool, uint64, int64, double, FString > MetaDataType
Definition TypedElementMetaData.h:23
Definition UObjectGlobals.h:3224
Definition Guid.h:109
Definition LevelSequenceBindingReference.h:26
Definition LevelSequenceLegacyObjectReference.h:46
Definition MovieSceneBindingReferences.h:72
Definition MovieSceneDynamicBinding.h:36
Definition MovieSceneEvaluationState.h:94
Definition MovieScenePossessable.h:35
Definition MovieSceneSequenceID.h:13
Definition LevelSequenceBindingReference.h:115
Definition ObjectPtr.h:488
Definition MovieSceneSharedPlaybackState.h:59
Definition Object.h:827