UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneSpawnableActorBinding.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
9#include "MovieSceneSpawnableActorBinding.generated.h"
10
16UCLASS(Abstract, MinimalAPI)
19{
20public:
21
23
24public:
25
26 // Optional template support for spawnables. Subclasses can override this to provide support for saving an object template into a binding.
27
28 /* Override and return true if the binding type supports object templates.*/
29 virtual bool SupportsObjectTemplates() const { return false; }
30
31 /* Override and return the object template if the binding type supports object templates*/
32 virtual UObject* GetObjectTemplate() { return nullptr; }
33
39
47
48
52 MOVIESCENETRACKS_API void AutoSetNetAddressableName();
53
54 /*
55 * Returns the optional level name to spawn the actor in, otherwise the Persistent level is used.
56 */
57 FName GetLevelName() const { return LevelName; }
58
59 /*
60 * Used to provide an optional level name to spawn the actor in, otherwise the Persistent level is used.
61 */
63
64
65public:
67 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Spawnable)
68 bool bNetAddressableName = false;
69
71 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Spawnable)
72 FName LevelName;
73
75
76 /* Override to provide Actor class to be spawned*/
77 // TODO: Make UFUNCTION
79
80 /* Optionally override to provide an Actor template to use during Spawn */
81 virtual AActor* GetActorTemplate() const { return nullptr; }
82
83 /* Returns the transform to spawn the actor at*/
84 MOVIESCENETRACKS_API FTransform GetSpawnTransform() const;
85
86 UClass* GetBoundObjectClass() const override { return GetActorClass(); }
87#if WITH_EDITOR
88 /* MovieSceneCustomBinding overrides*/
89 virtual int32 GetCustomBindingPriority() const override { return BaseEnginePriority + 2; }
90#endif
91
92protected:
93 // UMovieSceneSpawnableBindingBase overrides
94
95 /* Overridden to handle Actor-specific spawning */
96 MOVIESCENETRACKS_API virtual UObject* SpawnObjectInternal(UWorld* WorldContext, FName SpawnName, const FGuid& BindingId, int32 BindingIndex, UMovieScene& MovieScene, FMovieSceneSequenceIDRef TemplateID, TSharedRef<const UE::MovieScene::FSharedPlaybackState> SharedPlaybackState) override;
97
98 /* Overridden to handle Actor-specific destruction*/
99 MOVIESCENETRACKS_API virtual void DestroySpawnedObjectInternal(UObject* Object) override;
100
101 MOVIESCENETRACKS_API FName GetSpawnName(const FGuid& BindingId, UMovieScene& MovieScene, FMovieSceneSequenceIDRef TemplateID, TSharedRef<const UE::MovieScene::FSharedPlaybackState> SharedPlaybackState) const override;
102
103
104private:
105 FName GetNetAddressableName(TSharedRef<const UE::MovieScene::FSharedPlaybackState> SharedPlaybackState, const FGuid& BindingId, FMovieSceneSequenceID SequenceID, const FString& BaseName) const;
106};
107
108/*
109* An implementation of UMovieSceneSpawnableActorBindingBase that matches the old FMovieSceneSpawnable spawnable implementation, allowing the spawning
110* of Actors from a UObject template which is serialized inside the Sequence.
111*/
112UCLASS(BlueprintType, MinimalAPI, EditInlineNew, DefaultToInstanced, Meta=(DisplayName="Spawnable Actor"))
115{
116public:
117
119
120public:
121
122 /* MovieSceneSpawnableActorBindingBase overrides*/
123 bool SupportsObjectTemplates() const override { return true; }
124
125 /* Override and return the object template if the binding type supports object templates*/
126 UObject* GetObjectTemplate() override { return ActorTemplate.Get(); }
127
128 /* MovieSceneSpawnableBindingBase overrides*/
129 MOVIESCENETRACKS_API void SetObjectTemplate(UObject* InObjectTemplate) override;
131
132 /* MovieSceneCustomBinding overrides*/
133 MOVIESCENETRACKS_API virtual bool SupportsBindingCreationFromObject(const UObject* SourceObject) const override;
134 MOVIESCENETRACKS_API virtual UMovieSceneCustomBinding* CreateNewCustomBinding(UObject* SourceObject, UMovieScene& OwnerMovieScene) override;
135
136#if WITH_EDITOR
137 MOVIESCENETRACKS_API virtual bool SupportsConversionFromBinding(const FMovieSceneBindingReference& BindingReference, const UObject* SourceObject) const override;
139 MOVIESCENETRACKS_API virtual FText GetBindingTypePrettyName() const override;
140#endif
141
142protected:
143 /* UObject overrides */
144 MOVIESCENETRACKS_API virtual void PostDuplicate(EDuplicateMode::Type DuplicateMode) override;
145
146 /* MovieSceneSpawnableBindingBase overrides*/
147 MOVIESCENETRACKS_API UWorld* GetWorldContext(TSharedRef<const UE::MovieScene::FSharedPlaybackState> SharedPlaybackState) const override;
148
149 /* MovieSceneSpawnableActorBindingBase overrides*/
150 MOVIESCENETRACKS_API TSubclassOf<AActor> GetActorClass() const override;
151 AActor* GetActorTemplate() const override { return ActorTemplate; }
152
153protected:
154 UPROPERTY(VisibleAnywhere, Category="Spawnable")
155 TObjectPtr<AActor> ActorTemplate;
156
157
158};
159
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
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
TCallTraits< FMovieSceneSequenceID >::ParamType FMovieSceneSequenceIDRef
Definition MovieSceneSequenceID.h:93
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
UClass * StaticClass()
Definition ReflectedTypeAccessors.h:13
Definition Actor.h:257
Definition NameTypes.h:617
Definition Text.h:385
Definition MovieScene.Build.cs:6
Definition SharedPointer.h:153
Definition SubclassOf.h:30
Definition Class.h:3793
Definition MovieSceneCustomBinding.h:62
Definition MovieSceneSequence.h:73
Definition MovieSceneSpawnableActorBinding.h:19
FName GetLevelName() const
Definition MovieSceneSpawnableActorBinding.h:57
virtual bool SupportsObjectTemplates() const
Definition MovieSceneSpawnableActorBinding.h:29
void SetLevelName(FName InLevelName)
Definition MovieSceneSpawnableActorBinding.h:62
virtual void CopyObjectTemplate(UObject *InSourceObject, UMovieSceneSequence &MovieSceneSequence)
Definition MovieSceneSpawnableActorBinding.h:46
virtual void SetObjectTemplate(UObject *InObjectTemplate)
Definition MovieSceneSpawnableActorBinding.h:38
virtual UObject * GetObjectTemplate()
Definition MovieSceneSpawnableActorBinding.h:32
UClass * GetBoundObjectClass() const override
Definition MovieSceneSpawnableActorBinding.h:86
Definition MovieSceneSpawnableActorBinding.h:115
AActor * GetActorTemplate() const override
Definition MovieSceneSpawnableActorBinding.h:151
UObject * GetObjectTemplate() override
Definition MovieSceneSpawnableActorBinding.h:126
bool SupportsObjectTemplates() const override
Definition MovieSceneSpawnableActorBinding.h:123
Definition MovieSceneSpawnableBinding.h:33
Definition MovieScene.h:358
Definition Object.h:95
Definition World.h:918
Type
Definition UObjectGlobals.h:128
@ false
Definition radaudio_common.h:23
Definition Guid.h:109
Definition MovieSceneBindingReferences.h:27
Definition MovieSceneSequenceID.h:13
Definition ObjectPtr.h:488