Creating a realtime character for Project IGI

Character tutorial
This is a tutoral showing roughly the steps from idea to a finished realtime character. The tutorial is based on the work we do for the Project IGI game at Innerloop Studios.
When doing real-time characters for a game like IGI, it's absolutely necessary that every design aspect have been well thought through. From the very beginning of designing a character, we have to make sure that the result of this process is something that will be kept in use for the final game. The first stage of designing characters is inspirational words and also for what reason we want this type of character within the game, this creates a fundamental idea for the artist to continue on. Here's an example on how we created the "winter sniper" character.
1a/b/c:

1a. First of all there's a lot of studying on different clothing design and pictures of different snipers
from books. We try to find as many references as possible to make the creation easy, with as much realistic aspects as possible. But before sketching up the details, we want to get a clear idea on what type of a person this guy is. Should he be heavy, light, small, big, etc? As this guy is a sniper, he sits a lot waiting and don't carry a lot of heavy weaponry. So, naturally he shouldn't be too muscular. But he's not a sprinter either, so an athletic body wouldn't fit his character too well either. The first rough sketch has been created to give the basic shapes and proportions. 1b. Since the main shapes have been decided, the more detailed design is to come next. Shapes are better defined with the help of a more delicate line work. Next the design of his clothing and accessories evolves. Since he is a winter sniper, he should have clothing that looks like it can keep him warm. Additionally, our character should be able to move his body well, as he would lie on ground or crouched sitting positions, aiming to keep his visibility to a minimum. 1c. Now we choose the colors of his clothing according to the environmental setting and how well camouflaged we want him to be. We also need to decide which colors and combination that will look good together. So, this is in many ways a combination of esthetics and functionality.
2a/b/c/d:

2a. After the final version of step 1 has been approved, we start to create the character in 3D. Since the concept design has been well thought through, it's only work and no design from here on (some smaller changes might occur), which makes the whole progress of doing the in-game character less risky, with less trial and error. Here the head is being drawn in profile with lines. 2b. 2d-shapes are later extruded to 3D and mirrored in order to make it easier to see how the face will look like. 2c. From here, all the polygonal work is purely manual, tweaking every vertex to be as optimal as possible and flipping edges of the polygons in order to get proper smoothing. Also, it's VERY important from this stage on to make sure the joints are modeled to work well with the character's bones. This is done together with the animator. 2d. When the mesh is done, we decide how optimized it should be, according to how many of this character that will be used in the game at the same time. In this case the model consists of ca. 500 polygons.
3a/b/c/d/e/f:

3a. Texturing! We usually detach all the different parts, when texturing the character, to make it easier to concentrate on one area at the time. In this case we will show you an example of how to texture the face. 3b. We use a tool that folds out the mesh and creates a bitmap that shows the mapping coordinates as lines. This is being done with every part of his body. 3c. Then bitmaps are then imported to Photoshop for texturing. A layer is created over the bitmap and, the face is being painted on top, carefully making sure that it matches the edges of the bitmap underneath. Also, fine-tuning of the
mapping coordinates takes place simultaneously with the texturing, to make sure there's no pixel stretching. 3d. The finished texture of the face. It's important that the texture creates an illusion that the character-model is a lot more detailed than it actually is in the mesh and that it has a proper contrast-value. Sometimes we scale up the textures and work with in a much higher resolution, just to include the most important details as good as possible. The end result is then scaled down, as the maximum resolution for in-game textures is 256*256 pixels. When scaling down the texture the rough strokes looks highly detailed and clean. It's also necessary to have a simple light-source on the texture; because the light-source in the game-engine will take care of the rest. 3e. The result of the finished textured head-model. 3f. After repeating the same process on the rest of the model, the character has been successfully textured.
4a:

4a. In order to implement the mesh to the game, the bones has to be attached. For Project IGI we use deformable bones, which means that vertexes are being influenced from more than one bone. As we attach the bones and set the envelope size of each bone, some areas will work without further modification, but most vertexes has to be modified manually so that it will work perfectly with extreme bone positions. 4b. After the bones have been attached, the character is ready to be animated. This sniper character is one of the generic AI types, and will use the same animations as most other characters. So, the only difference is which and how many of generic animations he will use, something that depends a lot on what he is supposed to do and what abilities he's got. Only individuality movements, such as walk, will be added to this kind of character, which is a small modification that gives much more personality to the character. There are many ways to do this process, and this is just on of them. Also, there are of course many smaller challenges that can come up throughout the creation, but these steps are the basics and a very clean way to complete a character from the beginning to the end.
Click here or a final rendered walk cycle animation. (823kb)
Many thanks to Joachim Barrum, Mikael Noguchi & Innerloop Studios for allowing us to use this tutorial.
Enter content...
Fetching comments...