Skip to content

Commit 3e07fbe

Browse files
committed
Fix issue visualization of ModifyBones
1 parent d6ee564 commit 3e07fbe

File tree

4 files changed

+27
-53
lines changed

4 files changed

+27
-53
lines changed

Plugins/KawaiiPhysics/Source/KawaiiPhysicsEd/Private/AnimGraphNode_KawaiiPhysics.cpp

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -65,58 +65,6 @@ FEditorModeID UAnimGraphNode_KawaiiPhysics::GetEditorMode() const
6565
return "AnimGraph.SkeletalControl.KawaiiPhysics";
6666
}
6767

68-
void UAnimGraphNode_KawaiiPhysics::Draw(FPrimitiveDrawInterface* PDI, USkeletalMeshComponent* SkelMeshComp) const
69-
{
70-
if (!SkelMeshComp)
71-
{
72-
return;
73-
}
74-
75-
FAnimNode_KawaiiPhysics* ActiveNode = GetActiveInstanceNode<FAnimNode_KawaiiPhysics>(SkelMeshComp->GetAnimInstance());
76-
if (!ActiveNode)
77-
{
78-
return;
79-
}
80-
81-
if (bEnableDebugDrawBone)
82-
{
83-
for (auto& Bone : ActiveNode->ModifyBones)
84-
{
85-
PDI->DrawPoint(Bone.Location, FLinearColor::White, 5.0f, SDPG_Foreground);
86-
87-
if (Bone.PhysicsSettings.Radius > 0)
88-
{
89-
auto Color = Bone.bDummy ? FColor::Red : FColor::Yellow;
90-
DrawWireSphere(PDI, Bone.Location, Color, Bone.PhysicsSettings.Radius, 16, SDPG_Foreground);
91-
}
92-
93-
for (const int32 ChildIndex : Bone.ChildIndexs)
94-
{
95-
DrawDashedLine(PDI, Bone.Location, ActiveNode->ModifyBones[ChildIndex].Location,
96-
FLinearColor::White, 1, SDPG_Foreground);
97-
}
98-
}
99-
}
100-
101-
if (bEnableDebugDrawAngleLimit)
102-
{
103-
for (auto& Bone : ActiveNode->ModifyBones)
104-
{
105-
if (Bone.ParentIndex < 0 || Bone.PhysicsSettings.LimitAngle <= 0)
106-
{
107-
continue;
108-
}
109-
110-
auto& ParentBone = ActiveNode->ModifyBones[Bone.ParentIndex];
111-
FTransform ParentBoneTransform =
112-
FTransform(FQuat::FindBetween(FVector::ForwardVector, Bone.PoseLocation - ParentBone.PoseLocation), ParentBone.Location);
113-
TArray<FVector> Verts;
114-
DrawWireCone(PDI, Verts, ParentBoneTransform, (Bone.PoseLocation - ParentBone.PoseLocation).Size(),
115-
Bone.PhysicsSettings.LimitAngle, 16, FColor::Green, SDPG_World);
116-
}
117-
}
118-
}
119-
12068
void UAnimGraphNode_KawaiiPhysics::ValidateAnimNodePostCompile(FCompilerResultsLog& MessageLog, UAnimBlueprintGeneratedClass* CompiledClass, int32 CompiledNodeIndex)
12169
{
12270
UAnimGraphNode_SkeletalControlBase::ValidateAnimNodePostCompile(MessageLog, CompiledClass, CompiledNodeIndex);

Plugins/KawaiiPhysics/Source/KawaiiPhysicsEd/Private/KawaiiPhysicsEditMode.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ void FKawaiiPhysicsEditMode::Render(const FSceneView* View, FViewport* Viewport,
9191
if (SkelMeshComp && SkelMeshComp->SkeletalMesh && SkelMeshComp->SkeletalMesh->GetSkeleton())
9292
#endif
9393
{
94+
RenderModifyBones(PDI);
9495
RenderSphericalLimits(PDI);
9596
RenderCapsuleLimit(PDI);
9697
RenderPlanerLimit(PDI);
@@ -121,6 +122,29 @@ void FKawaiiPhysicsEditMode::Render(const FSceneView* View, FViewport* Viewport,
121122

122123
}
123124

125+
void FKawaiiPhysicsEditMode::RenderModifyBones(FPrimitiveDrawInterface* PDI) const
126+
{
127+
if (GraphNode->bEnableDebugDrawBone)
128+
{
129+
for (auto& Bone : RuntimeNode->ModifyBones)
130+
{
131+
PDI->DrawPoint(Bone.Location, FLinearColor::White, 5.0f, SDPG_Foreground);
132+
133+
if (Bone.PhysicsSettings.Radius > 0)
134+
{
135+
auto Color = Bone.bDummy ? FColor::Red : FColor::Yellow;
136+
DrawWireSphere(PDI, Bone.Location, Color, Bone.PhysicsSettings.Radius, 16, SDPG_Foreground);
137+
}
138+
139+
for (const int32 ChildIndex : Bone.ChildIndexs)
140+
{
141+
DrawDashedLine(PDI, Bone.Location, RuntimeNode->ModifyBones[ChildIndex].Location,
142+
FLinearColor::White, 1, SDPG_Foreground);
143+
}
144+
}
145+
}
146+
}
147+
124148
void FKawaiiPhysicsEditMode::RenderSphericalLimits(FPrimitiveDrawInterface* PDI) const
125149
{
126150
if (GraphNode->bEnableDebugDrawSphereLimit)

Plugins/KawaiiPhysics/Source/KawaiiPhysicsEd/Public/AnimGraphNode_KawaiiPhysics.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ class UAnimGraphNode_KawaiiPhysics : public UAnimGraphNode_SkeletalControlBase
3535
//virtual FText GetControllerDescription() const override;
3636
virtual FText GetControllerDescription() const override;
3737
virtual const FAnimNode_SkeletalControlBase* GetNode() const override { return &Node; }
38-
virtual void Draw(FPrimitiveDrawInterface* PDI, USkeletalMeshComponent* SkelMeshComp) const override;
3938
// End of UAnimGraphNode_SkeletalControlBase interface
4039

4140
// UObject interface

Plugins/KawaiiPhysics/Source/KawaiiPhysicsEd/Public/KawaiiPhysicsEditMode.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ class FKawaiiPhysicsEditMode : public FAnimNodeEditMode
4646

4747
private:
4848

49+
50+
void RenderModifyBones(FPrimitiveDrawInterface* PDI) const;
51+
4952
/** Render each collisions */
5053
void RenderSphericalLimits(FPrimitiveDrawInterface* PDI) const;
5154
void RenderCapsuleLimit(FPrimitiveDrawInterface* PDI) const;

0 commit comments

Comments
 (0)