Low Poly Modeling
I then imported all of the OBJs, if their pivot points weren't changed they should all be placed properly. Now, depending on how you clean you built your base mesh and what you will need the model to do in game, you should easily be able to use this model to make an in game asset. I didn't have to rebuild any of my mesh, reducing it to a low poly model was fairly easy. Selecting edges that didn't add to the silhouette, weren't needed for deformations during animation and still keeping enough geometry to help maintain the illusion that the model wasn't as low poly
as it actually was. It's very important to keep in mind that even though your model is low poly, it must still hold enough shape to not give itself away. For example, make sure that things like the shape of the head and shoulders still have enough geometry to still appear rounded...otherwise it will be very obvious and all that work to make your character look "next gen" will be wasted. So, the key is to find a good balance between technical limitations and maintaining your character's original shape.
If you notice any vertices out of line that are causing the edge flow of your model to look messy, be sure to clean them up. I think usually you can just select the vertices and move them into an appropriate spot..but if the area is just too messy it may be quicker to delete the faces and just rebuild a cleaner version of the area.
After reducing my mesh and tweaking it, I wound up with this. His total triangle count was 4726. The competition limit was 5000.
I think unwrapping characters has been covered plenty of times in the past and I'm not sure if I could add much more to the subject. Things to avoid are overlapping UVs and mirrored UVs unless, of course, the engine you're using allows for this. I unwrapped Leviathan to be totally unique, that means no overlapping UVs and no mirrored sections. The reason for this is that when I generated my normal maps, I didn't want there to be any fighting. I wanted each section to have it's own normal mapped details (as there weren't many areas that could be repeated.) I had enough room to make this happen but if you find yourself restricted to a smaller budget or just want to devote a larger space to a different parts of your model, overlapping UVs will be fine. Just make sure that they are offest before you generate your normal map, otherwise the normal map for that area will look like vomit.
You can see in the image below how I laid out my UVs.
Creating The Initial Normal Map
This step should be fairly quick although it can become tedious with changing settings and doing tests. Making sure that my character model's pivot was set to 0,0,0 (the same as the exported pieces and therefore the ZBrush tools) I exported the entire model as an OBJ. In ZBrush, I opened up one of the tools that I was working on and went to it's lowest subdivision level. After that I opened up ZMapper, set the configuration to 3D Studio Max Tangent Space, opened the projection tab, set the "Raycasting Max Scan Distance" to an appropriate level and then captured the mesh.
After this, I left ZMapper, deleted the higher subdivision levels of the tool and imported my Leviathan OBJ (the one that is the entire character.) Obviously, this object is much bigger than the previous one as it contains all of the parts, but if the pivot points are the same the model should just pop right into place. I assigned a new texture to the model, one that was 2048 x 2048 and went back into ZMapper. Everything looked fine, I could see the cage of my previous model over the correct areas on the new object. If for some reason this doesn't work for you, you may need to change the pivot points of the new model or clear ones in ZBrush. With the samples set to it's lowest level, I generated the projected normal map. I had to tweak the raycasting limit a bit to make sure my normal map had all of the detail I wanted..this means that I had to go back a few steps and recampture the mesh. After everything was looking fine, I upped the sample limit and generated the normal map yet again. After all of that, I exported the texture as a PSD. I repeated this process for every individual tool I made (the head, body and legs.)
After I exported all of the different textures, I opened up Photoshop and brought all of the different PSDs into one image. I selected deleted the white areas (areas that are not actual detail used in the normal map) and then layered the images as needed. If areas overlapped in the normal map where they shouldn't, I just erased them out. For example, because I used the entire low poly model to generate the normal maps but only certain high poly areas as the target, there will be overlapping information in the textures. This will really only happen around the seams of your object where you split them for ZBrush importing. In my case it happened around the neck and legs, it was fairly easy to just erase or delete the areas that I didn't need. After all of that was done, I made a grey layer and ran the nVidia normal map filter on it. I used this as the base layer for the normal map.
After all of this, I finally saved it as my normal map in TGA format and applied it to my character in Max.
Texturing Leviathan was the biggest challenge for me as he is mostly hand painted and I usually photosource most of my textures. It was really tough to find photo examples of exactly what I wanted and I really wanted to try a different approach to texturing.
I began by creating a lightmap of my character in Max. I setup a few omni lights and baked out a map using Max's render to texture feature. Once I had a result that I liked, I saved it out as a TGA and brought it into Photoshop and
set the layer to soft light. From there I started painting the base colours of Levithan's skin colour and worked my way up from there, using the lightmap as a guide for colouring. I went with a yellow colour for his underbelly and exposed skin and painted layers of reds and purples ontop of that using a scattered brush (Unfortunately, I've forgotten the origin of this brush but have attached an image of it in the brush roll out menu to give you an idea of it's pattern.) I
kept working at that by adding different red and blue tones into the skin to give it some variation. I did the same thing for the yellow skin, just with purples and browns. I usually work with a lot of layers in my texture so that I can change them as needed, I find that it gives me more control as I'm working. Once I'm happy with the results, i just merge the layers together. Throughout the skin I added darker chunks where I thought some harder scales should be and also some lighter colours where I thought battle damage or just general wear and tear could have happened. Once I was happy with the colouring, I took a photo of snake skin, desaturated it and used it as an overlay for the yellow skin. I
set it's opacity level very low and erased areas away to break up the surface.