Update for Blender 2.8 is available!
I moved all the commands from side panel to Object-Parent menu.
One feature I find missing in Blender, is ability to quickly group objects under new Empty (Null) object. I found an addon called “Parent to Empty” – it was great but did not work inside hierarchies. Based on that addon, I created my own, improved version – which works in hierarchies and as a bonus – removes children object inverse matrix. (About the strange inverse matrix – read below.) As in original addon, you can create the Empty object in three places – center of selected objects, center of active object or at 3d cursor. You can also create a Blender Group with the same name and add all objects to it.
- ‘Reset Invert’ clears the hidden offset for selected objects that are already parented using Blenders default parenting.
- ‘Center object to children‘ and ‘Move parent to 3d cursor‘ does what it says it does.
Blender Parenting weirdness
Blender has a weird parenting system under the hood. What I mean is that child object local coordinates are not fully local in relation to parent, but there is the hidden “origin” transformation “matrix_parent_inverse” which is not represented in UI in any way.
Simple example :
- Create two objects at 0,0,0.
- Move one object somewhere and then take the first object (still at 0,0,0) and parent it to moved object.
- You would expect that child objects coords would now be offset relative from parents, but no – they are still 0,0,0.
I mean come on – when child’s local coords are 0,0,0 it should be in the origin of it’s parent, right!? True in every other 3d software and 3d game engine there is, but not in Blender! Boom!
There is a command “Make Parent without Inverse” that does parenting without the hidden offset, but it destroys the real offset – putting child in the center of parent and this is bad. There is also a command called Clear Origin, that does something similar (but not exactly and not always – and it is not clear to me what and why.
So, before there is an official method in Blender, you can use my ‘Parent Standard’ method.