Creating stylized characters for games

Introduction
Hi, my name is Yulia Sokolova and I create characters for games. In this tutorial I’d like to share the creation process of one of the main characters for an upcoming story-driven adventure and puzzle game by NineZyme Entertainment. We’ll be covering the full pipeline, starting from developing the character’s visual style and concept from scratch, and then turning our 2D image into a 3D model in ZBrush, optimizing it for the game engine in Maya, creating textures in Substance Painter, and preparing a final presentation in Marmoset Toolbag.

Creating a stylized character in ZBrush, Maya, and Substance Painter
Character concept
At the beginning of the project, I was given a detailed description of the character followed by a number of references about the style, outfits and personal details of our Lady Detective. Before I even started sketching, I gathered a large moodboard, collecting the most appropriate images. For this purpose I usually use PureRef – a helpful little program that keeps all your pictures neat and organized. For this particular character, I was looking for the references of people who had similar appearance and facial features, references of hairdos with curls, and a lot of images of outfits of the 1920s.
Then I moved on to sketching and creating the concepts. For this purpose, I usually use my iPad and the Procreate app as I really like the natural feeling of their Pencil, Charcoal, and Ink brushes that are perfect for sketching. I made several examples of the outfits to choose from, and I also created a map of facial expressions and emotions for the animator. This way it will be much easier to feel the character’s personality and make her match the initial description not only in static, but also in dynamic and movement.

Gathering references and creating concepts in Procreate
Blocking out in ZBrush
Once the concepts are ready and accepted, we can move on to turning our 2D drawing into a 3D model. The hardest thing here is not only to transfer all the details into a three-dimensional world, but also to improve the character even more, making her expressive and clearly depicting her personality from the very beginning.
When developing a model for games, we usually have quite rough deadlines, so there is not too much time to start a character from scratch, noodling with spheres and simple shapes. The perfect option is when you already have a good base mesh with clean topology, UVs, and sometimes even with a rig.
For this particular project I used one of the stylized female base meshes that I created earlier, but it needed some adjustments further on since we had a relatively large budget of polygons for the main characters (around 30k).
I used my low-poly mesh as a base in ZBrush, divided it several times in the Geometry panel, and used Move, Clay Buildup, Pinch, and Inflate brushes to change the proportions of the character to make her look as closer to the concept as possible. Don’t be afraid to Dynamesh and ZRemesh your model at this step as you will run out of resolution at some point. You will be able to project the created details on your low-poly mesh later on.

Blocking out in ZBrush
Sculpting hair in ZBrush
As for the hair, I’m masking an area on the top of the head and Extracting it (in the SubTool panel). Then I Dynamesh the extracted shape and use the ClayBuildUp brush to build the shape and form the hair strokes. Once the overall shape is ready, I’m using the DE_HairTubes brush by Dylan Ekren to create some nice hair locks.

Sculpting hair in ZBrush
Sculpting clothes in ZBrush
To create the dress, I mask the part of the body and use the Extract function to create a new shape. Then I hide the inner polygroup and Delete Hidden, so that I have only the top side of the shape. I turn on Double in the Visibility panel to make it easier to work with. I applied Polish (in the Deformations panel) and ZRemesher (Geometry panel) to the extracted shape with a very low Target Polygons Count (I set it to 0,5 - 1, it makes it much easier to manipulate the shape).
I’m using the Move brush a lot to give the dress the desired shape. I’m simply masking those parts that I don’t want to deform, and then I extend and scale up other areas, like the skirt and the sleeves. The ZModeler brush is also very helpful at this step and you can add or remove the edge loops, mask them, and so on. I’m using this tool a lot for modeling the clothes, accessories, and hard-surface elements.
Once I’m happy with the shape, I add thickness either using the QMesh function of ZModeler brush or Edge Loop > Panel Loops in the Geometry panel. Often, I receive a question about the folds. I’m not using Marvelous Designer to create the clothes for my stylized characters as I want to keep everything simple and sculpt only those folds that are necessary (they will be located in the areas that are bending and in the areas that add a nice touch to the silhouette).
I’m using the Orb_Cracks brush by Michael Vicente (Orb) to create stylized folds, trying to keep the balance between large, medium, and small details. Always remember to use good references for the folds as they tend to form a specific pattern and shouldn’t be placed randomly here and there. I gather the images of various dresses as well as just cloth and fabric hanging down and forming large and defined folds. If I can’t find the desired photo, I will create my own one using a curtain or a towel and a camera on my phone. I also like how the folds are sculpted on the comic and anime figures as they are not overloaded with details, keeping the folds very clean and sharp.

Sculpting clothes in ZBrush
Polypainting in ZBrush
I like to add colors to my model early on as it makes the character look much more alive, and gives a sense of how it will look like in the game. I find it useful when showing a block-out step to the client. In fact, it won’t take you too much time to fill the SubTools with flat colors, add some redness to the skin and paint the eyes, but the end result will make a better impression.
I’m using either the Standard brush switched to the RGB mode or the SO_SoftPaint brush by Shane Olson to paint the model. Move the control sliders on top to adjust the opacity, intensity, and softness of the strokes. When presenting a high-poly block-out to the client, I also like to rotate the eyes a bit, to make the character look in the camera and have some kind of expression on the face.

Polypainting in ZBrush
Retopology & creating a low-poly in Maya
When the high-poly was finished and approved I decimated everything in ZBrush, exported the objects, and move into Maya to create clean topology, model some simple props and UV map my character. After importing a high-poly object into Maya, I enable the Make Live feature in the control panel on top to convert the object into a Live Surface. Now I can either create a new geometry on top of it or fix the existing topology by importing my low-poly basemesh (that I used as a lowest subdivision for the model) and using the Quad Draw function from the Modeling Toolkit menu.
As for the clothes and props, sometimes I re-model them from scratch in Maya, or just export the lower subdivision from ZBrush, and clean the topology to make sure that it doesn’t contain any excessive loops and polygons that won’t be visible and that don’t break the silhouette. Since we’re using the same models both for the cut-scenes and in the game, we are paying a lot of attention to the facial topology, trying to optimize it as good as we can. Working in a team with riggers and animators is very important at this step as we’re making test animations to see how the facial joints behave.
The most important loops in facial topology are those around the eyes, nose, and mouth areas, as well as the edge flow that helps to move the jaw. You can find some good examples of facial topology for animation from Disney or Pixar as well as the examples of topology for the games. For example, Jessica Dru Johnson, a 3D character artist for the In-Game Cinematics team at Blizzard Entertainment, shares her approach of how to create exact and technical topology workflow for the Blizzard animators.

Retopology and creating a low-poly in Maya
UV mapping in Maya
Some people like to use UVLayout software to create UVs faster as it is based on using hot-keys. In my case, I’m just using the 3D Cut and Sew UV Tool in Maya to create UVs fast and easy. I’m still on the Maya 2018 version and it has all the necessary tools for unfolding, arranging, and packing the UV shells, so I’m not using any additional scripts or other packages for this purpose.
After using the automatic Layout in Maya, I always edit the position and size of the shells manually to make sure that the shells are taking up the maximum of the UV space. This way the resolution of the texture will be higher and the texture itself will be much crisper. At the same time, try not to place the shells too close to each other to avoid overlapping. I’m also checking the density of the shells and using a UV-checker (a tiling texture with squares and symbols) to make sure that nothing is stretching and that the density of different shells is uniform. The facial texture can be denser than the texture of the leg, because the face is a more important area and it attracts the viewer’s attention.
When all the UVs are ready and packed, I move all the mirrored shells over one exact unit, so that they inherit the information from the texture maps that I’m going to bake later on. This way I’m avoiding any kind of distortions or seams that may appear on the baked maps. For this particular character, I’ve created several texture sets as she’ll be changing outfits and hats. This means, that she needs separate texture sets for the body, hair, and outfit. Sometimes we also create a separate texture set for all the props that will be reusable or for the accessories containing metal or glass elements.

UV mapping in Maya
Baking in Substance Painter
After setting up a new file with Metallic-Roughness template in Substance Painter, I bake all the maps on the exploded version of the mesh and then I replace it with a combined one in Edit > Project Configuration. Another simple way to bake the maps avoiding the occlusion errors is to bake by Mesh Names making sure that all high- and low-poly elements have corresponding names with the same suffix (for example, _high and _low) that you need to type in the baking menu of Substance Painter.
When baking is completed, I toggle through all the maps to check if everything is clean. Sometimes there are areas that require minor adjustments (often you might end up baking the fingers onto each other) – this is very easy to fix by lowing the Max Frontal and Max Rear Distance in the baker settings and cleaning up those small spots in Photoshop using the Spot Healing Brush tool. Then just import your textures back into Substance and you’re good to go.

Baking in Substance Painter
Texturing in Substance Painter
Texturing is by far my most favorite part of character creation (along with sculpting) as it gives a lot of creative freedom. Someone might be surprised that we’re using Substance Painter for creating stylized textures (and even hand-painted textures) but in fact it offers a great variety of tools for creating any kind of stylized or realistic look. For our game we’ve decided to make the most of our engine, using all the bells and whistles of PBR and dynamic lighting.
When painting textures, I use a lot of Fill Layers with masks which make the painting process much more flexible as I can easily change the color, roughness, and other layer parameters for each element. I also like to create separate Fill Layers for procedural textures (such as the striped or weave patterns for the fabric), increasing or decreasing the roughness of those layers to add variety. Fill Layers are also very handy for adding such generators as Dirt or Edge Wear with a subtle color/roughness variation. They look especially good on the metal and leather surfaces, even for stylized characters, adding an interesting toughness.

Texturing in Substance Painter
Baked lighting in Substance Painter
Another cool feature that might be useful for you is creating a base for the hand-painted textures in Substance Painter with the help of the Baked Lighting Filter. It is located in the Shelf > Filters > Baked Lighting Stylized and can be easily found if you just type its name in the Search field. Then just drag and drop this filter on top of all your layers in the Layers panel and press C on your keyboard to toggle to the Base Color mode (here we can see only the colors, without dynamic lighting).
Click the filter to open its properties and play with the settings in Material and Sun_Sky tabs. Every model is different so there are no uniform values to fit them all, so just move the sliders until you’re happy with the result. I also like to change the Ground Color from dark-grey to something more purple to create nice shadows that don’t look dirty. Finally, I’m using the Light 1 tab to add another light source in the back of my model.
Such baked lights already look very good and can be improved even more in Photoshop or 3D-Coat to reach a better result. In any case, it is much faster and more productive than painting textures from scratch.

Baked lighting stylized filter in Substance Painter
Posing and rigging in Maya
Usually, this step is not necessary at all, since my work is done after the animation tests are successful and the textures are finished. Then I pass my model further on and ready to make the next one. But for this particular character, the goal was to make some simple yet beautiful shots for the website placeholder and for portfolio presentation.
There are several ways to pose a character for promo-images. If the model is already rigged, all I need to do is just to move the body-parts, looking for the right pose and trying to make it look as natural as possible. I’m always working with references at this step as it is very important to preserve the correct anatomy and gesture.
Sometimes I’m creating a simple rig using the HumanIK in Maya or Advanced Skeleton – a very powerful rigging tool for Maya that is very easy to work with and user-friendly. They have some very descriptive videos, demonstrating how to work with their plugin. Last but not least, I’m using ZBrush for fixing my characters’ pose by masking/hiding some parts to move things around. I also use it to change the facial expression of my characters if I don’t have time to rig the face.

Posing and rigging in Maya
Final presentation in Marmoset Toolbag
Finally, when the model is posed, the last thing we need to do is to render it! We’re using several render engines for different purposes. In my case, I’m working in Marmoset Toolbag as it is a very fast and easy-to-use real-time rendering program, and I already have a scene set up with all the lights. I just import my meshes there, load the textures, and use the Turntable to find a better angle, making sure that the rim lights are working the way I want them to. Sometimes it needs a bit of a noodling around with the lights, but all in all even a simple classic three-point lighting set up works perfectly well for any model, creating a dramatic look.
You can find some nice examples of lighting setups used in photography if you Google lighting setup or search it on Pinterest. If you’d like to know more about the in-depth process of rendering in Marmoset, check out my article on the Marmoset website where I show my settings step by step.
You can also do all the post-processing and color-correction work right in the Toolbag, in the Camera settings, instead of taking everything into Photoshop and doing the same thing there. The Curves work exactly the same and it will save you a bunch of time.
This is pretty much it for my process of creating characters for games! I hope you’ve discovered some useful tips and tricks that might be helpful for your future projects. Thank you for reading all the way to end!

Final presentation in Marmoset Toolbag
Yulia's previous interviews and tutorials:
Fetching comments...