Battle Guy: Game Ready Character Creation Tutorial
Tutorial By: Anwar Bey-Taylor - www.mindtravelerdesign.com
Model By: Anwar Bey-Taylor - www.mindtravelerdesign.com
Concept By: Clement Sauve - http://clementsauve.deviantart.com/gallery/?offset=24#/d2irvdm
Introduction:
This walk through will guide you through the process of the creation of "Battle Guy", a game ready character model. This tutorial is written with broad strokes, allowing the reader to start to gain an understanding of the many stages that the model went through during creation.
Tools Needed:
Pixologic Zbrush
Autodesk 3ds Max
Headus uv layout
Xnormal
8 Monkeys Labs Marmoset Toolbag
Concept:
Concept was drawn by Clement Sauve (RIP)
1: The Sketching
I started this model with a sketch, a Zsketch actually. In figure - 1:a* you can see I started with zspheres to create the underlining structure. Like a wire base foundation for a clay sculpture, the spheres serve as a foundation for the zsketch that was layered atop as shown in - 1:b*. It was then very loosely defined as seen in - 1:c*. The purpose of the sketch was to loosely and quickly block in the overall proportions, mass forms, and silhouette of the character. I will later enter 3ds max and use this sketch to begin creating the actual base model of the character. (1)
1:abc
2: The Base-meshing
I started the process for the base mesh creation by importing into 3dsmax the Zsketch I created in zbrush. Using that sketch as a rough template I began to create the many elements of Clement Sauve's wonderful concept (ie: armor, pouches, guns, straps, mask, etc). Because this was simply the base mesh and was not going to be used as the end game mesh, I was very free in my polygon usage. This allowed me to create the elements quicker and even implement landmark details to help in highres zbrush sculpting. Keeping in mind object location, form, and feel, I would export the model into zbrush from time to time to adjust the weight, stance, and overall feel of the silhouette and proportions. I feel like its easier and funner to do that kind of stuff in zbrush.
2:1abc
Located below, the images in - 2:2d* you can see what the base mesh looks like completed. Now its time for sculpting in Zbrush. (2-2)
2:2d
3: The Sculpting
Back in 3ds max I began the prep process for sculpting by attaching the accessories into groups and importing each group as a sub tool in zbrush. Creating groups like "armor", which held all the large hard-surface armor pieces and "pouches", which encapsulated the many pouches and bags, allowed the opportunity to keep the total number of subtools down. It also allowed for the sub-tools to be easily identifiable in the sub-tool thumbnail viewer, making quick selection easier. The official total sub-tool number was 28, including the chain-gun and backpack. (pictured below 3:1)
3:1
After sub-tools were imported I began sculpting. I used a few brushes, consisting of; standard, claytubes, flatten, dam standard, move and of course smooth. Sculpting this character consisted of a lot of switching from sub-tool to sub-tool, making sure the model as a whole was progressing cohesively. Constantly the proportions where slightly altered and moved to try and correspond with Clement Sauve’s amazing concept. I attempted to stay within the concept's style while pushing it just a little adding details that could be interpreted from a far as to not distract from the dominating popped out shapes of the original concept design. The total polygon count for the whole sculpture was 33 million. (3)
3
Polypainting has quickly become my favorite feature in zbrush. Being able to paint directly onto the highres model without having to worry about uv maps or resolution or anything other than paint to model has for me made creating diffuse textures a process that is as freeing as digital sculpting itself.
I start the polypainting process by assigning the skinshade4 material and decreasing the specular setting from 15 to around 5. I like this shader for painting because it doesn't have a bunch of lighting effects, its pretty straight forward and really just shows what is being painted, and with out the little illusionary effects of many of the other shaders. (pictured below 4:1)
I start the polypainting process by assigning the skinshade4 material and decreasing the specular setting from 15 to around 5. I like this shader for painting because it doesn't have a bunch of lighting effects, its pretty straight forward and really just shows what is being painted, and with out the little illusionary effects of many of the other shaders. (pictured below 4:1)
4:1
During the polypainting process I used incredible features like cavity masking; which by using the highres sculpture information this feature masks out the lows areas in the model which is great for adding dirt to the valleys of the model, as well as subtle highlights by inverting the cavity mask. (pictured below 4:2)
4:2
I also used texture stamping from reference photos to quicken the process of polypaint texturing. With these features I created a quick foundation layer in the texture before going in and adding details. Then solidified textural forms by painting them by hand. I used the standard and claytubes brushes, adjusting the alpha and texture settings to get the desired results while painting. Again, keeping in mind Clement Sauve's spectacular concept, I attempted to keep the overall colors strong and with out distraction from noisy details but still conveying dirt, weathering, battled upon, and aged effects. Polypaint provides seamless diffuse map painting results. (4)
4
5: The Real-time mesh creating
Before I entered 3ds Max I had to export objects from zbrush. In zbrush I reduced all subtool subdivisions to half, thus reducing all details and polycounts by less than half. This allows the many objects to be imported into max and still be able to worked on and the file managed optimally. The imported mesh we then at polygon counts that keep the true silhouette of the highres model but rid the model of all unnecessary surface details. I then exported all subtools into 3ds max.
With the mid res model back in max I now have a perfect tracing board for my low res ingame mesh to be created atop of. For this process I use max’s native tools that are called graphite modeling tools (or for the modelers that have been a around a little while 'polyboost'). With graphite modeling tools I am able to trace and create a new optimized low polygonial mesh directly atop of the exported zbrush mesh (pictured below 5:1).
When creating optimized mesh I use triangles, they append and can be manipulated easier (also game engines read mesh as triangles (so I just give the engine what it ultimately wants anyway). Keeping deformation in mind for animation purposes, consistent loop spacing, and following the flow of the model are important things to keep in mind when creating ingame mesh. There are many pouches, packs, and large extruding pieces of armor in this character, most of them were created as separate objects. I did this with deformation in mind. With those major elements being separate instead of modeled directly into 1 whole mesh the model is now able to be posed and animated with minimal stretching. Total tri count was 15,000 tris with weapon included. (5)
6: The Uving
I use headus uvlayout for creating uvs. The headus tool imho makes creating uvs a joyous, fun, relaxing experience. The tool allows the creation of uvs to happen in 3d with with realtime cutting tools that are utilized directly on the model. The uvlayout program uses hot keys for its controls making it a very intuitive program. It also provides color feedback relaxing and stretching tools. Headus uv layout is awesome.
When creating uvs I keep in mind to try and hide the cuts I am making on the model as to avoid visible seams, which means I don't make cuts running through the front of the models body. I instead stick to the edges of the model as you can see in the figure below (6). The green areas let me know that the uv's are relaxing optimally and provided with necessary spacing in relation to the other pieces, while the red is showing spaces that are not getting adequate space in the uv tile. Overall the color feedback after I uv'd this model was green, which is good.
All the Uvs chunks must be packed into the uv square in a way that is not leaving unnecessary wasted blank space in between the uv chunks. Sometimes I am able to accomplish optimal uv placement directly in Headus Uvlayout and other times I export the results from Uvlayout and go into 3ds max and use its packing features. Because this models had so many pieces I used 3dsMax’s packing features and was able to avoid optimal spacing very quickly with no overlap or being outside of the uv space box (both things are priority to avoid, as they will cause error to your model.(6)
7: The Baking
5
6: The Uving
I use headus uvlayout for creating uvs. The headus tool imho makes creating uvs a joyous, fun, relaxing experience. The tool allows the creation of uvs to happen in 3d with with realtime cutting tools that are utilized directly on the model. The uvlayout program uses hot keys for its controls making it a very intuitive program. It also provides color feedback relaxing and stretching tools. Headus uv layout is awesome.
When creating uvs I keep in mind to try and hide the cuts I am making on the model as to avoid visible seams, which means I don't make cuts running through the front of the models body. I instead stick to the edges of the model as you can see in the figure below (6). The green areas let me know that the uv's are relaxing optimally and provided with necessary spacing in relation to the other pieces, while the red is showing spaces that are not getting adequate space in the uv tile. Overall the color feedback after I uv'd this model was green, which is good.
All the Uvs chunks must be packed into the uv square in a way that is not leaving unnecessary wasted blank space in between the uv chunks. Sometimes I am able to accomplish optimal uv placement directly in Headus Uvlayout and other times I export the results from Uvlayout and go into 3ds max and use its packing features. Because this models had so many pieces I used 3dsMax’s packing features and was able to avoid optimal spacing very quickly with no overlap or being outside of the uv space box (both things are priority to avoid, as they will cause error to your model.(6)
6
Polypaint baking: With the base diffuse map created in zbrush using the polypaint feature from earlier. We now have to bake that information down to the high res mesh so that we can bake it into the optimized low res mesh we created in 3dsmax. To do this I Lowered all subtools to there base subdivision, I then used the UVMaster plugin feature to quickly create uvmaps for each subtool (pictured below 7:1).
I then returned all the meshs back up to their highest subdivisions and then bake the texture information by pressing "new from polypaint". This is done with 4k textures on the constructed uvs, we then press Clone texture (pictured below 7:2).
I then flip the texture coordinate horizontally in the textures tab in zbrush and then export them all as psd files (pictured below 7:3).
Normalmap baking: For baking textures onto optimized game res geometry I use an independent program called Xnormal. This tool not only creates beautiful normal maps but it streamlines the process making it consistent, simple and quick. In this program I am able to bake normal maps, ambient occlusion maps, and the diffuse maps from the highres mesh all at the same time and in simply a matter of minutes, all at the press of a button. I baked all textures to a 2046 texture size.(7)
8: The Texturing
Creating a new 2048x2048 file in photoshop I create groups labeled: normal map, diffuse map, specular map, glow map, and wireframe. (pictured below 8:1)
I then place the maps that I just baked with xnormal into their appropriate groups. I also go in and identify the different material properties in the diffuse map set (ie: metal, rubber, cloth) by creating selections of appropriate areas and generating alpha masks. This will prove helpful through out the entire texture process. (pictured below 8:2)
Normal: The normal maps are usually fine when baked using xnormal, but I usually still do a detailed check and fix any places where errors may have occurred. This is usually a quick step before moving to diffuse map.
Diffuse: I start to further alter the diffuse map by using the ambient occlusion map from xnormal as an overlay layer set to 14% opacity in the diffuse group. Doing this grounds the diffuse providing it with a subtle pop of form in the right places. I then touch up a few areas left over from the original polypainting that need additional attention. I provide material texture with reference photos subtly overlaying and provide adequate material and textural feel to the appropriate surfaces (ie: fabric overlays for cloth and rusted scratches for battered metal). I add a sharpen filter to the diffuse map, set at low percentage to slightly crispen the texture a little.
Specular: I start the Specular map by copying the diffuse and desaturating so its now black and white. I also make copies of the material identifications I did earlier in the diffuse map with alpha masks and apply them to the Specular map group. Now all materials are defined, separated, named, and most of all easily selectable. This is very important especially in Specular map (pictured below 8:2). I adjust the values according to how they contrast against other objects not of similar origin (ie: metal is much lighter because of its shininess and ability to pick light, while cloth would be a much darker spec setting because light does not effect rugged cloth much as far as shine goes, unless wet. After all materials are defined and feel right I add a little color to appropriate areas and deliver a little pop to them.
Glow: I create glow map by deciding where I want glow to happen and then paint in the desired color leaving a falloff to get the desired effect. That color is often painted in the diffuse map as well. The rest of the map not receiving or being effected by glow is black.
Wire: The wire frame on the uv map is created in 3dsmax and used as a template through the texture creation process to know where boundaries are and to adjust reference overlay layers to flow with mesh flow. I load the wire map up in the beginning, placing it at the top of the layer stack and set it to “screen” modifier so I can see through it without distractions.
9: The Posing
I then returned all the meshs back up to their highest subdivisions and then bake the texture information by pressing "new from polypaint". This is done with 4k textures on the constructed uvs, we then press Clone texture (pictured below 7:2).
I then flip the texture coordinate horizontally in the textures tab in zbrush and then export them all as psd files (pictured below 7:3).
7:1
7:2
7:3
Normalmap baking: For baking textures onto optimized game res geometry I use an independent program called Xnormal. This tool not only creates beautiful normal maps but it streamlines the process making it consistent, simple and quick. In this program I am able to bake normal maps, ambient occlusion maps, and the diffuse maps from the highres mesh all at the same time and in simply a matter of minutes, all at the press of a button. I baked all textures to a 2046 texture size.(7)
7
8: The Texturing
Creating a new 2048x2048 file in photoshop I create groups labeled: normal map, diffuse map, specular map, glow map, and wireframe. (pictured below 8:1)
8:1
I then place the maps that I just baked with xnormal into their appropriate groups. I also go in and identify the different material properties in the diffuse map set (ie: metal, rubber, cloth) by creating selections of appropriate areas and generating alpha masks. This will prove helpful through out the entire texture process. (pictured below 8:2)
Normal: The normal maps are usually fine when baked using xnormal, but I usually still do a detailed check and fix any places where errors may have occurred. This is usually a quick step before moving to diffuse map.
Diffuse: I start to further alter the diffuse map by using the ambient occlusion map from xnormal as an overlay layer set to 14% opacity in the diffuse group. Doing this grounds the diffuse providing it with a subtle pop of form in the right places. I then touch up a few areas left over from the original polypainting that need additional attention. I provide material texture with reference photos subtly overlaying and provide adequate material and textural feel to the appropriate surfaces (ie: fabric overlays for cloth and rusted scratches for battered metal). I add a sharpen filter to the diffuse map, set at low percentage to slightly crispen the texture a little.
8
Specular: I start the Specular map by copying the diffuse and desaturating so its now black and white. I also make copies of the material identifications I did earlier in the diffuse map with alpha masks and apply them to the Specular map group. Now all materials are defined, separated, named, and most of all easily selectable. This is very important especially in Specular map (pictured below 8:2). I adjust the values according to how they contrast against other objects not of similar origin (ie: metal is much lighter because of its shininess and ability to pick light, while cloth would be a much darker spec setting because light does not effect rugged cloth much as far as shine goes, unless wet. After all materials are defined and feel right I add a little color to appropriate areas and deliver a little pop to them.
Glow: I create glow map by deciding where I want glow to happen and then paint in the desired color leaving a falloff to get the desired effect. That color is often painted in the diffuse map as well. The rest of the map not receiving or being effected by glow is black.
Wire: The wire frame on the uv map is created in 3dsmax and used as a template through the texture creation process to know where boundaries are and to adjust reference overlay layers to flow with mesh flow. I load the wire map up in the beginning, placing it at the top of the layer stack and set it to “screen” modifier so I can see through it without distractions.
9: The Posing
For the posing process I exported the low res game res mesh into zbrush and used zbrush’s native transpose tools to easily manipulate the mesh into the position desired. Yes, all the accessories did get in the way, to remedy that situation I detached the accessory meshes from the model. Now focusing on only the model without anything else, made it much simpler to manipulate. When done I simply moved all detached accessories and gun into place and done. (9)
9
10: The Rendering
Maramoset was the rendering tool of choice this time around. This was my first time using Maramoset and I had a blast playing with the lighting tools as well as the post process real time effect tools. I used 4 lights for this project: 1 main-light, 1 fill-light, and 2 back-lights. Looking forward to learning and playing in Maramoset more. (10)
11: Final notes and comments
10
I enjoyed working on this project very much. The task to bring to life clement sauves beautiful concept from the Army of 2 project was a very fun challenge and overall I am satisfied with the results I was able to produce on this guy. Also I see many ways in which I will continue to improve my work flow, skills, and overall quality of my works.
I would like to thank you the reader for taking your precious time to check out my process and thoughts. I hope you enjoyed and I look forward to sharing more knowledge with you. Also you, the community are what help me become the artist I am today and of tomorrow, you are constant inspiration and I am appreciative. Cheers. -Anwar Bey-Taylor - Mind Traveler Design
Note*
If you the reader would like a particular step or subject explained in more specific detail then please email me at mindtravelerdesign@gmail.com and I will do my best to answer your requests to the best of my ability and/ or perhaps even create a specific detailed tutorial explaining that particular process. -Anwar Bey-Taylor
Contact: mindtravelerdesign@gmail.com
hey Anwar,great as always.thanks for sharing\m/
ReplyDeleteNice tut:)
ReplyDeleteThanks man.
Mohammad: I am really happy you enjoyed it friend. Thanks for checking it out.
ReplyDeleteMarcin: You are welcome amigo. Cheers.
Freaking awesome man. Thanks so much for this. Can't wait to try your techniques on my own work!
ReplyDeleteBangBang: Peace friend. You're welcome and Thank you!
ReplyDeleteyaa its very helping....i will try this on my new projects...thanks for sharing .... vinod thakur
ReplyDeleteVinod: Thank you my friend. I am really happy to hear you enjoyed!
ReplyDeleteAwesome Dude, really appreciate this great tut. Hope to see more from you.
ReplyDeleteAwesome stuff!
ReplyDeleteAran & Unknown, Thank you very much friends. I appreciate that the tutorial is helpful for you and I definitely look forward to creating more.
ReplyDeleteAwesome Tutorial Anwar!!! But you can bake out the polypaint in xnormals too. Did you know that?
ReplyDeleteOh Thanks Delvolta, yes I do bake the polypaint in xnormals.
ReplyDelete