How to build a 3D character

In this tutorial I will show you a method of creating 3d Characters using A/W Maya. I will model the character above, Lucio, to help demonstrate my methods. With that said lets get this tutorial started.

A Must... when it comes to character development


When starting to model a character I believe it essential to know your character. Know your character? What does he mean by that? I mean just that. First off, does the character have a name? It better, if not.... well, I won't go there. Is the character a jolly ole chap or does the character have a grudge against life? How old is the character? What is the characters life span? What gives your character drive? What makes it want to make that next step? Things like these. If you do not know all these details... I suggest you get to work and learn them. When you know your character you will be able to give your character "character."


Now that your character is developed personality wise I suggest that you start to draw it. Thats right, you heard me. Draw, draw, draw. Draw your character that is. Why draw your character? It helps you understand your character. It helps you formulate it's personality. And, when I say draw your character I am not saying draw a lifeless character. Give it "Character" don't just make it sit there. Anyone can do that. How is it feeling? Is it happy or sad? If so, show that!

Now that you have that down, let's get to the technical stuff.

The Work Flow

The basic process, work flow, that I am going to use here while building this character is Nurbs to Polys to SubDs. To give you the dirty low down... I build the character roughly in nurbs first. Why do I do this? Because this gives me clean geometry when I convert to polys. Why do I convert to polys? Because I can add in localized detail much easier. So, what about the SubD's? I convert to SubD's because they are the best of both worlds. Basically they allow me to have a nice smooth character that will deform well when I go to animate.

Creating the Control Cube

There are two things I do before I dig into the character. I build a CONTROL CUBE and I put in character references.
What is a control Cube? Well, just that. It is a cube with an added attribute to control the transparency of the default shader. This makes it easier to match up your model to your character sketch. When every you make an object in Maya it gets assigned the default shader. So, this little cube will control the transparency of just that material. The process is easy.

1. Make a polycube rename it Control Cube and delete its history
2. Nav. to Windows__/General Editors__/Channel Control
3. move all the Keyable controls to Non Keyable.

4. Now you have a nice clean Channel Box for your Control CUBE

5. Nav. to Modify__/Add Attribute
6. Name = Transparency; Data Type = Float; Numeric Att. Prop. Min = 0 Max =10 Def.= 0

You will now notice that in the Channel Box we have a transparency attribute w/o all that other junk.

Let's get this working with the shader now. To do this we need to use a set driven key that is linked b/w the control CUBEs
Transparency attribute and the transparency of the default shaders transparency.
Easy enough!

1.(Animation) Nav to Animate__/Set Driven Key__/Set (options)
2. Load Driver = Control Cube; Load Driven = Default Shader

(To load the default shader you need to go to your hypershade and select Lambert 1 then hit Load Driven. The attributes you are going to control will be the transparency RGB.)

In the set driven key box hit KEY at the following.

3. Control CUBE Trans = 0 Set Def. Shader trans to 0.
4. Control CUBE Trans = 10 Set Def. Shader trans to 1.

(When the Transparency attribute is set to 0 the labert1 transparency has no transparency. When the Transparency attribute is set to 10 we go in and change the lambert1's transparency all the way up then we set a key.)

You should get the following result:

Now that we have the control CUBE made we will be able to control the transparency of our default texture with ease.

Making the Character Reference

Most of the time people model characters they like to have a reference to model by. Some use an image plane I on the other hand like to map an image to a polyplane. I do this for two reasons.

1. I can put the plane on a layer which gives me layer options.
2. I think it is much easier to move a plane.

Now that I have my Control Cube and my reference plane in I am ready to start modeling the character.

A few thoughts

Before I dive into the character. I think it is important to tell you that modeling a character can be a tedious task... You want to make it as easy as possible on yourself. Do not limit yourself to modeling just with the modeling tools. Remember that when you are making a character you want clean geometry. People often over look using animation tools to model with. Tools in the animation set that I use a lot while modeling are: Lattice, Non-Linear, and motion paths. You can often achieve tasks in a few seconds which would take several minutes if not longer otherwise. Remember, delete history.

Nurbs Modeling

The first thing you need to do it look at your character and see what you can use to model it?

You must excuse my crudely drawn lines... But as you can see here, there are several ways which we could model this character in nurbs. I use a combination of all of these options. I model the chest/torso out of a cylinder, the arms I use a cylinder, the hands and feet I use cylinders, lofts or spheres. The head I usually patch together or more recently I just make straight out of polys, that goes for the hands too. Needless to say, no matter which way I go, I am going to have to do a lot of cutting and attaching. And remember, there is no "wrong combination", there might be an easier combination though. You will
just have to experiment and see what you like best.

Here is the flow I like to use.

1. Chest
2. Arms
3. Legs
4. Hands and Feet
5. Head

Start out with simple geometry

Use lattice to start deforming torso to fit image.

Delete history, detach surface down the middle and snap end cvs to grid

Duplicate (-1 x if you are working across x axis) with instance option turned on

Use lattice again

insert isoparm if needed

Pull individual points to get more detail

Create arm and legs same way

here I am checking to see if my isoparms match up before I patch the two together. remember you need the same number of spans around for them to match up.

Detach geometry like such first (horizontally)

Then split vertically

Delete inside piece of geometry

this is how you split the arm

We now need to rebuild the geometry because the parameterization is not correct. the max u v range should match the spans UV

Rebuild uniform, parameter 0 to #spans, both directions.

they now match. We want to do this for all our geometry.

Edit Nurbs__/Surface Fillet__/freeform fillet. Connect the pieces.

rebuild the pieces

Do a quick global stitch to make the geometry nice and smooth.

Attach the arm pieces using the blend option under attach.

attach the torso part using connect option under attach.

convert to poly using quads. per span # isoparm. I usually set this to 1 so that I get less geometery. Remember I can add in detail in poly mode.

The Poly process

Now that we have converted the Nurbs model to polys we want to combine all the individual poly pieces into one piece

In attribute editor turn on display border edges.

Use merge edge tool to merge all the internal boarder edges together.

Turn on keep faces together under poly options

start hand with a cube.

extrude out width of four fingers.

extrude out rest of hand.

using split poly tool add in detail to hand.

line hand up to wrist

cut out back of hand and combine the two parts. Polygons__/combine

using append to polytool append hand to wrist. If you get a weird twisting when you do this you need to reverse the normals on your hand.

Do the same for the foot.

duplicate geometry with instance turned on

use split poly tool

add in detail that you need.

use poly mirror once you are finished with detail. make sure to merge with original.

we are ready to tackle the head now.

The Head and final touches

We are now ready to start on the head. I usually start making my head with a simple polycube. You do not have to do this, Some prefer to create the head in nurbs first then convert that to polys.

Navigate to polygons__/Smooth

You now have smoothed the head.

Start deforming it to look more like a head.

Delete half the head.

Duplicate the head using a negative value on your axis, make sure to make an "instance" of the geometry

using the split poly tool start to split the poly as shown (note this is rough) basically we are trying to make all the lines loop. Block out where you want your eyes, nose and mouth.

pull in mouth and eyes... pull out nose.

create a sphere or if you have an eye already made put on in to use as reference for your eye.

pull geometry out around eye to conform to the eyes shape.

poly split the inside of the mouth, eyes and nose like such

Now pull that geometry back a bit to make the correct cavities

you can make the ear using the create poly tool under Polygon. Just sketch out what your basic ear shape is going to look like. If you do not like this method you can extrude a face off the side of the head and start modeling that way.

extrude the ear shape.

poly split the shape to create the ear then attach to the head

once you have enough detail in head... connect it to the body.

Edit Polys__/Normals__/soften harden.

I like to soften the normals on my character to see what it looks like not so hard edged.

Once you are done adding detail to the poly model convert model to subd. If they model does not convert make sure that you do not have any free floating Vertices or that you have a high enough poly count in your options for poly to subd. Also, it is a good idea to put texture placements on the character while it is still a poly... much easier than having to switch over to poly proxy when it is a subd.