UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimNode_TwoBoneIK.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 "BoneContainer.h"
8#include "BonePose.h"
10#include "CommonAnimTypes.h"
11#include "AnimNode_TwoBoneIK.generated.h"
12
13class USkeletalMeshComponent;
14
19USTRUCT(BlueprintInternalUseOnly)
21{
23
24
25 UPROPERTY(EditAnywhere, Category=IK)
27
29 UPROPERTY(EditAnywhere, Category=IK, meta = (editcondition = "bAllowStretching", ClampMin = "0.0", UIMin = "0.0"))
30 double StartStretchRatio;
31
33 UPROPERTY(EditAnywhere, Category= IK, meta = (editcondition = "bAllowStretching", ClampMin = "0.0", UIMin = "0.0"))
34 double MaxStretchScale;
35
36#if WITH_EDITORONLY_DATA
38 UPROPERTY()
40
42 UPROPERTY()
44
46 UPROPERTY()
48
50 UPROPERTY()
52#endif
53
55 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Effector, meta = (PinShownByDefault))
56 FVector EffectorLocation;
57
58 // cached limb index for upper
59 FCompactPoseBoneIndex CachedUpperLimbIndex;
60
61 UPROPERTY(EditAnywhere, Category=Effector)
62 FBoneSocketTarget EffectorTarget;
63
65 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=JointTarget, meta=(PinShownByDefault))
66 FVector JointTargetLocation;
67
68 // cached limb index for lower
69 FCompactPoseBoneIndex CachedLowerLimbIndex;
70
71 UPROPERTY(EditAnywhere, Category = JointTarget)
72 FBoneSocketTarget JointTarget;
73
75 UPROPERTY(EditAnywhere, Category = IK, meta = (editcondition = "!bAllowTwist"))
76 FAxis TwistAxis;
77
79 UPROPERTY(EditAnywhere, Category=Effector)
80 TEnumAsByte<enum EBoneControlSpace> EffectorLocationSpace;
81
83 UPROPERTY(EditAnywhere, Category=JointTarget)
84 TEnumAsByte<enum EBoneControlSpace> JointTargetLocationSpace;
85
87 UPROPERTY(EditAnywhere, Category=IK)
88 uint8 bAllowStretching:1;
89
91 UPROPERTY(EditAnywhere, Category=IK)
92 uint8 bTakeRotationFromEffectorSpace : 1;
93
95 UPROPERTY(EditAnywhere, Category = IK)
96 uint8 bMaintainEffectorRelRot : 1;
97
99 UPROPERTY(EditAnywhere, Category = IK)
100 uint8 bAllowTwist : 1;
101
103
104 // FAnimNode_Base interface
105 ANIMGRAPHRUNTIME_API virtual void GatherDebugData(FNodeDebugData& DebugData) override;
107 // End of FAnimNode_Base interface
108
109 // FAnimNode_SkeletalControlBase interface
111 ANIMGRAPHRUNTIME_API virtual bool IsValidToEvaluate(const USkeleton* Skeleton, const FBoneContainer& RequiredBones) override;
112#if WITH_EDITOR
113 ANIMGRAPHRUNTIME_API void ConditionalDebugDraw(FPrimitiveDrawInterface* PDI, USkeletalMeshComponent* MeshComp) const;
114#endif // WITH_EDITOR
115 // End of FAnimNode_SkeletalControlBase interface
117private:
118 // FAnimNode_SkeletalControlBase interface
119 ANIMGRAPHRUNTIME_API virtual void InitializeBoneReferences(const FBoneContainer& RequiredBones) override;
120 // End of FAnimNode_SkeletalControlBase interface
121
122#if WITH_EDITOR
125#endif // WITH_EDITOR
126};
EBoneControlSpace
Definition AnimTypes.h:60
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
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition NameTypes.h:617
Definition PrimitiveDrawInterface.h:19
Definition Array.h:670
Definition EnumAsByte.h:22
Definition Skeleton.h:295
Definition AnimNode_SkeletalControlBase.h:22
Definition AnimNode_TwoBoneIK.h:21
Definition AnimNodeBase.h:324
Definition CommonAnimTypes.h:14
Definition BoneContainer.h:192
Definition BoneReference.h:14
Definition BoneSocketReference.h:94
Definition BonePose.h:16
Definition BonePose.h:408
Definition BoneIndices.h:63
Definition AnimNodeBase.h:600
Definition AnimNodeBase.h:642