01 Introduction

Introduction

This tutorial will show you how to create a working Counter-Strike model using Milkshape 3D. I, the author of this tutorial, am not a professional modeler. I don't even work in the game development industry. I am a programmer for a metal building manufacturer. I am playing with game development in my free time, trying to become familiar with all aspects, including modeling. However, my main interest is still programming.

If you an intermediate or advanced modeler hoping to pick up a few insightful tips, you are most likely in the wrong place. This tutorial is for beginners who need a little help getting started.

This tutorial is quite long. Be sure to bookmark where you leave off should you need to quit and come back later.

What you'll need

The first thing you'll need is Milkshape 3D. Milkshape 3D is a 3D modeling and animation tool which can be found at www.milkshape3d.com. Milkshape 3D is shareware application which offers you a 30 day trial and costs only $20. During the 30 day trial, all features are enabled. After the trial, all features are still enabled, excluding the ability to save your work. While you're at the Milkshape 3D website, be sure to grab a copy of the free Half-Life Model Viewer.

The next thing you'll need for this tutorial is a tool to unwrap your 3D model. Milkshape does come with this feature, but it is lacking in options. For this tutorial, I used a freeware application called LithUnwrap. LithUnwrap however has graduated to shareware application and has a new name, Unwrap 3D. At $29, Unwrap 3D is well worth the money and you should have no trouble following the steps of this tutorial even if you can not find a copy of LithUnwrap. Unwrap 3D can be found at www.unwrap3d.com.

The next tool you'll need is a graphics application. For this tutorial, I used Photoshop 7 by Adobe. Jasc's Paint Shop Pro is a viable and much cheaper option; however, I will make no further reference to it in this tutorial.

Of course you should also have a copy of Counter-Strike installed.


02 Concept

Concept

It is a good idea to know what you want to do before you do it. Taking a little extra time here will save you a lot later and most likely give you better results. For this tutorial I imagined a military type female who still managed to look female. I had the idea of a tank top and camouflage pants. That was about it though. I just knew I wanted to stay somewhat realistic, but still show off her figure. I decided to draw her first in order to work out the details.

I found that my original idea was rather boring. I added gloves, knee pads, and elbow pads to take away from the plainness of the model. I also lengthened the tank top and raised the neckline of it to keep it from looking like something most women probably wouldn’t wear in public, let alone in combat. I attempted to use straps around the leg to hold the weapon holster, but she looked a little too much like Miss Croft, so I raised it to her belt line. I’m still not sure on the colors we’ll be using, but that really isn’t of much importance right now. In the end, it’s a good idea to draw your character before you start modeling so you can get the details worked out. Its much easier to change things now than after you’ve started modeling. Also be sure to draw your character in a pose rather than the spread-eagle pose we model our characters in. It gives you a better feel for what type of attitude your character is going to have, as well as how they are going to carry themselves.


03 Setting Up

Setting Up

The first thing we’ll need to do is set the dimensions for our model. The best way to do this is through Milkshape 3D by loading the skeleton for our model so we have a good reference. The first thing we’ll need to do is get a skeleton. The Half-Life skeleton provided with Milkshape 3D will not work. It does not have all of the joints we need. Also, the source from Valve may be a superior skeleton, but it is an old one. It does not have a few things which the newest Counter-Strike 1.3 models have, including the extra bone for the moving mouth. So to get a good skeleton to work with, we’ll be decompiling an existing model and using it’s skeleton.

First, you’ll need to make a working directory. I play on using C:\My Documents\cs_chick. In that directory, make a new directory named “gsg9_decompiled”. We’ll want to copy our gsg9.mdl to that directory. If you have the mod version of Counter-Strike and you’ve installed everything to the default locations, you can find the gsg9.mdl in C:\SIERRA\Half-Life\cstrike\models\player\gsg9.

Next we’ll open Milkshape 3D to decompile the model. You’ll do this by selecting in the menu Tools > Half-Life > Decompile normal HL MDL File… Once the dialog appears, locate your cs_girl\gsg9_decompiled directory and select the gsg9.mdl. Another dialog will appear labeled “MDL Decompile”. All we really need is the reference, but go ahead and leave all boxes check and click “OK”. Milkshape 3D will grind away for a few minutes, decompiling the model. Once it is done, take a look at your gsg9_decompiled directory. You should see several hundred files, most of which have a .smd file extension. I will explain what all of these files later. We only need to be concerned with the GSG9.smd right now.


04 Building References

Building References

In Milkshape, using the menu, select File > Import > Half-Life SMD… Locate the GSG9.smd in your gsg9_decompiled directory and click “Open”. Another dialog will appear labeled “SMD Import”. Make sure Triangles is unchecked and Skeleton is checked, then click “OK”. Note: If you do not see anything, select the Joints tab in the Milkshape Control Panel and be sure the Show Skeleton checkbox is checked. Your Front view should look something like the image on the right.

This is the skeleton we will use. We will import an image of this into Photoshop to use as a reference. The joints are rather large though. We will change that by using the menu to go to File > Preferences, selecting the Misc tab and changing the Joint Size from 1 to .5. Now you should have something that looks like this;

Next well take a screen shot of this. Paint Shop Pro has an easy screen capture utility, but Photoshop does not. However, there is an easy way to get a screen capture into Photoshop. The key to this trick is the fact that when creating a new document in Photoshop, if there is image data on the clipboard, Photoshop will default the size of the new image to the size of the image on the clipboard. Before we do that though, it will be a good idea to right click in the front view window and in the popup menu, select Show Axis so that it is unchecked. Do the same with Show Grid. You should end up with a front view that looks like this;

Next load make sure Milkshape is the active application and press ALT + Print Scrn. This will copy an image of the Milkshape application. Load Photoshop and use File > New to create a new image. Name the file ref_ body and click “OK”. Using the selection tool, select only the grey area of the front view. Then in the menu, select Image > Crop. Save your image as ref_ skeleton.psd in your working directory in a new directory named “reference”. You may want to increase the canvas size in order to allow for a little extra drawing room. You now should have a basic image that looks like the one above that you can use as a reference to draw your figure.

Creating the Model Reference: Drawing isn’t easy and doesn’t come naturally for most. However, what we’re attempting to do here is simply create an outline of the body and other major features. Be sure your ref_body.psd is loaded and create a new layer and name it mannequin. On the new layer, using the pencil tool with a brush size of 1, draw circles for the head, hips, chest, and major joints. You may want to increase the size of your view. It helps to find the joints. Also don’t worry about being neat and having a lot of detail now. This should be a quick sketch. Once complete, you should have something like this;

Now on the same layer, using the same pen tool, connect these joints to make a rough and basic outline of your figure.

She looks a little big and bulky. On our next layer, we will create a nicer looking shape for our model. Create a new layer named “outline”. Also create a new layer below our mannequin later named “bgr_white”. Switch to the bgr_white layer and fill it with solid white. Turn off the visibility for the background layer containing our skeleton. Change the transparency for the mannequin layer to 20% so they lines turn to grey. Switch to the new outline layer. Your image should now look like this.

Using the mannequin layer as a guide, draw the outline of your character’s major features on the new outline layer.

Turn off your mannequin layer and set your outline layer’s transparency level to 20%. Create a new layer named “detail”. Working on the detail layer, use your outline layer as a reference to put the finishing touches on your character.

Turn the outline layer off. Change the detail layer’s transparency to 20% and create a new layer named “back”. You are more than welcome to skip this step if your character does not have anything special on their back, however I choose to do this step, even if I do not use the reference layer. Switch to the back layer and using the detail layer as a reference, draw the back of your character.

Create a new layer and name it “side”. Switch to the side layer and draw your character from the side. Be sure to turn your back layer off and keep your detail layer’s transparency set to 20%. The detail layer will serve as a better reference than the back layer.

Our body references are complete. The only other part of the body that needs attention is the face. Next we will make front and side views of the face with greater detail than we can provide in our body references. Create a new image in Photoshop. About 500x500 should work just fine. Name the file “ref_face” and save it as ref_face.psd. Fill the background in with white and create a new layer named “outline”. Using the pen tool with a brush size of 3, create a large oval.

Next draw a line down the center of the face and another line horizontally across the center. Also draw another horizontal line halfway down between the center line and the bottom of the jaw.

Create a new layer named “front”. Set the outline layer’s transparency to 20%. Redraw your oval and add the eyes. They will go right on the center horizontal line. There will be a gap between the eyes approximately the same as the width of an eye or slightly larger.

Next draw the nose right above the second horizontal line and add a hint of a bride in between the eyes.

Add the mouth below the nose. It should be approximately as wide as the gap between the eyes or slightly larger. Also add eyebrows above the eyes.

Next we’ll add the ears. The top of the ears start on the center horizontal line and the bottoms end on the lower horizontal line. Also add a slight hint of cheekbones. They start approximately at the top of the ear lobe and are not very distinct.

Next add the hair line. The hairline usually has a point in the center which is more dramatic on some people than others. The hairline extends out past the eyes slightly before coming down the side of the head. It will make two turns down the face, one well before the eyebrows and the other at the ears. Since our character has her hair pulled back, our placement of the hairline is very important.

We could keep going and add more detail but it isn’t really necessary. This will definitely do as reference while modeling our character’s head.

The final reference image we will make will a side view of our character’s face. For this we will set the face layer’s transparency to 20%, but we will also leave the outline layer visible. Doing this will allow us to see the center lines and our character’s facial features. Start by drawing your character’s profile, then draw the eyes and other facial features. Be sure to keep your character’s features in line with your front view. You’ll end up with an image that looks something like this;

The next step is to group these images together and save them so you can use them in Milkshape. Create a new image tall enough and wide enough to hold both face outlines side by side. Paste both face layers into your new image (return your face layer’s transparency to 100%). Be sure to pay attention to where you put them. It is best if facial features align horizontally. Crop excess space from your image and resize it to have a height of 200 pixels. Save your image as “face.jpg” in your reference directory. Your image should look like this;

Repeat the same steps with your body references, except keep your image height approximately 300 pixels. Save your final body image as “body.jpg”.

Now you have your head and body references. We are done drawing in Photoshop. The next step will be to move onto Milkshape and begin modeling.


05 Getting Started

Getting Started

Modeling:
Before we start modeling, it is important to understand the skeleton. If you notice on the skeleton we imported earlier, there are quite a few joints. When most people think of joints, they think of things like your knees, wrists, and elbows. Joints in a model aren’t just limited to our own physical joints. In a Counter-Strike model, there are not only bending joints as we are commonly familiar with, but there are twisting joints as well. A bending joint would be something like your wrist or elbow. A twisting joint would be in between joints, such as your bicep or the middle of your forearm. We need to keep this in mind as we create our model. All of the vertices in our model must be attached to a joint. There are several joints we must provide vertices for. I made the mistake of skipping some of these when I created my first model. I did not have vertices for the thigh bone and as a result, when my character ran, the backs of his legs detached from his rear-end, leaving gaps. You could see right through the gaps in the model. So as you follow along, keep in mind that skipping vertices and trying to use less triangles may end up in a deformed model that doesn’t animate properly. The following image shows most of the joints we will have to keep in mind as we create our model.

Now load up Milkshape, be sure you have four views showing. We will mostly be using Font, Left, Back, and 3D. Also be sure to turn on the viewport captions using the menu (Window > Show Viewport Caption). Your interface should look like this;

Next, right click in the Front viewport and select Choose Background Image. Locate the body.jpg in your cs_chick\reference directory. Repeat these steps for the Left and Back viewports. Your interface should now look like this;


06 Modeling the Chest

Modeling the Chest

Before we start building our model, keep in mind that you do not have to follow these steps exactly. I will try to keep you informed as to which steps are important and why. Also, don’t feel the need to keep the four window setup. I constantly maximize views (you can do so by right clicking in the view and selecting Maximize in the menu). I flip from view to view quite often as well. While not editable, the 3D view is very important. I do not leave it in the default smooth shaded mode though. I tend to leave it in the flat shaded mode to help keep track of faces. I also switch to wireframe quite often to make sure I have selected the correct vertices and faces.

We are finally ready to start building the actual model. We will start with probably the most difficult part of a female model, the chest. Start by creating a sphere (12 sides, 6 stacks and not a geosphere) in the Front view, roughly the size of our character’s breast. Be sure to move sphere in line with our character’s breast using our reference image. Your Front view should look like this;

Next, we need to rotate the sphere forward. Click the Rotate button in the control panel. Type 90 in the X textbox and click Move.

Your Front view should now look something like this;

Switch to the Left view and select the back two sections of the sphere by selecting faces by vertex, and not ignoring backfaces.

Prese the Delete key to get rid of the back two sections of the sphere.

Next in the Left view, move the sphere to match the breast. Also select the back vertices (not faces) and using the scale tool, scale them to match our reference image. Be sure not to ignore backfaces.

Now that we actually have something, it’d be a good idea to save. Its always a good idea to save. Create a new directory named “model” in your cs_chick directory and save the model as cs_chick.ms3d. Keep in mind that as you go further, it may be a good idea to save your model under different names as you go. This allows you to revert back to a version if you get too carried away and really mess things up.

Switch back to the Front view. The next step is kind of tricky if you are new to modeling. We need to select three vertices, specifically the three vertices on the back right of the breast. Keep in mind that by holding shift key and dragging the left mouse button, you can add to your selection. Holding the shift key and dragging the right mouse button removes from your selection. I often select more than needed in one view and switch to another view to remove the extra vertices or faces I did not want. You front view should look like this.

Using the menu, select Vertex > Flatten > X or press Shift+Ctrl+X. This will align your selected vertices on the X axis.

Using Move, drag these vertices to the center area between the breasts.

Select the top three back vertices.

And flatten them on the Y axis.

Next, using the vertex tool, add two vertices for the neck, one on the side of our character and one at the midpoint of the neck.

And align them in the Left view.

Add one vertex to the top of the shoulder, one on the armpit and two more spaced equally between the other two. Also add one in the middle of the chest, and two following inside of the tank top strap.

In the Left view, align the top shoulder and armpit vertices to the middle of the arm. Align the two middle shoulder vertices to the front of the arm. Align the three vertices on the chest to the front of the chest of our reference image.

When connecting vertices to create a face, it is important to remember faces have two sides, front and back. Textures are applied to the front of the vertex so it is important to make sure all faces are facing forward. We do this by selecting the face tool and connecting our vertices in a counter-clockwise direction. This will face our faces forward. Selecting vertices in a clockwise direction will cause the face to face away from us, which still can be useful. When creating faces, don’t worry if they are turned the wrong way. We can still flip the face forward if needed. You do this by selecting the face and using the menu Face > Face To Front.

Use the face tool to connect the three vertices near neck on the right shoulder. Once complete, switch the Front view to the Flat Shaded mode to make sure your face is forward.

Switch back to the Wireframe mode so you can see the vertices. Use the same technique to the other vertices as follows.

Next connect the faces we just created to the top of the breast.

Switch to the Left view. Notice how the top of the breast isn’t lined up and the bottom of the breast seems to cut into our character.

Using the select tool, selecting by vertex, drag the misaligned vertices into their proper place.

Add five new vertices below the armpit.

Create faces off of the new vertices, connecting them to the breast.

Switch to the Front view and move our new vertices so they’re along side of the body. The vertices directly under the armpit will move to the side of our reference image while the others under the front of the shoulder will move slightly in.


07 Modeling the Torso

Modeling the Torso

Create a cylinder in the Front view. Make it 12 sides and 6 stacks, running from the bottom of the breast to the lower crotch.

Using the selection tool, selecting vertices with ignoring backfaces off, select the top row of vertices. Use the scale tool to scale the row to fit the ribcage directly below the breast.

Adjust the second row to fit right below the ribcage.

Move the third row to the skinniest section of the waist, right below the belly button.

The fourth row will move to the belt line.

Switch to the bottom row and shape it to the size of the gap between the legs.

Move one row up and put it slightly above the bottom row, slightly larger than the last row.

Move one row up and shape it approximately halfway between the size of the row above it and the row below it.

Switch to the side view and repeat the same steps to shape our cylinder.

In the front view, select the right side of your cylinder’s vertices. Do not ignore backfaces and do not select the center vertices.

Press the Delete key to delete the vertices.

In the front view select all vertices on the center line, including both our chest vertices and our torso vertices. Flatten the selected vertices on the X axis.

Zoom in on the front view and create a face between the inside of the breast and the torso.

Repeat the previous step to fill in the gaps.

Switch to the Left view.

Fill in the gaps the same way.

In the left view, select the five vertices below the armpit.

Flatten them on the Z axis and be sure to align them directly under the center of the armpit.


08 Modeling the Back

Modeling the Back

In the Left view, add two vertices on the back of the shoulder in line horizontally with the vertices in the front of the shoulder.

Add eight new vertices along the contour of the back, keeping in line with the existing vertices in the side view.

In the front view, align the two shoulder vertices directly behind the front two shoulder vertices. Align the back neck vertex directly in the center of the back of the neck. Align the other seven back vertices slightly off center from the middle of the back.

In the Left view, use the select tool to select faces by vertex. Select the chest section above the torso.

Hide the selection using the menu Edit > Hide Selection or with Ctrl+H.

Switch to the Back view. Add six new vertices between the neck and the torso. Be sure to align them slightly inside the back in the Left view.

Connect the new vertices together.

Add seven vertices along the shoulder blade area.

Be sure to align the new vertices to the back in the Left view. Connect the existing faces to the new vertices as well as the back of the shoulder’s vertices.

Connect the back section to the torso section with new faces.

Use the menu Edit > Unhide All or Ctrl+U to unhide the selection we hid previously. Next we’ll need to create faces to fill in the gaps we have in the Left and Back views. This will get tricky as we have to be careful which vertices we are selecting when creating faces. One trick I’ve learned is to use the selection, selecting by vertices, to select the three vertices we want to create a face with. Even with the face creation tool, those three vertices will stay selected until the face is created. I also use all views to select the right vertices, using the 3D view in wireframe mode to verify the selection. The following image is of the three vertices in the Back view I will use to create a face.

Next I’ll switch to the face tool to create the face, clicking on the red dots I marked with the selection tool.

Use the same process to fill in the rest of the back, then switch to the side view and do the same.


09 Completing the Torso

Completing the Torso

Switch to the top view.

And use the same technique to fill in the gaps with new faces.

At this point you should have a good view of the shape of the torso.


10 Preparing the Hip

Preparing the Hip

Next we will work on the legs. We need to delete part of the hips so we can connect our legs. To do this, we’ll have to fix some faces first. Switch to the Left view and select the following faces.

Use the menu Face > Turn Edge or Ctrl-E to turn the edge. It will look like this.

Turn the following edges.

Select the following faces.

And press the Delete key to delete them.

Your 3D view should look something like this.


11 Modeling the Leg

Modeling the Leg

Next we’ll create the leg. Before we do though, it’d be a good idea to hide what we’ve worked on so far. Press Ctrl+A to select all, then Ctrl+H to hide. We’ll need to create a new cylinder, 6 sides, 8 stacks, roughly the size of the leg. Be sure to have close cylinder unchecked.

Using the rotate tool, rotate the leg to match the angle of our reference model’s leg.

Select the top four rows of vertices.

Move those vertices up so the fourth row is even with the bottom of the crotch.

Select the fourth row of vertices and using the move and scale tools, fit them to the leg.

Select the fifth row and fit it to the thigh area, halfway between the crotch and the knee.

Fit the sixth row directly above the knee.

The seventh row goes directly below the knee.

The eight row goes halfway between the bottom of the knee and the ankle.

And the last row fits the ankle.

Switch to the Left view and fit the vertices to the leg using the same steps. Remember to start at the forth row and ignore the top three for now.

Next take a look at the top three stacks in the front view.

We are going to have to turn edges and taper out model just as we did before with the hip. Use the selection tool to select faces, this time ignoring backfaces. Turn edges until your model looks like this. The selected faces are the turned edges.

Select the following faces.

And press the delete key.

Switch to the back view and repeat the same steps.

Unhide your previously hidden selection.

Switch to the front view and move the torso into position, but leave the leg off to the side slightly for now.

Select the following two vertices.

Use the menu Vertex > Divide Edge or Ctrl+P to divide the edge.

Drag the new vertex down even with the crotch.

Next, select the rows of vertices on the leg, row by row, and move them to the approximate level matching those of the torso.

Move the leg into the proper position.

Next, select by vertex, ignoring backfaces, the two following vertices. Be careful not to select vertices in the back of the model. If you do, use the front view to deselect those vertices.

Snap them together with the menu Vertex > Snap Together or Ctrl+N. Then weld them together with the menu Vertex > Weld Together or Ctrl+W.

Repeat the same steps for the other three sets visible to us in the front view.

Your 3D view should look something like this.


12 Modeling the Buttocks

Modeling the Buttocks

Select all and hide. Switch to the side view and create a sphere approximately the size of the buttocks. The sphere should have 12 slices and 6 stacks.

Rotate the sphere 90 degrees on the Z axis.

Select the front vertices.

And delete them.

Select the center vertex.

And delete it.

Drag the second ring of vertices so they are in line with the other vertices. Select all of the vertices of the front of the sphere and flatten on the Z axis.

Select the inner ring of vertices.

And drag them in closer to the front vertices.

One by one, drag the outer vertices in to match the outline of our reference.

Switch to the back view.

Rotate the sphere to match the angle of the buttock.

Next selecting by vertices, adjust the sphere to fit the reference image better.

Switch to the Left view and move the buttock away from the reference, then unhide our previously hidden selections

Switch back to the Back view and study the view. Get a good idea of which faces you a re going to have to delete behind our buttock sphere.

Hide the buttock sphere and select the faces we’re going to want to delete. Be sure to ignore backfaces when selecting.

Delete the faces.

Next, selecting by vertex, move the vertices in the lower leg out in order to allow room for the buttock sphere.

Unhide the buttock sphere and move it back into position.

Notice we have a few faces missing in the hip. We’ll fill those in a little bit later. For now, attach the top and bottom of the buttocks to the leg and torso using the snap and weld method.

Now take a look at the gaps in the side view.

Using the face tool, fill in the missing faces.

Selecting by vertex, reshape the buttocks and hips to match our reference.

The buttock should have a nice shape by now. Take a look at your 3D view and make any adjustments you feel are needed.


13 Modeling the Foot

Modeling the Foot

Switch to the Front view and look at the foot area.

Add four new vertices, two at the top of the ankle, and two at the bottom.

Switch to the Left view and center the vertices on the ankle.

Add four more vertices, to the front and back of the ankle.

Switch back to the front view and align the new vertices to the center of the foot.

Using the new vertices, create the faces of the ankle.

Next we need to connect our ankle to our leg. Do not snap and weld here. Create faces between our ankle and leg.

Switch to the left view and add 6 new vertices outlining the boot.

Check the front view and be sure these vertices are aligned to the outside of the boot. Then use the vertices to create faces.

Select the boot faces and using the menu Edit > Duplicate Selection or Ctrl+D, then menu Vertex > Mirror Left <--> Right. Move the new selection to the inside of the boot.

Switch to the Front view and connect the two sides with new faces.

Switch to the back view and add another face connecting to the back of the ankle.

Switch to the Left view and select the side ankle vertex and the back boot vertex.

Snap and weld them together.

Switch to the Right view and repeat the same steps, then switch to the Back view.

Fill in the gaps with new faces.

Switch to the front view and create a new face from the top two toe vertices and the middle front ankle vertex.

Switch to the 3D view and take a look at the foot.

Notice we still have empty spaces. Fill in those spaces with new faces.

Switch to the bottom view.

Fill in the empty space with new faces.

We don’t want a block for a foot so we need to shape our foot. We’ll start in the back view by bringing in the bottom two vertices in a bit. Use the scale tool to do this.

Switch to the front view.

Bring the two vertices on the middle of the foot down and in.

Scale the top of the toe down, in, and back.

Scale the bottom of the toes slightly in.

Take a look at your boot in the 3D mode to make sure it looks how you want.


14 Modeling the Arm

Modeling the Arm

Next, we will be modeling the arm. Switch to the Front view.

Take a look at where your arm starts. Select all and hide your selection. Next, create a new cylinder with 8 stacks and 6 slices, making sure Close Cylinder is unchecked. Make it roughly the length of the arm and rotate it 90 degress on the Z axis.

Zoom in on the shoulder area and select the vertices on the shoulder end of our cylinder.

Using the move and scale tools, move and shape the vertices to fit our character’s shoulder.

The next section needs to be moved up to the bottom of the shoulder muscle. Use the same steps as before to shape the vertices to the arm.

The next set of vertices need to be placed on the center of the bicep.

The fourth set of vertices will be placed at the bottom of the bicep right above the inside of the elbow.

The next two sets of vertices will be placed directly above and below the elbow joint.

The last set of vertices will be placed right below the elbow where the forearm muscles start.

At this point it is obvious we’ve run out of stacks to complete the arm. We will need to create another cylinder with 2 stacks and 8 slices. Be sure not to close the cylinder and to rotate it in position to complete the arm.

Using the same snap and weld technique we just used on the boot, attach the lower arm cylinder to the upper arm cylinder.

Shape the second set of vertices to the middle of the forearm.

The last set of vertices will move to the wrist.

Next switch to the top view. You’ll want to use one of your other views so you can still see your front view.

It is important to keep your front view because we don’t have a reference image for the outside of the arm. Using your front view and a little knowledge of anatomy, you should be able to shape the arm in this view without a reference. If you still have trouble, find an image of somebody. You’ll need to pay attention to the front view to determine which set of vertices you are using and how they would line up in a side view. Go ahead and shape the whole arm. You should end up with something like this.

Switch to the front view and unhide your previously hidden selection.

Using Snap and Weld, attach the arm to the body.

Your 3d view should now look something like this.


15 Modeling the Hand

Modeling the Hand

Next we’ll be working on the hand. Switch to the Front view.

Using the box tool, create a new box from the start of the wrist to the first joint in the thumb.

Switch to the Right view and select the front faces in that view.

Switch back to the front view and using the extrude tool, drag the faces to the left to extend the box to match the length of the thumb.

Select the middle set of vertices. Do not ignore backfaces. Scale and rotate the vertices to fit the joint of the thumb closest to the wrist.

Do the same thing with the left set of vertices, matching them to the end of the thumb.

Using the same technique we used to make the thumb, create the fingers, starting at the knuckles and extrude at the first set of joints from the knuckles.

Switch to the Right view. Making sure you can only see the fingers, use the scale tool to match them to the width of our hand.

The thumb will be a little trickier. The set of vertices closest to the wrist will need to be the size of the wrist, while the other two sets will need to match the size of the thumb.

First set.

Second set.

Switch to the Right view. Adjust your thumb and finger objects so they are side by side. Select the faces closest to the wrist on each.

Press the delete key to get rid of these faces. Switch to the top view. Select the top two faces closes to the wrist.

Press the delete key to get rid of these faces. Then move the finger object directly over the thumb object.

Switch back to the Front view. You’ll need to realign your objects to your reference.

Connect the finger object to the thumb object by creating new faces.

Switch to the top view.

Create faces to fill in the gaps.

Switch to your back view.

This is where things get a little tricky. You’ll need to create the following face.

Your 3D view should look like this.

Select the following two vertices.

Using the menu Vertex > Divide Edge or Ctrl+P, divide the face in two.

Create the following face.

Take a look at the 3D view. You’ll see a gap.

Using your other views, create faces to fill in this gap.

Switch back to your Front view.

Create faces between the hand and arm to connect them together.

Now is a good time to clear your background references. You do this by right clicking in a view, select Choose Background Image in the menu, then click Cancel when the dialog appears. Once all views are cleared, use the Front and Left views to position your model over the center of the axis. Your 3D view should look like the following image, with the model centered over axis.


16 Retouching the Model

Retouching the Model

We are almost done with the body of our model, but before we move on, now is the best time to make any little changes to your model that you feel are necessary. Be sure to study your model in the 3D view in both flat shaded and smooth shades modes. Find every little flaw you can. It will be much easier to fix them now than later.

Studying my model, the first thing that stands out is the hand is too big.

The armpit doesn’t angle correctly and there appears to be a ridge under the breast.

We can also see that ridge from the back.

The hip protrudes slightly more than it should.

The front of the shoe is too big.

The flaws in your model may vary from mine. Study your model to find your own flaws. Using the techniques you know or have learned, adjust your model to find and fix any flaws you find. Pay special attention to the center line of your model. We took great care to make sure these vertices were aligned vertically. Do not move them. Once your flaws are fixed, take a second look at your model. In the end you should have a better looking model.

Next we’ll need to duplicate the left half of our model. We do this by first selecting all, then using the menu Edit > Duplicate Selection or Ctrl+D and then Vertex > Mirror Left <--> Right

Next move your new selection to the right and line it up with the other half of the model. You may want to zoom in for accuracy.

If you look in your 3D view, you’ll notice a line down the middle of our model.

Using the snap and weld technique, move around your model and connect the two halves together. Be sure to leave the neck open.

Next, we’ll move around our model and see what is wrong with it. A few things stand out right away.

First, notice the gap between the breasts. Sure this would be OK if she was in a wet t-shirt contest, but that is not what we’re going for. She will be wearing a tight tank top and there won’t be that gap between the breasts.

Use the Front view to select the vertices between the breasts and the Left view to move them forward. Be sure not to move them side to side. We want to maintain our center line. Adjust them until they look a little more appropriate for tight clothing.

Next I’ll take a look at the hip area. In the flat shaded mode, I notice a few things I don’t like.

First, the bottom vertex in the crotch area is making a point. I’d rather have this straight across. Next, in the abdomen, I have kind of a weird shape creating almost a pot belly look. I’ll turn some edges to get more of what I’m looking for.

I know the changes don’t look too different, but those small changes made a huge difference how the model looked in the smooth shaded mode.

Take a look at the back of your model.

The buttocks don’t look right. There is a wide and even gap all the way down the center. There should be no gap at the very top and only a slight gap further down. Also, the outsides of the buttocks should dent in slightly. Take a look at your model in the flat shaded view to get a better picture.

I’ll fix this by moving the buttocks closer together. This will indent the outsides of the buttocks as well as eliminate some of the gap. Next, I’ll bring the upper center vertices out to give a flatter shape at the top of the buttocks.

You’ll see that this looks much better in the smooth shaded view.

Look your model over one more time. I don’t see any more fixes needed on the body at the moment. Once you’re happy with yours, go ahead and save and close the model. Create a new file named head.ms3d. Set your views background image to your face reference image.


17 Modeling the Head

Modeling the Head

Switch to the Front view.

Create four vertices down the center at the nose, the first at the top of the nose between the eyes, the second at the top of the slop of the nose, the third at the point of the nose, and the last at the base of the nose. Be sure to flatten them on the X axis.

Switch to the Left view and align your vertices to the nose.

Switch back to the front view and create four more vertices along the front side of the nose. Align them horizontally with the first four.

Switch to the Left view and align the new vertices slightly to the left of the original vertices.

Switch back to the Front view and create faces between our new vertices.

Create four more vertices along the side of the nose where the nose ends and the face starts.

Switch to the left view and align them to the side of the nose where the nose ends and the face starts.

Switch to the Front view and create faces with your new vertices.

Create four vertices around the eye.

Align them in the Left view.

Switch back to the front view and create your faces.

Add three vertices along the brow.

Align them in the Left view.

Create new faces attaching the eye to the brow.

Attach the nose to the eye by creating new faces.

Create a new vertex at the high point of the cheekbone.

Align it in the Left view.

Create new faces between the nose, eye, and new vertex.

Add a new vertex above the center of the nose. Be sure to align it along the X axis with the other center vertices.

Align it in the Left view.

Create faces to join your new vertex to the rest of the model.

Add four vertices along the hair line.

Align them in the Left view.

Using the four new vertices, create new faces.

Add five new vertices to the lips, four a long the center of the lips and the last on the corner.

Align them in the left view.

And create faces between the vertices, leaving a gap between the two lips. I’ll explain why we do this a little bit later.

Obviously our lips do not match our reference. We can do a little to fix that. Select the top middle vertex and the corner vertex. Using the menu Vertex > Divide Edge or Ctrl+P divide the edge.

Drag the vertex into place.

Repeat the same steps for the bottom lip.

Add two vertices along the middle of the chin, one where the chin dents in and the other at the bottom of the chin. Add a third vertex to the jaw on the outer edge of the chin.

Align them in the Left view.

Create a face between the three new vertices.

Add another vertex right below the second vertex on the lip.

Create a new face with our new vertex and our previous face.

Insert four new vertices, two along the jaw line, one at the bottom of the cheek bone, and one slightly outside of the mouth.

Align them in the Left view.

Create new faces between the new vertices.

Connect the lips to the faces on the jaw and the chin by creating new faces.

Create new faces attaching the bottom set of faces to the top.

Add one new vertex in the center of the head near the top.

Align it in the Left view.

Create a new face with the new vertex.

Add three new vertices along the top of the head, starting at the top center of the head, moving off to the side, keeping in line with the existing adjacent vertices.

Align them in the Left view.

Create new faces with the next vertices.

Add five vertices in the Left view adjacent to the existing vertices.

Align them in the Front view.

Create faces with the new vertices.

Add five more vertices a little further back on the head.

Align in the Front view.

Create new faces.

Add four vertices near the back of the head.

Align in the Front view.

Create the faces.

Add three vertices near the pony tail. Add one at the top, one at the bottom, and one on the side.

Align in the Front view.

Create new faces.

Add three new vertices along the back of the head.

Align them to the center of the head in the Front view.

Create the new faces

Add three vertices along the bottom of the jaw.

Align them to where the neck would be in the Front view.

Switch to the Bottom view to create faces with the new vertices to create the bottom of the jaw.

Create faces to fill in the gaps at the back base of the skull.

We still need to create a rounder space for the neck. We’ll do this by dividing the inside edge of the following face.

It should look like this.

Drag vertices around till you get somewhat of a circle.

Switch to the Left view and create a cylinder with 5 stacks and 4 slices. Be sure to not close the cylinder.

Rotate the cylinder to match the angle of the base of the pony tail.

Scale the first set of vertices to match the size of the hair tie.

Be sure to scale to an approximate size in the Front view.

Angle and scale the second set of vertices to match the high point of the pony tail and scale in the Front view.

Match the next set of vertices to the outer curve of the pony tail. Widen this point a little larger than the last in the Front view.

Match the next set of vertices to the outer curve of the pony tail. Widen this point a little larger than the last in the Front view.

Size the next set of vertices to the next curve in the pony tail.

Select the last four vertices and use the snap and weld technique to seal off the end.

Switch to the Back view. Select all vertices outside of the center line.

And press the delete key.

Use the snap and weld technique to attach the pony tail to the head.

Switch to the front view and select all vertices along the center line and align them on the X axis.

Clear your backgrounds and center your model on the axis. The next part gets a little tricky. Since Counter-Strike models can “talk”, we have left our model’s mouth slightly open and we’ll need to create the inside of the mouth. We’ll do this by adding two vertices. They will be placed at the middle and corner of the mouth.

These vertices will be placed near the back of the mouth.

The trick now is to create faces between the vertices. The front side of the face must be facing the inside of the mouth. Remember, if you work from below or above the mouth, you can create your faces in a clockwise direction. The front of the face will be away from your view, but it will be facing the inside of the mouth. Be sure to watch your 3D view in Flat Shaded mode to make sure the faces are correct. If you open the mouth slightly, it may be easier to see what you are doing.

Select all and duplicate your selection.

Mirror your selection.

Move your two halves closer together and use the snap and weld technique to connect the two halves. Be sure to leave the neck open.

Take a look at your 3D view. If you’re like me, then you’ll have a somewhat pointy looking face.

You’ll need to move around your model to create a rounder face. Dragging vertices can be a pain. Often, once you move a vertex to flatten out a certain area, you’ll have messed up something else. This is why it is always a good idea to turn edges when possible. For example, take a look at the ridge on my model’s forehead. I could drag vertices around to flatten it out, but by the looks of things, I would probably screw up the eye indentions in the process. We can fix this problem by turning edges. Switch to the front view and select the following edges

Turn the edges.

Repeat the same steps on the opposite side of the head, then take a look at your 3D view.

You’ll see that the edges are gone. We seem to have a ridge around the head where we attached the two halves. Move around the model and shape your model into more of a sphere.

Once you’re happy with your model, save and close it. Open the body model and look at the top view.

We have four sides. We need to divide each of the edges to create eight sides. Select each pair of vertices and divide the edges. Move the vertices to form an oval.

Using the menu File > Merge, bring in your head model.

Our head looks a little big, kind of like some goofy Japanese anime character. We’ll need to scale it down. Before we do so though, set the background of your Front and Left views to the body reference. With the head selected, choose the scale tool. Enter .5 into the X, Y, and Z textboxes. Click the scale button until the head is approximately the correct size. Anything below 1 will scale the model down. Anything above one will scale the model up. Once you’re close to the correct size, for a smaller scale, use 1.1 to scale up and .9 to scale down. Play around with it until the head is the correct size and matches the reference image.

Move around your model and create faces for a neck, attaching the head to the body.


18 Reducing the Triangle Count

Reducing the Triangle Count

Next use the menu Tools > Show Model Statistics and take a look at the dialog.

You’ll see that have 1335 triangles. This is pretty high for a Counter-Strike model. We’ll need to reduce that as much as we can. You could leave your model with this many triangles, but it can be taxing on some systems. To reduce triangles, we’ll need to look for detail we don’t need as well as some triangles that could probably be grouped together. Be careful not to mess up the stacks in our cylinders we used. We added that many stacks for a reason. They will attach to joints.

Moving around the model, the first thing I notice is the upper back.

There are an awful lot of triangles there alone. We don’t need that many. After all, there aren’t any joints in the upper back. My main concern here is that we keep the middle seem as well as the vertical lines next to them. This gives our back shape. We’ll start reducing triangles by deleting them in sets of four. We will replace them in sets of two.

Select the following faces.

Delete them and create two faces where they were.

Select the four faces below those.

Delete and replace.

Select the next four.

And replace.

Take a look at the following faces.

You’ll notice that the right set of faces have vertices in the middle of the left set. We can not have this. This shows that we have gaps in our model. If you take a look at it in the 3d view, you’ll see these gaps.

We won’t worry about them though until we’re done replacing faces. Look at the next four faces.

Delete and replace.

And the next set.

Delete and replace.

And the next set.

Delete and replace.

And the last set.

Which you can probably see better in the Left view.

Delete and replace.

Now we need to clean up our gaps. Sill in the front view, you’ll see that we have a gap that needs to be filled in.

Select the following two vertices.

Divide the edge and select the new vertex and the adjacent vertex.

Snap and weld them together.

Our gap is now filled. Next take a look at the back.

We could use the same technique we just used, but we won’t. Notice that the top right two faces make a nice triangle. We’ll delete those and create one face from them.

Repeat the same steps for the two faces below the two we just replaced.

We are now done with the back. There are gaps on the other half of the back, but there is no need to duplicate our efforts. Once we have finished cleaning up the left side of our model, we will split the model down the middle and mirror it. Take a look at your triangle count now. Mine is 1319 now. This means we have successfully gotten rid of 16 triangles, which will translate to 32 triangles once both sides are done. It may not seem like much, but it’ll add up as we go. Our ultimate goal should be to get below 1000 triangles if we can.

Next take a look at the ribs under the arm.

This is a mess. We obviously don’t need this many triangles. If you look closely you can see two groups. We’ll start with the top set.

Delete and replace the faces. Remember, you’re not dealing with a block here. You have five sides. It may be wise to include a face from the back.

Delete the faces.

Select the vertices near the back and snap and weld them together.

Then fill in with faces.

Select the other set of faces, delete and replace.

We have another gap now directly below the faces we just worked on.

We can fix this by first turning the edges on the bottom four faces.

Delete the middle two triangles.

And replace with one.

We now have 1306 triangles, which translates to 29 triangles we will have saved in the end.

Next take a look at the arm.

That is an awful lot of triangles. Granted, we need our stacks for our joints, but the arm has eight slices. We could probably go for five, but we’ll settle for six instead. Switch to the back view.

Select the first three faces.

Delete and replace with two faces.

Select the next four faces.

Delete and replace.

Look at the rest of the arm all the way to the wrist.

You’ll need to repeat the previous steps six more times to complete the arm.

Take a closer look at the wrist.

We have a gap. Delete the three faces in the wrist and replace with two.

While we’re at the wrist, we’ll take care a few more faces in the hand. Select the inside two faces of the hand.

Delete the faces.

Then snap and weld the hand back together.

Take a look at the arm in the 3d view.

You’ll see the back of the arm is kind of flat. This is because the faces are too tall. We’ll fix this by scaling them down. We’ll have to reshape the arm in the top view later. Switch to the back view and select the first two vertices.

Switch to the scale tool. Enter .8 for the Y axis and click the Scale button.

Repeat this process all the way down the arm, including on the wrist. You’ll even be able to select them all and do them at once if you’d like. Once you’re done, switch to the 3d view and take a look at the arm again. You’ll see a better shape.

Next we’ll switch to the Front view.

Delete the faces and create new faces just as we did on the back of the arm.

Zoom in on the wrist.

Fix the gap in the front of the wrist just as we did the back.

Take a look at the gap near the shoulder in your 3D view.

Switch back to the Front view and look at the shoulder.

This time we won’t change try to lessen the number of faces. Instead, we will delete the faces on the arm we just created and add three instead of two.

Next, notice as with the back of the arm, the front of the arm has a flat look.

Resize the vertices by .8 on the Y axis just as we did the back of the arm.

Switch to the Top view.

You’ll notice that the arm is pretty thin now. It is that way because we deleted the ridges on both sides, which gave the arm shape. Switch another one of your views to the top view also so that you can compare the two arms. Scale the vertices on the right arm to be approximately the same size and shape of the left arm.

We are now done with the arm. A quick check of the triangle count shows that we are at 1272 triangles. Once both sides are done, we will have saved a total of 126 triangles.

Next we’ll move onto the head.

The head has an awful lot of unnecessary detail. We’ll remove that detail by paying attention to surfaces which don’t have a lot of change of angle between faces. If you take a look at the nose, you’ll see we have a few changes we can make.

There are quite a few faces in the nose. You’ll see three faces in the bottom of the nose that could become one.

Delete these faces and create two in their place.

Next take a look at the top of the nose.

Delete these faces and create two in their place.

Next switch to the side of the nose.

Delete and replace.

Next take a look at the area between the nose and the top lip. You’ll see that we have a gap.

Select the three faces above the lip.

Delete and replace.

Next take a look at the eye area.

You’ll see that we have a seven sided shape. Also, notice that in the middle of the nose, we have a gap to take care of. Taking care of our gap, we’ll end up with a six sided shape. It is important to keep in mind that we must maintain our appearance of a cheek bone here. Delete these faces and fill in with new faces.

This has changed the shape of our face quite a bit, so you’ll need to take the left middle vertex and move it slightly in and forward for a better look.

Take a look at the bottom lip and the chin.

You’ll see that there are four faces on the bottom jaw that could become two.

Delete and replace.

Next move to the side of the jaw.

You’ll see five faces. Be sure to notice where the gap is next to the chin. The gap will allow us to replace with four sides. Go ahead and delete and replace the faces.

Switch to the Left view and look at the faces directly above the faces we just created.

As usual, we have another gap. Replace these three faces with two new ones.

Next look at the temple.

This area is relatively flat and does not need this many faces. Go ahead and delete and replace.

There isn’t much more we can do with the head. It could have less triangles, but we’re going to keep our shape. The goal with the head was not to to go with as few of triangles as possible, but rather to get rid of any that were unnecessary. Checking our triangle count, we have 1255 which puts us at 160 triangles eliminated in the end.

Next take a look at the lower outside edge of the breast in the 3D view.

You’ll see two skinny faces that don’t really do anything for our model. Switch to the Left view and take a closer look.

Delete these faces and snap and weld to seal this gap.

Move around your model on your own. Fix any place you can find without ruining the stacks we had in our cylinders for future joints. Once you’re done, select all of the vertices on the right side of your model, ignoring those down the center line.

And delete.

Select all, duplicate, then mirror left to right to create another half.

Move the halves as close together as you can. Snap and weld your model on all center vertices, using your 3D view as a guide.


19 Modeling the Gun

Modeling the Gun

Take a look at the triangle count. Mine is 1174 now, which although I didn’t hit my goal, I was able to shave off 161 triangles.

Next switch to the Left view and focus on the hip.

In front of the model, add vertices in the shape of a gun in a holster.

Create faces between the vertices.

Drag the vertices around until you get the gun the size you want. Use your 3D view to monitor the size.

Select the faces on the gun.

Switch to the front view.

Using the extrude tool, with the X axis selected only, extrude your gun out to roughly the width of a pistol.

Take a look at your gun in the 3D view.

The right side of the weapon looks OK.

But the left side does not. We’ll need to create faces on this side of the model as well. Switch to the right view and create those faces.

Now take a look at your model in the 3D view and make sure your model has faces where they should be.

Switch to the Front view and select the weapon.

Using the Rotate and Move tools, fit the gun next to the hip.

Be sure to check out your model in the 3D view and make sure the gun is in the right spot.


20 Attaching the Skeleton

Attaching the Skeleton

The next step is to add the skeleton. It is very important to remember that we will not move or adjust the skeleton in any way. Once we import it, we will make our model fit the skeleton.

Using the menu File > Import > Half-Life SMD and select the GSG9.smd in your gsg9_decompiled directory. Once the dialog appears, be sure that only the skeleton is checked and click OK.

If you can not see the skeleton, switch to the Joints tab in the control panel and check the Show Skeleton box.

Taking a look at our model and the skeleton, its easy to see we are off on the arms. The head is off, but less noticeably. We’ll need to move the upper part of our model down to match the skeleton. To do so, we must find the area of the model which has space to sacrifice. In my case, the real length of the model is in the legs. I can fix this by selecting the vertices from the bottom of the hips up.

I’ll then move my model down, being sure to constrain on the Y axis as to not through the center of my model off.

We are still off on the hands and the skeleton appears to be a little to the inside of the model’s legs. Before we worry about that though, we’ll take a look at the Left view.

Our model looks pretty good here except for the knees and below. The skeleton is a little too far forward in the legs. We’ll need to adjust this as well.

At this time, we know we’re going to need to drag some vertices around. Its up to you to decide whether or not you want to work on two arms at once and two legs at once, or if you’d prefer to work on just one side and split and mirror your model again when you’re done. Being that the arms are going to be kind of a hassle, I’m choosing to edit one side and mirror it later.

Before you start, you may want to decrease the joint size. You can do this using the menu File > Preferences, selecting the Misc tab and changing the joint size from 1 to .5 or something smaller. This will definitely help in the hands. Once the joint size is changed, go ahead and move around your model, making the proper adjustments. Your goal here is to keep the skeleton in the middle of your model. Remember though, do not move the skeleton, move your model.

Once complete, your model should match the skeleton a little better.

We are now ready to assign vertices to the joints. Before we do though, I had a change of heart and moved the gun to her thigh. I felt that the model was too curvy and having the gun on the hip could cause us problems later on.

Switch to the Joints tab in the control panel. You’ll see a list of joints our skeleton contains.

Make sure the Show Skeleton box is checked and select Bip01 Pelvis in the list. Select the following vertices and click the Assign button.

Specifically these are the hip bones, the crotch, and the center line between the buttocks.

Move to Bip01 Spine1 and assign the following vertices to the joint.

Next assign the following to Bip01 Spine2.

Bip01 Spine3 will be everything above the previous vertices, below the base of the neck, and inside of the shoulders.

Bip01 Head will attached to all of the head and pony tail vertices excluding the chin, bottom lip, and inside of the mouth.

Bone01 is the joint which allows our character to move it’s mouth. Assign the vertices of the inside of the mouth, the bottom lip, and the chin to it.

Bip01 L Clavicle attaches around the shoulder excluding the top and bottom vertices.

Repeat these steps on the opposite side for Bip01 R Clavicle.

Bip01 L UpperArm attaches to the following vertices. Repeat for the right arm.

Bip01 L Forearm attaches to the following vertices. Repeat for the right forearm.

Bip01 L Hand attaches to the following. Repeat for the left hand.

Bip01 L Finger0 attaches to the base of the thumb. Repeat for the right hand.

Bip01 L Finger01 attaches to the end of the thumb. Repeat for the right thumb.

Bip01 L Finger11 attached to the end of the fingers. Repeat for the right hand.

-- L Knuckle attaches to the knuckles. Repeat for the right hand.

Attach – L wrist to the wrist vertices. Repeat for the right hand.

Attach – L Elbow to the back four vertices on the elbow. Be sure that you only select the back four. Repeat for the right elbow.

Attach – L bicep twist to the bicep area. Repeat on the right side.

Attach – L shoulder outside to the top vertex of the shoulder. Repeat for the right shoulder.

Attach – L Shoulder inside to the bottom vertex of the shoulder. Repeat for the right shoulder.

Attach – Neck smooth to the top and bottom vertices of the neck.

Attach – R Butt to the right buttock. Repeat for the left.

Attach Bip01 L Thigh to the following vertices. The vertices you see in the center near the groin are on the front. The vertices on the leg go all the way around. Repeat for the right thigh. When you do the right thigh, be sure to include the gun.

Attach Bip01 L Calf to the following vertices. Repeat for the right calf.

Attach the following vertices to Bip01 L Foot. Repeat for the right foot.

Attach Bip01 L Toe0 to the front four vertices of the toe. Repeat for the right toe.

Attach – L Angle to the following vertices. Repeat for the right ankle.

Attach – L Knee to the front four vertices of the knee. Repeat for the right knee.

That should be it. Now would be a good time to click the SelUnassigned button under the Joints tab in the control panel. Make sure you can see your whole model in one of the views in wireframe mode. If you see any red dots, you have stray vertices and your model will not work correctly. Go back through these steps and find where the vertices belong.

Save your model then save as a new copy. We’re going to do one more test before we get ready to texture our model. Use the menu File > Import > Half-Life SMD and select the walk.smd from your gsg9_decompiled directory. It’ll ask if you want to append keyframes at current time. How you answer doesn’t really matter. Click the Anim button at the bottom of your screen, then click the first button with an arrow on it.

Your animation should start playing.

Your animation should look pretty good by now. However, it may look like some deformed mess.

If this is the case, then you moved the skeleton at some point and will need to start over at the point where you imported the skeleton and go through the process of attaching the vertices to the joints all over again.

If everything looks good, go ahead and close the model with the imported SMD without saving. We’ll use the previous copy we know is good. We’re now ready to move onto the texture.


21 UVMapping Preparing Model

UVMapping – Preparing the Model

Before we can actually start unwrapping our model, we’ll need to separate our model into groups. This will make unwrapping the model much easier.

In Milkshape, select the Groups tab in the control panel. Select all, then click the Regroup button. This will make sure our whole model is in one group. Next, using the selection tool, select faces by vertex and do not ignore backfaces. Select all the faces on the gun, click the Regroup button, type “gun” into the textbox next to the Rename button, then click rename.

Select the faces in the head, excluding the pony tail, regroup, and rename to “head”.

Regroup the legs and name them “legs”.

Regroup the upper body and rename to “upper_body”.

Regroup the right arm and rename to “right_arm”.

Regroup the right hand and rename to “right_hand”.

Regroup the right hand and rename to “right_hand”.

Regroup the right hand and rename to “right_hand”.

Regroup the right foot and rename to “right_foot”.

Regroup the left foot and rename to “left_foot”.

Regroup the ponytail and rename to “pony_tail”.

Regroup the faces inside the mouth and rename to mouth.


22 Setting Up

UVMapping – Setting Up

Close and save your model. We are ready to start unwrapping our model.

While Milkshape has a texture mapping tool, we have a better option in an application called LithUnwrap. It is free and I am using version 1.3 at the time of this tutorial.

LithUnwrap has quite a few features which will help us to better lay out our model and get it ready for texturing. Use the menu File > Model > Open to open your model. Use LithUnwrap to immediately save a new copy of your model in case you need to start over. The first thing we’ll need to do is add a material. We’ll add a checker pattern to better help us lay out our faces. Select the menu Materials > Modify.

Click the Add button. Type in “checker” and click the OK button. In the modify dialog, select the word checker and click the Properties button.

Click the Maps tab.

In the Map Type list, select checker and click the Properties button. Change both the u and v Tiling settings to 20.

Click OK, then close the Material editor and close the Modify Material dialog. You should now be looking at the main window again. In the Scene Window, if you expand the Materials node, you should see your checker material.


23 Unwrapping the Head

Unwrapping the Head

Expand the Groups node and you should see the groups we created in Milkshape.

Select the head group, then use the menu Select > All. Then select the menu Tools > UV Mapping and take a look at your choices. These are unwrapping methods built into LithUnwrap to help us. I will not explain each here though. Instead, I will only go through the ones we will use. Each method has its purpose and is good in certain situations. You’ll have to play with each to get a better understanding of what they do. Also, it is important to remember that none of these unwrapping tools built into LithUnwrap will do the job for us. They will give us nothing more than a good start on what we’re doing. You’ll see this as we work through our model.

With the head group selected, use the menu Tools > UV Mapping > Spherical. You should see the following dialog.

Make sure the Axis Alignment is set on the y axis and click OK.

Select all, then use the menu Materials > Modify. Select the checker material and click assign. Confirm and close the dialogs. Use the menu Preview > Show Model. You should have a window pop up showing your model with a checker pattern on the head.

Take a closer look at the head.

You’ll see that the pattern on the neck looks stretched and the top of the head looks scewed. We have two goals when unwrapping our model. Our first goal is to lay out the faces so they are easy to paint. Our second goal is to make sure our texture isn’t stretched or distorted too much. We’ll start by taking a look at the head again.

As you can see, our head was split along the left side of the nose. This will not be very easy to paint. Use the menu Select > Face and select the faces to the left of where the back of the head is.

Drag the faces over so they line up on the other side of the head.

Select by group and drag your selection back to the center. And select the following vertex.

Be sure you click to select and not drag to select vertices when you want to move a single one. Dragging will select all and you’ll end up dragging more than you’d like. Next drag the vertex away from the others.

And drag it to the vertices on the right side.

Next take a look at the model’s neck in the 3d view.

Notice how the boxes on the neck are stretched. We’ll need to make those a little better. Select the following vertices.

Then drag them down.

Then take a look at your 3d view again.

You’ll see that boxes on the neck look better, but they’re still distorted. Drag around the lower vertices until you get a nice pattern.

Its not perfect, but the faces are visible which will allow us to texture them. Take a look at the top of the head.

You’ll see that some faces are angled drastically. This will not work. Adjust the top outside vertices in until you get a better look.


24 The Gun

Unwrapping the Gun

Next switch to the gun group. Select all through the menu and with Tools > UV Mapping, select Box and use the default settings.

Select the left side of the gun by selecting by face.

Right click on the selected faces and select Flip > Horizontal in the menu.

Move it over the right side of the gun. This will allow us to texture both sides with the same area of the texture.

Next we have quite a few extra pieces and its hard to tell what they are. If you look in the 3D view, you’ll notice that no checker pattern is showing up on our gun. We haven’t assigned the material to it yet. Select all then use the menu Materials > Modify and assign our material to the gun.

Next select one of the rectangular parts and move it around. Watch the 3D view while you do it. You’ll be able to see the pattern move on that part. This will help you determine which part goes where. Using the 3D view as your guide, move the other parts to butt up against the sides of the gun.


25 The Legs

Unwrapping the Legs

I spent a little time making sure I had all the faces in the right spot and then I pieced them together by sides. Also, if your vertices aren’t lining up, you can select them, right click on them, and use the menu Collapse > All to line them up properly.

Switch to the legs. Select all, and assign the material to the legs group. Use the menu Tools > UV Mapping > Planar and select the X axis. Make sure the Layout is set to Left, Right and click OK.

Take a look at the 3D view. You’ll see that our checker pattern is distorted on the inside of the legs and outside of the hips.

This happens because the faces on the outside of the hips and on the inside of the legs are too close together. Also, the gap between the legs is going to waste texture space. Spread the faces out on the hips and inside of the thighs and move the legs together.

You’ll see that things look a little better in the 3D view now.

Do the same thing with the back of the legs.

Move the two sections directly next to each other. Then take a look at the rows of vertices across the legs.

Having these vertices aligned is important. It’ll allow us a smooth transition across the legs in order to avoid seams. Right click on these vertices and select Collapse > Vertical. Repeat this process all the way down the legs and the tops and bottoms of the pants.


26 The Torso

Unwrapping the Torso

Next switch to the upper_body group. Select all and assign your material. We’ll need to unwrap our model. You might be inclined to try Planar, but because of the concave curves on the outside of the breasts, our model gets split wrong. Take a look at the following Planar unwrap.

You’ll see that some of the faces from the breasts end up in the back view. This cause us problems in flattening our model and it would cause us even more problems when trying to texture our model later.

Instead, we’ll use spherical on the Y axis.

Select the faces on the left side of the right arm.

And move them to the right side of the chest.

One by one select the vertices at the top middle point of the back and move them apart.

Move those vertices around until both sides of the front and the back of the torso match somewhat.

Take a look at your model in the 3D view.

You’ll notice we have quite a few angles and things are not lining up correctly. This problem comes from the way the torso was unwrapped. Take a look at your wireframe again.

Keeping in mind that our torso is to be split down the sides and along the top middle of the shoulders, the problem should become pretty obvious now. If you take a look at the shoulders you can see that the top vertex of the shoulder is not at the top of our unwrapped mesh.

We’ll need to have those vertices aligned at the top of our mesh with every other vertex along the top of the shoulders. This is somewhat confusing so to help, we’ll switch our 3D view to better help us. Right click in the 3D view and select Textured > Wire Flat.

Now you will be able to see which vertices you have selected as well as how you move these vertices affects the uvmap. Using the 3D view as a reference, select different vertices one by one to get an idea of where each vertex should belong in order to make our mesh even. Once you are somewhat familiar with what belongs where, locate the faces down the right side of the model and split the two halves.

Its pretty easy to see that we have a few stray triangles.

Move these triangles to the opposite sides of the adjacent meshes.

Next we need to make sure that our back mesh actually contains only the triangles found on the back. If you select all and look in the 3D view, you’ll see that a few of the triangles actually belong to the front of the torso. Specifically, you can see this by selecting the following two triangles.

Once they are selected, take a look at the 3D view and you’ll see where these triangles are located on our model.

These triangles belong to the front of our torso. Move them directly over to the front mesh.

Select the other two triangles on the back mesh for the other shoulder.

And move them over.

Reselect the back and front meshes one at a time and use your 3D view to make sure the faces are where they should be. The next issue we have to deal with is that our mesh is not lined up properly. The back will be easier to fix so we’ll start there. Using the 3D view as a reference, locate the tops of the shoulders and the middle points of the sides of the neck.

The problem here is that our mesh was not unwrapped properly. Since the front and back of our torso is split along the center of top of the shoulders, we’ll need to align those vertices so they are flat horizontally.

We will do the same to the front of the torso, however, we need to move a few vertices out of the way first. Take a look at the following vertices.

These two vertices are actually belong to the center of the front of the neck. Collapse them together.

Move this vertex and the one below it down.

The next two vertices are the vertices halfway between the front of the neck and the sides of the neck.

Scale them inward.

The next two vertices are the sides of the neck.

Move them up and scale them in.

The following two vertices belong to the top center points of the shoulders.

Move them up and scale them out. Be sure to collapse them vertically with the vertices on the inside of the neck.

Select the vertices along the bottom of the torso.

Collapse them vertically.

Do the same with the next two rows of vertices up.

You now have the basic shape of the mesh layed out properly. However, we still need to make a few adjustments. Take a look at the back in the 3D view.

The checker pattern is not distributed evenly. Move the vertices around until your checker pattern looks better.

Next take a look at the front view.

As you can see the front view is quite a bit more distorted. Like the back view though we have our basic shape outline and moving the right vertices should do the trick.

Your uvmap should look something like this now.

We’ll want to conserve as much space as possible. This will allow us more detail in our texture. We know that the right side of our model will be the same as the left side, at least in the torso area anyway. We’ll save space by using the same texture for the left side as we do the right. We can set this up by first selecting the left half of the back.

Use the menu Edit > Flip > Horizontal.

Move the left half over the right half, select all of the back, right click and choose Weld.

Select the right half of the front of the torso

Use the same steps as before to flip, move, and weld the right half to the left half.

Move the two halves together, make any adjustments needed, and weld.

Take a look at the side of the model in the 3D view.

Make the adjustments needed to fix the area below the armpit.

Your mesh should now look something like this.


27 The Arms & Rest of body

Unwrapping the Arms and the rest of the Body.

Next switch to the right_arm group. Select all, assign your material, and do a cylindrical unwrap on the x axis.

Select the stray faces.

And move them to the other side.

Using the 3D view in textured wireframe mode, locate the vertices along the underside of the arm.

Select faces on the right side of those vertices.

Move these faces to the left side of the mesh.

We do this to keep our seam on the under side of the arm. Next switch to the right_arm group and repeat these same steps. Once complete, move on to the right_hand group. Do a planar unwrap on the Y axis.

Repeat this step on the left_hand group, then switch to the right_foot group. Assign your material and do a box unwrap.

Open your 3D view in order to see which faces you are selecting. Piece the shoe together, leaving the sole of the shoe separate.

Repeat these same steps with the left_foot group. Switch to the mouth group and scale it down. This group isn’t important unless you want to paint the inside of the mouth later on. For this tutorial, I will simply be painting it black. Next switch to the pony_tail group. Assign your material and do Decal map on the X axis.


28 Saving space & Wrapping up

UVMapping – Saving Space

Before we go on, we need to think a little bit about space. The more space we can save, the larger our graphics can be. This will give our character a sharper look. The first thing we can do is realize that on parts of a character such as the arms, hands, and boots can match on both the left and right sides. Lets first switch to the head group.

Notice that one side of the face is a mirror of the other. If our character had some kind of tattoo or earpiece on one side of her face, we would leave it like this. However, for the sake of this tutorial, we are going to keep both sides of her face the same. Select all of the faces on the right side of the head.

Right click and flip these faces horizontally.

Move the selected faces over the top of those that aren’t and weld them together.

Next switch to the left_arm group.

Select all and flip horizontally and vertically.

One by one, select the left_foot, left_boot, and pony_tail groups and flip them horizontally.

Next, switch to the right_arm group.

Right click on the left_arm group. Be sure not to left click. We do not want to switch to that group. Choose unhide.

Selecting by group, select one of the groups and move it so both groups are lined up, then weld.

Repeat the previous steps for the hands and feet groups. Once complete, switch to the head group.

Scale it down and move it to a corner. It can be smaller than what we’ll use in the end. We just want it smaller for now so we can be sure to fit everything in our work area without faces overlapping.

Move to the gun layer, scale it down and move it to the area next to the head. Be sure not to overlap the area the head occupies.

Repeat these steps with the remaining layers. When working with the arm, hand, and feet groups, be sure to unhide both groups in order to move them together. Once complete, start resizing your groups to fill up as much space as possible. We’ll want more detail in the head and a few other places, so be sure to make the areas requiring more detail larger than the rest.

Click the save button on the toolbar. A dialog will appear after you typing in the filename. Any filename will do. I’ll be using map.bmp. Once the dialog appears, select “black and white”, make sure “fill” is unchecked, and set both your height and width to 512 pixels.

You are now done unwrapping your model. Be sure to save your model before you close Lithunwrap. Also save a copy of your model as cs_chick_skin.ms3d. You can now close Lithunwrap. Switch to Milkshape and open the cs_chick_skin.ms3d. Switch to the Materials tab in the Control Panel. Under the Material frame you should see a button which says “checker1t” on it. Click that button and a file dialog will appear. Locate your map.bmp and select that file. Switch to the 3D view, right click and set your display mode to Textured. You should now be able to see how your uvmap will appear on your model.

Save your model and close Milkshape. You are now ready to texture your model.


29 Texture Painting

Texture Painting

Open the map.bmp file in Photoshop and save it as map.psd. Create a new layer on top of the background layer and name it “Form”. Duplicate the Background layer and move it above the Form layer. Rename it to Guide. Use the menu Image > Adjustments > Invert to invert the Guide layer. It should now have a white background and black lines.

Keep in mind the actual image is 512 x 512 pixels. I am reducing it to 256 x 256 pixels to display here. Set the Guide layer’s mode to Multiply. Your image will go black for now, but what this is doing is making all white areas in the layer transparent. We’ll use these lines later. Go ahead and turn off the Guide layer and switch to the Form layer. Select the brush tool. Set the brush size to 35 and the style to a feathered brush. Select a medium to light grey color and paint in your objects. Being exact here is not important and it is better to paint outside of your lines rather than leaving gaps on the inside of your objects. Also, I will be painting black over the mouth object.

Turn on your Guide layer now and you will see your reference lines.

Set the Guide layer’s opacity to approximately 25%. With your Guide layer semitransparent, you’ll be able to see what you’re painting underneath it without having to turn it off and on all of the time.

The next thing you need to do is resize your image to 1024 x 1024 pixels. We’ll do this because painting every pixel exactly as we want it is no easy task. Photoshop and other good graphics applications have the ability to shrink our image down while improving the overall appearance of our image. Doing this will hide any little flaws we create.

Next, create a new layer named Sketch, directly below the Guide layer. Select the brush tool with a brush size of 1 and set your color to straight black. On the Sketch layer, sketch out the major features of your character on the image.

Next we’ll need to save a copy of our image to test it on our model. We don’t want to resize our original Photoshop file, so we’ll need to copy it, paste it into a new image, size it down, and save it as a bitmap. These steps will become a huge pain as you go along since we’ll be repeating these steps over and over again. It’d be a good idea to record these steps as an action. If you don’t know what an action is, it is a way to record your steps in Photoshop as an “action”. You are able to play that action any time you choose with the click of a single button. I would suggest recording the following steps;

1. Select all.
2. Copy merged.
3. File > New.
4. Edit > Paste.
5. Image > Image Size (down to 512x512).
6. File > Save (save as a bitmap).
7. Close (The 512x512 image).
8. Select > Deselect All (on the original 1024x1024 image).

Once you’ve recorded these steps, and have mapped the skin to your model, you will now be able to export your image with one click, reload the texture in Milkshape which you’ll already have open, and view the texture on your model.

Go ahead and record these steps and assign the texture to your model. Take a look at your model in Milkshape in the 3D view in Textured mode. Make sure your lines are were you’d like them to be. You will most likely have to reworked your outlines several times until they look like you want. Remember, this does not have to be perfect or highly detailed. This will serve as a guide for us later on.

Once you are happy with your Sketch layer, turn off your Guide layer and set your Sketch layer’s Opacity to 25%.

Make your Form layer active. We will start adding depth to our model here. Painting styles differ greatly. Some prefer to paint with colors, and you may do that. For me though, I prefer to use the dodge and burn tools. If you are not familiar with those tools, dodge will make the areas you brush over lighter while burn makes them darker. Using the dodge and burn tools or the paint brush tools with shades of grey, you’ll begin to add depth to your texture. You’ll do this by painting the sunken areas or shadowed areas darker. You will in turn paint the raised areas lighter. Begin by painting in the major areas.

Next darken the areas of your map that will be darker on your model. We are doing nothing more than adding detail.

Next I add in a few more details like the kneepads and elbowpads.

Next I focus on the face. I redo the eye and add the hair. The hair is done in four steps. I start with a big brush and the burn tool with an increased exposure. In each step, I create lines in the hair, each time decreasing the brush size and exposure. On the last step, I use the dodge tool with a very small brush.

On the next step, I redo the bottom of the shoe and blend the eye into the face more.

Next I’ll paint in the holster straps, the belt, and add some detail to the hands and pants.

We are now ready to add color. I’ll start with the skin. I paint over the skin areas with a solid brush on a new layer.

Next I’ll set the blend mode to overlay and the opacity to 70%.

Next duplicate the skin layer, set the blend mode to color and the opacity to 40%.

Duplicate the skin layer one more time. Set the blend mode to color burn and the opacity to 30%.

Now it is time for the clothes. Before I can start painting, I’ll need to create a camouflage texture. Be sure to make sure yours is seamless.

Using Define Pattern, create a new fill pattern with your camouflage texture on a new layer. Use the Lasso tool to select a rough area around the pants and fill with your texture. Use one of the colors from your texture to paint in the tank top. Use the eraser tool to erase areas your texture is not to color.

Leaving the blend mode, set the opacity to 30%.

Duplicate the clothing layer. Set the blend mode to overlay and the opacity to 30%.

Duplicate the clothing layer one more time. Set the blend mode to color burn and the opacity to 30%.

Create a new layer for the hair. Fill in the hair area with the color of hair you’d like her to have.

Set the blend mode to overlay and the opacity to 30%.

Duplicate the hair layer with the same settings.

Next add a few black layers over the gloves, boot, pads, and gun to give them a darker black appearance. Set their blend modes to overlay and opacity to 30%.

Save your image. Save a copy of your image as a new .psd file. Merge all of your layers down in the new file. Using the dodge and burn tools, add more contrast to your model.

You map is now done. Be sure to save a copy of your image as an 8-bit bitmap with 256 colors. Open up Milkshape 3D and set your 3D view mode to textured and check out how your model looks.


30 Compiling

Compiling

Now it is time to get the model into the game. We won’t be creating any animations here. Instead, we’ll use the animations we decompiled from the GSG9 model earlier. Before we can do this, we’ll need to set up a few things.

First, in your gsg9_decompiled directory, delete the following files;

1. gsg9.mdl
2. gsg9.smd
3. GSG9_Working1.BMP

In Milkshape 3D, use the menu File > Export > Half-Life SMD… to save your model as gsg9.smd in the gsg9_decompiled directory. Next, copy your texture bitmap to the gsg9_decompiled directory and rename it to GSG9_Working1.BMP.

The last thing we need to do is open the gsg9.qc file in notepad. Find the group of text that says;

$bodygroup backpack
{
blank
studio "..\packs\defuse"
}

Change the following line;

studio "..\packs\defuse"

to;

studio "defuse"

And save your file.

Now you are ready to compile your model. In Milkshape 3D, use the menu Tools > Half-Life > Compile QC file… and locate the gsg9.qc in the gsg9_decompiled directory. Milkshape 3D will begin compiling your model. Once complete, you’ll see a new gsg9.mdl in your gsg9_decompiled directory. If Milkshape reports an error or crashes during the compile, you probably have an error somewhere. Most likely it is your bitmap texture. The bitmap absolutely must be 8-bit and 256 colors.

Once you’ve successfully compiled your model, copy it to the gsg9 directory in your game directory. Since I’m using the mod version of counter-strike, mine is located at C:\SIERRA\Half-Life\cstrike\models\player\gsg9. I would not replace your existing gsg9.mdl. Instead, rename the existing gsg9.mdl to something different like gsg9b.mdl then go ahead and move your new gsg9.mdl to that directory. You are now ready to load up counter-strike and test out your model.


31 Screen Shots

Screen Shots


32 Conclusion

Conclusion

That wraps up this tutorial. I hope it has helped you in some way. If you have any questions or comments, feel free to contact me at chad@dosfx.com. If this tutorial helps you make a model, show me! I’d love to see what you’ve created. Also, due to the overwhelming amount of email I’ve received with the online version of this tutorial, I may not have the opportunity to answer all of your questions. If you need help, be sure to visit the Milkshape 3D forums or join us on IRC at irc.dosfx.com. A big thanks goes out to Mete for bringing us Milkshape as well as all of the support he has given me regarding this tutorial.

- Chad (aka dos)