This is not a step-by-step tutorial. I will summarize the workflow I used for one of my characters with lots of images and some print-screens directly from the applications used (Maya/Mudbox/Photoshop, etc ...), also at the end I will provide some info about tangent space normal maps so you could think of this tutorial as primarily normal mapping related stuff.
1. IntroThis character is my entry for theDominance War II Competition. The main theme of the competition was to design a game (low-poly) character while adhering to some rules (limitations) about the specs that we could use for geometry and textures (main character can't exceed 6000 triangles, 1000 more triangles for weapons/gear and we could also use a pet but the budget will come from the main character; for textures we could use 1x2048 square for main character + pet, if any, and another 1x1024 square for weapons/detachable gear; diffuse, specular, normal, bump, opacity, glow, reflection maps were allowed). This tutorial is intended for game (low-poly) characters and assumes that you have a basic knowledge of normal mapping and its use; you can search on google if you need more info about this subject. I will start by showing you the final files sent to the competition to give you an idea about the direction this tutorial will go.
Concept sheet :
Construction sheet :
Texture sheet :
Beauty shot :
Winning pose :
2. Game Modeling WorkflowsNowadays almost all games are using normal maps for ingame characters, even mmos, so a high poly version of the character will most likely be needed to bake the normals for the low version. The normal maps can be done without the help of a high rez version of the model, from bump maps, even painted directly by hand (I will show you some tricks I use to paint normal maps directly in Photoshop later on) though its less likely that you can achieve the same results as a high poly version would give.
The assets required for the creation of a character will most likely be:
* low poly version (or multiple versions for different LODs)
* high rez poly version used to compute normals for the low poly one (you could also bake occlusion maps and other maps that will help you later when texturing ...see paragraph "4.3.Transfer maps" for this)
* all kinds of textures that the game engine will support (diffuse, normal, specular are the most often used ones)
I suppose that a concept/drawing is available and the steps that will follow are modeling/texturing.
There are mainly two approaches you can take when modeling (the difference between them being the order in which the assets are created):
* low poly model -> diffuse texture -> high poly model-> normal map and other textures
* high poly model-> low poly model -> normal map -> diffuse and other textures
Both ways can give good results if done properly and the choice will mainly depend on the pipe-line already established; I used to work both ways in the past, but I prefer the last approach.
Though the low/diffuse/high workflow might have some advantages (like the low-poly version of the characters will be ready to go down the pipeline to animators earlier in the process, or the creation of the highrez version will be quicker if you work carefully and keep lots of selections into the diffuse .psd file than you can later on apply as displacements on the high rez mesh) it has one big disadvantage and I will illustrate it in a quick example.
Let's say that below is a piece from a model (a shirt with some buttons)... I'll assume the low poly and the diffuse textures are ready ...
The next step down the line will be detailing the low poly version, so I will import a cleaned up version of the low poly into Mudbox to upres and detail. Then I will also load the diffuse texture to check that the detail I'll add will register correctly with the diffuse... then I'll start to add divisions/levels to the geo and adding details like big folds and big volumes...
I will use height maps made from the diffuse texture to displace the fine details (it will speed up the process and also this way I will make sure that the computed normal map will match closely with the diffuse than if I were to sculpt directly using the mapped diffuse on top of high) ...
Everything is working well and I will export the final level to compute the normal map with Maya/3ds Max or any other program that will use raytracing for the process and will assure proper display of the normal map in the final engine. But if I was not too careful when detailing, I will encounter something like in the images below (the effect was exaggerated here so I can get my point across).
010.swf (right click to save)
You can see that the details in the diffuse on one hand and the normal map on the other won't register correctly ... this is due to the fact that during the sculpting of the big folds, I displaced/shifted the geometry a little and though I used displacement maps to add details like buttons, this will not guarantee that when raytracing the details for the normal map they will overlay perfectly with the diffuse. To avoid this, the high rez detailing should be done with care, and if possible, don't do big displacements from the original cage/low poly version ... but this will hinder you since the whole point is to add as much variation in the surface direction as you can -- big volumes included.
As a side note, if you are using normal maps computed within Maya (with the Transfer Maps Tool) and want to render with the mental ray renderer within Maya, than make sure to check that in the Render Settings dialog -> mental ray tab->Translation->Performance. You have to have checked the Maya Derivatives (like in the image below - note that this option is off by default). This way, you will use Maya’s derivatives calculation for bump mapping, thereby providing compatibility with Maya for mental ray. Also note that this option is only available when Export Polygon Derivatives is turned on.
The second approach for modeling: high poly/low poly/UVs /textures will give you the freedom to start sculpting and adding details from the beginning and you will be free of the problem stated above as well. However, when modeling the high version you first have to keep in mind that this will be used to bake normals for a low poly cage and model it accordingly. You will have to estimate what details are worth adding and that it will be used properly when computing the normal map for the low poly version. For instance, if I have the high poly below:
...I could use a single quad plane for the low poly but the result won't represent the high version very well. When viewed from above they seem to look identical...
But when viewed at a slanted angle, you'll notice that the single quad plane does poorly in reproducing the high details.
A better approach is to spend a couple more polygons to make the low poly more likely match the high version.
Then the low poly with normal map will look better when viewed at slanted angles. (of course, depending on the polygon budget you could add more geometry to improve the current rugged look)
Also, you have to avoid modeling complicated shape details that will be hard to enclose within a low poly cage later on because they will "eat" too many polygons in an attempt to be displayed properly. Though you might be tempted to go crazy and add lots of detail as shown below.
The high rez model might look nice but when building the low version on top of the high one, you will always have to stay within a polygon budget (5-10k triangles or whatever) and if you did not plan high poly details in advance you might face the situation where you will need more polygons than allotted to better match the already high model, and you will have to go back and change the high version. But with some practice you will know what details are worth incorporating in the high version and what details to drop because they will be hard to reproduce.
Another big advantage of the last workflow is that you could also bake an ambient occlusion map and other maps (a simple diffuse pass or even specular passes to give more variation to the textures) using the detail from the high poly model -- and you could use them as a starting point for the textures.
Also you could try a combination of the two methods shown above, in fact this is what I have done for Varga and I will show you later on in the following paragraphs.
3. Tools UsedBefore I start showing you the workflow I used for Varga, I will summarize the tools I used for this project.
First let me summarize the specs of the PC that I worked on because most of the limitations I encountered on the way were hardware dependent:
* Athlon xp 2500 +@2400 (but overclocking won't do much good on this old machine smile)
* 1GB of RAM
* Video GeForce 6600GT
You can probably guess that this is no high-end machine and I was seriously limited to the number of polygons I could use at the same time (in Mudbox I could go as high as 2 million triangles but then it moves too slow), in Maya, I had a lot of crashes when trying to import .obj files bigger than 1.5 mil tris (not enough RAM) and I tried to break down the model into pieces (head, torso, hips, legs, arms, etc.) so that I could attain enough polygons to sculpt the details I wanted without crashing or unmanageable scenes (usually the polycount per piece will not exceed 1mil tris).
Regarding the software used ,I am mainly a Maya user so lot of the work was done in Maya (modeling, UVs, texture baking, rendering).
For high rez sculpting, I used Mudbox (built a low cage inside Maya and exported it to Mudbox for further detailing). After the sculpting part was complete, I exported one of the higher levels as a .obj file (usually a 100-300k tris mesh worked fine at this stage, no need to export the highest level) and imported it to Topogun, along with a low poly cage (if I already have one, or if not, build a new one from scratch within Topogun) and rebuild the topology to better match the details. I added to the high rez mesh. After this process was complete, I import the low and high versions back into Maya and compute the normal maps using the Transfer Maps Tool.
The normal maps were further tweaked within Photoshop; some were done completely in Photoshop (check the maps for Peril- the bow later on).
Now that I'm done with all this chit-chat, let me show you some WIP images in the following paragraph.
4. Workflow Used for VargaUsually for game characters you will have some specs to follow : limit to the number of triangles , size and numbers of textures used; you will have to conform with the number/size of the textures but if you exceed the polycount by 500 - 1000tris (let's say for 8k budget) and the character is looking cool...it's less likely the client will be mad . For this competition, the limit was 6000 tris and I didn't want to exceed that so the first step was to build a low poly cage to allot the polygons between all the assets (the main char, pet, weapon). It doesn't have to be final, but it does allow me to see what details I can incorporate into the high version.
4.1. Low Poly CageBelow is a quick time lapse with the first low poly versions (the triangulated one is the final version).
018.swf (right click to save)
After I modeled a low version of the whole character, I had a better idea as to how I was going to distribute the polygons between the main character, the pet and weapon/gear. The next step was to start breaking down the model into pieces and cleaning them up. For sculpting, it's better to have clean topology, mostly quad faces -- try to avoid triangles and situations when more than 4 polygons will meet at one point (add extra tessellation to get rid of all the irregularities in the mesh; this way you will have more predictable results when subdividing and sculpting). You can move triangles and points where more than 4 quads will connect in the areas that are less important/visible. Also you should aim for a topology that will have mostly square quads (avoid polygons that are more than double in one direction than in the other....add extra tessellations to fix this ... remember this will be for high rez so the polycount won't matter).
Below are some pieces ready to be imported into Mudbox and detailed further.
4.2. Detailing in MudboxThe next step is to import the cages into Mudbox and add as much detail as you or your machine can ... one will break eventually .
This is the most fun part for me in the whole workflow...I will show you some time lapse images with the progress for some of the sections.
Boot (little below 1mil tris for the highest level) (right click to save)
Hips (1.6 mil tris for the highest level) (right click to save)
Leg (around 500k tris for the highest level) (right click to save)
Arm (around 600k tris for the highest level) (right click to save)
Torso (around 800k tris for the highest level) (right click to save)
Below you can see the entire high rez model at 8.5mil triangles (I managed to import all the pieces into Maya for this tutorial on my new machine, but Maya will eat up like 3.5G of RAM for this)
025.swf (right click to save)
20 Random Tutorials from the same category :
Simple Method of Creating a Diamond in 3D Rendering in Layers in Maya Object spreading methods using Maya Ambient Occlusion in Maya8 and Photoshop Uninstancer for Maya Final Gathering in Maya MentalRay Sunbathing - American Alligator 3D Modeling Breaking Subsurface Scattering into Render Layers in Maya Character Rigging In Maya - Part 3 Rotating Wheels on a Car
UV smoothing in Maya Making of Male Green Frog Creating a Spaceship Fleet Using Particle Instancing in Maya Rendering a Z-Depth Image Fast Making of Trapped Making of Varga In MAYA Falling leaves with nCloth and Paint Effects Getting started with Mental Ray's Final Gather Making of Male Green Frog Character Rigging In Maya - Part 2