Character Rigging

Using Proxy Geometry For Better Skinning Results

by Chris on February 10, 2012

Here is a simple skinning trick I like to use, which comes in handy for a lot of different rigging situations.

In the images below, I was rigging a wolf’s tongue with spline IK that needed to be very flexible. (If you count, you’ll notice that there are 12 controllers. 4 main controllers and 8 extra offset controllers to bend and twist the tongue into a variety of shapes.) The skinning was proving to be tedious, because the geometry kept collapsing and self-colliding. So here is what I did:

The Scenario: You have some tongue geometry (or other semi-flat geometry) which needs to be very flexible but the rig has a lot of bones and painting accurate weights is tedious and error-prone!

Look at that unsightly and embarrassing interpenetration!

Solution: Use a poly plane or other simplified geometry as a proxy. Fit it inside the geometry, and skin that instead. When you are done painting, use Copy Skin Weights to copy the weights from the proxy geometry to the full geometry.

The settings I use for Copy Skin Weights are:
Surface Association: Closest point on surface
Influence Association 1: Closest Joint
Influence Association 2: Closest Bone
Influence Association 3: Name (This 3rd entry is usually optional and makes no difference. When copying from the same geometry, like a body to a body, use “One to One” instead.)
Normalize: Not checked

Using a proxy object to skin the 3D geometry

The final result is fast and flexible

This makes it very easy for both sides of the tongue to have the same weighting, without tedious painting, which means it will twist and bend a lot further without self-colliding. When your geometry has a lot of folds and wrinkles it is also a lot easier to get your brush along the flat, uniform geometry of a plane. This technique also works in any 3D package which supports copying weights from one object to another. In XSI you can do the exact same thing using GATOR.

I have also used this technique to copy weights from a stretched sphere to weight complex hair geometry. You could also use it to copy weights from low-res geometry to high-res geometry. You will likely have to do a bit of cleaning up afterwards, but it could be a good way to get 90% of your weight painting done very quickly.

When you are done, you can simply delete the geometry, or tuck it away in a hidden group for later editing.

My next goal with this is to figure out a way to copy weights locally on complex geometry. For example, if the tongue is attached to the body, how would you grab just the tongue weights?

Mini Mammoth Part 2: Sketching & 3D Sculpting

by Chris on January 23, 2012

This entry is part 2 of 2 in the series Making of Mini Mammoth

So now we are on to part 2 of the Making Of Mini Mammoth where I am documenting the entire process of designing a cartoony character rig. In this step, I am doing a bunch of sketching from photo references and sculpting a quick prototype 3D model to get even more ideas. We’re almost ready to start the actual modelling, but first…

Sketching Solves Problems

Design-based drawing is ultimately about solving problems, so quality isn’t at all important compared to just looking and observing the world.

Design sketches for Mini Mammoth

Design sketches for Mini Mammoth


I’m not the best draftsman, and they are definitely not going to dedicate an Art-Of book to me just yet, but it is a very important step to visually work out all the things we’ll have to pay attention to when we get to the character rigging stage. Drawing is also very important because it is fast. You can collect a lot of ideas in a short period of time and end up surprising yourself with ideas you would not have thought of if you had been tempted to jump straight into modelling.

Even when I am coding Python tools, I often find it very helpful to draw out my ideas first. I constantly keep a notebook full of notes and doodles beside me.

At this point, I’m just trying to get lots of ideas for shapes, style and proportions. This is one of the most fun steps because anything goes. I even spent some time drawing bears.

Some more design sketches for Mini Mammoth

Some more design sketches for Mini Mammoth

Design Considerations So Far:

  • The mammoth’s trunk is mostly drawn in an interesting S shape, but I want it to be completely flexible and stretchy, including doing a water-passing-through-a-hose effect. So ultimately, I’ll likely model it in a straight line. When making a rig, it is usually easier to bend straight geometry than it is to straighten bent geometry. This is true when modelling any body part that will need to bend a lot, like a trunk, tongue or tail.
  • In some of the drawings I noticed that the tusks will overlap with the mouth, and it will be an important part of how the mouth looks. The trunk and tusks will essentially be the upper lips.
  • I’ve learned that there are a wide variety of mammoth and elephant ears. I’ll need to decide how floppy and how big they will be.
  • The long tusks of a mammoth make a really beautiful curve. This will be an important part to get right.
  • I am imagining giving him a thick coat of fur. How will I do it? There a few ways I could do it. Geometry, Maya hair, separate pieces of geometry? A lot to think about.
  • Did you know that elephants have a 3rd eyelid membrane that slides sideways as they blink?

Building a Prototype Model in 3D-Coat

My original sketch wasn’t very detailed, and I wasn’t sure if the shapes I was drawing were even possible in 3D! So I started to model a prototype in 3D-Coat.

3D turntable of Mini Mammoth

A digital sculpt in 3D-Coat

I really like how it turned out! At this point, I am just playing with shapes in 3D. This is not a final model. A lot of details like the ears will still change a lot so I am not too worried about following the design so far. Its just a 3D doodle.

Digital voxel sculpting in 3D-Coat is a lot of fun! You are very free to push and pull your model and experiment. It feels as loose as drawing, the tools are very intuitive. You can even build an armature (The ‘Curves’ tool) or drop shapes in (The ‘Primitives’ tool) using spheres, squares and cylinders to build up a model very quickly.

Building an armature in 3D-Coat

Immediately, I began to see some interesting patterns emerge:

  • The legs are almost perfect cylinders. I like this a lot. They will bend and stretch, but their default shape will be very simple.
  • The trunk makes some really cool undulating waves all the way up to the top of the head.
  • The eyebrows need more design work so they don’t look like Groucho Marx. (Though that could be fun too!) Right now he looks angry in a lot of the drawings, but he’ll have a wider range of expressions when I design the facial rigging.
  • I like how the foundation of Mini Mammoth is a simple egg shape. But I also started getting some interesting square shapes in the hindquarters. I will hint at real anatomy in the pelvis.

The Lessons

#1. Always use references.

I started out drawing a lot of sketches from my imagination, but the ones I sketched while looking at references of other animals were the ones that solved the most problems and made the design more clear in my mind. As I said earlier; drawing for design is a problem-solving process. At this point, it is not about creating art. The more I drew from references, the more I realized things that I would have to think about during the modelling and rigging stages.

#2. Don’t Limit Your Inspiration

I was looking at one of my drawings and it reminded me of a bear walking. So I studied a few pictures of bears. A bear has a big, lumbering walk with shorter legs than an elephant (just like Mini Mammoth.) So when I go to create a walk cycle, I’ll be largely inspired by bears. Mini Mammoth might look very small but he is going to walk with a big, heavy, camera-shaking gait!

Coming Up Next: I’ll finalize the design, make a couple of polished drawings, and then go back to 3D-Coat to start the actual modelling. After that, I’ll go through the auto re-topology of the model (an amazing feature of 3D-Coat which generates the polygon edge-loops) and create the texture UV’s for preparing the model to export into Maya.

Until then!

This entry is part 1 of 2 in the series Making of Mini Mammoth

Hi everyone. This is the first post in a series where I take this simple doodle of a cartoon mammoth:

…and turn him into a fully animated, super-flexible cartoony character rig in Maya!

I’ll be documenting the entire process from design and modelling to the creation of the entire rig. It won’t be a step-by-step tutorial, but it will show my entire thought process as I rig, mistakes and all. It might get messy, but I know I’ll learn a lot and hopefully you will too.

This isn’t the full “design”. That will come a bit later. Right now it is just a quick 3-inch doodle that I sketched while at work. I am choosing this funny little character for a few reasons, because it will be especially challenging in a few ways:

The Challenge

1. The challenge of small cartoony rigs is that there is lots of overlapping influence between the different body parts. Take a look at this image.

For example, the cavity of the mouth and the shape of the lips is going to overlap all the way down to his knees. So when he opens his mouth his legs are going to move! His head is so big in relation to his body that he is basically a walking face. When rigging a normal-sized human or creature, all the body parts are distinct and separate and it is easier to paint the influence. So I am going to have to very carefully consider how I do everything from the facial rig to the way the limbs bend the body.

2. I am going to design him so that he has a lot of exaggerated squash and stretch. His trunk will stretch, bulge and grab on to things. How will such a short little trunk grab things? We will see!

3. It will just be a lot of fun figuring out how to make this guy move in an appealing and believable way!

The End Result?

The end result will be an animated short, featuring “Mini Mammoth”. I am not sure yet if I am going to texture and render it, but we will see! Stay tuned!