5
$\begingroup$

I used Blender2.79 and I think I just find the problem.

I have two objects and I want to make parent relations to each other,

when I used CTRL + P, the child's transform location still relate to the world's location.

enter image description here

However, when I manually use (properties -> object -> Relations: Parent) and select the object that I want to set it to parent. It used the parent's transform.

enter image description here

I belive those two ways are doing the same things and I miss the setting or this is a bug??

$\endgroup$
  • $\begingroup$ I just realize if I used (CTRL + SHIFT + P) and it can used parent's transform as world transform. $\endgroup$ – Edmond Nov 15 '17 at 9:13
4
$\begingroup$

This is from wiki:

At the very moment of establishing a hierarchical relationship between objects (parenting), the transformation coordinates of the child object remain unchanged, and yet this object doesn't change its global transforms visually (location, orientation or scale), though its reference "world" has changed from global origin (zero transforms) to the global transforms of the parent.

Origin of unparented objects is the global origin: global (0,0,0) location, zero rotation, and unity scale. After being parented, the new origin should be that of the parent. And it is. But a correction matrix is applied to the child, so that the new reference point is not the global transforms of the parent, but the global origin. This correction matrix is applied to the global transforms of the parent before applying them to the child.

This correction matrix called Parent Inverse

You can do this operations with Parent Inverse:

Alt + O (clear origin) - this operation clears Parent Inverse and makes object go to the parent location.

Ctrl + Shift + P (Make parent without Inverse) - it's like what you do in properties -> object -> Relations: Parent. Or like Ctrl + P and Alt + O and Alt + P Clear Parent Inverse in one comand

Alt + P Clear Parent Inverse - Like Alt + O but for rotation and Scale.

Why Blender using Parent Inverse?

Let's try 2 objects with Parent Inverse:

enter image description here

and without:

enter image description here

As you see, transform matrix, applied on parent object without inverse, makes child object distorted. If you want this effect - you are welcome, but mostly, we don't want it

|improve this answer|||||
$\endgroup$
0
$\begingroup$

We don't want it? The rest of the world thinks otherwise. The "defect" shown only concerns the scaling on a single axis, a rare necessity (simply scale the vertices in edit mode). This "defect" occurs with all 3D software (Maya, Max, Softimage, Cinema 4D, Modo, Unity, etc.), all idiots? Parent inverse creates many problems, children no longer have a reference center. After moving the father or worse rotated you no longer have references for the children, absurd! If you have to make complex rigs and hierarchies with many objects, give up Blender unless you have so much time to waste. Some strange choices like this have prevented professional users from using Blender for the job. With the 2.8 and 2.81 many problems have been solved, we hope that it will be fixed and that the parent invers remains only an option.

|improve this answer|||||
$\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.