Deleting unneeded constraint connections...

by SplineO posted 166 days ago | 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 vshotarov posted 163 days ago

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 denilson020898 posted 165 days ago

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 SplineO posted 165 days ago

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 chalk posted 165 days ago

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

by denilson020898 posted 162 days ago

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 tdHendrix posted 165 days ago

Hi, this was mentioned in the last episode of Cult of Rig. Here's the part where he talks about it: https://youtu.be/Bm7vtxdJJBQ?t=1h8m59s

by Voxel posted 156 days ago

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 SplineO posted 165 days ago

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