1
Modeling the Human Head Presenter: Petre Gheorghian OVERVIEW This presentation will focus on the issues and methodology behind patch modeling the human head both correctly and efficiently. The emphasis will be on both the technical and some artistic aspects, mostly focused on the technical side. Due to the time limit we will not spend a lot of time on geometry tweaking, focusing more on the key aspects of the modeling process. NURBS geometry is the industry standard for organic modeling. Polygonal models are mostly used for video games, and some times for specific applications (ex: real time dynamic simulations, etc.). Although it is possible to create a high-resolution poly model, polygonal geometry has limitations which make NURBS modeling the industry standard. Main reasons for using NURBS versus Polygons for organic modeling: • • •
Smooth surfaces adjustable over broad areas with few control points. Increasing the model’s resolution later during the modeling phase would be a lot more difficult for a polygonal model than for a NURBS model. Due to the fact that polygons are planar, poly models will always look faceted and the only way to alleviate this problem is increasing the number of vertices to the point where the model is not efficient anymore.
This presentation will cover the following main areas: • • • • • •
Reviewing the anatomy of the face. Preparing your scene file for the modeling phase, tips for faster and efficient patch modeling. Brief introduction to NURBS (non uniform rational B-splines) Building the NURBS patches along the main facial muscles (analyzing the topology of the model). Solving the problem areas of a NURBS patch head model. Finishing touches.
I. REVIEWING THE ANATOMY OF THE FACE In order to achieve a realistic looking model it is essential to understand the mechanics behind the human anatomy. Looking at the following anatomical drawing of a human profile we can see the head’s main muscles, which generate the facial expressions through their contractions.
2 The group of muscles placed between the eye muscles (Orbicularis Oculi) and the mouth (Orbicularis Oris) are Zygomaticus Major and Zygomaticus Minor and are used to elevate various portions of the upper lip that generate expressions of either joy (smiling) or sadness (by elevating the center portion of the upper lip). Depressor Angoli Oris lowers the corner of the mouth to generate expressions of sadness or frustration. Masseter is the muscle used for the opening and closing of the mouth. Sternocleidomastoid is the muscle that connects the skull from behind the ear to the sternum allowing for the head turning motion.
All these abovementioned muscles (and others not mentioned here) through their contractions which in turn are stretching the skin envelope, generate the expressions of the human face. Therefore it is crucial to build your NURBS surfaces in such a manner that the Isoparms are following the direction of the muscle fibers and the patches are replicating the shape of the main facial muscles. If the Isoparms don’t flow along the muscle fiber direction you will not be able to achieve realistic deformation for your model when trying to reproduce human facial expressions. Also a good practice is planning your surfaces ahead, before starting the modeling phase, this is particularly useful for the placement of the ear patches. All these preparations will help you achieve a realistic model formed by a series of NURBS surfaces which together look like one continuous surface due to
3 their topology (the Isoparms count will flow consistently from one patch to the next).
II.PREPARING YOUR SCENE FOR MODELING During this chapter we will focus on how to bring in visual reference for the modeling phase and how to customize the user interface in order to speed up your workflow.
1.Using Image Planes for Visual Reference One important rule before you go ahead and start modeling your character is to make this process as easy and intuitive as possible since it requires patience and skill. In order to achieve accurate results while modeling a previously sketched character or a digital replacement for a real actor you will need to bring in visual reference (scanned hand drawings or photographs). The more visual reference you have the easier it will be to obtain the desired look for your model. It is always good to have besides the front and side sketches for the orthographic views a half profile sketch of the model. An Image Planes is a two dimensional backdrop attached to the camera which allows for bringing in an image as visual reference. We will use image planes for both the front and side view cameras so we can bring images for both the front and side of the character. The following sketches will be used as reference images for the creation of the head model. The front sketch has one half mirrored so it is symmetrical.
Notice that the actual sketches (found on the support files CD) have their background color set to 40% gray, this is due the situations when you have multiple selections and the highlighting color is white, practically invisible against a white image.
4 Make sure that before bringing in the images onto the image planes you do not dolly in or out of the front and side orthographic views. If you did dolly in or out close this file and start over. To bring in the images go into the side (or front) view menu and under Image Plane choose Import Image
After you brought in the images for both the front and side views you will go into your perspective window and adjust the position of the image planes so they align nicely at the details (eyes and mouth – both images should have the same height before bringing them into Maya). To adjust the vertical placement of your image plane you will select the image plane in object mode in the perspective window and in the Channel box you will go into the Inputs sections of the camera and select the centerY and then using your middle mouse button as a slider in the Perspective window move it until it’s details line up with the other image plane’s details (eyes and mouth). We will also create a polygonal cube as a visual reference for the bounding box of our model. Scale the cube in both views until the images fit tightly inside. This cube will help us to position the image planes in such manner that the bounding box covers as tight as possible the outline of the head in both front and the side views. The next step is adjusting the centerX for the side view Image Plane and the centerZ for the front view Image Plane so they will be placed behind the bounding box of the model (the polygonal cube mentioned earlier).
5
After you get your Image Planes properly positioned, delete the polygonal cube and within the Attribute Editor for the Image Planes under the Image Plane Attributes section switch from in all views to looking through the camera (this will hide the image planes in the perspective window).
2.Customizing your Shelves for Patch Modeling Since during the modeling phase we will be using certain actions repeatedly, it only makes sense to make this actions into shelf buttons. It is recommended to create a new shelf called modeling since you will be using these tools and actions in the future. We will start by creating shelf buttons for some of the curve tools most used during the patch profile creation step. Hold Shift+Alt+Ctrl and into the Edit Curves menu click on the "Detach Curves" menu item. Do the Same for “Attach Curves” with the Attach Method set to “Blend”. Next we will create shelf buttons for the “Rebuild Curves” action with Rebuild Type set to Uniform and Keep set to CV’s. Make another button for the “Rebuild Curves” option window itself since sometimes we will have to set a number of spans for the curve profiles we will create. Hold Shift+Alt+Ctrl and into the Surfaces menu go under Birail>Birail 2 Tool (we will be using this tool to generate the patch surfaces). Now is time to create the buttons for NURBS surface editing, the second step of the modeling process.
6 While modeling with NURBS, creating a "Uniform Rebuild" button is quite useful. Open the "Rebuild Surfaces" window and set the following parameters: • • • • • •
Rebuild Type to Uniform Parameter Range to 0 to number of spans Direction to U and V Keep CVs to ON Degree U and Degree V should be 3 Output Geometry should be set to NURBS.
Once these parameters are set, add this action to a shelf by holding Shift+Alt+Ctrl and click on the "Rebuild Surface" menu item. The settings will be remembered by the shelf button for future use. It is also useful to create a shelf button for the “Rebuild Surfaces” window itself. For this hold Shift+Alt+Ctrl and click on the little square besides the menu item. We need this button because sometimes we will be using different settings for the window’s parameters. Next you will create a button for the “Attach Surfaces” action with the following settings: • •
Attach Method to Blend Keep Originals to Off
Create the button following the abovementioned method A shelf button for “Detach Surfaces” is also very useful since we will be attaching and detaching surfaces very often. Hold Shift+Alt+Ctrl and click on the “Detach Surfaces” menu item (make sure Keep Originals is set to Off). Open the Global Stitch window (Edit NURBS>Stitch>Global Stitch) and set the following parameters: • • • •
Stitch Corners to Closest Knot Stitch Edges to Equal Params Stitch Smoothness to Normals Max Separation to 1
Make this action into a shelf button for future use. The Move Normal Tool will also be a good shelf button for manipulating surface CV’s in surface space versus world space (Modify>Transformation Tools> Move Normal Tool). Make another button for the option box since sometimes we need different values for the Max Separation parameter. Finally make a button for Edit>Delete by type>History since any time we attach or detach surfaces after rebuilding them we need to delete their history. Since we are not using the animation UI it is suggested that you hide the Time Line and Playback Range (it gives you some more screen space). Try to bring the image plane reference images in a lower resolution jpeg format, this will make navigating through the front and side windows a lot easier since
7 your graphics card doesn’t have to struggle to refresh any time you track or dolly within these windows. * Note – Some of the option box settings will not be remembered unless you apply them first before making them into a shelf button.
BRIEF INTRODUCTION TO NURBS (Non-Uniform Rational B-splines) NURBS is an acronym for Non-Uniform Rational B-Spline, a description of the math used to generate the curves or splines used in this type of surface modeling. During this tutorial (and in most cases in general) we will be using Uniform Rational B-Slines. In short the difference between Uniform and Non-uniform surfaces is that the uniform ones will spread the textures uniformly along the surface (an accurate explanation would require a lot more math then you need to know for this tutorial) The foundation of a NURBS surface is a curve. Surfaces are webs of interconnected curves. The curves will help you create and modify surfaces. Proficiency at drawing and editing curves is a very important part of NURBS modeling. Isoparms - are the lines that graphically represent the surface in wireframe display mode, they become important when detaching and attaching surfaces. Hulls - connect the CVs together allowing us to select all the CVs along a curve at once. CVs – Are the control points of a surface and define the very shape of curves and surfaces. Sculpting the surface is the process of tweaking the CVs belonging to that surface. UV parameterization – Is the way the geometry counts distances (in surface space) from the origin CV to the last CV on the surface. Surface Topology – Describes the way the Isoparms flow along a surface.
III. BUILDING THE NURBS PATCHES ALONG THE FACIAL MUSCLES (analyzing the topology of the model). This part involves 2 steps, the first one is building the patches profiles (the curves that will be used to generate the patch surfaces) and the second – generating the surfaces based on the profiles we have created in step one. Although the first step might seem a bit lengthy and tedious it is also very rewarding since if it represents about 75% of the work required to complete the model. After trying any possible NURBS modeling technique it is my conclusion that this method is from far the fastest, most reliable and accurate of all. Before we go ahead and start building the curve profiles it is important to plan your patches beforehand.
8 This is important for few reasons: • First is avoiding as much as possible to have situations where 5 patches meet since it is harder to get good surface tangency in these points • Respecting the main head muscles it is also key since the model is functional only if it deforms properly when trying to achieve facial expressions. • Another reason is planning ahead the ear socket (this will save you a lot of time and trouble) • Also a good reason is placing the few unavoidable five patches corners in areas that are a lot less visible (within the eye socket area, at the base of the ear, etc.)
1.Building the Patch Profiles You can draw the patches borders on a photocopy of your referenced images and then scan the photocopy and use it as the actual reference, it would make building the patch profiles a lot easier. The following images illustrate how the patches should be divided. We will be following as much as possible the main muscle groups of the head.
The actual images used during the DVD tutorial are on the included Support Files CD. Before you start drawing your curves make sure that your front image is symmetrically divided by the Y axis of the scene (the grid’s thicker vertical axis). We will from the Side View, creating the outline for the entire head using the edit points curve tool with the default settings and starting from the back lower corner of the neck. After you are done with creating your curve remember to rebuild it uniformly (you will now start to realize how important is is to have the shelf buttons created).
9 Next we will move to the front view where we will only build the left half of the head since we will achieve the full head model by negative scaling one half. Start creating the outline curve for the left side of the face By snaping the starting point of the curve to the top of the profile curve (hold C on your keyboard when clicking first on the top of the head). It is crucial that all your curve profiles are intersecting, if they don’t you will not be able to create the birail surfaces after you completed the curve net. Keep creating curves following the referenced images until the curves overlap perfectly with the patch outlines from the image planes. This step is as I mentioned earlier might seem a bit tedious but if you do this properly the rewards are immense since the rest of the model will go a lot faster. At the end your curve net should look similar to the following image.
10 Notice that you don’t have to detach the longer outlines (for example for the outlines around the eye or the head profile) for every single patch along that profile, as long as you will be using them as rails Maya will only generate the patches for the portion in between the profiles.
2.Generating the Patch Surfaces After we completed the patch profiles we will start creating the patch surfaces through birailing. When you finished birailing the profiles you should have a model looking similar to the following image.
As you can tell although the patches don’t have good tangency between them, the basic shape of the head is achieved. We also have the ear socket ready.
11 Select all the patch surfaces and rebuild them uniformly with the keep CVs option on (you should be using the shel buttons created earlier). Delete all the history in you scene (Edit>Delete all by type>History) Now we will start attaching the surfaces to achieve perfect tangency between patches. After attaching two patches you have to immediately rebuild the resulting surface uniformly with keep CVs on and also delete history, do this also when detaching surfaces (after practicing a while this should become second nature). The easiest and most intuitive way to achieve good tangency is through attaching the adjacent surfaces and then using the artisan tool to smooth any major creases. After you did some attaching/detaching (remember to constantly rebuild your surfaces and delete history) and a bit of Artisan painting on your model you should get your model looking similar to the following image.
12 When attaching the eye’s upper eyelid patches to the forehead surface we will use the blend option with insert knot on. This will add more depth to the eye socket, keeping an edge between the eyebrow and the upper eyelid portion. For the wrinkle between the upper lip and the chick we will use a wire deformer based on a curve created on the surface of the chick made live. After sculpting the nose for which you need to increase the number of isoparms to U=7, V=6 (a minimum isoparm count that allows for getting the nose details) we will group all the patches forming the half of your head model and duplicate the group node with scale set to negative one on the X direction. It is time to check the general shape of your model against the image plane referenced images. The resulting shape should look close to the following image.
13
IV. SOLVING THE PROBLEM AREAS OF A NURBS PATCH HEAD MODEL This chapter will focus on placing the ear into the ear socket and refining the eyelid details
1.Placing the Ear We will focus now on creating the ear and placing it into the ear socket. For this we will duplicate the curves outlining the ear socket and attach them to one another into one profile. Duplicate this curve several times until you have enough profiles that can be lofted into the shape of the ear. Rebuild all the profile curves with a number of spans equal to the sum of the spans of all the patches adjacent to the ear. The resulting profiles should look more or less like the following image. Don’t worry about getting a very accurate ear shape you can always insert more isoparms onto the lofted surface for greater detail.
After you have the profiles pick them one by one in order starting with the profile close to the ear socket and ending with the small curve that is inside deep inside the ear. Go under the Surfaces menu and choose Loft. Rebuild your surface uniformly with Keep CVs on and delete the history. Start sculpting the ear until you are satisfied with the results.
14 Tip: For the unwanted creases you can use the artisan brush to smooth them (you can also use the Sculpt surfaces tool to add more detail where needed)
Try to use good reference for the ear (photographs etc.) since it is a detail that can make a subtle difference between a good model and a great one. After you are done refining the shape of the ear geometry you will have to detach it into three patches choosing the isoparms close to the corners of the surfaces adjacent to the socket. You will have to do some attaching and detaching between the ear patches and the adjacent surfaces until the transition between the head patches and the ear is smooth.Do not forget to constantly rebuild your attached/detached surfaces and delete the history, failing to do so will get you in unwanted complications. We will use the global stitch tool with the following settings to close the corners of the ear socket: • Stitch Corners to Closest Knot • Stitch Edges to Equal Params • Stitch Smoothness to Normals • Max Separation to 1
The results should look similar to the above image.
15
2.Adding Details in the Eyelid Area The focus will be on having the eyelids surround an eyeball. Start by creating a sphere approximately the size of an eyeball, which will help with the positioning of the eyelid’s inner edge. Attach the eyelid patches into one surface. Duplicate the inner edge isoparm then duplicate that surface curve project it onto the eyeball sphere. Loft between the first curve and a rebuilt copy of the projected curve. Attach the lofted surface to the existing eyelid surfaces (attach them with the insert knot option on). Tweak the new surface until you get the desired result. The resulting image should be similar to the following image.
Now it is time to increase the resolution of your model. For this we will rebuild the patches uniformly increasing the span number on U and V until the isoparm grid looks uniform across the surface. Make sure that the number of isoparms is the same for adjacent patch surfaces. Try to avoid having high contrast isoparm density areas on your model. A good model is not just a nice looking model but also one that animates and renders properly. After you finished increasing the resolution of your model you can display the wireframe on shaded in order to check the topology across the entire model.
16 The isoparms should flow from one patch to the next without interruptions or sharp angles. Your model should look now more or less like the following image.
V.FINISHING TOUCHES Now your model is basically completed, the rest is just comparing the model against the sketches and sculpting it further more for greater detail. It is always a good idea to save your model at different stages doing a Save As versus saving on top of the same file all the time. In production this is a must. What if your art director told you that he liked how the model looked the day before. It is crucial to be able to return to previous versions. After you are happy with the final look of your model what you need to do is make sure that the surface normals on your patches are pointing outwards (for texturing purposes). Use the Reverse Surface direction for this task.
17 This is an industry standard and is part of the modelar’s job to make sure that the model is ready for texturing and animation. You should always check your models with the texturing artist when you work in a production environment. Another good practice is exporting your finished model to the DXF format (which now supports curves). This will rid your model of all the “bad”, unwanted geometry or invisible nodes resulting into a much cleaner file. To do so you have to go to the Plugin Manager window and turn on the Maya to Alias plugin. Then select all the surfaces of your model and under the File menu ask for the Export Selection menu item and choose DXF from the various choices.
Now let’s take a look at the completed model. This concludes our head modeling tutorial.