Switching between FK and IK without changing placement of bones

Hi to you all. Here i want to create animation like this:
Heel goes across Z axis, then the calf rotates without changing location or rotation of the thigh.

It seems reasonable that i need to switch from IK to FK to be able to move the calf. To do that i need to change influence of the IK target bone to 0 (right?). But when i do that, the whole leg goes to its starting point ruining the pose. How to prevent that?

1 Like

If you only need to do it one way-- never have to snap IK to FK-- it’s relatively easy.

Duplicate your calf bone. Delete the IK constraint from the original. Parent the original to the duplicate.

Now you have what acts like an IK override. You can manipulate the IK target to the knee-up position, then manipulate the deforming (original) calf bone to something different than what the IK would give you.

Well, it works now, but it messes drivers up. I’ve got them set for shape keys, so when original calf rotates the shape keys fill the pit behind the knee. Now it works when i rotate original calf, but does not when i move IK target.


I tried to add the same var, but for the duplicated calf, but then even the shape keys for original calf stop to work.

I’m sure there’s some way to fix the driver. But I wouldn’t know what it is, not without some research.

Here’s a different way to do it, without editing the driver, starting with what I offered before:

  1. Parent the deforming (original) calf bone to the thigh.
  2. Give the deforming calf bone a copy transform constraint targeting the duplicate.
  3. Move to one frame before the transition. Register your deforming calf bone’s rotation and your copy transform constraint influence.
  4. Move forward one frame. Register your IK bone position. Select your deforming calf bone, apply visual transform to pose (ctrl-a menu for me), then set constraint influence to 0. Register rotation and constraint influence on the deforming calf bone.
  5. Move to the end of your animation. Rotate your deforming calf bone. Register rotation.
1 Like

It’s the option i have looked for since my original post here.
However the most practic solution seems to be in your first post, so without animating the influence (unfortunately it causes that driver problem).

Question about your last post: why to duplicate calf if i need to animate a constraint tab anyway? I can do the same thing in my original IK rig, without duplicating anything, with animating a constraint tab and using apply visual transform to pose option.

Your first solution seems to be the best to me. But it looks like i need to add 2 drivers as 2 bones (the calf and its duplicate - both with the same graphs for X rotation) for the shape keys. But how to don’t make them intensify each other in the case where both are rotated? Is it possible to somehow script them, so only the one more rotated is active?

Yeah, I don’t know. It just didn’t occur to me to apply a visual transform to an IK and mute the IK constraint instead. You can play with that. Probably will have to apply the visual transform to the thigh as well in that case (it’s dependent on the IK constraint too.)

The problem with the driver in the original post isn’t that it lacks a driver-- you don’t need to drive off the IK control calf, that won’t help-- but the fact that the driver is measuring local space rotation. Since the deforming calf is parented to the control calf rather than the thigh, that’s a different local space than you anticipated (and a useless one, for corrective shapekeys.) Parenting to the thigh and using a copy transforms from the IK calf instead might work, but my head’s not in a good enough space right now to tell you for sure.

Are y’all possibly overthinking this?

You need to keyframe the IK influence at the frame before you switch to FK.

-Keyframe both controls IK and FK. Loc and Rot. add scale in there with the FK keyframe.
-Move the leg with the IK influence.
-Keyframe the IK position and move one frame.
-Snap FK to IK and switch to the full FK influence. This may or may not change your FK scale of your moved bones very very slightly (like .003 slightly) which you correct without any noticeable change here shortly.
-Move to the desired frame and move the leg to the next position.
-Correct the scale of the bones that moved back to (1), if they changed earlier.
-Keyframe the Loc, Rot, Scale of the legs final position.
-Now keyframe the FK influence a final time.

Tip: To shorten the time between IK and FK switch remove auto snapping for the keyframes and move the first FK row as close to the last IK row as possible.

Hope this helps,

1 Like

I know, i did it back then. Also i wanted to do this without the rigify.

Thank you for answers. The problem is mostly solved.

1 Like

Ok, i fixed drivers for shape keys. Here’s solution: