Creating Characters for Fighting Games in ZBrush & Substance

David Yow discussed creating high-quality characters for AAA games.

In case you missed it

You may find these articles interesting


Hello, my name is David Yow, a 3D Modeling Artist currently based in Malaysia. After graduating from a local institute, I joined the Passion Republic team around 5 years ago and have been here ever since. I had the opportunity to contribute to a few AAA titles such as Marvel's Spider-Man, Uncharted 4, Injustice 2, and Mortal Kombat 11. Currently, I’m working on our own IP, GigaBash, a 4 player giant-monster brawler. 

Working on MK Characters

Before joining the MK team, we were actually wrapping up on Injustice 2 at the time and Nether Realm wanted a few of us who were already familiar with their workflow to join them. Our team was tasked to create multiple skins (we call them gears actually) for each character. The idea is that these gears would be interchangeable with other gears. For example, there are multiple versions of Geras’ belts and they should be interchangeable with each other. This modular approach allows for a good variety of customizable looks for each character. The characters I worked on were Geras, Cetrion, Frost, Shao Kahn, Baraka, and some NPCs. 

Almost all the pieces I worked on were touched by ZModeler at some point. The main challenge was creating hard surfaces that wouldn't feel stiff or rigid in ZBrush. ZBrush was really good at creating organic shapes, and with the addition of ZModeler, we were able to create hard-surfaces that flew well.

Techniques and Brushes

For Geras' concept, I saw there were cutlines along his body, almost like he was pieced together by something. So at first, I thought I could use a Dam Standard brush to score in some cuts to the body but I found out that it was pretty hard to get that consistent beveled highlight along with the cuts throughout his body and have it look sharp because that would mean I'll need to subdivide the mesh to insane numbers, my PC just wouldn't have it. Michael Pavlovich made a great video about panel loops in this video, I did something similar but with ZModeler as I had a bit more control in between the steps. 

Here’s a small breakdown of how I achieved this: 

This approach allowed me to have a very consistent beveling along with the cuts while keeping a relatively low polygon count on each sub-tool (with subdivision, of course).

Substance Designer

When I start on each character, I would try to look for parts that could be done procedurally to save time. For Cetrion, I saw she had coal that was integrated into her body. Naturally, my first thought was to maybe get a charcoal alpha and slap it on there, but that proved to be too tedious, lots of clean-ups and it was just not fun to do. So I did some experiments and found out that I could use displacement maps to bump out the alpha. Now I just need to find a way to align the alpha to my mesh, that’s when I discover that it could easily be done with Substance Designer, specifically the Tri-Planar node. 

I did a quick breakdown on the process with a demo head in a few images below: 

The charcoal Height Map shouldn’t be too detailed as it should be added during the texturing phase. I try not to add micro details during the sculpting phase because I don't like to subdivide my mesh too high for no reason, and I’m not too fond of the noise feature in ZBrush as well. The coal texture is just a tile-sampler with some rectangles and plugging in a few Warp nodes with a flood-fill mask to break up the shape a bit. A very simple setup but it gets the job done!

There’s also another benefit to this method because these are on separate sub-tools, it's a fairly quick job to sculpt away the unwanted coals, and we also get to bake out a separate color ID for masking purposes during the texturing phase! 


The most challenging character was definitely Shao Kahn for me. I was struggling. For some reason, I was failing to capture the feeling we wanted for him. Since we couldn’t change the base mesh’s joint position, it was tricky and hard to make him feel tall, we couldn’t just elongate the legs or shift the hip position. During the blocking phase, his proportion looked alright but after all the extruding and micro-adjustments, he started looking shorter and shorter.

In the end, another team was tasked to do a polish pass and was sent back to us for the low-poly and texturing phase. They did a great job of getting that feeling we wanted! I spent some time flipping back and forth between my version and theirs. To my surprise, the number of legs showing can drastically change the height of a character. One thing they did was shifting the waist armor up so the legs could look longer, I was enlightened.

At first, it was a little discouraging to have Shao Kahn sent to another team, but I realized we had a common goal, and that was to make good art! 

Advice for Beginners

At the beginning of my career, I learned to internalize the feedback I got and don’t apply every single feedback to your work. The work culture at our studio encourages us to walk around to different departments, chat with them and sometimes give feedback. While everyone has good intentions in giving critics/feedback, it is very important to try to understand what that person is trying to convey and see if it is applicable in your situation. 

One thing I like to do, regardless of whether it is a character or props, is the “squint test” and I use it for every phase of the modeling process. It’s literally just you squinting your eyes while looking at your work. This method helps eliminate the small details and helps you to focus on the big shapes. You can easily tell if your work has a good reading of shapes, textures, and/or silhouette.

For Substance Designer, I recommend checking out Daniel Thiger’s works. His tutorials helped me to understand the basics of Designer and some high-level techniques. For ZBrush, Michael Pavlovich is the one I look for. His YouTube channel is a treasure trove of ZBrush knowledge! 

David Yow, 3D Modeling Artist

Interview conducted by Arti Sergeev

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more