Control Rig - sphere trace does not seem to hit correct channel


I am trying to perform some IK in control rig using a sphere trace to determine placement for the control based on the bone position from the animation pose. I then run Basic IK on a limb based on the control location.

I am using 4.26.1, in which the bug with sphere trace was fixed and supposedly uses the input channel for the trace. However, whatever value I put into that node, the trace only hits the world static objects (walls, solid boxes etc) and doesn’t hit our prototype “physics body” components when the channel is set accordingly. I have debugged it and confirmed that the channel sent through to physx is correct.

Is there something I might be doing wrong? The target object has components with collision, which are moveable, and set to the PhysicsBody object type. In my rig bluperint I have a Sphere Trace node which has the channel set to PhysicsBody. But it still only hits the walls, (which seem to be brushes? I’m new to Unreal) and boxes, which are world static.

Looking at RigUnit_WorldCollision.cpp, is it possible that the following lines in FRigUnit_SphereTraceWorld_Execute() are forcing collisions only against WorldStatic colliders?

FCollisionResponseParams ResponseParams(ECR_Ignore);
ResponseParams.CollisionResponse.SetResponse(ECC_WorldStatic, ECR_Block);
1 Like

I Also have this issue, and is wondering if it’s straight forward to just copy and extend on the existing Sphere Trace rig unit and create a new rig unit that works as I want. Have you tried?

Hey there - I haven’t been back to this issue yet, but I do know that there’s a fix in the works.

1 Like