UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimNode_Constraint.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Constraint.h"
7#include "EngineDefines.h"
8#include "AnimNode_Constraint.generated.h"
9
13UENUM()
15{
16 None, // no offset
17 Offset_RefPose // offset is based on reference pose
18};
19
20
25USTRUCT()
27{
29
30
31 UPROPERTY(EditAnywhere, Category = FConstraint)
32 FBoneReference TargetBone;
33
41 UPROPERTY(EditAnywhere, Category = FConstraint)
43
45 UPROPERTY(EditAnywhere, Category = FConstraint)
47
49 UPROPERTY(EditAnywhere, Category = FConstraint)
51
53 int32 ConstraintDataIndex;
54
55 void Initialize(const FBoneContainer& RequiredBones)
56 {
57 TargetBone.Initialize(RequiredBones);
58 }
59
60 bool IsValidToEvaluate(const FBoneContainer& RequiredBones) const
61 {
62 return TargetBone.IsValidToEvaluate(RequiredBones) && PerAxis.IsValid();
63 }
64
68 , ConstraintDataIndex(INDEX_NONE)
69 {}
70};
74USTRUCT()
76{
78
79
80 UPROPERTY(EditAnywhere, Category = SkeletalControl)
81 FBoneReference BoneToModify;
82
84 UPROPERTY(EditAnywhere, Category = Constraints)
85 TArray<FConstraint> ConstraintSetup;
86
88 UPROPERTY(EditAnywhere, editfixedsize, Category = Runtime, meta = (PinShownByDefault))
89 TArray<float> ConstraintWeights;
90
92
93 // FAnimNode_Base interface
94 ANIMGRAPHRUNTIME_API virtual void GatherDebugData(FNodeDebugData& DebugData) override;
95 // End of FAnimNode_Base interface
96
97 // FAnimNode_SkeletalControlBase interface
99 ANIMGRAPHRUNTIME_API virtual bool IsValidToEvaluate(const USkeleton* Skeleton, const FBoneContainer& RequiredBones) override;
100 // End of FAnimNode_SkeletalControlBase interface
101
102#if WITH_EDITOR
103 ANIMGRAPHRUNTIME_API void ConditionalDebugDraw(FPrimitiveDrawInterface* PDI, USkeletalMeshComponent* MeshComp) const;
104#endif // WITH_EDITOR
105
106private:
107 // FAnimNode_SkeletalControlBase interface
108 ANIMGRAPHRUNTIME_API virtual void InitializeBoneReferences(const FBoneContainer& RequiredBones) override;
109 // End of FAnimNode_SkeletalControlBase interface
110
111 TArray<FConstraintData> ConstraintData;
112
113#if UE_ENABLE_DEBUG_DRAWING
118#endif // UE_BUILD_SHIPPING
119};
EConstraintOffsetOption
Definition AnimNode_Constraint.h:15
ETransformConstraintType
Definition Constraint.h:410
@ 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 UENUM(...)
Definition ObjectMacros.h:749
#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 Constraints.Build.cs:6
Definition PrimitiveDrawInterface.h:19
Definition Array.h:670
Definition Skeleton.h:295
Definition AnimNode_Constraint.h:76
Definition AnimNode_SkeletalControlBase.h:22
Definition BoneContainer.h:192
Definition BoneReference.h:14
ENGINE_API bool Initialize(const FBoneContainer &RequiredBones)
Definition BoneReference.cpp:10
Definition BonePose.h:16
Definition AnimNodeBase.h:600
Definition AnimNode_Constraint.h:27
FConstraint()
Definition AnimNode_Constraint.h:65
bool IsValidToEvaluate(const FBoneContainer &RequiredBones) const
Definition AnimNode_Constraint.h:60
Definition Constraint.h:43
Definition AnimNodeBase.h:642