作者: Mashru Mishu
Street Cop Workflow by Mashru Mishu
Creating the base mesh.
Once I have a rough idea of the technical specification and limits I start creating the main body of the character. In the case of this particular model, I created the body and head to start with. I kept the head as a separate model so that I could easily work on it separately and later export it separately for baking.
Once the base mesh is made I make sure I have enough edge loops in the face area and the model and any other places where I plan to sculpt more details. Since this is for sculpting only I try to avoid any triangles and evenly space out all the quads.
When I am fairly happy with the shape of the body I export a medium subdivision level back to Maya as a reference on top of which I create rest of the base meshes for the shirt, jeans and gun holster.
Creating these base meshes are straight forward polygon modeling so there is not much to explain how every element of the base mesh was created. For example, here you can see the two steps for creating the base mesh of the shirt.
You will notice that the collar area of the shirt has double sided faces. I did a face extrude along the collar area to create those. This gives me a nice thickness along the border of the shirt. I will do that along all of the border areas for the rest of the clothing. Here are some of the other base meshes. I tend to create all the separate elements of the character separately instead of sculpting out all the details from one base mesh. From my experience if you have separate meshes for all of the parts, your final normal map will look really clean and almost like high poly. However, if you sculpt everything from one mesh then things tend to look like plastic or clay.
你可以注意到衬衫衣领地方是2层 面的。我通过沿着单面衣领挤压创建那里的。这样给我在沿着衬衫边缘有了个不错的厚度。我同样地制作了其余衣服的边缘。这里有些其他的基础模型。我往往把角 色所有独立的元素从一个基础模型上分别去雕刻细节。由我的经验如果你用独立的模型作为所有的部件，你的最终法线贴图会看起来清楚点，几乎象高模了。然而， 如果你是从一个模型上雕刻每个地方那么东西往往看起来象塑像或者泥土。
After the shirt is modeled, I create the gun holster. This way, the holster mesh conforms well to the shirt mesh. I can obviously adjust it later in Mudbox. The buckles, guns, ammos and all the hard surface parts are marked red below. These meshes are exported separately and not subdivided. They are exported only as a point of reference.
When creating these meshes, I usually put extra edge loops at the edge of surfaces and also around the seams. I do this mainly so that I have sufficient polygons to sculpt extra details in those areas. Otherwise I would have to do local subdivision or even divide the whole mesh just to get more detail in a small area of the mesh. This is why in my opinion, it is a smart thing to make your base mesh do most of the work for you.
当创建这些模型时候，我经常在面的边缘多加些环线并且是围绕接缝处的。我这样做主要是为 了在那里有足够多的多边形去雕刻更好的细节。不然我必须要局部细分或者甚至分开整个模型只是要在那些小地方有更多的细节。这是为什么在我看来，它是一个巧 妙的方法使你的基础模型为你完成大部分的工作。
When I am done creating all the base meshes I will check for certain errors in the mesh before exporting it to Mudbox. Things to check are un-welded vertices, overlapping vertices and whether surface normals are facing the right way. Also, I exported the shirt, jeans, shoes and most of the meshes separately so that I can work on them separately.
2. Sculpting and detailing.
Now comes the fun part of the process. Once I’ve exported all the base meshes, I usually check them in Mudbox for any errors that might have slipped through. For example, I would subdivide all the meshes a couple of times to check for any holes, sculpt on them a little to check for proper surface normals, etc.
When I start sculpting something I usually don’t move up to a high level of detail too early. For an organic model the first thing I do is push out the basic forms at level 0 – 1. Things to consider at this stage are the skeletal features of the body, the level of skin fat and age of the character.
When it comes to detailing a character it is easy to get carried away, but it is important to stay on target of what you want your particular character to look like. I wanted this character to look very rugged and worn out but not look too old.
The most challenging part of creating this character was getting the cloth folds look decent. I went through several iterations for the cloth folds. There were several things I needed to consider when sculpting the cloth folds. Since this character is meant for a game I had to keep the folds fairly generic so that the folds work in most of the action poses.
When sculpting folds, keep in mind that folds should not exist all over your fabric surface. I usually put folds where the character will be deforming such as the knees, around the shoulders. Then there are folds in places due to gravity like the area at the bottom of the jeans. There are also folds on the shirt under the holster strap which makes the integration look better. For all these folds, I will sculpt in a different level and only switch to the highest level for small, sharp folds. Since this is primarily for creating the normal map it is ok if your sculpt is slightly lumpy, it actually helps your final cloth surface look more natural. If it starts to become too lumpy, you can use the flatten brush to smooth along the folds.
当 雕刻褶皱时，记住褶皱不要在所有你的织物表面。我经常把褶皱放在角色可以弯曲的地方比如：膝盖、肩膀周围。当然褶皱的地方由于重力会下牛仔裤底部一样。还 有褶皱在手枪皮套带子下面，这样整体会更好看。所有这些褶皱，我会在不同级别下雕刻，并切换到高级别下雕刻细小的、锐利的褶皱。考虑到主要是为创建法线贴 图的，那么你的雕刻稍微有点粗糙也是可以的，它实际上有助于你最终衣服表面看起来更自然。如果它出现大的起伏，你可以用flatten笔刷沿着褶皱去光滑下。
Here is a turntable of the entire high poly mesh at 7.3 million triangles.
3. Creating the low poly mesh.
To create the low poly mesh I export a semi-high level mesh from Mudbox as a reference point for resurfacing on top of it. If there are overlapping meshes I do this separately.
For this process I am using Topogun.
When creating the retopo mesh I try to be a little liberal with the polycount so that the normal map baking works good. Once the normal map is baked I can optimize the mesh quite a bit to reach my actual polygon budget.
Topogun will give me a pretty good mesh but I will eventually take this to Maya, clean it up and modify it as needed.
Once the low poly mesh is created I will go ahead and unwrap the UV. For this character I decided to keep most of the character unique. The only parts of the mesh that is mirrored in UV are the arms, eye balls, inside of the mouth and the shades.
Here is the UV layout:
When I unwrap a game character I usually give more pixel density to the upper part of the body. So I will give the head the maximum pixel density, then the torso and then the legs. This is done mostly because the upper part of a character will get the most screen time so that needs to look sharper than the rest of the body.
4. Baking map and texturing.
For baking normal maps and AO maps I am using xNormal.
I export all my high poly meshes and my low poly meshes to xNormal and bake the maps one by one.
Baking a good normal map depends on several factors. One of them is that your low poly model needs to conform well to your high poly mesh. Another is you baking low poly mesh needs to be a little higher poly to catch all the normals properly. When I say little higher poly, I mean you can be a little liberal around curved surfaces and add a few more edges to catch the normals properly. Just keep in mind not do any changes along the UV borders since they need to be intact.
Here are samples of the final normal map and the ambient occlusion map:
With the normal map and the AO map created I will go ahead and start work on the color map. Both the normal map and the AO map will be used in creating the color map. First I will create the base colors to define different areas of the character.
Here is a sample of the base color:
On top of this I add the AO map and on some areas I’ll also add the green channel of the normal map to add an extra layer of shading. This is because the green channel of the normal map is usually the same as a sky light bake given that all your UVs are upright.
Next I create the different surface textures, like the skin surface, the shirt surface and the jeans surface. A lot of people have already asked me how I hand painted the jeans texture. The jeans texture is a result of hand painted patterns, noises and some simple filters. So for this tutorial, I will only go through the creation on the jeans texture.
First thing I did was create two simple thread patters. I use the offset filter in Photoshop to make sure these patterns are tillable. Pattern A and B are for the threads. C is created using the noise filter and vertical motion blur. D is another layer of just noise and E is the scaled version of D. F is a layer with random black and white dots. A and B is passed through a distort-glass filter just to give it that random weaving effect. Then C, D and E is multiplied on top and F is overlaid and the base color is multiplied on top of all of that.
Once I have a base texture of the jeans fabric I use the transform-warp to conform the texture to the UV so that the fabric pattern does not look like a grid running through the whole mesh.
Here is a sample of what it looks like after all the surface textures are added.
On top of this I add a layer of my own shading and other details such as the hair, shirt patterns, dirt, color noise, etc. when the color map is done I will take a copy of that and use it for the base of the specular map. For the specular map the fabric areas of the texture are muted the most, the skin area usually gets a very de-saturated cyan-bluish hue and has a layer of noise over the entire specular map.
Here is a sample of the final texture:
Here is the final model with AO map and color map on it.