Maya procedural rig IK has weird rotations after saving out a version and opening up. ##SOLVED##

Hey team, 

So, I have created a fully scripted procedural horse rig, pretty standard stuff in terms of features. 

The problem is, after I have created an instance of the rig and saved it out as a version - looking perfect as I do so. After I open that saved file one of the legs has rotated out of place, and I can not for the life of me figure out why. 

It's not coming from any of the controls, they are all in the correct position, it's not the poleVector either. I guess the hard thing to fathom is why would I get a perfect result when I instance the rig, only for it to break when I save out a version. 

Any insight would be greatly appreciated, below are images showing the issue. The first is a fresh instance, then saved as a new scene, then opened and the result is image 2. 




Thanks.

Replies

  • ThomasBenjaminHardy
    Solved - I rebuilt the joint chain, I think something was happening in the mirroring perhaps. Anyway, it works fine after rebuilding the chains. 
  • Mark Dygert
    I'm glad you solved it! And that you posted the answer for future people. They may never say it so I'll say it now, thanks!

    I've run into that same issue with mirroring and I'll usually mirror a chain to get the positions correct, then create a new chain snapping it to the mirrored version and then get rid of the mirrored. 

    Mirroring can cause some wacky transforms and incorrect rotation orders which have to be managed very carefully and those settings are confusing and its not always apparent that they aren't correct until you start hooking up systems and then the results don't always show you what's going on in a way that is easy to diagnose.

    USUALLY it's that mirror tool flipped certain axis and possibly changed the rotation order so when you grab two joints on opposite sides of the body they rotate the same way. Sometimes you do that flip on the controller level, sometimes at the top of the chain, sometimes it's handled in an expression or through the joint axis and rotation order. There are a lot of ways to do it which leads to subtle differences in how you rig up the left as opposed to the right.

    Sometimes you can straighten that out by putting things in a group but it is almost always better to rebuild it, so you made the right call.

  • ThomasBenjaminHardy
    Thanks for the feedback, your explanation is very helpful. 

    This is the first time I've come across the issue, and luckily as the rig is instanced, debugging by cutting away chunks of code until it fixes the result helps. 

    Thanks again. 
Sign In or Register to comment.