Full Body IK node doesn't function as expected

I’m currently struggling getting full body IK node to work as expected.

My goal:
I’m trying to set up a hand Ik for a studio where they have a bit of a unique bone structure.
Instead of having the twist bones attached as separate children, they have it in between the shoulder, elbow and wrist. Meaning that the IK needs to go trough 5 bones to function. So, I need to use Full Body Ik to lock the twist bones.

I’m meant to set up an Ik system for weapons where the character holds 2 handed weapons.
Normally, I have a bone where I can just Ik constraint the hand to and it will stick to the weapon. This bone is also used to attach the weapon to. Very easy, very convenient.\

And all is well except for one weapon where they swapped the hand attach bone’s location.
meaning that I need to now find a way to Ik constraint the hand to a bone, that is a certain distance away.

My solution:
I put a child bone underneath the hand that needs IK and aligned that bone with where the attach bone is and extend the IK chain to that bone, meaning my IK is now 6 bones long. This child bone is baked into position on the animations

The problem:
I have recreated the problem as empty as possible in a new scene which you can see in the video below. When there is no control rig, the hands move as normal, and you see that there is a bone connection between the hands.

I then turn on IK to the wrist. It behaves like normal and tries to constraint itself to the other hand. All is well

I then change the bone to it’s child bone (in this case a Virtual bone, but that doesn’t matter). And 2 problems happen.

  1. Most importantly, it’s position straight up changes and isn’t aligned anymore with what it’s constraint to.
  2. The animation of the left arm swinging takes over as well, instead of being replaced with the IK.
  • To be clear, if this extra child bone was at the same location as the wrist, everything would go like normal. It really goes wrong when it is further away.

My attempts to fix:

  • I have tried all possible combinations of excluding bones
  • I tried setting up bone settings for all bones and played with their options
  • I tried turning all alpha’s and number one or off
  • I tried setting up controls and aligning it differently.
  • I tried pre-constraining the bone before the IK
  • I tried different IK solutions, but none work with twist bones
  • I can’t move the attach bone, the weapon and a lot of functions are dependent on it’s location. Changing this would be a last resort where multiple teams need to get involved

I’ll extend the list with other things I’ll try or comments down below suggest.

What I need:
Either a fix to the bug or a work around for the problem. It would also be nice to know why this is happening so I can avoid or maybe even use it in the future.

You can see the problem and play around with it in the test setup I created:
Download test project

A while ago I also had a similar situation, where using Daz characters, the twist joint were part of the arm hierarchy, rather than a child of the upper/lower arm.
I ended up using virtual bones and two bone IK to solve this, a detailed explanation can be found here:
Inu Games tutorial
Not sure if this setup can also be done in Control Rig, but I strongly suggest you to test give it a go.

1 Like

oh, that’'s so clever! I hadn’t thought of re-creating the arms hierarchy and using a regular IK node for it. I’ll give that a spin

Great, that seems to have worked for the IK. As for needing another offset to the hand, I just decided to work in reverse. Instead of having the child bone underneath the hand, and constraining it to the attach bone. I instead did it the other way around and put a fixed offset to it, by default. It’s easy that the distance is always the same.

So problem solved, I can’t find where to mark an answer as a solution though.
But if anyone in the future can figure out what’s causing the full body IK to respond in this way in this particular situation. Then I’d be happy to hear that! I’ll try to leave the demo set up on my drive for as long as possible so you can try it out.