Hi All
I have come across an issue, or to be more exact one of our animators has come across and issue with the lock bone function.
she has a rig with a hip bone which is the central bone for the character, a spine and pair of legs parented to it, but if she locks the hip bone and scrubs through the timeline the character rattles a little. We are using Pro 5.6 on Leopard.
Has anyone come across this issue before? Or any workarounds anyone knows off would be helpful.
thanks
Jeremy
lock bone causes the character to shake a little
Moderators: Víctor Paredes, Belgarath, slowtiger
-
- Posts: 259
- Joined: Wed Feb 13, 2008 10:28 pm
- Location: Kilkenny, Ireland
- Contact:
First off, if the hips are the "center" why in the world would you lock the hips? If they are the center they are "locked" by default. There is no need to lock the FIRST bone of a chain. Usually you lock the LAST bone or one of the bones lower (higher?) in the chain.
Having said that here's what little I know about "bone locking" and IK with AS.
The bone "lock" uses something called an IK solver. Any program that has IK or locking uses some kind of equations or algorithms to calculate how a link in a chain reaches a certain spot based on all the other bones rotations and lengths etc. Lots of stuff to keep track of. When a bone is locked it forces the other bones in the chain to calculate how to reach a rotation or location using the IK calculations. If isn't just "magic" to do that. It requires a bunch of math. The IK solvers have to be created (I'm playing around sort of trying to create my own with AS scripting. Not easy.)
What is happening with the "wiggle" is that the IK solver is finding varying degrees of solutions for the bones to reach their "goal". It's have trouble finding the most efficient and shortest "route" to reach that goal. So the bones "wiggle" as it "changes its mind"
. To eliminate this you need to make sure that the bones aren't "bound up" or pushed into positions that stretch the limits of their reach or create positions that cause the IK solver to choke. If a bone is locked and any of the bones in the chain are pushed to far or rotated too far the IK solver will struggle to find a rotational solution for each bone to reach that spot. This may cause spinning bones or weird bending, shaking or wobbling.
The trick is to make sure there is some "slack" or room for the bones to have some extra space to move so the IK solver doesn't get stuck. It isn't always easy. Sometimes you may need to put in keys for some of the bones in the chain on some frames to force them in the right position.
Once again, normally you would lock the hands or the feet not the hips in a rig as you describe.
-vern
Having said that here's what little I know about "bone locking" and IK with AS.
The bone "lock" uses something called an IK solver. Any program that has IK or locking uses some kind of equations or algorithms to calculate how a link in a chain reaches a certain spot based on all the other bones rotations and lengths etc. Lots of stuff to keep track of. When a bone is locked it forces the other bones in the chain to calculate how to reach a rotation or location using the IK calculations. If isn't just "magic" to do that. It requires a bunch of math. The IK solvers have to be created (I'm playing around sort of trying to create my own with AS scripting. Not easy.)
What is happening with the "wiggle" is that the IK solver is finding varying degrees of solutions for the bones to reach their "goal". It's have trouble finding the most efficient and shortest "route" to reach that goal. So the bones "wiggle" as it "changes its mind"

The trick is to make sure there is some "slack" or room for the bones to have some extra space to move so the IK solver doesn't get stuck. It isn't always easy. Sometimes you may need to put in keys for some of the bones in the chain on some frames to force them in the right position.
Once again, normally you would lock the hands or the feet not the hips in a rig as you describe.
-vern
-
- Posts: 259
- Joined: Wed Feb 13, 2008 10:28 pm
- Location: Kilkenny, Ireland
- Contact: