UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimNode_LinkedAnimGraph.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"
12
13#include "AnimNode_LinkedAnimGraph.generated.h"
14
19
20USTRUCT(BlueprintInternalUseOnly)
22{
24
25public:
26
28
33 UPROPERTY()
34 TArray<FPoseLink> InputPoses;
35
37 UPROPERTY()
38 TArray<FName> InputPoseNames;
39
41 UPROPERTY(EditAnywhere, Category = Settings)
42 TSubclassOf<UAnimInstance> InstanceClass;
43
44#if WITH_EDITORONLY_DATA
45 UPROPERTY()
47#endif
48
49 // The root node of the dynamically-linked graph
51
52 // Our node index
54
55 // Cached node index for our linked function
57
58protected:
59 // Inertial blending duration to request next update (pulled from the prior state's blend out)
61
62 // Optional blend profile to use during inertial blending (pulled from the prior state's blend out)
64 TObjectPtr<const UBlendProfile> PendingBlendOutProfile;
65
66 // Inertial blending duration to request next update (pulled from the new state's blend in)
67 float PendingBlendInDuration;
68
69 // Optional blend profile to use during inertial blending (pulled from the new state's blend in)
71 TObjectPtr<const UBlendProfile> PendingBlendInProfile;
72
73public:
75 UPROPERTY(EditAnywhere, Category = Settings)
76 uint8 bReceiveNotifiesFromLinkedInstances : 1;
77
79 UPROPERTY(EditAnywhere, Category = Settings)
80 uint8 bPropagateNotifiesToLinkedInstances : 1;
81
84
86 ENGINE_API virtual FName GetDynamicLinkFunctionName() const;
87
90
91 // FAnimNode_Base interface
92 ENGINE_API virtual void Initialize_AnyThread(const FAnimationInitializeContext& Context) override;
93 ENGINE_API virtual void CacheBones_AnyThread(const FAnimationCacheBonesContext& Context) override;
94 ENGINE_API virtual void Update_AnyThread(const FAnimationUpdateContext& Context) override;
95 ENGINE_API virtual void Evaluate_AnyThread(FPoseContext& Output) override;
96 ENGINE_API virtual void GatherDebugData(FNodeDebugData& DebugData) override;
97
98 // Initializes only the sub-graph that this node is linked to
99 ENGINE_API void InitializeSubGraph_AnyThread(const FAnimationInitializeContext& Context);
100
101 // Caches bones only for the sub graph that this node is linked to
102 ENGINE_API void CacheBonesSubGraph_AnyThread(const FAnimationCacheBonesContext& Context);
103
105
106 ENGINE_API virtual void OnInitializeAnimInstance(const FAnimInstanceProxy* InProxy, const UAnimInstance* InAnimInstance) override;
107 virtual bool NeedsOnInitializeAnimInstance() const override { return true; }
108 // End of FAnimNode_Base interface
109
110 // Re-create the linked instances for this node
111 ENGINE_API void ReinitializeLinkedAnimInstance(const UAnimInstance* InOwningAnimInstance, UAnimInstance* InNewAnimInstance = nullptr);
112
113 // Shutdown the currently running instance
114 ENGINE_API void TeardownInstance(const UAnimInstance* InOwningAnimInstance);
115
116 // Check if the currently linked instance can be teared down
117 virtual bool CanTeardownLinkedInstance(const UAnimInstance* LinkedInstance) const {return true;}
118
119 // FAnimNode_CustomProperty interface
120 virtual UClass* GetTargetClass() const override
121 {
122 return *InstanceClass;
123 }
124
125#if WITH_EDITOR
127#endif // #if WITH_EDITOR
128
131
133 ENGINE_API void DynamicUnlink(UAnimInstance* InOwningAnimInstance);
134
136 ENGINE_API int32 FindFunctionInputIndex(const FAnimBlueprintFunction& AnimBlueprintFunction, const FName& InInputName);
137
140
141 friend class UAnimInstance;
142
143 // Stats
144#if ANIMNODE_STATS_VERBOSE
145 ENGINE_API virtual void InitializeStatID() override;
146#endif
147
148};
149
150UE_DEPRECATED(4.24, "FAnimNode_SubInstance has been renamed to FAnimNode_LinkedAnimGraph")
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition NameTypes.h:617
Definition AnimClassInterface.h:193
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SubclassOf.h:30
Definition AnimInstance.h:353
Definition BlendProfile.h:132
Definition Class.h:3793
Definition Object.h:95
Definition UserDefinedStruct.h:61
Definition AnimClassInterface.h:31
Definition AnimInstanceProxy.h:144
Definition AnimNodeBase.h:853
Definition AnimNode_CustomProperty.h:27
Definition AnimNode_LinkedAnimGraph.h:22
FAnimNode_Base * LinkedRoot
Definition AnimNode_LinkedAnimGraph.h:50
virtual bool CanTeardownLinkedInstance(const UAnimInstance *LinkedInstance) const
Definition AnimNode_LinkedAnimGraph.h:117
int32 CachedLinkedNodeIndex
Definition AnimNode_LinkedAnimGraph.h:56
float PendingBlendOutDuration
Definition AnimNode_LinkedAnimGraph.h:60
virtual UClass * GetTargetClass() const override
Definition AnimNode_LinkedAnimGraph.h:120
int32 NodeIndex
Definition AnimNode_LinkedAnimGraph.h:53
Definition AnimNodeBase.h:337
Definition AnimNodeBase.h:324
Definition AnimNodeBase.h:354
Definition AnimNodeBase.h:642
Definition AnimNodeBase.h:479
Definition ObjectPtr.h:488