1
$\begingroup$

I am importing a DAE file which has objects in a hierarchy.

When I change the first object in the hierarchy's scale (reducing by a scale factor of 1000), the object becomes smaller to the size I would like.

However, when I view the XYZ location of an object lower in the hierarchy, the dimension scale change, but the location does not. Why is this?

Example:

Before doing anything. Note the Location XYZ enter image description here

Original scale factor of top level object: enter image description here

I have now changed the scale for the top level object to a scale of .001: enter image description here

I'm selecting the object a few down the hierarchy again. As you can see the dimensions of the object changed, but the location XYZ does not change.

enter image description here

$\endgroup$
6
  • $\begingroup$ To be clear, you are asking why an object's location doesn't change when you scale it? $\endgroup$
    – person132
    Sep 14, 2020 at 2:44
  • $\begingroup$ @person132 - Yes. $\endgroup$ Sep 14, 2020 at 2:52
  • $\begingroup$ I am fairly certain that this would not be the expected behavior. Position and scale are two separate properties of objects, and changing one shouldn't affect the other one. $\endgroup$
    – person132
    Sep 14, 2020 at 2:56
  • $\begingroup$ The position shouldn't change, but the decimal place should. It's currently 206m away from the previous object, when it's size is .2m. $\endgroup$ Sep 14, 2020 at 4:54
  • $\begingroup$ Further to the answer of lemon below,see blender.stackexchange.com/a/169424/15543 So for any child object what we see in transform panel is somewhat arbitrary, and not global coordinates. The scene cursor displays global coordinates,. To reflect changes down a hierarchy consider apply scale ctrl-A of the base making it unit (1, 1, 1) scale for current size. scaling descendants, do again for children etc, resulting in all parts having a uniform unit scale. Some importers have a scale option to do this for us, not dae by the looks. $\endgroup$
    – batFINGER
    Sep 14, 2020 at 8:37

1 Answer 1

1
$\begingroup$

It's due to the parenting and an expected result.

When a child appears scaled due to its parent scale, the child own coordinates, scale or rotation won't change.

That's allow, when unparenting AltP, to have the choice between "clear parent" and "clear and keep transform".

Internally, Blender keeps the object own coordinates in matrix_basis and the resulting coordinates of its dependencies in matrix_world.

Also, moving the parented object by x unit will result in a move of its own coordinates of x unit times the inverse of the scale given by its parent. So, all is coherent.

If you want to keep parenting with scales and locations being applied, select all the parts and use CtrlA to apply, then "scale".

$\endgroup$
2
  • $\begingroup$ It seems that using the Alt + P "clear parent" and "clear and keep transform" option does correct the location XYZ scale, but it removes all hierarchy. I need to maintain hierarchy and get the correct XYZ location. Is there a way to do this? $\endgroup$ Sep 14, 2020 at 18:13
  • $\begingroup$ Yes, select them all and apply scale (ctrl A then scale) $\endgroup$
    – lemon
    Sep 14, 2020 at 18:19

You must log in to answer this question.

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