UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimNode_LookAt.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"
7#include "BoneIndices.h"
8#include "BoneContainer.h"
9#include "BonePose.h"
11#include "CommonAnimTypes.h"
12#include "EngineDefines.h"
13#include "AnimNode_LookAt.generated.h"
14
16class USkeletalMeshComponent;
17
18UENUM()
34
38USTRUCT(BlueprintInternalUseOnly)
40{
42
43
44 UPROPERTY(EditAnywhere, Category=SkeletalControl)
45 FBoneReference BoneToModify;
46
48 UPROPERTY(EditAnywhere, Category = Target)
49 FBoneSocketTarget LookAtTarget;
50
52 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Target, meta = (PinHiddenByDefault))
53 FVector LookAtLocation;
54
55 UPROPERTY(EditAnywhere, Category = SkeletalControl)
56 FAxis LookAt_Axis;
57
59 UPROPERTY(EditAnywhere, Category=SkeletalControl)
60 bool bUseLookUpAxis;
61
62 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SkeletalControl, meta=(PinHiddenByDefault))
63 TEnumAsByte<EInterpolationBlend::Type> InterpolationType;
64
65 UPROPERTY(EditAnywhere, Category = SkeletalControl)
66 FAxis LookUp_Axis;
67
69 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SkeletalControl, meta=(PinHiddenByDefault))
70 float LookAtClamp;
71
72 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SkeletalControl, meta=(PinHiddenByDefault))
73 float InterpolationTime;
74
75 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SkeletalControl, meta=(PinHiddenByDefault))
76 float InterpolationTriggerThreashold;
77
78#if WITH_EDITORONLY_DATA
80 UPROPERTY()
82
83 UPROPERTY()
85
87 UPROPERTY()
89
91 UPROPERTY()
93
95 UPROPERTY()
97
99 UPROPERTY()
101#endif
102
103 // in the future, it would be nice to have more options, -i.e. lag, interpolation speed
105
106 // FAnimNode_Base interface
107 ANIMGRAPHRUNTIME_API virtual void GatherDebugData(FNodeDebugData& DebugData) override;
108 ANIMGRAPHRUNTIME_API virtual void UpdateInternal(const FAnimationUpdateContext& Context) override;
109 ANIMGRAPHRUNTIME_API virtual void Initialize_AnyThread(const FAnimationInitializeContext& Context) override;
110 // End of FAnimNode_Base interface
111
112 // FAnimNode_SkeletalControlBase interface
113 ANIMGRAPHRUNTIME_API virtual void EvaluateComponentSpaceInternal(FComponentSpacePoseContext& Context) override;
114 ANIMGRAPHRUNTIME_API virtual void EvaluateSkeletalControl_AnyThread(FComponentSpacePoseContext& Output, TArray<FBoneTransform>& OutBoneTransforms) override;
115 ANIMGRAPHRUNTIME_API virtual bool IsValidToEvaluate(const USkeleton* Skeleton, const FBoneContainer& RequiredBones) override;
116 // End of FAnimNode_SkeletalControlBase interface
117
118 FVector GetCachedTargetLocation() const { return CachedCurrentTargetLocation; }
119
120#if WITH_EDITOR
121 ANIMGRAPHRUNTIME_API void ConditionalDebugDraw(FPrimitiveDrawInterface* PDI, USkeletalMeshComponent* MeshComp) const;
122#endif // WITH_EDITOR
123
124private:
125 // FAnimNode_SkeletalControlBase interface
126 ANIMGRAPHRUNTIME_API virtual void InitializeBoneReferences(const FBoneContainer& RequiredBones) override;
127 // End of FAnimNode_SkeletalControlBase interface
128
130 static ANIMGRAPHRUNTIME_API float AlphaToBlendType(float InAlpha, EInterpolationBlend::Type BlendType);
131
133 FVector CurrentLookAtLocation;
134
136 FVector CurrentTargetLocation;
137 FVector PreviousTargetLocation;
138
140 float AccumulatedInterpoolationTime;
141
142
143#if UE_ENABLE_DEBUG_DRAWING
150#endif // UE_ENABLE_DEBUG_DRAWING
151 FVector CachedCurrentTargetLocation;
152
153protected:
155};
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 UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
Definition NameTypes.h:617
Definition PrimitiveDrawInterface.h:19
Definition Array.h:670
Definition EnumAsByte.h:22
Definition Skeleton.h:295
Definition AnimTypes.h:755
Definition AnimNode_LookAt.h:21
Type
Definition AnimNode_LookAt.h:23
@ EaseInOutExponent2
Definition AnimNode_LookAt.h:27
@ EaseInOutExponent3
Definition AnimNode_LookAt.h:28
@ EaseInOutExponent4
Definition AnimNode_LookAt.h:29
@ EaseInOutExponent5
Definition AnimNode_LookAt.h:30
Definition AnimNode_LookAt.h:40
FVector GetCachedTargetLocation() const
Definition AnimNode_LookAt.h:118
Definition AnimNode_SkeletalControlBase.h:22
Definition AnimNodeBase.h:324
Definition AnimNodeBase.h:354
Definition CommonAnimTypes.h:14
Definition BoneContainer.h:192
Definition BoneReference.h:14
Definition BoneSocketReference.h:94
Definition AnimNodeBase.h:600
Definition AnimNodeBase.h:642