has been shut down on the 6th of March 2021. You can read a bit more about it here.

You are currently reading an archived copy of the latest content, with all the usernames deleted.

Deleting unneeded constraint connections...

by user21 posted 02-01-2018 | 8 comments

Hi all,

I was wondering which connections of a constraint can be deleten safely, in order to kill the circularity but still have everything work!


by user3 posted 05-01-2018

I am no expert on evaluation and I definitely suggest carrying on with Cult of Rig as that's a big portion of what Raffaele talks about, but the way I understand it is that you can safely break everything that goes from the constrained object to the constraint, once your rig is locked in place.

If you need to support multiple rotation orders you would need to leave the the rotateOrder to constraintRotateOrder connection. Similar for the pivots, though, I doubt you would need to support that.

The only connection left is the parentInverseMatrix to constraintParentInverseMatrix, which cannot be just deleted, but it can be safely replaced without the cycle, by just grabbing the worldInverseMatrix of the parent of the constrained object instead of the parentInverseMatrix.

The downside with this, as the others pointed out, is that you can't reparent without having to change some connections, but again, if your rig is signed off you wouldn't need to change parents.

Hope that helps, and again, definitely keep up with the cult.

EDIT: It would be great if you could do a performance check and share the difference in the results, so we can keep them in mind. I wouldn't expect to get too much out of it, though.


by user9 posted 03-01-2018

The circularity of maya constraints isn't that bad because we need the parent inverse matrix to determine the offset. This is because we want to shift the space.

Having this circularity gives us the convenient to freely parent our constrained nodes in the hierarchy.


by user21 posted 04-01-2018

I understand and it's great! That said, once my Rig is done I can't think of a situation where I ever wanted to reparent parts of it! So if it improves performance, why not clean it up?

I do use a lot of constraints and reparenting in my workflow and i wouldn't want to get rid of constraints... just trying to improve the ones that won't get changed! ;)


by user113 posted 03-01-2018

They are though considered a cluster in the evaluation graph as theres a feedback loop.


by user9 posted 07-01-2018

That being said, when we truly avoid constraints to get the benefits. Does it mean we should not change the rotate order in DAG node? Because decomposeMatrix node only works for 'xyz'. I know that it has input rotate order, but it's a bug according to what I read from internet.

Do i miss something here?


by user60 posted 03-01-2018

Hi, this was mentioned in the last episode of Cult of Rig. Here's the part where he talks about it:


by user36 posted 12-01-2018

Links to particularly good bits from Cult of Rig would actually make a good thread discussion. There's lots of useful info in there, but it's so long and unorganized that it's hard to get through it all without missing things.


by user21 posted 04-01-2018

Awesome, thanks! Haven't progressed that far, yet. Currently sitting at Season 0 Day 8. But I'll hava alook right away!