Adverti horiz upsell
Modeling a Head with Subdivision Emulation in Maya
Modeling a Head with Subdivision Emulation in Maya
sdb1987, added 2005-09-06 11:23:21 UTC 53,315 views  Rating:
(0 ratings)
Page 1 of 2

Perhaps I should preface this tutorial by acknowledging that many different methods exist for creating 3D characters for broadcast. To date, probably the most popular method has, in my estimation, also been the most complex one - that is, modeling with the use of NURBS surfaces. In the past, NURBS modeling was generally credited with many distinct advantages over polygonal modeling. Specifically, its advocates appreciate the excellent performance of NURBS geometry in wireframe mode, the ability to easily modify organic shapes with a minimal number of CVs while retaining a smooth surface continuity, a virtually infinite degree of control over the tessellation of the model at rendering time, the ability to easily add detail to a NURBS surface without changing the topology of the piece (through the insertion of isoparms at specified locations), and in some cases an added level of control over texture application because of the inherent UV directionality that is associated with NURBS and patch surfaces.

However, although I have enjoyed the benefits of NURBS modeling, and have had a fair amount of success with NURBS-based character design, I would argue that modeling with subdivision emulation (or even better, actual subdivision surfaces) can offer all of the benefits of NURBS modeling, along with a dramatically simpler production process. In this tutorial, I will explore the process of modeling a 3D character head through the use of subdivision emulation in Maya 3.0 Complete. In subsequent tutorials (to be posted soon), I will address the issues associated with texturing the resulting smooth surface, animating the facial expressions through the use of blend shapes, and adding eyebrows and hair through the use of paint effects.

Of course, the first step to modeling any character is generally to create a series of character sketches so that one has a clear vision of exactly what the character model should look like. Although it is always nice to have a reference on hand when creating 3D models, I believe that the use of character sheets is particularly important when one is creating original 3D characters, because so often 3D models tend to be constrained by the toolset, and end up looking surprisingly inorganic, or (perhaps even worse) inappropriately hyper-realistic. Before I began modeling the character featured in this tutorial, I spent several hours sketching and revising the character's proportions on paper.


Once these character sketches are complete, the next step is to start creating the 3D model. For the purpose of simplicity, I always start by creating a polygonal cube (Create>Polygon Primitives>Cube) which I will then sculpt into the desired form.



Using the Polygons>Smooth tool, I could convert this cube into a very rounded, organic shape. However, once the smooth tool has been invoked, this shape will be too complex to modify in any predictable way (unless I de-activate the smoothing node in the object's history, modify the cube shape, and then apply a new smooth effect). Fortunately, on page 217 of the Maya Polygonal Modeling manual, Alias/Wavefront provides Maya users with a very handy mel script which allows artists to modify a low-poly mesh while a duplicate, smoothed version interactively updates. Dirk Bialluch has elaborated on this concept, with a very complete and elegant mel script named connectPolyShape, which can be downloaded here (for more information about Dirk Bialluch's scripts, visit his website). To use this script, download the mel file, and place it in the following directory: [root]:\\WINNT\Profiles\[user]\maya\scripts. To invoke the command, simply type the name of the script (followed by a semi-colon) into the command line (in the lower-left corner of the screen) like so: connectPolyShape;. It is possible to create hi-poly 3D characters without this mel script, but it simply means that the artist will continually need to activate and deactivate the smoothing node in the object's history in order to preview the progress of the model.

Once the connectPolyShape mel script has been invoked, an options window will appear that allows the artist to specify smoothing parameters, designate whether the smoothed duplicate will inherit the transforms of the original low-poly mesh, and even disable the shading of the low-poly mesh. Typically, I will want to toggle the Keep Border option off. I may also choose to modify the divisions attribute to either increase or decrease smoothness. Generally, however, it is a good idea to keep the number of divisions to an absolute minimum until it comes time to apply textures or render the scene.



Pressing the connectPolyShape button in the options window creates a smoothed duplicate which will update as the low-poly model is manipulated, allowing the artist to create a very smooth, highly tessellated model by modifying only the simple, low-poly "cage."



I have also found it helpful to make the layer containing the smoothed geometry a "reference" layer, so that I can more easily select points on the low-poly cage without inadvertently selecting the smoothed mesh. Simply create a new layer, assign the smoothed mesh to this new layer, right click on the layer icon and choose Reference from the drop down menu.

Since heads are generally symmetrical, I like to create a mirrored instance of the shape (scaled to -1 in the X axis) so that I can work on just one half of the face, while the other half is simultaneously created. Since my original cube was 1 unit large, I translate both the smoothed and low-poly models to the right (positive X) .5 units, so that one side of the models sit along the Z axis at "X=0."



Next, using the insert key, I move the pivot point of the smoothed cube back to the origin (X=0)