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?

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

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

  • $\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 '16 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 '16 at 13:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.