Child of Constraint issues

I understand that Child Of is the constraint version of the standard parent/children relationship between objects (the one established through the Ctrl-P shortcut, in the 3D Viewport). However, for one reason or another it doesn’t work like that for me. The problem is explained below;

Imagine I have a hand bone of Armature 1, parented to a shoulder bone of armature 2 through empties, where armature 1 is holding armature 2 by the shoulders and they’re running. This works fine, it works as intended, there is no clipping.

However, I soon realized that if I ever wanted to swap the position of the hand to somewhere else, let’s say the head, I couldn’t, because the hand is tied to the shoulder bone without any way to deparent it because I was a dumb dumb and didn’t use constraints in the first place.

Now I sought to rectify this mistake I made with making use of the Child Of constraint, which in theory, should perform the same as me parenting the empties to the shoulder. However, this is where I encounter an issue.

Whereas the previously manually parented empty to the shoulder bone had no clipping issues, this one even though it does follow the bone, seems to be clipping, etc.

My question is, how come this happens, considering they’re meant to act on the exact same level?

(Tried already to deparent the empty and just use the constraint, still clips.)

Sorry for the long read and thank you for any help on this topic.

I don’t have an answer, but I do have a quote from the animation-module blender.chat owner:

dr.sybren:

BClark AdamEarle the ‘Child Of’ constraint is actually forbidden at Blender Animation Studio, because it’s so easy to mess up, and so hard to restore it. And even worse: sometimes it’s not clear that it actually broke, until you go back to those few frames where it was used, and it’s messed up beyond repair.

I see. Huh. Any good alternatives to it then that one should use?

I don’t think that’s a great understanding. There are similarities, but there are also important differences. Thinking about it just as you described might lead to making some errors.

If you want child-of to work just like parenting, then the child-of bone/object must not have any other parents, probably shouldn’t have any other constraints (spaces are going to be different between the two) and should have default options for child-of and for parenting (ie, inherit everything.)

Here, where you have a situation that works, and a situation that doesn’t work, and we don’t have the file to see all of the details (I know there are more relevant details than are mentioned here), what I would recommend is, make something (empty, bone, doesn’t matter) that is parented, that duplicates the relationship that you know works and duplicates it in the same way, and then “copy transforms” from that something, rather than using the technique that isn’t working for you.

Hey there!

Thank you for this piece of advice :slight_smile:

Once I get back to the PC I’ll be sure to give it a shot and report my findings back!

Animate/keyframe the influence of the Child Of modifier. 1 to 0 to “unparent”, then 0 to 1 on a second Child Of constraint on a different bone. You shouldn’t need to use empties for this, only bone constraints – unless you have a specific use case.

image

Edit: Example blend for you:
childof.blend (789.7 KB)

1 Like