My first real rigging post! Yay!
First, watch this video (there’s no audio, your speakers aren’t broken):
Second, I love Blender 2.5. So many awesome new features to help me make better rigs. I shouldn’t even say that. It’s not even features, so much as the new core design choices.
For example, notice the custom rig UI elements integrated directly into the side bar? It makes me so happy. And it wasn’t even that hard. Just some python scripting.
Okay, okay. I’m gushing. Let’s get down to rig itself.
In the video above, I’m mostly showing off the spine rig. The spine and neck rigs for this character are my Big Proud Thing™ in this rig, because the rest of the awesomeness is thanks to 2.5, not me.
First, notice that there are only two controls for the spine: the hips (name “pelvis” in the rig) and the rib cage (named “torso” in the rig). I should probably name them better…
Anyway, animating with rigs that have 3+ bones to manage the spine has been a peeve of mine for years. It’s a pain to manage, and 90% of the time you just want to tell the rig “bend and twist this way”. So with this rig I simplified it to a single control that just does the “right thing” (i.e. approximately bio-mechanically correct) most of the time. You just give it the orientation of the rib cage with one control, and the orientation of the hips with the other, and the rig figures out automagically what everything inbetween should do to accomplish that in a plausible way.
In addition to that there is a “pivot slide” slider in the sidebar that lets you place the pivot point of the rotation. And what I mean by that is it defines what point on the spine should remain stationary in space when you rotate the two controls.
For example, by default that spot is at the hips, so in the video when I’m first rotating the upper body, the hips aren’t moving. And when I rotate the hips, the upper body moves to accommodate the bend of the spine. But you can also set that point to the upper body, as I did later in the video. Then when I rotate the hips, the upper body stays put. And when I rotate the upper body, the hips move to accommodate. But you can set that “stay put” point to be anywhere along the length of the spine. Setting it near the hips is useful for things like walk cycles, setting it near the upper body is useful for swinging from the arms or bracing against a wall. Setting it towards the middle is useful for quadruped types of motion.
Anyway, I’m being long-winded, and that makes this seem complex. But it’s actually really simple to use. Watch the video again. It will make sense. 🙂
Of course, animators need control and flexibility, so you’re not limited to this simplified system. I didn’t show it in the video, but if you need more specific control over the spine pose, the raw spine bones are accessible in the “body extras” layer, and you can animate directly with them like normal. You can even combine the two systems (they layer on top of each other nicely). And lastly, you can also tweak the amount of bend that happens at each spine joint during the automatic bending with some extra sliders (which I also didn’t show).
But this simpler control system on its own is enough for probably 90% of situations.
The neck control is similar, but even simpler. You just specify the orientation of the head, and it works out the proper neck rotation. (Again, you can easily get more control if you need it.)
Aside from those setups, one of the nice things about this rig is how it decides what sliders to show at any given time. I’ve scripted it so that any sliders relevant to the currently selected control(s) get’s displayed. So, for example, the IK switch property for the right leg actually belongs to the right IK foot control. But thanks to the scripting it shows up when you select any control of the right leg.
For those who are curious, here is the blend file:
Note that it requires a recent SVN build of Blender 2.5. The alpha 0 release doesn’t work with it. Also, if you don’t see the custom UI controls, just run the script in the text window. In theory it should run automagically, but there are still bugs that need to be fixed with that.
Until next time!