::Skeleton Builder 101: part 1::

November 7th, 2010 by hamish download the zooToolBox

The new CST – dubbed very creatively, Skeleton Builder (coz it builds skeletons y’know) is a step up from zooCST on a bunch of fronts.  With this post I was going to start talking about what those fronts are and why.

I first started writing CST a long time ago – probably around 2002 maybe?  There were a few motivations for it, but it basically came down to the fact that I wanted to be able to proceduralize my rigging “expertise” – as an aside, I don’t consider myself an expert rigger.  There are a heap of people way better than I at rigging.  But I digress.

At the time I was working at a really small games company.  There were about 10 of us there at the time, including myself and another animator.  I was also an animator, but he was the better animator, and I was the better technician.  So anyway he would always lean over the cubicle and ask for rigging help, or just flat out hand off rigging tasks to me.  I got tired of not being able to animate as much as he did, so I set out to change this.

Anyway, thats pretty much been the essence of the tool ever since – and lets face it, isn’t that one of the main reasons we write tools?  Capturing the essence of a skill/task, and turning it into a commodity?

So thats kinda the point of Skeleton Builder.  Everywhere I’ve worked there are folks who either don’t want to do rigging work or just can’t grasp how to do rigging work.  But the need to do this rigging work still remains.  I’m sure I’m not telling you anything new though right?

Skeleton Builder has two main categories of customers.  The first and most important set of customers for this tool are animators/character artists – this is the set of customers I’ll focus on in this post.  The other set of customers for the tool are the technical users – myself and other character technical artists who want to extend the tool – experiment with new rigging types, possibly new skeleton parts etc…  I’ll talk about this group in a future post.

This is where Skeleton Builder differs quite a bit from CST – it starts with the skeleton.  While CST was all about rigging an existing skeleton, Skeleton Builder helps you build the skeleton itself.  There are a couple of reasons why, but lets talk briefly about the mechanics of skeleton construction.

As you well know joint alignment in a skeleton is important for heap of reasons, so giving the tool control over alignment provides a bunch of nice features.  First, users can move joints around.  They can grab an elbow, hit insert and move it to wherever it needs to be.  Joints can be moved or rotated in whatever way the user wants, and because Skeleton Builder knows everything about the skeleton part, it can align it properly before it builds the rig.  Skeleton Builder ensures the alignment is proper before it builds the rig, and if its wrong, it’ll just re-align the parts appropriately.  But you can also re-align a part at any time by selecting one of its members and hitting the “re-align selected part” button – or just the “re-align all parts”.

So the other reason Skeleton Builder handles joint creation is so it can understand the skeleton on a higher level.  A skeleton is constructed of “parts”.  Parts are basically anatomical “atoms”, and because skeleton builder knows what atoms make up the skeleton, it can ask questions about it when building the rig.  By understanding the skeleton on this higher level you can also write functionality to do things like re-targeting motion, export character descriptions to your game engine or whatever else this information is useful for.

Anyway I’ll get into these features a bit more in the next post – they’re straying into the realm of the features interesting to the technical artist.

The other useful feature knowledge of the underlying skeleton enables is part mirroring.  Generally character skeletons are symmetrical, and its useful to be able to author skeletons in this fashion.  Thats what the “Drive all Parts” button is for.  Skeleton Builder lets you have one part “drive” another part (within limits).  The “Drive all Parts” button will automatically setup the mirroring relationship for all parts in the skeleton, but you can manually set them up if you prefer.  For example if you have a scorpion skeleton you can have one leg drive all other legs (although I’ve never done this – WMMV! ;) ).

The other feature worth pointing out is part visualization.  A skeleton part can be given its own visualization routine which can communicate something to the user about the part’s state.  For example, by default the wrist joint in an arm gets a triangle polygon that communicates orientation.  Wrist orientation is 100% user defined, so clearly communicating this to the user is critical.

Because Skeleton Builder knows about the skeleton, rigging becomes basically a push button affair.  Each part can have options (its up to the rigging code what options it exposes) but most parts only have a few options if any.  Each part can in theory have more than one rigging method.  For example a spine can be rigged as a simple fk spine, an ik/fk stretchy spine or you can go and write your own methods to do a reversible spine or whatever else is required.  Because of this most of the user input happens in the skeleton creation phase.

Anyway I hope this has given you a little insight into the flagship tool of the latest release.  As I said earlier I’ll do more posts on the technical features Skeleton Builder provides in the following weeks.


This post is public domain

This entry was posted on Sunday, November 7th, 2010 at 20:55 and is filed under main. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

  • Brad

    can’t wait to test this out!

  • http://oldbot.com oldBOT

    hello Hamish,
    I want to start using your tools more and more. I think they’re really the “bees knees.” However, specially with a tool like Skeleton Builder, do you have any more “visual” starter guides? Or are they built into the tool? Videos perhaps? Vimeo channel for the ‘kazoo tools? Please don’t think I don’t appreciate this. I do and thanks. Also, I primarily work on a Mac. Is this going to be an issue?

  • hamish

    howdy there oldbot!
    Unfortunately I don’t have any video tutes on my tools, sorry. The best I can do is point you at my previous posts:

    There really is very little to know, so check out those posts and hopefully they help.

    As for mac – I don’t have a mac so I can’t say whether it will work on mac or not. But it should work just fine. Let me know if it doesn’t.

  • Vipples

    Hi Hamish!
    I just started to dive into your new Skeleton builder tool and I’ve got my whole skeleton setup but I’m getting an error when I attempt to BUILD RIG.

    # Error: KeyError: userName

    That’s the error I’m getting when I try to run Build rig. Is it possibly an error with my version of python or does that not even matter? I’m getting this in Maya 2011 running on Windows 7. Thanks in advance for any help you can give me! Awesome tools by the way!


  • Anonymous

    Hey there Vipples!
    Thats really annoying – sorry about that. I understand what the error means, but I’m not sure where its being called from. I’m currently on vacation, but I can take a look at this as soon as I’m back. I expect if you’re hitting this, others possibly are as well.

    If you uncheck “Reference Rig” do you still get it?