UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieScenePossessable.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "CoreMinimal.h"
8#include "CoreTypes.h"
9#include "Misc/Guid.h"
13#include "UObject/NameTypes.h"
14#include "UObject/Object.h"
17
18#include "MovieScenePossessable.generated.h"
19
21class UClass;
22class UMovieScene;
24
25namespace UE::MovieScene
26{
27 struct FSharedPlaybackState;
28}
29
33USTRUCT()
35{
37
38public:
39
42
56
57public:
58
65 const FGuid& GetGuid() const
66 {
67 return Guid;
68 }
69
76 void SetGuid(const FGuid& InGuid)
77 {
78 Guid = InGuid;
79 }
80
87 const FString& GetName() const
88 {
89 return Name;
90 }
91
97 void SetName(const FString& InName)
98 {
99 Name = InName;
100 }
101
102#if WITH_EDITORONLY_DATA
103
110 const UClass* GetPossessedObjectClass() const
111 {
112 if (PossessedObjectClass.ToSoftObjectPath().IsNull())
113 {
114 return nullptr;
115 }
116
117 return LoadObject<UClass>(nullptr, *PossessedObjectClass.ToSoftObjectPath().ToString(), nullptr, LOAD_EditorOnly);
118 }
119
126 {
127 return (const UClass*)(PossessedObjectClass.Get());
128 }
129
137 {
139 }
140
145
146#endif
147
153 const FGuid& GetParent() const
154 {
155 return ParentGuid;
156 }
157
158 UE_DEPRECATED(5.1, "Please use the overload that takes a UMovieScene* to ensure that events are triggered correctly")
159 MOVIESCENE_API void SetParent(const FGuid& InParentGuid);
160
166 MOVIESCENE_API void SetParent(const FGuid& InParentGuid, UMovieScene* Owner);
167
169 UPROPERTY(EditAnywhere, AdvancedDisplay, Category=Actor)
171
172 // Property has been deprecated- 'Dynamic Bindings' are now handled by UMovieSceneReplaceableDirectorBlueprintBinding and the custom binding system
173 UPROPERTY()
174 FMovieSceneDynamicBinding DynamicBinding_DEPRECATED;
175
176 /* Get the optional binding id for binding to a spawnable */
177 const FMovieSceneObjectBindingID& GetSpawnableObjectBindingID() const
178 {
179 return SpawnableObjectBindingID;
180 }
181
182 /* Set the optional binding id for binding to a spawnable */
187
188 /* Bind the potential spawnable object to this possessable by setting the ObjectBindingID */
189 MOVIESCENE_API bool BindSpawnableObject(FMovieSceneSequenceID SequenceID, UObject* Object, TSharedRef<const UE::MovieScene::FSharedPlaybackState> SharedPlaybackState);
190
191 UE_DEPRECATED(5.4, "Please use the FSharedPlaybackState version of this method")
192 MOVIESCENE_API bool BindSpawnableObject(FMovieSceneSequenceID SequenceID, UObject* Object, IMovieScenePlayer* Player);
193
194 /* For sorts so we can search quickly by Guid */
195 inline bool operator<(const FMovieScenePossessable& RHS) const { return Guid < RHS.Guid; }
196 inline friend bool operator<(const FGuid& InGuid, const FMovieScenePossessable& RHS) { return InGuid < RHS.GetGuid(); }
197 inline bool operator<(const FGuid& InGuid) const { return Guid < InGuid; }
198
199private:
200
202 // @todo sequencer: Guids need to be handled carefully when the asset is duplicated (or loaded after being copied on disk).
203 // Sometimes we'll need to generate fresh Guids.
204 UPROPERTY()
205 FGuid Guid;
206
208 // @todo sequencer: Should be editor-only probably
209 UPROPERTY()
210 FString Name;
211
212#if WITH_EDITORONLY_DATA
213
215 UPROPERTY()
217
218#endif
219
221 UPROPERTY()
222 FGuid ParentGuid;
223
225 UPROPERTY()
226 FMovieSceneObjectBindingID SpawnableObjectBindingID;
227};
#define WITH_EDITORONLY_DATA
Definition CoreMiscDefines.h:24
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define USTRUCT(...)
Definition ObjectMacros.h:746
@ LOAD_EditorOnly
Load for editor-only purposes and by editor-only code.
Definition ObjectMacros.h:72
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
if(Failed) console_printf("Failed.\n")
Definition NameTypes.h:617
Definition IMovieScenePlayer.h:90
Definition Array.h:670
Definition SharedPointer.h:153
Definition SoftObjectPtr.h:763
Definition Class.h:3793
Definition MovieSceneSequence.h:73
Definition MovieScene.h:358
Definition Object.h:95
Definition ConstraintsManager.h:14
Definition Guid.h:109
Definition MovieSceneDynamicBinding.h:36
Definition MovieSceneObjectBindingID.h:203
Definition MovieScenePossessable.h:35
FMovieScenePossessable()
Definition MovieScenePossessable.h:41
const FGuid & GetGuid() const
Definition MovieScenePossessable.h:65
void SetSpawnableObjectBindingID(const FMovieSceneObjectBindingID &InSpawnableObjectBindingID)
Definition MovieScenePossessable.h:183
void SetName(const FString &InName)
Definition MovieScenePossessable.h:97
bool operator<(const FGuid &InGuid) const
Definition MovieScenePossessable.h:197
const FString & GetName() const
Definition MovieScenePossessable.h:87
void SetGuid(const FGuid &InGuid)
Definition MovieScenePossessable.h:76
const FGuid & GetParent() const
Definition MovieScenePossessable.h:153
friend bool operator<(const FGuid &InGuid, const FMovieScenePossessable &RHS)
Definition MovieScenePossessable.h:196
FMovieScenePossessable(const FString &InitName, UClass *InitPossessedObjectClass)
Definition MovieScenePossessable.h:49
Definition MovieSceneSequenceID.h:13