UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimNode_PoseHandler.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"
10#include "AnimNode_PoseHandler.generated.h"
11
12// Evaluates a point in an anim sequence, using a specific time input rather than advancing time internally.
13// Typically the playback position of the animation for this node will represent something other than time, like jump height.
14// This node will not trigger any notifies present in the associated sequence.
15USTRUCT(BlueprintInternalUseOnly)
17{
19public:
20 // The animation sequence asset to evaluate
21 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (PinHiddenByDefault))
23
24public:
26 :PoseAsset(nullptr)
27 {
28 }
29
30 // FAnimNode_AssetPlayerBase interface
31 virtual float GetCurrentAssetTime() const { return 0.f; }
32 virtual float GetCurrentAssetLength() const { return 0.f; }
33 // End of FAnimNode_AssetPlayerBase interface
34
35 // FAnimNode_Base interface
36 ANIMGRAPHRUNTIME_API virtual void Initialize_AnyThread(const FAnimationInitializeContext& Context) override;
37 ANIMGRAPHRUNTIME_API virtual void CacheBones_AnyThread(const FAnimationCacheBonesContext& Context) override;
38 ANIMGRAPHRUNTIME_API virtual void UpdateAssetPlayer(const FAnimationUpdateContext& Context) override;
39 ANIMGRAPHRUNTIME_API virtual void GatherDebugData(FNodeDebugData& DebugData) override;
40 // End of FAnimNode_Base interface
41
42 // FAnimNode_AssetPlayerBase Interface
43 virtual float GetAccumulatedTime() const {return 0.f;}
44 virtual void SetAccumulatedTime(float NewTime) {}
45 virtual UAnimationAsset* GetAnimAsset() const {return PoseAsset;}
46 // End of FAnimNode_AssetPlayerBase Interface
47
48#if WITH_EDITORONLY_DATA
49 // Set the pose asset to use for this node
51#endif
52
53protected:
55 virtual void OnPoseAssetChange() {}
56
59 // weight to blend pose per joint - has to be cached whenever cache bones for LOD
60 // note this is for mesh bone
62
63 /* Rebuild pose list */
64 ANIMGRAPHRUNTIME_API virtual void RebuildPoseList(const FBoneContainer& InBoneContainer, const UPoseAsset* InPoseAsset);
65
67 ANIMGRAPHRUNTIME_API void CacheBoneBlendWeights(FAnimInstanceProxy* InstanceProxy);
68
69private:
70 ANIMGRAPHRUNTIME_API void UpdatePoseAssetProperty(struct FAnimInstanceProxy* InstanceProxy);
71};
72
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
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
Definition Array.h:670
Definition AnimationAsset.h:1020
Definition PoseAsset.h:186
Definition AnimationAsset.h:267
Definition AnimInstanceProxy.h:144
Definition AnimNode_AssetPlayerBase.h:15
Definition AnimNode_PoseHandler.h:17
TArray< float > BoneBlendWeights
Definition AnimNode_PoseHandler.h:61
TWeakObjectPtr< UPoseAsset > CurrentPoseAsset
Definition AnimNode_PoseHandler.h:57
virtual void SetAccumulatedTime(float NewTime)
Definition AnimNode_PoseHandler.h:44
virtual void OnPoseAssetChange()
Definition AnimNode_PoseHandler.h:55
virtual float GetAccumulatedTime() const
Definition AnimNode_PoseHandler.h:43
virtual UAnimationAsset * GetAnimAsset() const
Definition AnimNode_PoseHandler.h:45
virtual float GetCurrentAssetTime() const
Definition AnimNode_PoseHandler.h:31
virtual float GetCurrentAssetLength() const
Definition AnimNode_PoseHandler.h:32
FAnimExtractContext PoseExtractContext
Definition AnimNode_PoseHandler.h:58
Definition AnimNodeBase.h:337
Definition AnimNodeBase.h:324
Definition AnimNodeBase.h:354
Definition BoneContainer.h:192
Definition AnimNodeBase.h:642
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25