BSoD_rigs.py

As a response to http://mediawiki.blender.org/index.php/BSoD/Introduction_to_Rigging
I am developing a script to automatically build the rigs described therein.

It can be found at http://itu.dk/people/rusmus/blender/BSoD_rigs.py

So far it builds the IK-controlled arm rig and the chicken leg rig.

Some care has been taken to build the infrastructure, so that it is easily extended to new rig options. I plan to finish all the rigs in the tutorial as the tutorial itself gets done.

I did not do the foot rig yet, as I did not quite understand it. There seems to be some inconsistent naming in the description.

I did not do the spine rigs either, and would like input on how to best incorporate spine rigs into the setup.

I would also like feedback on how well it works for characters not in the default position.

Actually, any crits, comments and suggestions are welcome :slight_smile:

To use script:

  • Run it
  • Press “Create Guides”
  • Position guides according to your character
  • Choose which kind og rig you want for arms, legs, feet, etc.
    If you choose the chicken leg, you should also choose the chicken foot.
  • Press “Create Armature”

quite an interesting idea, no time to play with it right now though, so no feedback from me :slight_smile:

LetterRip

Thats fine, thanks for looking :slight_smile:

On clicking “create guide” I get this error.

Traceback (most recent call first)
File “<string>”, line 366, in button_event
File “<string>”, line 78, in createGuides
File “<string>”, line 39, in createEmpty
TraceError: expected a tuple of 3 floats

Python 2.4
Run from Scripts window
Win xp on P4
Both 2.42a and CVS

Great thing your doing, thanks!

Cool idea !

I added the guides, moved them around then created the default Armature (all FK), but having moved the guides has no effect on where the armature bones get created.

Blender 2.42a / Win Xp

Mike

Mike_S

If you created guides more than once, the guides created the second time will be named differently, even though the firstly created guides were deleted by creation of an armature. I think this is because I do not delete them properly. Is this what happened?

Edit: It should work to reset the scene (which is of course inconvenient)

pappy:

strange, I am using 2.42a, python 2.4 on XP…

on the mentioned line i provide it with a list of 3 elements. You could try replacing the brackets with paranthesis and see if that works…

I have changed the list to a tupple, since that code also works for me. I might work for more systems now.

Actually there is a lot of places in the code, where I should morally use tupples rather than lists, but I am new to python… :slight_smile:

empty.loc = x, y, z
worked.

Great script! Worked perfectly for me on my Intel Macbook Pro. Definitely speeds up the workflow of creating an armature.
Something that would be really nice is if you could define a mesh for the armature and have it it auto-apply envelopes.

Ok, that was it.

Thanks.

Mike

@ Mike_S: ok, I will try to find a way to delete the empties better. I think I do not delete the dataobjects…

@ mr_bomb: Defining good envelopes is an art in itself, I think. How do you envision generic envelopes?

@ pappy: good, does it also work with parenthesis (as in the version on the webpage)?

Perhaps a system that would simply auto-assign and create a modifier for envelopes on the designated mesh?

You mean without any computation of how to shape the envelopes? That seems just as easy to do by hand…

I fixed the script so that it can now be run more than once and still honor the guides. There does not seem to any way to delete the datablocks for the empties, so I simply make sure not to create them more than once…

I also got rid of some debug printing…

The current version seems to work fine.

Thanks

Excellent, thanks for trying it out :slight_smile:

this shuld be integrated.
really usefull and TIME saving, imho, also as a basis 4 different rigs

I updated the script so that it handles general constraints rather than just IK. I used this to implement the arm rig based on lookAt and locked track constraints…

@ bullx: thanks, glad you like it :slight_smile: