0
$\begingroup$

If I rotate on the y or z axis, the legs move in unison, which is what I want. I've tried setting and clearing inverse.

enter image description here

enter image description here

$\endgroup$
2
  • $\begingroup$ Can you share your Blender project file? Instructions for sharing. $\endgroup$
    – Jakemoyo
    Commented May 31 at 13:39
  • $\begingroup$ @Jakemoyo I edited it into the post. $\endgroup$
    – SizPle
    Commented May 31 at 17:34

1 Answer 1

1
$\begingroup$

Basically, because of a long-standing bug with Blender, but it's not a big enough deal to worry about, because it's not a good idea to use the bugged functionality in the first place.

To fix, starting from the file provided:

  1. Enable all location and scale axes on the constraint.

  2. Clear inverse on the constraint.

  3. Set inverse on the constraint.

Done.

enter image description here

Blender doesn't set inverses correctly for child-ofs without all fields enabled. And, doing a child-of on partial fields is really something that doesn't make that much sense to begin with-- a child-of operates on matrices, not transform fields.

Your child-of isn't set up in a great way anyways. The child-of is parented to another bone. That means that it'll be inheriting from two different bones: it'll inherit from its parent, then it'll apply its own transform, then it'll inherit from its constraint target. So first, it'll rotate from its inherited position, about the center of the target, so moving the armatures far apart won't work. Then, you have inherit rotation disabled, but not inherit scale. If scale does matter, that'll cause you problems. If scale doesn't matter, unparent the bone instead, and copy location from the tail of its old parent after the child-of.

It's possible that you want to move your retargeted armature to someplace else, or scale it somehow, independently of the target armature, and of course, child-of with all fields will cause you problems with that-- but because of how you have this set-up, child-of with limited fields will also cause you the problems I just mentioned. If doing wierd things with animation retargeting is your ultimate goal, you'd be best off settings things up to copy rotation instead-- if you want the exact world-space rotation of the target, just copy world-space rotation. If that rotation is in different axes, make a bone in the appropriate axes, or use any of the myriad options Blender offers for spaces (options I find more difficult than just putting a sandwiched non-deforming parent in the axes I need, so I haven't explored them fully.)

Or, it's possible that your ultimate goal is something else, but then it'd be good to ask about that something else instead-- odds are, there's a better solution than a child-of constraint. Child-of is an easy solution for small problems. It's not a good solution for serious problems. And, its parameters (limiting transform fields, but also influence that isn't 1 or 0) are just hacks, not good ideas.

$\endgroup$
1
  • $\begingroup$ Lmao, my first instinct was to suggest "Have you tried clicking "set inverse/ clear inverse" without any logic behind it. Turns out I was on the right track. $\endgroup$
    – Jakemoyo
    Commented Jun 3 at 13:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .