Put in a "Keep offset" option for the Child Of constraint
This might be tricky to implement, but I think it would be handy.
Let's say I want to keyframe a change in a bone's parent. I could keyframe a Child Of constraint's influence from 0 to 1 for the new bone I want it to be parented to.
The problem is that would also change it's transforms relative to the position of the new bone parent target in the Child Of constraint. I would like an option that behaves more like the parenting procedure of Ctrl-P > Keep offset. That way, I could change the parent of a bone in the middle of an animation without affecting it's current relative transform.
2 Comments
this is what the "set inverse" button in the child-of-constraint button does. after parenting, click that button, and the modifier will remember the offset which it has at this point, and maintain it.
Although technically true, the set inverse and child of constrain don't take in account world space constraining. In other 3D packages, the Child Of or "Parent" constraint will effectively attach a child to a parent thereby removing existing transforms regardless of hierarchy. In Blender it unfortunately doesn't work this way. The child of constraint effectively adds the transforms from it's local parents to the resulting transform. This creates unpredictable motions that basically make this constraint less effective for basic constraining needs.
The only way to duplicate this in blender is to first create a copy of the child bone, parent it under the parent bone, then create a transform constraint between the parented child and the child that needs to follow the motion from the parent bone.