A shape key for a model Im working with makes the legs longer. The issue is that the bones look offplace due to the mesh changes. Is there a way to make necessary bones move with the shape key to make it look better (perhaps a driver?)
2 Answers
Have you just answered yourself? Use driver.
- Disconnect bone (Alt+P), so that it can be moved
- Go to shapekey - RMB → Copy as new driver
- Go to bone - RMB → Paste driver
- Edit driver - manipulate curve so that it works good for you
Probably mesh will be moved also due to bone move... So maybe you are going to have to move bone points back due to bone moving
The right way to do this is make adjustments with the bone first, and shapekeys only for what you can't do with the bone alone, such that the bone is in the right place for the mesh changes, because the shapekey doesn't change where the bone should be, only the pose changes where the bone should be.
However, it's not impossible to make a bone (or "armature structure", I guess) that changes its "rest" position to adjust to a shapekey.
In edit mode, duplicate the bone that needs to change its "rest position" and parent the original to the duplicate. Consider disabling "deform" property on the duplicate. Consider transform locking all axes of the original bone.
Give the original bone a copy location constraint, local->local space, with invert enabled on all axes.
Now, in pose mode, adjust the position of the new bone to match where it should be for your new shapepkey. You may notice that the original doesn't move; it shouldn't, if it moved then that would mean that the mesh would move with it, and you'd be getting double deforms. But now rotate or scale the new bone. Now the old bone will follow the new bone-- particularly, it will rotate and scale about the new origin defined by your movement of its parent.