UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneReplaceableActorBinding.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8#include "MovieSceneReplaceableActorBinding.generated.h"
9
10/*
11* An implementation of UMovieSceneReplaceableBindingBase that uses UMovieSceneSpawnableActorBinding as the preview spawnable,
12* and has no implementation of ResolveRuntimeBindingInternal, relying instead of Sequencer's built in BindingOverride mechanism for binding at runtime.
13*/
14UCLASS(MinimalAPI, BlueprintType, EditInlineNew, DefaultToInstanced, Meta=(DisplayName="Replaceable Actor"))
17{
18public:
19
21
22public:
23
24 /* MovieSceneCustomBinding overrides*/
25 /* Note that we specifically don't implement CreateCustomBinding here- it's implemented in the base class and separately calls
26 * CreateInnerSpawnable and InitReplaceableBinding which we implement here (though InitReplaceableBinding has an empty implementation in this class).
27 */
28#if WITH_EDITOR
29 FText GetBindingTypePrettyName() const override;
30#endif
31
32protected:
33 /* MovieSceneReplaceableBindingBase overrides*/
34
35 // By default we return nullptr here, as we rely on Sequencer's BindingOverride mechanism to bind these actors during runtime.
36 // This can be overridden if desired in subclasses to provide a different way to resolve to an actor at runtime while still using spawnable actor as the preview.
38
39 // Empty implementation by default as we don't need to initialize any data members other than the spawnable,which is initialized by CreateInnerSpawnable above
40 virtual void InitReplaceableBinding(UObject* SourceObject, UMovieScene& OwnerMovieScene) override {}
41
42 MOVIESCENETRACKS_API virtual TSubclassOf<UMovieSceneSpawnableBindingBase> GetInnerSpawnableClass() const override;
43
44 virtual int32 GetCustomBindingPriority() const override { return BaseEnginePriority + 1; }
45
46};
47
48/* Base class for Custom Replaceable Binding classes implemented by Blueprints */
49
50UCLASS(Abstract, Blueprintable, MinimalAPI, EditInlineNew, DefaultToInstanced, Meta=(ShowWorldContextPin, DisplayName="Replaceable Blueprint Base"))
53{
54public:
55
57
58public:
59
60 /* MovieSceneCustomBinding overrides*/
61#if WITH_EDITOR
62 FText GetBindingTypePrettyName() const override final;
63 virtual FText GetBindingTrackIconTooltip() const override final;
64
66#endif
67
68#if WITH_EDITORONLY_DATA
69
70 /* Name to show in Sequencer for the custom binding type.*/
71 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="Sequencer")
73
74 /* Tooltip to show in Sequencer for the custom binding type.*/
75 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="Sequencer")
77#endif
78
79 /*
80 Priority with which to consider this binding type over others when considering binding an object to Sequencer.
81 As a guideline, a priority of BaseEnginePriority will ensure that engine types(such as Spawnable Actor, Replaceable Actor) will
82 be higher priority than your custom binding, and so your binding type will not automatically be created(but may be converted to manually).
83 A priority of BaseCustomPriority and higher will ensure that your binding type is considered more highly than engine types,
84 so if your binding type's 'SupportsBindingCreationFromObject' returns true for an object, your binding type will be created by default
85 rather than an engine type.
86 */
87 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Sequencer")
88 int32 CustomBindingPriority = BaseEnginePriority;
89
90 // Preview Spawnable Type to use for this replaceable
91 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="Preview", meta=(AllowAbstract=false))
93
94 int32 GetCustomBindingPriority() const override final { return CustomBindingPriority; } /* Blueprint Interface */
95
96 /*
97 * Must be implemented. Called during non-editor/runtime to resolve the binding dynamically. In editor worlds/Sequencer will instead use the PreviewSpawnable binding to spawn a preview object.
98 * If no object is returned, Sequencer's BindingOverrides can still be used to dynamically bind the object.
99 */
100 UFUNCTION(BlueprintImplementableEvent, CallInEditor, meta=(DisplayName = "Resolve Runtime Binding"))
101 FMovieSceneBindingResolveResult BP_ResolveRuntimeBinding(const FMovieSceneBindingResolveContext& ResolveContext) const;
102
103 /* Called after binding creation to allow the replaceable to initialize any data members from the source object. */
104 UFUNCTION(BlueprintNativeEvent, CallInEditor, meta=(DisplayName = "Init Replaceable Binding"))
105 void BP_InitReplaceableBinding(UObject* SourceObject, UMovieScene* OwnerMovieScene);
106
107 /* Called on the binding to determine whether this binding type supports creating a binding from the passed in object. */
108 UFUNCTION(BlueprintNativeEvent, CallInEditor, meta=(DisplayName = "Supports Binding Creation From Object"))
109 bool BP_SupportsBindingCreationFromObject(const UObject* SourceObject) const;
110
112 /* MovieSceneReplaceableBindingBase overrides*/
113
114#if WITH_EDITOR
116#endif
117
118 // By default we return nullptr here, as we rely on Sequencer's BindingOverride mechanism to bind these actors during runtime.
119 // This can be overridden if desired in subclasses to provide a different way to resolve to an actor at runtime while still using spawnable actor as the preview.
120 FMovieSceneBindingResolveResult ResolveRuntimeBindingInternal(const FMovieSceneBindingResolveParams& ResolveParams, int32 BindingIndex, TSharedRef<const UE::MovieScene::FSharedPlaybackState> SharedPlaybackState) const override;
121
122 void InitReplaceableBinding(UObject* SourceObject, UMovieScene& OwnerMovieScene) override final;
123
125
126 bool SupportsBindingCreationFromObject(const UObject* SourceObject) const override final;
127
128
129};
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
void Init()
Definition LockFreeList.h:4
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition Text.h:385
Definition SharedPointer.h:153
Definition SubclassOf.h:30
Definition MovieSceneCustomBinding.h:62
Definition MovieSceneReplaceableActorBinding.h:53
TSubclassOf< UMovieSceneSpawnableBindingBase > GetInnerSpawnableClass() const override final
Definition MovieSceneReplaceableActorBinding.h:124
Definition MovieSceneReplaceableActorBinding.h:17
virtual int32 GetCustomBindingPriority() const override
Definition MovieSceneReplaceableActorBinding.h:44
virtual void InitReplaceableBinding(UObject *SourceObject, UMovieScene &OwnerMovieScene) override
Definition MovieSceneReplaceableActorBinding.h:40
virtual FMovieSceneBindingResolveResult ResolveRuntimeBindingInternal(const FMovieSceneBindingResolveParams &ResolveParams, int32 BindingIndex, TSharedRef< const UE::MovieScene::FSharedPlaybackState > SharedPlaybackState) const override
Definition MovieSceneReplaceableActorBinding.h:37
Definition MovieSceneReplaceableBinding.h:35
Definition MovieSceneSpawnableBinding.h:33
Definition MovieScene.h:358
Definition Object.h:95
@ false
Definition radaudio_common.h:23
Definition MovieSceneBindingReferences.h:27
Definition MovieSceneCustomBinding.h:44
Definition MovieSceneBindingReferences.h:47
Definition MovieSceneCustomBinding.h:28