2
$\begingroup$

If I:

  • start a new blender project
  • press Z for viewing in wireframe (helps later)
  • set the origin of the cube to vertex (-1, -1, -1). Do that by pressing TAB to enter edit mode, A to deselect all, right click vertex (-1, -1, -1), press SHIFTS with the mouse cursor inside the 3D viewer then select Cursor to Selected, then TAB to exit edit mode, CTRLALTSHIFTC and set Origin to 3D Cursor.
  • set pivot to the origin (individual origins)
  • rotate 45 degrees on X
  • add a sphere
  • set sphere as child of the cube (CtrlP then selecting Object)
  • reset location/origin of sphere (AltG then AltO)
  • change transform orientation to local
  • select the sphere
  • grab sphere (G)
  • constraint to Y axis in Local (press Y then Y again)

I expected to have the object move within its local Y axis (rotated in relation to the world coordinates), but unfortunately even pressing Y twice, the Y axis constraint is not being set to the cube's rotated Y (it does show "along local Y" in the status bar).

I did manage once to have it constrained by the proper rotated axis, but I can't seem to understand what I did and couldn't reproduce it again.

Can I get some advice on what I am missing?

MORE INFO It seems to me that when I add the sphere to the cube as a parent, the sphere's rotation is not relative to the cube's. I'd have to rotate the sphere to the same 45 degrees in X. However if I add the sphere the cube as child before I rotate the it, now things work properly. But how do I do it when the cube is already rotated? It would be really not optimal to have to remove rotation every time I wanted to add a child object.

$\endgroup$
1
$\begingroup$

From http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Parenting:

The “Clear Parent Inverse” function sets this inverse transformation to the identity transformation, so the child picks up the full parent object transformation.

I guess instead of adding the object to the parent with CTRLP, I have to do it so with CTRLSHIFTP, so that the child+parent relation ship is set and the Clear Parent Inverse is performed.

NOTE: I don't understand the details so if anyone adds a proper answer I'll mark it as answer. For now though this will be the answer for this question.

$\endgroup$
  • $\begingroup$ Duh. This doesn't work as I wanted. It messes up with the scaling of the child. $\endgroup$ – johnildergleidisson Nov 11 '14 at 15:31
0
$\begingroup$

The behavior of sphere is correct, the sphere in the process is never rotated, so the local axis has the same orientation as global. The reset location reset origin has no effect. If you rotate the parent cube and then try to move the sphere by local Y you will see it works.

Perhaps if you want to transform something by specific axis (lets say the local cube Y axis), you can use the custom transform spaces. Select anything(object, vertex, face,..) and add its transform space in properties panel. Then its available for use.

enter image description here

This is especially useful if you select any 2 vertices, set the orientation to Normal and create a custom transform from it. Now you can move anything precisely in the direction specified by those vertices.

$\endgroup$

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.