Hands in a game environment can come in many shapes and sizes. During our research in Chapter 1, we discovered that Kila is to have a fully working hand, meaning all the fingers can be animated separately. If you are at all unsure about the number of fingers your character should have, talk it through with your lead artist.
Although we already have determined the hands we need for Kila, I will illustrate in this section how to develop various resolutions for a hand, covering any eventuality. The best starting point for this task is to build the higher-resolution version and then work down.
If you already have a selection of hands at your disposal, as I do in my Morgue, you can simply import one that's appropriate, attach it, and keep working. But let's say you're starting from scratch. You'll need some sample hand images that you can import into Maya and use as a guide. The image in Figure 3.61 is the one we will use as a base in this discussion.
Figure 3.61. Hand reference image
Building a Finger
Before we continue, let's look briefly at how the finger is going to bend, and the best way to build this. Load the file called BendingTest.ma (located on the CD in the 03 directory). It comprises five primitive fingers, as seen in Figure 3.62 (top). If you move along the timeline, the fingers will bend (Figure 3.62, bottom).
Figure 3.62. Finger bending test
Notice that the finger on the far left is pinching badly as it bends, while the one on the far right keeps its shape. This is an example of how adding a few polygons in the correct place can help. It may very well be, however, that in your game the character's fingers are never seen up close, so the far-left finger will do just fine. So let's begin with building a simple finger. Once we have one finger complete, we can duplicate it and use it for the rest of the hand:
What we have now is a decent finger modelalthough it may have a bit too much detail or too many polygons for the actual character you are building. Figure 3.71 shows how the finger we have just built can be reduced to a lower iteration in a matter of minutes. All I did to achieve this was to snap the vertices I didn't want to the ones I wanted to keep, and then weld the whole finger using a low distance of 0.1 or 0.01.
Figure 3.71. The high- and low-resolution versions of the finger
Before continuing, delete the history on your finger and save as Kila_Finger.mb.
Creating All the Fingers
As we progress with building the hand, I will demonstrate the lower-resolution version next, for comparison. The technique is the same, no matter which finger you use.
Now we can start on the main part of the hand. Use the Append To Polygon tool to bridge the gaps between the fingers and between the forefinger and thumb (Figure 3.81), filling in the outer areas.
Figure 3.81. Use the Append To Polygon tool to bridge the gaps between the fingers and thumb.
Next, bring the fingers up to meet the thumb by selecting the edges (Figure 3.82, left) all around the outer ring of the fingers. Select them all the way underneath, too. Use the Extrude Edge tool to pull the edges out to meet the thumb (Figure 3.82, right). Finish by flattening the new edges. You can use the Scale manipulator, or the small square on the Extrude Edge manipulator to do this.
Figure 3.82. Extrude the edges at the end of the fingers to create the hand.
If you are experiencing problems aligning the edges of the fingers you can align the edges manually by using the standard Move manipulator and snapping the edges to the grid. First, open up the Move tool options and deselect Retain Component Spacing. With this setting turned off, when we use the grid snap tool to align the edges they will all keep their original spacing relative to one another. Select the edges and, holding X, move them along the Z axis. All the edges will align themselves along a straight line perpendicular to that axis. Release X, and position the edges correctly.
Now it's time to work those vertices. Shape the existing palm and upper hand areas using the guide image and any reference material you have (Figure 3.83).
Figure 3.83. Work on the vertices to shape the new polygons for the palm and upper hand.
You now need to do another extrude. You should have a complete loop at the inner side of the hand (Figure 3.84, left). Select the edges around this loop and extrude them (Figure 3.84, middle). For this extrusion, pull it right down to the wrist and scale it inward, across the X axis (Figure 3.84, right). Look in the Channel Box; you will have all the attributes for the extrusion available. Set Divisions to 2.
Figure 3.84. Extrude the edges around the upper hand again.
More work on the vertices is needed now, shaping the palm, upper hand, and upper wrist areas until the entire hand is correct. Start by rounding off the wrist area and working your way up. We appear to have quite a few polygons in the palm area, and it would be easier to edit if we removed some of the unnecessary ones. Select the edges shown in Figure 3.85 (left); they should lie between the tendons on the back of the hand. Select the same edges on the underside, too, and then go to Edit Polygons > Collapse to remove them (Figure 3.85, right).
Figure 3.85. Collapse some of the edges making up the hand, cleaning up the area and making it easier to edit.
Kila's arms were made up of 10 subdivisions around the axis, so the wrist area of the hand should match this. As shown in Figure 3.86 on the left, select every other edge and collapse them. This leaves 12 remaining (Figure 3.86, right), but we can remove two more later after we have worked some more on the area.
Figure 3.86. Reduce the polygons in the wrist so it will match up more closely with the arm.
Now we have a simpler mesh to work with more easily. Continue shaping the palm and upper hand; use the tendons on the back of the hand as a guide, lining up the edges to follow them.
Looking at the hand on the left in Figure 3.87, we could use some more vertices across the middle to fill it out. As you did earlier, use the Cut Faces tool to cut a line all the way through the hand (Figure 3.87, right). Then shape the upper part of the hand until you are happy with it (Figure 3.88).
Figure 3.87. Split the hand using the Cut Faces tool.
Figure 3.88. Shape the upper part of the hand.
Next, rotate the hand so you are looking at the palm (Figure 3.89, left). Our next job is to create the muscle that lies at the base of the thumb. Following Figure 3.89 (right), split the polygons outlining the muscle, adding a second line across the center that will let you define the muscle.
Figure 3.89. Add the large muscle at the base of the thumb.
The final addition to our hand will be the knuckles. To add these, you'll add an X above each finger (Figure 3.90, right). Do this as you've done before, by splitting the polygons. Then pull upward the vertices that are now in the center. This will make the knuckles more pronounced.
Figure 3.90. Split the polygons above each finger to make knuckles.
And there you have ita hand for Kila. Admittedly, it probably has more polygons than it needs, but we can remove these when we come to the optimization process in Chapter 5, "Model Optimization."
As mentioned earlier, I followed the same procedure for the other hand, but using the lower-resolution finger. Figure 3.91 shows both hands.
Figure 3.91. Our high- and low-resolution hands, both produced using the same procedure.
The hands may look quite different up close, especially with the wireframe visible. But look at them in Figure 3.92, at a distance similar to how they will be viewed in a game. From afar, you can hardly tell the difference. This is the key to creating anything for games: If you can't see it in the game, don't waste time creating it.
Figure 3.92. Although there is a difference of 604 polygons between these two hands, you can't tell when they're viewed in the game.
One hand has 1010 polygons, but the other has only 406. Using the second, lower-resolution version could save you 604 polygons, freeing up precious processor power. And this isn't the lowest we can go; we can reduce the number of polygons even further.
Look at Figure 3.93; these are some of the hands in my Morgue. You can see how they differ. You could remove some of the fingers if they will not be needed, merging them so they are no longer individual; or you could merge them all, leaving a mitten-type hand.
Figure 3.93. A collection of hands at various resolutions
Many games use finger merging not only to cut down on the polygon count, but also the joint count. You see the mitten hand on all the main characters of the ever-popular Grand Theft Auto series on PS2. In that type of game, you need all the processing power you can squeeze out of the system in order to run everything that is happening in the background. Using the mitten-type hand can also mean you use 4 joints to animate it, rather than the 15 needed to move a fully rigged hand, again saving processing power.
Other games move the detail up a notch and just combine the pinkie, ring, and middle fingers, leaving the index finger and thumb free. This type of hand is useful for characters that need to hold weapons, or that may briefly be seen up close. The separate index finger gives the illusion of a fully working hand.
If you're on a tight budget and the hand does not need to be animated, you can always create a hand in a dynamic pose. This means you only need the wrist joint to animate it and, depending on the game engine you're using, you can swap the hand models when you need a different pose.
It is important the lowest version possible for a hand. This is an area that can eat up lots of power, so if you don't need a fully working hand, don't use one. You can easily create a low-resolution version from the high version that we built in this chapter. Simply select vertices you want to remove and, holding down the V key, snap them to the vertex that you want to keep. Just remember you will need to weld them, or the polygons will still exist.
Attaching the Hand to the Model
All that is left to do now for Kila's hands is to attach them to the model. We will use the higher version for this discussion. If we have enough polygons in our budget, it will be nice to keep some of the detail, since she is the main character and we may wind up seeing her hands up close.
Work some more on the problem area until you are satisfied with the shape (Figure 3.99).
Figure 3.99. The attached, finished hand
When you're done, delete the history and save your work as Kila_WithHands.mb.