Gamasutra: Anatomically Correct Character Modeling
by Stefan Henry-Biskup
November 13, 1998
Vol. 2, Issue 45
A good character model has to fulfill two requirements: it has to look great and it has to animate well. The aesthetic quality and technical functionality of your model are deeply intertwined. Aesthetically, you want a model that really captures the details of the original design. Technically, you want to maintain a model’s character traits as it animates.
As character modelers, we’re carrying on a figurative, sculptural tradition that is as old as art itself. And computer graphic art represents some stunning figurative sculpture – just look at the beautiful, high-resolution versions of characters from Tekken 3 and Mortal Kombat 4. While we digital sculptors seem to be creating better-looking characters, creating characters that animate well is a new challenge that can make or break a game.
Creating a model that can look good in the da Vinci pose and perform all of the exotic movements that today’s games require is a daunting task. Fortunately, we can take cues from human anatomy to solve the puzzle.
A character model and skeleton is a large and complex hierarchy. As such, problems that exist at or near a model’s base (root) will propagate throughout the entire figure. Conversely, changes to the root can propagate improvements as well.
When Accolade began working with Eclipse Entertainment to create Jack Nicholas 5, we encountered some major problems with the golfer’s animated appearance. The model was attached to an animated skeleton, which was driven by motion capture data. However, when the model animated, problems cropped up. The golfer’s posture was very stiff and unnatural, the shoulders were ballooned out, and the thighs looked too long (Figure 1). A great deal of time was spent tweaking the vertex attachments, applying bulge angles, and editing link parameters in an effort to fix the model’s animated appearance. We tried to improve the character’s posture by adjusting the bones of the back, but that threw off the rest of the motion, causing the golfer’s club go into the ground during a swing (the hierarchy effect). Most of our fixes related to the attachment of the mesh to the skeleton – essentially changes to the surface portions of the model. But the source of the problems was actually inside, in the skeleton itself.
The problem lay in the structure of the skeleton and its positioning within the mesh, not in the vertex assignments. The joints of the hips and lower back were coplanar in the z-axis, forming a flat horizontal line (Figure 2). As such, the lower back rotation occurred in the hip area, creating a stiff posture that lacked the natural arc of the spine. This configuration placed the skeleton’s root too low in the mesh, and because the rest of the joints were children of this root, the problem was propagated on to them.
The low placement of the root turned out to be the cause of our knee and shoulder problems (Figure 3), and in fact affected all joints to some degree. To solve it, we reprocessed the motion capture data for a more appropriate skeleton, and then modified the model with respect to the new skeleton (Figures 4 and 5). With a new skeleton and model in place, we greatly reduced the amount time needed to tweak the vertex attachments, and the appearance of the animated model improved greatly (Figure 6).
The problem with the golfer in Jack Nicholas 5 illustrates the importance of getting skeletal positions correct in the beginning. To achieve this goal, I suggest turning the usual production sequence upside down, building the skeleton before you build the mesh. You can then build the model’s surface by aligning your geometry to the appropriate bones of the skeleton as you go. This technique is similar to the way in which a sculptor uses an armature when creating a figure in clay. It lets you concentrate on orienting the surface contours of the body to the bones as you build them, and then create appendages along those naturally posed bones. So the first order of business is to get the skeleton into position, and this is where character sheets come in handy.
The character sheet was born in the 2D animation industry as a reference document to help animators draw characters. A character sheet is a guide to human proportions, and it can save 3D modelers a lot of time in creating characters. You’ve probably seen a character sheet before; it usually shows at least the front- and side-views of the character as well as any number of expressions and costume details that the designer wants to note. I scan my character sheets, and then map the scanned images onto polygons in my 3D package and work directly over that texture in the orthographic viewports.
This is the beauty of digital technology: if you’re just working from a pinned up character sheet next to your computer, you’re essentially redrawing the character as you build it. With the sheet displayed in your viewport, you can place the geometry quickly and reduce the time spent tweaking your character model’s position and scale. Mapping a scanned image to a set of polygons is much more effective than simply displaying the image as a viewport backdrop. If you apply an image to an object in the world, you can zoom in on details of the map and your geometry will scale up along with it. Finally, after you’ve used the sheet to position and build the skeletal structure for the character, it will be an aid in the construction of the final surfaces.
Figure 7 shows Anahani, a character designed by artist Heather Capelli for an Internet-based multiplayer game. We scanned the drawings into the computer and then cropped them in Photoshop. Setting the canvas size to a nice round number such as 300 pixels wide by 600 pixels high is a good idea, too; it makes it easy to match the aspect ratios of the source image and the polygons. The two polygons onto which you’ve mapped your character sheets should be positioned at right angles to one another, so that the rectangle containing the front-view lies on the z,x plane and the side-view image is mapped onto a rectangle in the z,y plane. You may have to slide the rectangles up and down until the head and feet of each image are aligned. Positioning the images so that the planes don’t intersect is important – that way, as you begin creating your model, your skeleton won’t intersect the image-mapped polygons and confuse you.
Now let’s look at where the bones should go. Move the bones to align them to the character sheet images using the front and side orthographic views. While most manuals teach you to place the bones in roughly the center of the geometry that you intend to attach, this is often not where bones are placed in the human body. As we saw in the opening examples, you can achieve some dramatic improvements in the realism of your model’s animations with the application of some basic anatomical observations. I’ll show some specific examples of how anatomical reference was used to guide the positioning of Anahani’s bones in several areas.
The following tutorial is based on 3D Studio MAX and Character Studio, but many concepts can be applied to other modeling and animation tools. I use the basic Character Studio skeleton, so my skeleton is prebuilt and prelimited for me already. Another benefit of the Character Studio bones is that their axes are automatically aligned to the bone, which is not the case with standard 3D Studio MAX bones. Because you’ll use the axis to build geometry onto the skeleton later, it’s important, if you’re using a different system, to build your skeleton with the axes aligned to the bones. Finally, note that our digital bones are really just straight lines between the axes, and are not the natural shape of human bones. Often, as we will see, the form of a human bone itself can be misleading, so it’s important to closely examine the bone and accurately locate the rotational axis of a joint.
In the root (the pelvis) there are three points that form an upright triangle, tilted slightly back at the top (Figure 8). The two hip joints are the bottom corners and the lower back joint is the top point. The hip joints are up about one-third of the distance between the bottom and the top of the pelvis. From the side, they’re slightly forward of the skeleton’s mid-point. When positioning the hip joint horizontally from the front, don’t be fooled by the upside-down L shape of the top of the femur. The bones of the thigh naturally tilt quite a bit inward. But, with digital bones, your thigh bone will be much closer to vertical. If you get this wrong, you’ll place the hip bones too far apart or the knees too close together. The lower back joint is centered horizontally within the body; it lies at the same height as the belly button, and as we’ll see shortly, it’s located to the rear of the body mass.
The spine is a misleading bone structure. It actually rotates around a vertical axis that runs through the little wing-like structures at the back of each vertebrae (Figure 9). This rotational axis lies just behind the spinal cord, so its farther back than might you think. An accurate representation of the spine is very important; the rib cage of your model will swing very differently if the figure’s spinal bones are placed in the center of the torso mass rather than at the back as Figure 10 shows. In our model, the spine comprises three bones, which lends flexibility to the rib cage while keeping the attachment between the torso mesh and the skeleton simple.
The shoulder joint is very close to the top of the shoulder mass (Figure 11). Correct placement of this joint is crucial. Otherwise, the shoulder balloons when animated (as happened with the golfer in Jack Nicholas 5). From the front view, the shoulder bone appears roughly aligned with the sides of the rib cage. From the side, you can see that it’s a little closer towards the figure’s back than the front. The shoulder is probably the single hardest area from which to get a full range of motion without ugly skin crimping or surface distortion. Some animators build abnormally wide shoulders to compensate for such distortion.
Note that the elbow sits to the rear of the arm mass (Figure 12B). As with the shoulder, this close proximity of the joint to the surface is essential to keeping the elbow from looking too soft or bulging unrealistically. The elbow is a little tricky, and its location in the arm is deceiving. I used to think it was located above the bulge of the forearm, like the relation of the knee to the calf. But in fact, the bulge of the forearm encompasses the joint. Note that the joint actually represents the meeting of three bones, not two. At the elbow, the ulna is the primary bone of the forearm pair to which to pay attention. The characteristic point that you see at the outside of your elbow when it’s bent, caused by the meeting of the humerus and ulna, is actually not the respective ends of those bones. In fact, the humerus is connected to the ulna just below the end of the latter bone, causing the ulna to cantilever outward when bent and create this point (Figure 12C). In your model, this is a matter of defining the attachments correctly.
The knee took me some time to understand (Figure 13). The key to realistic movement from this joint lies in keeping the mass of the knee fairly constant as the leg bends. The bones of the lower leg, the fibula and tibia, actually slide around the lower end of the femur (Figure 13C). To achieve this movement, place the knee’s axis of rotation a little above the vertical meeting point of the two bones (above the end of the femur), not where the two bone ends meet. As seen from the side and front, the axis should be centered horizontally within the knee’s mass. By placing the knee joint away from the surface of the geometry, we get a bulging effect, which (unlike the shoulders) we want in this case.
The rest of the skeleton is positioned by aligning the remaining bones to the character sheet as well. Note that bone joints in one part of the body behave similarly in other locations. For instance, the joints of the finger and toe bones work just like the knee: lower bones orbit about a point partway up the higher bone. The meeting of the ankle and the foot is similar to the elbow: there is a protrusion by the heel that is akin to the point of the ulna. Finally, as noted before, the bones of the neck meet the head towards the rear of the skull, just as the rest of the spine relates to the rib cage.
As Tools Evolve,
Concepts Remain Valid
Modeling tools are constantly reinventing themselves, which makes our lives as game developers easier. For instance, the newest version of Physique, the skin attachment program in Kinetix’s Character Studio, uses a new method of attaching vertices to bones. The tool now supports true weighted vertex assignments, using envelopes. This method has serious ramifications for how spline configurations at the joints will be built in the future, as it allows you more easily create a good looking vertex attachment.
However, no matter what features future software versions support, these core concepts that I’ve outlined will remain true:
- Character sheets are one of the most powerful tools you have for nailing the detail and proportion of your model, and using them within your modeling environment leverages their strengths even more.
- The quality of skeletal joint positions (particularly those at the base of the hierarchical tree) will continue dominate the geometry built upon it.
- Building the skeleton first and then properly posing it will help your modeling and save you significant time and effort.
By studying human anatomy, a modeler can learn where to put the bones of the skeleton so that it deforms properly, how the human body’s joints behave, how much freedom of rotation joints have, and how muscles wrap around and connect to bones. By creating structures that closely mimic a real human body, your model will move and deform more naturally.
Stefan Henry-Biskup has been in the game business for six action-packed years. He is currently a senior artist at Accolade working on Slave Zero.