Creating a character is not all that different from making any other 3D game object; it just takes a lot of time. A lot of time. Here’s a more or less simplified version of the process I went through with making Chiyo, The Magical Girl.
The creation usually begins with a piece of concept art, and figuring out the points of interests of the character, his or her personal narrative, and all the little trinkets, clothing and pieces of history that will populate their body.
All of it will eventually be created in 3d or captured within the texture information. Modelling and texturing are two very different sides of 3d, but they go hand in hand in game art. One is usually done after the other, due to the fact that the finished game model of a character, or anything 3D, requires UVs; which we will dive into later.
We have to start with the modelling!
As with most games with normal maps (which most games have now a days), characters are built from the ground up. The low poly is the final product, but it uses a normal map to create the illusion of higher fidelity. So we get our normal map from a high polygon sculpt.
And when I say high, I mean high. There are a lot of sculpting programs out there, like Sculptris or Autodesk’s Mudbox, but I prefer using Pixologic’s ZBrush because of the pure power it has in rendering a large amount of polygons. Our game ready character models are made up of about 10,000 four sided polygons (or 20,000 triangles), and ZBrush allows you to have millions of polygons in your scene! Millions! Maybe even billions if you have enough RAM. But I definitely didn’t need that much for these high resolution sculpts.
I usually start my models with a generic female or male base mesh, pull limbs and other body parts into proportion, and then start building up from there. I don’t really do anything fancy; its just basic building up forms and sculpting. Once I’m satisfied with the body sculpt, I’ll start grabbing basic clothing meshes I made and add them into my ZTool, and sculpt those into place. ZBush’s subtool feature is super powerful, and thanks to things like insert meshes, and the super handy ZRemesher feature, sometimes you don’t even have to leave ZBrush to make the things you want.
Here’s a timeline of how I went through the development of Chiyo inside of ZBrush.
This is pretty much how most game res characters are built these days. When you create for yourself a high resolution sculpt, there are so many opportunities for you to grab all sorts of information when you take it to the low poly process. But that’s not super important right now, what’s important is getting the shapes and forms of the character developed.
Making the Game Resolution
When we finally do have our finished high resolution sculpt, and everyone likes it, I begin the process of creating the game resolution mesh that will be used within the game engine itself. Since we have given ourselves a pretty decently sized budget for our characters, I tried to not to sacrifice the detail or silhouette of our characters throughout the process.
It’s a process that mainly involves drawing a shell on top of your sculpt. It can definitely be a time consuming process but its important in creating proper animatable topology that our animator can use so the mesh deforms correctly when its animated. I create my low poly model using Maya’s new modeling toolkit feature they introduced in 2014.
This also makes the mesh usable within the game engine. Like I said before, your meshes inside of zBrush can be upwards of millions of polygons, and that is completely unusable inside of Unity, at least for just one game object.
You do this for every part of your character, and you’ll end with a whole bunch of low poly pieces, that are now ready to be animated and textured!
This is probably the most unglamorous part of our character breakdown because its pretty technical, and its hard for a lot of people to wrap their head around.
Imagine a bear skin rug. Okay now imagine that with a game resolution face.
Basically we are laying out our character pieces and shells so that they can be painted on. It’s an oddly satisfying feeling when you pack them all into a single uv sheet.
Now that the boring stuff is out of the way, its on to the fun stuff!
Wait just kidding. All the boring stuff isn’t done yet. We still need to make our normal map! This is still technically part of the texturing process, because we are going to use a system of projecting the high resolution details onto the low poly mesh we made earlier. All of this is nearly automated inside of your favorite tool (I use xNormal), and you can get nearly any kind of texture map you want out of this process. Your normals, your object space normals, your ambient occlusion, your curvature, your cavity, your height map, EVERYTHING!
Basically a normal fakes details that would be too small and would require a ton of extra geometry to show up on your character. Next time you are playing your favorite game, go take a look at a wall! The illusion of the game world around you will be shattered once you find out its not actually made of bricks, its just a picture of bricks that are being faked with some depth. The same goes for characters! Scars, wrinkles, and clothing details are usually all done within a normal map.
The Actual Texturing Part
Now we can actually begin texturing! Usually this process is done within your favorite painting program, usually Adobe Photoshop. A lot of texturing relies on a lot of masking details, generating details, etc., and Photoshop is perfect for that.
Layers are my best friend. We start with our basic ambient occlusion map, give it some basic color and build it up from there. It’s a very fun and rewarding process, because you can see the effects of what you did almost immediately on the model.
Hand painting in details goes a long way to to bring out features of the face and to make details of the clothing pop. But wait, this is just color information! What about actual material definition? How do we actually make the steel look like steel and the gold look like gold? That’s when we turn to our specular and gloss maps.
For Head of the Order, we are utilizing Shaderforge, and it gives us a ton of options for creating our character shaders, and most importantly, allows us to do a lot with our specular and gloss textures. Defining our materials is super important so that the character doesn’t look like plastic when we bring her into the engine and just apply a flat specular to everything.
Using the default unity bumped specular material doesn’t give a ton of control over what value you can give your spec maps, how glossy things are, and how much color is in your spec maps.
The color information we made previously is also known as a diffuse map. What we want now is our own authored specularity and gloss maps. Specularity helps the shaders know what colors are reflected off the character when he or she is lit, and gloss helps to determine how sharp that lighting it is, or how rough and diffuse it is. We’ll use Chiyo’s clothing for this example
If just a number is applied, it doesn’t look right, which is why we need to author the maps ourselves, so that it will actually look and feel like metal. It’s a very rewarding process.
With that, the character is pretty much complete! The specular and gloss maps sure do make a difference. Our final character comes out to 22,545 triangles, and uses two sets of 2048 textures. Look for this character and the many others I’ll be making for Head of the Order when it launches later this year.