Rigify Auto-Rigging System
on December 17th, 2009, by ideasman42Since there are more then 3-4 characters to be rigged we agreed having some way to make a rig once and re-use with minimal manual tweaking was needed.
Over the past few weeks Nathan and I have been working together to make a system which can generate these in a way that lets us apply them in a variety of situations.
Nathan broke his rigs down into body parts; hips, neck, spine, finger, arm, palm and leg. with the desired ‘before & after’ for each.
Then I took these and wrote a script that would look at the simple rig and create the final version.
After this it was just a matter of putting it all together to rig an entire character.
If this proves its self to be useful it may well become the defacto auto-rigging system in blender, too early to say now.
Rigify Demo .OGG file (higher quality)
Please excuse the needless mouse waggling, clearly I can’t talk and use blender at the same time š
Download the blend including metarig and generated rigs, older versions of Blender 2.5 should be able to open these too.
Sintel &Ā Baby Dragon
Technical Details
- WrittenĀ entirelyĀ in python 3.1
- Uses the blender 2.5 data api from python and operators in a few some cases, mostly to toggle editmode.
- ~400 lines of code for the rigging system, ~400 lines for utility functions, ~2500 lines for 9 metarig types.
- Rig types areĀ separateĀ from the rigging system, new rig types can be added by copying files into the module directory.
- Pose bone properties, one tag per rig type, optional tags can be added to set layers and the root parent.
- PyDrivers got a ~20x speedup by caching the compiled expression which helps since we needed to use PyDrivers in the more complex rigs.
- Available the regular Blender2.5 SVN revision 25450.
– Campbell
December 19th, 2009 at 10:21 pm
@JiriH:
Yes, it’s designed to be extensible, so you can write your own rig generators and they’ll work just like the bundled ones.
December 20th, 2009 at 4:54 pm
Thank you for your answer. Last little question. Any plans for auto facial rigging?
December 20th, 2009 at 6:12 pm
@JiriH:
As part of this same system, yes. We just add another rig type. š
But there are no plans to make a separate specialized facial auto-rigging system.
December 20th, 2009 at 11:13 pm
I can’t seem to get this to work on 64 bit ubuntu: http://blenderartists.org/forum/showthread.php?t=174658 Any help would be appreciated!
December 23rd, 2009 at 3:29 am
Thank you so much for giving us these incredible rigs! I am having so much fun!
Loop Duplicate
December 23rd, 2009 at 10:29 am
@-jay-, there is no reason the module should be missing, all I can guess is that somehow the scripts are somehow mixed old & new. Try see if a different build works.
Avid readers may notice Nathan and I are not giving the same answer to this as a default tool in blender.
From my point of view, an autorigging system is not very complicated (~400 lines in this case), so there is really not much point in having many different systems the user has to go and download.
most of the work is in making the rigs, so even if this system gets replaced in 2 years for example, the rigs we have can be ported to this system.
December 24th, 2009 at 1:28 pm
I’m running this under Windows 7 64-bit on a user account. I created a sample quadraped leg rig and tried the graph button, which gave me an error. IOError:[Errno 22] Invalid argument:’meta_leg_quadrupe.dot’ fileobject= open(path,”w”)
File “C:\…\scripts\modules\graphvis_export.py”, line 57, in graph_armaturesaved= graphvis_export.graph_armature(bpy.context.object,path_dot, CONSTRAINTS=False, DRIVERS=False)
File “C:\…\scripts\ui\properties_data_armature_rigify.py”, line 240, in execute Traceback (most recent call last):
Hope this helps.
December 28th, 2009 at 1:09 am
I really like Nathan’s rigs but it was hard to understand them at first. I think I understand the quadraped leg now and I made a chart so I would remember. I uploaded it to my site in case it helps anyone else. Sorry if there are any errors. Here’s the link:
http://burningtoken.com/bands/loopduplicate/LegRiggingHelper.jpg
January 3rd, 2010 at 7:09 am
wow nice feature looking great to work with it.
Thank you for your hard work keep it up.
February 4th, 2010 at 3:36 pm
Hi, this looks fabtastic in the video but I can not get a handle on the different layers and what does what. There appears to be three rigs in total.
The initial rig can be moved out of the way as a sort of master.
The other two remaining rigs seem to be very interdependent and confuse the absolute bejaysus out of me.
How is Nathan using them to simply animate? Which armature is used as the parent of the mesh? I’ve been struggling with this setup and it is (to me) just plain confusing.
Any chance of a demo on the questions above?
February 4th, 2010 at 3:55 pm
I guess my question is : how do I hide the 2nd rig (armat,,, .001) and still see the effects of the ‘rig’ rig.
When I move the footIK with both rigs visible all works great, but visibility is v. difficult. When I hide or go to local view on rig – nothing works. Everything moves but nothing is connected.
I’ve changed the shapes for the ‘rig’ bones but the arm.001 armature still gets in the way.
How does this work? Can we have a quick demo of what Nathan is doing and how is he interacting with layers and rigs? please?
March 10th, 2010 at 7:09 pm
When will see a page explaining how to use this rig?
After I generate the rig should I be deleting the original armature?
March 10th, 2010 at 7:30 pm
I guess we’ll still need to add controllers to the rig in order to use it? Or will those be included in a later release.
BTW
This is very welcome. Thank you.