1
$\begingroup$

Imagine simple setup: CubeA has a Copy Rotation constraint with CubeB as a target. CubeB has world's orientation. CubeA has different orientation (LocZ=GlobalX, LocX=GlobalY, LocY=GlobalZ). Constraint is set for World to Local Space copy. For now everything acts as expected (e.g. rotating CubeB around Z rotates CubeA around global X).

If I parent CubeA to CubeC everything changes: rotating CubeB affects CubeA as if it had global orientation. Rotating CubeC changes effect even more. Now CubeA rotation is similar neither to CubeB's nor to CubeC's. Something like this

I don't want to make this question too complicated but if I change the order and apply the constraint after parenting the objects then result is different again from described above though I still can't pursue its logic.

How do constraint and parenting interact with each other? How can one estimate the final child's orientation?

$\endgroup$
2
  • $\begingroup$ Please place Blender screen capture images in your question, to clarify your question. $\endgroup$ May 22, 2016 at 14:54
  • $\begingroup$ Sure. I'll try to demostrate. $\endgroup$
    – hypers
    May 22, 2016 at 20:09

1 Answer 1

1
$\begingroup$

In the copy rotation constraint you say you have set the copy space as world->local, that means rotating CubeB on the global z-axis will rotate CubeA in it's local z-axis.

As you parented CubeA to CubeC and then rotated CubeC, Cube A is located below CubeC but you should also notice that as CubeC is rotated, CubeA is rotated using the CubeC location as the pivot point, this leads to the CubeA local z-axis now aligned to the global x-axis.

This leads to the local rotation that you now see, CubeA is still rotating on it's local z-axis but that is no longer aligned to the global z-axis, so it appears to rotate differently to CubeB.

If you use an object that is easier to see the orientation, what is happening will be clearer.

sample animation

$\endgroup$
2
  • $\begingroup$ Thank you. This sheds some light for me. Please note however that CubeC had some initial rotation prior to becoming a parent. That was not reflected in your example (neither in mine). Looks like it was just ignored by the constraint. It is also unclear what is the practical way for figuring out the final orientation of the child if an object is more complex and angles are not equal. Plus I still can't understand why it is different for the same setup but having parenting to occur before the constraint. Cheers. $\endgroup$
    – hypers
    May 23, 2016 at 13:29
  • 1
    $\begingroup$ A child records the parents transform at the time of parenting, so only changes made after parenting alter the childs transform. I'm quite sure constraints are applied after parenting. You could try using a child of constraint instead of parenting and alter the constraint ordering. $\endgroup$
    – sambler
    May 23, 2016 at 13:46

You must log in to answer this question.

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