Weird design of object parenting especially regarding parent inverse (or is it broken?)

I’m currently wondering if the current behavior of parenting espeically regarding the parent inverse matrix is very useful or if it even does not work as intended.

At least I was not able to notice any difference betwen using set parent
and set parent (keep transform) at all and set parent (without inverse) actually cleared the transformation (but this also the case in 2.79) and not what I would expect when parenting without inverse.

I’m wondering if this behavior is quite useful, especially since there is no direct way to get from an unparented object directly to the state of parenting the object and then clearing the inverse afterwards.

I made a quick visualization of this and one out of many possible more useful behaviors that come into my mind for this which keeps at least the current behavior what the “clear inverse”.

Current behavior with no notable difference between set parent and set parent (keep transform)

Some behavior that would at least seem to make a bit more sense for me

Note this is probably not a very good solution and more thoughts could be put into this and how to label the operations.

Adding to that the without inverse option does not remove all transformation but just the translation, so I’m wondering if what this does for now is something useful at all.

I’m mainly asking if I’m missing something why the current design is useful or what the intentions are for the current behavior or if there’s even something involved that does not work as intended.

1 Like

The current design is centered about everything being worldspace. But the way this is handled has many flaws. And while you can generally tweak the hierarchies matrices to have the child nested in localspace, that also has lots of open ends and missing comfort features doing the needed conversions. We talked about it here:

But we failed getting any attention.