Rigging the Old Man

Rigging the Old Man

I will start this update by saying that this was definitely the most challenging part of the short film (so far), with several mistakes and problems.

Let's begin by looking at some insights regarding the actual mesh:

I quickly discovered an anatomical mistake in the mesh, which I had missed, but it became very clear when I moved him. The knee cap and the fold of the knee were at completely wrong heights! The fold was below the kneecap, making the kneecap sitting on top of the leg when it was bent. Looking at a reference, I can see that the fold and the top of the knee should be at the same height, so that had to be fixed… Unfortunately, I had already committed to this mesh since I have layers of detailed sculpt and other things I really don't want to mess with.

Since I didn't want to break anything, I simply had to do with moving the cap down and the fold up, putting them closer to their appropriate heights. This means that the nice loops I had are now pretty distorted, but it should be fine.

The faulty anatomy of the knee and the fix

Another thing I regret in hindsight is that I kept the mouth as a solid piece in the mesh, with no opening at all. My thought was that since I never want the mouth to open any time in the film, it is best to just keep everything connected, making sure that it is never open in any pose. Well, it turns out that the mouth is opened several times in the animatic (which I apparently had forgotten entirely), meaning that it can not be replicated in the finished film. But perhaps even more importantly, keeping the lips glued together contributed to poor weights/deformation/posing abilities of the mouth in the final rig (described more later).

Making a good rig takes a lot (A LOT) of time, so I decided to use something pre-built for my human characters. I ended up picking BlenRig (5), which is the one developed for and used in the Blender open movies. The rig is free, as well as the tutorials on how to adapt it to your own characters (which can be found here on YouTube).

I won't go over in detail how it works, but in general, you have a mesh that encapsulates your entire character like a cocoon (see the middle of the image below). This low-poly mesh is what in turn deforms it, making sure everything is deformed smooth and nicely. For the high detail parts like the hands and face, you use weight painting on the individual bones directly, with actions and corrective shape keys to really get the shapes you want.

BlenRig applied to the OldMan

Boy, is this rig complex! I am happy I didn't attempt to make one myself. Doing it from scratch myself would have worked of course, but it would not have been near as complex/good, giving me much worse animation down the line. But I will not lie; I am a bit scared to animate it later, with all of the options. I have never animated anything with so many different bones to choose from when creating a pose. But once I get going, I hope it will work well.

Although most of the rig is raw BlenRig, I did add a few controllers for the breathing tube (making sure it follows the nose), as well as some more custom properties for driving some specifics in his face.

I haven't done very much organic rigging before, so it was good practice to start with the hips and shoulders first, simply because I know that they will all be covered in clothes later on. I still want them to look good, of course, but I don't really have to put in the effort to make them look great.

I made quite a mistake in that I didn't make sure the deform mesh cage fit perfectly before proceeding. I merely made sure everything was "just inside." This created a lot of extra work later to fix the deformations as things didn't correctly stay in place around the joints. Here are some examples of the default deformations (which should have been at least better!), and compared to the fixed versions using shape keys:

 Raw mesh deformation versus with shape key fixes applied

The fixes I did were to modify the shape of the deformation cage by using shape keys and then drive that deformation using drivers based on the bone position (basically what is shown in part 6 of the BlenRig tutorial). Things were far from perfect, but this was the best I could do by just modifying the mesh deform cage. For even better results, I would have had to add shape keys to the actual body mesh, which I wanted to avoid for as long as I could, simply because you lose a lot of flexibility once you start adding shape keys. But, since most sensitive/problematic joints will be covered in clothes all scenes, it didn't have to look perfect.

I am not going to lie; it is tedious and slow work. But you have to do it! Simply look at a single joint one at a time, and make it look as good as it can before you move on to the next. And eventually, you will have a (pretty) well-rigged body.

If you like the project, please consider following it!

I had some problems of stray vertices of the legs getting affected by the deform cage of the other leg (very understandable considering how close the legs are), and cranking up the resolution any further was not possible since it just crashed (see the image below). It felt like all hope was lost until I tried the corrective smooth modifier. And directly, it put those vertices in place like magic. Amazing. Make sure to correct the raw mesh before using any multires modifier/subsurf modifier:

Showing how the Corrective Smooth modified fixes the precision errors of the deformation cage

However, despite this corrective smooth definitely being a blessing for this situation, it also ended up leading to quite a bit of a problem due to misuse! When it was activated, most of the rig and poses looked good enough without any further work. So with it on, I corrected and fixed the, in my mind, few things that didn't work. However, under the surface, several of the weights and the shapes were horrible. And this shone through when I started wanting to create the more specific poses from the film (described in more detail later). Which I needed shape key after shape key to adjust and fix.

It was not until after I disabled the corrective smooth again that I realized how bad it was, especially the mouth. The vertices were simply not driven by the right bones, at all! I tried to readjust the weight afterward, but that also broke the shape keys I had made.

My idea had been to use automatic weight to get a base to work with instead of painting weights from scratch. This turned out to be a bad one… So many random bones affect areas it should not, and from what I know, there is just no good way to see which bones influence a particular vertex. So to clean things up, you have to manually look for which bone does the things you don't want. Basically a complete mess! In hindsight, I should have listened på the instructor in the video (duh), saying you should just hand-paint the bones. It would probably have taken the same amount of time, with much, much better results.

Here below is a scary image of what the mesh mouth actually looks like while deforming. Remember, kids, this is what happens when you just correct the mesh as a band-aid afterward instead of making sure the actual weight painting is correct:

A comparison between the actual deformation of the face with the corrected version using the corrective smooth modifier

To verify that what I had really was good enough, I went through the animatic and looked for every key facial expression the Old Man will make. Since the primary purpose of this rig is to support this particular film, I don't necessarily need it to work in every way/situation (even though that is great for freedom while animating/changes in the film).

So I ended up with 27 poses. Although several are similar on paper, I really wanted them to come across as distinctly different emotions on screen to fit the scene (as the character goes through a journey, it should never feel the exact same thing twice).

To have some reference, I photographed myself performing all of the poses. This exercise really taught me how hard it is to make good facial expressions! I had to try several times before I had a clear, readable facial expression (and I am not sure I succeeded for all of them). On the first thirty tries for each expression, I mostly just looked tormented. Especially the different types of joy were very, very hard to convey. It partly explains why I think it was so hard to achieve these expressions on the Old Man when I can't even do it with my own face!

However, even with my finished references, I had big trouble duplicating the facial expressions onto the character. There simply were no controls to do the things I wanted to. And due to the relying on corrective smooth fix so much, as I discussed above, I was very limited in the precision with which I can shape the mouth and lips with the bones when posing the character. Any more fine precision basically calls for yet another shape key. I have sure learned my lesson on how to approach the organic rigging for next time.

As the images I took were merely references, the actual poses I created don't precisely match them (some match pretty well, while some not at all). The important part was to capture the emotion I was looking for. You can see the finished results in the image below.

All the different key expressions the Old Man will make in<br />
the short film

Things don't look perfect, far from it. Still, I think it is definitely close enough for the character to actually be used and animated.
It does have a fairly cartoony style, which also helps in the sense that things don't have to be perfect in the same way as when you replicate a real human (which can easily look creepy).

I might experiment with adding more wrinkles later on (he is supposed to be old after all). This will most likely be done in the form of displacement maps (that gets triggered by the bone positions), so I will wait until I actually paint the character's textures. As all of those types of minor changes can be driven by the placement of the bones/new parameters, they should not affect the controls' placement, thereby not affecting the animation. So I should already be able to use this rig in scenes and update the detail work as I see fit later down the line without breaking anything.

This was definitely the least satisfying conclusion to a step in the process so far. Ideally, I would have wanted to throw out everything and redo it all. But, a finished film is better than a perfect one (which it was never going to be in the first place either way). I believe the rig in its current state will produce images where you understand what the character is doing and is feeling, which is its core purpose. As long as I will be able to tell the story I want, without things looking distractingly bad, I should be pleased.

Also, the viewers' ability to get the character and what it is feeling lies far from all in the facial expressions. The motion of the character will say a lot about how they are feeling, not to mention the importance of the events of the film in the way you interpret it (see the Kuleshov Effect). For example, the Robot will barely have facial expressions at all, so I will rely almost entirely on the motion and context instead.

With the rig done, I would have really liked to complete the Old Man's clothes as the next step. However, for that, I plan on using Marvelous Designer, which costs per month. So, I will wait until the Doctor is complete, so I can make all clothes during the same month (paying for one month when making them, and one more month later when I generate all the simulations for the different scenes).

So next up, I will start modeling the Doctor, the last main character.

See you next time!


Download the files

The Old Man - Rigged Model
BLEND-file - (62 MB)
Key Facial Expressions Chart
Full Quality PNG-file - (14 MB)