"Rig check" function available?

(This is course is awesome. I have done some rigging, ignorantly, for a while. Good organized training makes all the difference.)

I've noticed that I accidentally left Deform enabled on some IK bones, virtually always a bad thing. If I notice  weird behavior I can manually check for/correct some such goofs. IK seems to have quite a few pitfalls.

Based on all I've learned so far, there seem to be a lot of subtle mistakes possible which will mess up a rig (aforementioned IK, double offsets, parenting issues...) Behavior anomalies may be obvious, or not so much. Maybe I am just lazy, but I was wondering if any add-on has a "check rig" function ("lint remover" in programming terms) which flags suspicious items. I suppose one could be programmed. Or as an alternative, is there a good overall manual checklist to run through a rig top-to-bottom? It could be pretty tedious.


  • crew

    Hey Techworker.

    I get where you are coming from but I'm not sure if that kind of thing could be created.  There would just be too many things that could be the cause of the issue for an add-on to check.  It wouldn't really know how the rig should be setup in any instance.  But coming at this problem from a different side is doable! - more on that in a moment.

    If you're rigging stuff manually, you will learn to recognise what the issues are and what the solutions are too.

    The mesh being left behind - oh those verts have zero weights.

    Something moving double - it's getting double transforms, check the parenting, constraints and any drivers.

    Something flips when hits 90 or 180 degrees, take a look at all the bone that is flipping and then check the constraints.

    Everything is going nuts when I move a bone - check that the length of the IK chain is correct and the target isn't in that same chain


    Like I said, problems and their solutions (which there can be more than 1) will come with experience.  But always start by checking the parenting, the constraints and the drivers.

    Now back to the idea about "checking" a rig. I have 2 ideas for this, and they both involve code.

    The first idea  is to simply use a rigging system that does everything in a predicable way - Rigify for example.

    All this does is build predefined setups using a base skeleton.  You say, "turn these 3 bones into and arm" and the rigging system will do all the hard work of putting ALL the bones in the right place with the right constraints etc.

    Because it's done with code, the computer doesn't forget to do something like disable the deform setting.

    The second idea is to write scripts for specific tasks.  This is something I do quite often when you have to do tedious tasks (even when I'm using rigify).

    Here's a recent example.

    I had to rig a whole bunch of hair chunks with multiple segments.  About 50 hair chunks with 3 bones each - all tightly packed together.
    Each of them needed a unique constraint.  How did I script this task so I didn't spend two days clicking and selecting the wrong bones or making mistakes?

    I used scripting.  I selected all the bones I needed (with code) and added the constraints to them based on their names (with code).

    And because it was done with code, there was no mistakes.

    Now in your situation, you might be able to fix any errors you made with scripting.

    Forget to disable the deformation option?  Maybe you can iterate through all the bones, grab the ones that shouldn't have it turned on (based on the name - eg the ones that don't have _def or DEF- or whatever your naming convention is) and then disable it.

    You can also take this further.  Should all the MCH bones be on a specific layer.  Loop through, and move the ones with MCH in the name.

    But start small with this, and just do stuff to the selected bones.  It makes it easy to know what you are going to affect.

    Hopefully that makes sense.

    Ok, I swear I didn't mean to write a novel to answer your question but that's kind of what I've done haha.

    But hopefully it's given you a few ideas!

  • Thanks a lot. Lots of good ideas.

    I did actually script the IK+deform check - pretty easy. I have scripted other complex/repetitive tasks - comes naturally, since I am a retired programmer (and more comfortable programming than rigging ;). I will keep a lookout for "what I need" and maybe add it as time allows. Also I will probably go back over the training and make myself a list of "gotchas" to watch out for. 

    • With reference to "hair chunks", it reminds me of a project where I was animating shoe laces with dozens of bones. I created a little add-on to make "rope motions" easier... Haven't used it in a long while.