• Editor
  • How to lock child bone position during animating?

I'm animating a skeleton and require the child of a selected bone to remain still, only parent bone is moving (for example: kneeling down, where only upper leg is rotated and lower leg stay unchanged).

The problem is that if I use compensate button on bone, the child bone is only locked at that specific frame but not for the interpolation in between. So it has a weird animation where during the interpolation the children move alone the parent and when reached the specific frame all of a sudden all the child bones are snapped to the locked position and then started to move alone with the parent bone again right after that frame.

How do I fix this?

Related Discussions
...

Bone compensation doesn't affect animation. The only thing it does is it moves/rotates/scales children so they appear to not be affected while you manipulate the parent. Press K to key all the changes bone compensation has made after using it. If you only key the parent, when you scrub the timeline you'll lose the unkeyed changed to the children.

Nate :

Bone compensation doesn't affect animation. The only thing it does is it moves/rotates/scales children so they appear to not be affected while you manipulate the parent. Press K to key all the changes bone compensation has made after using it. If you only key the parent, when you scrub the timeline you'll lose the unkeyed changed to the children.

I still don't get it. I did as you said to only key the parent (press L for selectedl) but when I scrub the timeline the bone imediately followed the parent as if I didn't use compensation at all, as you said it lost the unkeyed changed to the children. But how do I make the child bone still while moving the parents? Is there any way at all?

Press K, not L. L keys only selected. K keys all changes. So, enable bone compensation, move the parent, note the children stay in place, press K to key the parent and all the children, scrub the timeline to see it worked.

Nate :

Press K, not L. L keys only selected. K keys all changes. So, enable bone compensation, move the parent, note the children stay in place, press K to key the parent and all the children, scrub the timeline to see it worked.

So you mean I have to press K on the parent and all the children both? I thought K will autimatically key everybone changes and L only key the current bone.

K doesn't care what bone you have selected. It keys all changes.

Nate :

K doesn't care what bone you have selected. It keys all changes.

So by saying "press K to key the parent and all the children, scrub the timeline to see it worked." you mean with bone conpensation enabled and press K will do the job? But I thought you mentioned that bone compensation doesn't affect animation in the earliar post, if I do so in the animation it will have the interpolation problem as I mentioned in the first post. I still dont' get it. I'm so confused :sweat:

I think Nate misunderstood the problem, yes the interpolation problem will not be fixed from that since it's a completely different issue. What you are looking for requires inverse kinematics for animation where you can lock the position of a child bone to what is in many applications known as a null or effector. Personally I don't find it in any way difficult to do with FK animation, you just need a few more keys.

I am just saying is to follow these directions:

  • Enable bone compensation.

  • Move a parent bone.

  • Press K.

After doing this, you will have moved the parent bone, moved the child bones the opposite amount, and keyed the changes. That is all. 🙂

After reading your first post again, I think maybe you have not set keys for the child bones at frame zero. This is why there is no interpolation. Without a starting key, Spine doesn't know where you want the interpolation to start from.

what he is after is the interpolation between the two keys, and he wants it to be locked into place there, that's not how child compensation works though, if the parent bone is moving, so will the child bone unless you set a key at every frame. As I mentioned, what he is requesting can only be achieved with inverse kinematics while being able to pin a bone into position 🙂

He says, "when reached the specific frame all of a sudden all the child bones are snapped to the locked position". It sounds like he needs a key on frame zero for the children.

Nate :

He says, "when reached the specific frame all of a sudden all the child bones are snapped to the locked position". It sounds like he needs a key on frame zero for the children.

I think shiu understood my problem. I do have a key on frame zero and if I move it from zero the child follows the parent smoothly as it should be if I don't lock the child bone, but when reached the frame of locking it will snap to that position and become disconnected, after that frame, the chile will again follow the parent but start from that locked position so the animation is werid. I can't uploade screenshots since this forum doesn't support local upload. I will now try the inverse kinematic 🙂

Also, is there a fast way to hide all skeleton/images during setup and animating? I saw the animation without bones in the video and was wondering if there is a quick way to do it other than hide everything in the bone image or draw order.

If you move the key from frame 0 it will snap to the position once you reach the frame you place it at, but I'm still not convinced that's what you're dealing with. You can upload a screenshot to imgur.com and link it from there if you want.

In the options panel you can turn off visibility of bones by clicking the dot in the bones row in the visibility column.
 Loading Image

ryf9059 :

I do have a key on frame zero and if I move it from zero the child follows the parent smoothly as it should be if I don't lock the child bone, but when reached the frame of locking it will snap to that position and become disconnected, after that frame, the chile will again follow the parent but start from that locked position so the animation is werid.

This sounds very strange because there is no such thing as "the frame of locking". Using bone compensation is only for manipulating the bones. It just moves the child bones the opposite amount when you change the parent. It doesn't save any special keys in the animation. If you were to move the parent and then move the children back to where they were, you'd get exactly the same effect as using the bone compensation tool. Because of this, it isn't clear to me what is snapping or becoming disconnected.

You can upload files to the forum, click Quick Reply, then Full Mode, then see the tab under the submit button:
 Loading Image

You might try making a video with one of these:
http://www.techsmith.com/jing.html
http://www.screencast-o-matic.com/

7 天 后
Shiu :

I think Nate misunderstood the problem, yes the interpolation problem will not be fixed from that since it's a completely different issue. What you are looking for requires inverse kinematics for animation where you can lock the position of a child bone to what is in many applications known as a null or effector. Personally I don't find it in any way difficult to do with FK animation, you just need a few more keys.

Can you tell me where do I toggle the inverse kinematic feature for the animation? Also, it sounds that this kinematic thing will completely lock the child bone, is it possible to have the child bone doing it's own motion, independent of the the parent, rather than complete lock done?

Also I didn't under stand what FK animation stands for

Use the Pose tool for inverse IK animation, keep in mind this will not give you the option of locking objects into position, but rather just give you a quick way to pose your bones. FK stands for forward kinematics.