UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimNode_AssetPlayerBase.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_AssetPlayerBase.generated.h"
11
12/* Base class for any asset playing anim node */
13USTRUCT(BlueprintInternalUseOnly)
15{
17
18 friend class UAnimGraphNode_AssetPlayerBase;
19
21
23 ENGINE_API virtual void Initialize_AnyThread(const FAnimationInitializeContext& Context) override;
24
28 ENGINE_API virtual void Update_AnyThread(const FAnimationUpdateContext& Context) final override;
29
31 virtual void UpdateAssetPlayer(const FAnimationUpdateContext& Context) {};
32
33 // Create a tick record for this node
34 ENGINE_API void CreateTickRecordForNode(const FAnimationUpdateContext& Context, UAnimSequenceBase* Sequence, bool bLooping, float PlayRate, bool bIsEvaluator);
35
36 // Get the sync group name we are using
37 virtual FName GetGroupName() const { return NAME_None; }
38
39 // Get the sync group role we are using
40 virtual EAnimGroupRole::Type GetGroupRole() const { return EAnimGroupRole::CanBeLeader; }
41
42 // Get the sync group method we are using
44
45 // Get the flag that determines if this asset player will not sync to the previous leader's sync position when joining a sync group and before becoming the leader but instead force everyone else to match its position.
46 virtual bool GetOverridePositionWhenJoiningSyncGroupAsLeader() const { return false; }
47
48 // Set the sync group name we are using
49 virtual bool SetGroupName(FName InGroupName) { return false; }
50
51 // Set the sync group role we are using
52 virtual bool SetGroupRole(EAnimGroupRole::Type InRole) { return false; }
53
54 // Set the sync group method we are using
55 virtual bool SetGroupMethod(EAnimSyncMethod InMethod) { return false; }
56
57 // Set the flag that determines if this asset player will not sync to the previous leader's sync position when joining a sync group and before becoming the leader but instead force everyone else to match its position.
59
60 // --- FAnimNode_RelevantAssetPlayerBase ---
61 ENGINE_API virtual float GetAccumulatedTime() const override;
62 ENGINE_API virtual void SetAccumulatedTime(float NewTime) override;
63 ENGINE_API virtual float GetCachedBlendWeight() const override;
64 ENGINE_API virtual void ClearCachedBlendWeight() override;
65 ENGINE_API virtual float GetCurrentAssetTimePlayRateAdjusted() const override;
66 ENGINE_API virtual const FDeltaTimeRecord* GetDeltaTimeRecord() const override;
67 // --- End of FAnimNode_RelevantAssetPlayerBase ---
68
69private:
70#if WITH_EDITORONLY_DATA
71 UPROPERTY()
73
74 UPROPERTY()
76#endif
77
78protected:
81
83 UPROPERTY(BlueprintReadWrite, Transient, Category=DoNotEdit)
84 float BlendWeight = 0.0f;
85
87 UPROPERTY(BlueprintReadWrite, Transient, Category=DoNotEdit)
88 float InternalTimeAccumulator = 0.0f;
89
91 FDeltaTimeRecord DeltaTimeRecord;
92
94 bool bHasBeenFullWeight = false;
95
97 ENGINE_API UE::Anim::FAnimSyncParams GetSyncParams(bool bRequestedInertialization) const;
98};
EAnimSyncMethod
Definition AnimationAsset.h:629
EAnimSyncGroupScope
Definition AnimationAsset.h:618
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
Definition NameTypes.h:617
Definition AnimSequenceBase.h:37
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition AnimNode_AssetPlayerBase.h:15
virtual EAnimSyncMethod GetGroupMethod() const
Definition AnimNode_AssetPlayerBase.h:43
virtual FName GetGroupName() const
Definition AnimNode_AssetPlayerBase.h:37
virtual bool SetGroupRole(EAnimGroupRole::Type InRole)
Definition AnimNode_AssetPlayerBase.h:52
virtual bool GetOverridePositionWhenJoiningSyncGroupAsLeader() const
Definition AnimNode_AssetPlayerBase.h:46
virtual bool SetOverridePositionWhenJoiningSyncGroupAsLeader(bool InOverridePositionWhenJoiningSyncGroupAsLeader)
Definition AnimNode_AssetPlayerBase.h:58
virtual EAnimGroupRole::Type GetGroupRole() const
Definition AnimNode_AssetPlayerBase.h:40
virtual bool SetGroupName(FName InGroupName)
Definition AnimNode_AssetPlayerBase.h:49
virtual bool SetGroupMethod(EAnimSyncMethod InMethod)
Definition AnimNode_AssetPlayerBase.h:55
FMarkerTickRecord MarkerTickRecord
Definition AnimNode_AssetPlayerBase.h:80
Definition AnimNode_RelevantAssetPlayerBase.h:14
Definition AnimNodeBase.h:324
Definition AnimNodeBase.h:354
Definition AnimationAsset.h:98
Definition AnimationAsset.h:67