# How to rig an IK leg with 2 knee joints

I'm trying to rig a leg with two joints and have been struggling for ages trying to add IK. The chain is 4 bones long so forms 2 knees (Fig 1).

Ideally I can imagine having 2 pole targets (Fig 2) but I don't see that the IK solver allows that.

The kind of poses that are difficult to achieve are having the knee joints pointing in different directions. This can be achieved by rotating the bone between the joints but it is awkward to animate and you lose the connection to the pole target (Fig 3)

Does anyone have any ideas how to rig this effectively?

Thanks!

Fig 1

Fig 2

Fig 3 (top view)

• I don't know if that's the best idea but have you tried to create another IK on another of your bones, therefore a second controller and a second pole target? It would mean that your first chain would be shorter. Also, you talk about a current chain of 4, shouldn't it be 3? – moonboots Aug 8 '18 at 12:02
• Thanks for your suggestion @moonboots. I've tried adding a second IK to bone c using bone b as the target. As you say, I needed to shorten the first chain to clear the dependency cycle but that then means you can't use bone a to influence the whole leg. – MattA Aug 8 '18 at 12:46
• @moonboots, yes, I should probably have described it as length 3. I included bone a, which I use as the IK target, as part of the chain but it isn't actually parented to bone b. – MattA Aug 8 '18 at 12:49
• if you assign a IK to the bone D, with a controller on its bottom, perhaps with no pole target, but just a target controller, and assign a Child Of to this controller with the first controller as the Target (click on Set Inverse)? Also note that you can limit the IK bones rotations in Properties > Bone > Inverse Kinematics, so it doesn't go crazy. – moonboots Aug 8 '18 at 12:55
• You may also find it helpful to constrain the knees to only rotate on one axis. You can set this in the Inverse Kinematics section under the bone data tab in the settings window. – dixiepig Aug 8 '18 at 12:59

So, here is the solution we've found:

• Create a controller for your foot, deparent it, parent the foot to this controller.
• Choose this controller as the Target of your calf's IK.
• The Chain Length of your calf's IK constraint must be 2.
• Create a new controller at the bottom of your bone D.
• Parent this second controller to the foot controller (Keep Offset).
• Parent the pole target of your calf to the foot controller (Keep Offset).
• Add a Copy Location constraint to your foot so that it sticks to the calf.
• Add a Damped Track or an IK constraint to the bone D and choose the new controller as your Target

Also note that you can limit the IK bones rotations in Properties > Bone > Inverse Kinematics, or with a Limit Rotation constraint, depending on the bones and the chosen solution.

Rig it like a normal leg. There are no 2 knee joints. There is only 1 knee and heel. Almost every animal walks on it's fingers.

Provide a control for the heel like on every human rig - up/down lift and left/right pivot.

• Thanks for your answer. There are examples where this isn't the case, such as frogs which are plantigrade so don't walk on their toes but have an arrangement as in the original question. This could also apply to hypothetical creatures or objects. I think the accepted answer handles these cases better and functions as I had in mind. – MattA Aug 8 '18 at 17:33