When I parent an object to another object with keep_transforms=True The object stays in place as expected, however I noticed that the location attribute of the child did not change.
If I zero out the location, my child object goes to the center of the world. I would expect that if I parent something with keep transforms, an inverse transform is applied to my location (location would not stay the same), I would also expect if I zero my child location attributes that the resulting position would be the same as the parents location.
There must be an extra transform offset kept somewhere which is trying to preserve the original location coordinates, basically storing the inverse that I feel should be applied to my child location as an offset attribute when I do the parenting. Where can I find info on this invisible attribute/offset?
This behavior is simply bizarre to me.
Steps to reproduce:
- In the default scene Add->Empty->Plain Axes
- set Empty location to (-2.0, 10.0, 2.0)
- Translate the default cube 5 in the X direction
- Select Cube then the Empty
- Object->Parent->Object->Keep Transforms
- Select Cube, notice Location X is still set to 5
- Zero out location of Cube, notice Cube goes to world center.
- Rotate or move Empty and the cube is no longer at the center, but has 0,0,0 for location.
Where is the extra transform stored and why is it stored at all?? If the parenting took place at world space 0,0,0 for both objects, it works as expected, but that is not convenient and seems ridiculous as a workaround.
Using Blender 2.68
ParentandParent (Keep Transform)are exactly the same and they both behave as a normal parent. I'm not sure of the "proper" way to useParent (Keep Transform). – Italic_ Sep 22 '17 at 18:23