Sintel, the Durian Open Movie Project » Blog Archive » Durian Rigging 01

    

Durian Rigging 01

on December 1st, 2009, by nathan

My first real rigging post! Yay!

First, watch this video (there’s no audio, your speakers aren’t broken):

sintel_rig_demo_01.ogv

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:

sintel_rig_01.blend

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!

–Nathan

76 Responses to “Durian Rigging 01”

  1. Thatonejondude Says:

    Haha nice nice… I just now got the “blown away” joke too… forgive my sometimes slow (often slow) sense of humor!! haha

  2. Daniel Martinez Laa Says:

    Really great! A lot of information here, lot of fun for a rigger.
    One question? How do you hide/unhide the model mesh parts?

    Great work

    Daniel

  3. John Says:

    Well I’ve been trying to figure out a project for the holidays and now I have one. I’ve been following the Durian project for a while now and with this rig I now need to immerse myself fully into blender. Good thing I got books for it! As an animator I see SO many possibilities with the simplicity of this rig. It’s freakin’ beautiful! And it looks like it beats the hell out of set driven keys in maya. Thanks for the blend file and thanks for the build!

  4. MeshWeaver Says:

    that rig looks awesome πŸ˜€ must be easier to use…

    and i read that Simple Biped is a public-domain…thing? awesome!!! (bizarrely, i’ve been using the word “awesome” a lot these days… must be because of 2.5alpha0, lol :-DDD)
    where can we find Simple Biped, though? it would be useful to see how it’s built, it would give me an idea of what i need for animatics…

    thanks, and GO DURIAN (or should i say Sintel?) TEAM!!! :-DDDDDDDDDDD

    MeshWeaver

  5. Saverio Says:

    the rig crash blender (“segmentation fault”) πŸ™
    i own a radeon hd3200 there are other users with the same issue?

  6. Anonymous Says:

    Very nice!

    As an animator, though, one aspect seems strange: When moving the spine pivot, it’d be better to actually slide the _pivot_, rather than sliding the _rig_ _around_ the pivot. Use a floating bone to indicate where the pivot point is in the viewport, and have the slider move that — moving the body like this means you have to counter-animate by moving the root bone back up to the standing position, and creates a leak for a lot of such corrections.

  7. Daniel Martinez Lara Says:

    Ok, I found the answer of the question of my previews post
    “How do you hide/unhide the model mesh parts?”
    Scaling the bones via drivers, nice trick πŸ™‚

    Jur!

  8. ndundupan Says:

    amazing, very simple rig in this version πŸ˜€

    i want to try

  9. nathan Says:

    @Anonymous:

    As an animator myself, I definitely understand your desire for the pivot to move instead of the spine. Unfortunately, this is one of those things where you think you want it, but if it actually worked that way you would hate it.

    If you can find a pencil or some other straight object, I can illustrate why. Place the pencil on a table. Now imagine the pivot for the pencil is at the eraser. Rotate the pencil 90 degrees. Now “change” the pivot to the tip. Rotate 90 degrees again. Now change the pivot back to the eraser and rotate again. Notice that you’re moving the pencil across the table, without ever translating!

    Aside from being exceedingly difficult to implement (it would require integral calculus to make the spine behave that way), that pencil exercise illustrates the core of the problem. Not only would it make the location coordinates of the rig be inconsistent over the course of the animation (i.e. the same loc coords would mean different things on different frames), it would also mean that if you modify the pivot of the spine in an earlier part of an animation, it’s subsequent rotations will move it to a different location later in the animation. Which is actually really horrible for animation (you can’t go back and tweak without screwing up the already animated parts later on the timeline).

    I hope that makes sense.

    What I do want to do, however, is provide some tools to help deal with the counter animation necessary (like a button to match the pose after changing the pivot).

    @Daniel Martinez Lara:

    Yeah, the mesh hiding is kind of a hack. You can actually do it properly if you want, though. You just have to make the meshes separate objects and drive their visibility property.

    @D:

    I love you.

  10. yoff Says:

    Very illuminating post there, had not considered the implicit translation…
    Found a revision that showed the mesh btw. Do not know the number, because it was pulled from graphicall.org more than a week ago…I guess one should just get a reasonably new build and if it does not work, try another one…other people does not seem to complain about this anyway, so the problem is perhaps a small one…

  11. bert Says:

    noob question, but where do you save the .blend to for this to work?

  12. Hitesh Says:

    Cool rig Nathan, just wanted to know that how are you gonna replace this biped model with the actual Sintel model? If there is a tutotrial for a similar kind of setup, could you please publish it again.

  13. Simon Says:

    Hi Nathan,
    I would like to second Hperigo’s question from higher up: you’re not using the final model with the rig, and I’m curious how you will transfer it to the final model for animation.
    Thanks for the great work.

  14. David Says:

    Hey,
    I freakin love looking at all of the development for Sintel, and I just have a question for you. Well I’m kind of a noob at this so I was wondering….

    Why is the Character mesh “cut up” in the video? Cause i was watching the video, and I saw that when she bent forward, or backward, that there was a gap in between the torso and the rest of the body. So I was just wondering why…

  15. mangojambo Says:

    Hey, Nathan, amazing rig, man!!! I’m playing here a little bit! πŸ™‚
    I have one question: I was thinking would be great to see the fingers size sliders and palm rotation slider when I select the hand controller, for a fast hand posing. How can I do that? Cheers

  16. admirer Says:

    wow, i am a bit of a noob @ blender and only really just found out how to rig :S does anyone know how to assight certain shapes like he circles nathan used to simplify the rig? any feedback would be awesome πŸ™‚

  17. Oni Says:

    @Hperigo
    To see how to transfer a rig from one model to another go to this site:
    http://blendergroupie.blip.tv/#729604 Then, look at the sidebar next to the main Video. Scroll down through the video thumbnails until you see a list of videos titled “Char. Animation in Blender” then click on the one that says “Get in Role”. Hope this helps.

  18. Simon Says:

    @Oni – thanks for that.

  19. yoff Says:

    Oni, that link is awesome!

  20. yoff Says:

    Man I love this rig, it is so fun to play with! Only minor issue is that neck should perhaps have been on main layer. I can see how that would sacrifice some simplicity, though, is that why the neck is under extras?

  21. Hitesh Says:

    Thanks Oni for the link, here is the premalink for the “Get in Role” video
    http://www.blip.tv/file/1773933

  22. Aardvark Says:

    I love this rig! The work with the spine, hips, and torso are so slick, my mouse is greasy. One question, though: is it me or do the arm IK controls not work yet? I noticed that that part of it wasn’t demonstrated in the vid.

  23. Aardvark Says:

    Never mind. Didn’t see the IK slider. Doh!

  24. MrMowgli Says:

    Wow, I’ve been playing with this rig since you put up the link. It’s AMAZING and intuitive.

    The one thing that I was curious about was why/how the IK manipulators for the hands don’t move along with the mesh hands when it’s in FK? It makes it harder to set smooth moving targets if you need it after a longer sequence.

    If anyone not familiar with 2.5 is playing with it and wants to switch between FK/IK smoothly, the custom panel is keyframeable, so you can change the IK/FK balance over time. The new Dopesheet is perfect for this.

    Is there a way to group the rig elements and hide them in the Dopesheet? It’s hard to get my timings down when the elements are always scrolled offscreen πŸ™‚

    Seriously, amazing and well thought out rig!!!
    Mr Mowgli

  25. Bastion Says:

    Great Rig.

    I’m a long way from making anything this complex, but I would love it if someone can point me a resource for putting the sliders in an interface as oppose to a custom bone in the 3D window.

    Look forward to the rigging tutorial on the DVD.

  26. Eibriel Says:

    The rig aparently don’t work anymore πŸ™
    Sintel appears whitout head, arms and legs…

    Can you guys update the rig? :$ It was usefull.

    Thanks!!! And good look whit the project!!! πŸ˜€