What seems like a long time ago I wrote rigarmarule in Blender 2.49. For reference you can check the blog post here and here , or you can check out the project from SVN:
svn co http://projects.freefac.org/rigamarule

Rigamarule is not exactly an auto-rigger (though it can be part of one, or assist one) – it’s rather better thought of as a constraint system that affects rigging instead of animation. To make it easier, we call them ‘rules’ rather than constraints, and it makes sure things in your rig stay aligned and correct no matter how you move the joints around. This allows making fast adjustments to characters, or it allows retargeting a rig to a different proportion character, or it can be used to make templates ‘smart’ for use with etchaton or other template-retargeting system (at which point you do get something like an autorigger)

The problem is that this system was written in Python 2.5 / Blender 2.49. At the time we hadn’t switched the movie to Python 3.1/ Blender 2.5. Our script is now not usable by us! and I do not have enough time budget to do the porting myself.

This is an official cry for help, if we can get some assistance porting we can use the script for the movie, and it will allow future upgrade work to make the script even better, and to further integrate it with other rigging tools to help make the ultimate autorigger for Blender.

  1. Lorenzo :

    Hi Bassam!

    I think I’ll have some spare time soon, and I’d love to help out with tube 🙂
    I’ll try and see if I can do something…

    ciao,
    lorenzo

  2. Hi Lorenzo – that would be awesome 🙂
    Thanks a lot )

  3. I saw that you already got some steps forwards, so I firstoff wanted to share the one missing patch for print statements:

    diff –git a/Bpython/dr_taggert.py b/Bpython/dr_taggert.py
    — a/Bpython/dr_taggert.py
    +++ b/Bpython/dr_taggert.py
    @@ -53,7 +53,7 @@ def add_IDs(arm_pose,template):
    bone = arm_pose.bones[bone_name]
    pycons = [ const for const in bone.constraints if const.type == PYCON]
    if ID in [const[PYTYP] for const in pycons]:
    – print “bone already ID’d”
    + print (“bone already ID’d”)
    else:
    const = bone.constraints.append(PYCON)
    const[PYTYP] = ID

    Aside from this, 2to3 gives some hints which might be necessary. Just run `2to3 Bpython/*py` to see them and `2to3 -w Bpython/*py` tro apply them.

    Do you need fixing in the *.blend files?

  4. Hi Arne, thanks! I didn’t remember 2to3, that’s a nice thing 🙂

    Yes the .blend files will need to be fixed eventually. If you look at the new changes in rigarmarule.py, you’ll see that I’m no longer using python constraints to tag the bones, for two reasons ( it was a hack to get around not having IDs on the bones themselves in 2.4x, and pyconstraints are not even available (yet) in 2.5)
    I found from theeth (Martin Poirier) that etchaton indeed still works in 2.5, so I will have to recode the etchafix option (right now it’s just removed from the 2.5 version of rigamarule.py)

©URCHIN 2015