Hello, I’ve been taking notes on Matrix math today in Maya and just learned about the Offset Parent matrix feature. I was wondering, is there any advantage for traditional parent constraints over this that I’m unaware of? It almost seems to me that parent constraints would be obsolete due to inability to key trans. and rot values, more simplicity due to offset parent matrix only needing one connection. Or is this the wrong view due to lack of experience…thanks!

It all comes with pros and cons.

Space switching is the first difference I can think of for OPM’s. If the constraining and the constrained objects each have different parents, and those parents have different translations and rotations, then the OPM won’t work as expected. You’d have to multiply the constraining’s world matrix by the constrained’s parent’s world inverse matrix (make sure you get the right order of multiplication) and plug that into the OPM plug. It’s certainly doable. And it can be omitted in certain cases.

Another difference is that objects with OPM connections don’t show that they have OPM connections in the channel box. We had a CFX rig that used OPM’s to control a dynamic T-Pose blend … and it caused SO MUCH CONFUSION. More than half of the time when I helped debug a CFX issue, my answer was “You forgot to connect the OPM for this object”. I wrote QC checks for that, and mis-connected OPM’s STILL showed up.

One more difference is how shears are handled. Since the OPM is just a matrix input, there could be shear transforms in that matrix. Parent constraints don’t shear. You could remove the shear from the OPM’s incoming matrix (I don’t know the most efficient way, but it’s certainly possible), but that’s just another node or two in your file.

Personally, I like OPM connections where I can use them. It feels more like pure math to me.

But sometimes the convenience of just clicking the “parent constraint” menu item wins out

We have a member of the rigging team who is a very good rigger but not very python savvy. He likes to be able to see all the connections clearly. He dislikes that OPM is not clearly visible in the Outliner or channel box like constraints are.

it is true that the parent constraint is easily visible in the nodegraph but i can also clutter it

adding the offsetParentMatrix to your custom attribute list will make it visible and easy to see how the connection flows