Game Character Production from a 2D Concept

Game Character Production from a 2D Concept

Kasita Wonowidjojo prepared a detailed breakdown of her hero character Devka based on Svetlana Kostina’s concept covering the work on the face, Marvelous Designer to ZBrush workflow for cloth simulation, and texturing in Substance Painter.


Hello! My name is Kasita Wonowidjojo, and I’m currently in my last term in Gnomon School of Visual Effects. After graduating this June, I hope to become a CG Generalist focusing on modeling, texturing, and look-development within Film or Games. I’m originally from Indonesia, raised in Singapore, and was formerly a Business Marketer for 6 years. I decided upon a career change pretty late in my life and signed up to Gnomon to kick-start that. I’m so grateful to Gnomon and their experienced instructors for not only honing my skill-set but also pushing my passion and allowing me to explore my voice within the industry.

Devka: About the Project

This is a piece I worked on in my Character Creation for Games class taught by Damon Woods. We each picked out a concept for a Hero Character, and by the end of 10 weeks, we were to have a finished game asset that we could showcase. Damon gave me plenty of guidance on this piece and offered many tips and techniques on how to create a believable Hero Character from any concept of our choice. 

1 of 3

Concept Art & Story

When I originally looked for a concept, my main plan was to pick a character that had multiple layers of clothing; this would give me a good chance to get familiar with Marvelous Designer and its infinite possibilities for cloth simulation in 3D Asset creation. 

I found Svetlana Kostina’s concept through her Instagram and got her permission to work on the piece. The character felt emotionally interesting to me and had an intensity and edge to it which I really liked. Originally, this piece was titled Děvka, I did some research on what that word meant, and it was unfortunately derogatory. However, it gave me some context and a story behind this character. The story drove me as an artist to understand the clothing and textures much better. 

She was a girl who has gone through too many hardships way too young. Her clothing was bulkier and thicker to serve as a juxtaposition to what she’s called. Her textures had to be grimier to reflect her environment. 

Planning & References

Before diving into work, I tend to spend quite a bit of time planning and organizing in the earlier stages. All of that prep work will help me accomplish tasks more efficiently through the entire project's process. 

I started by overlaying colors on each part of the concept art that I believed was a separate item to work on. Doing so helps me establish a timeline for myself and understand what to create first in order to assist the next assets. For example, creating the gambeson first would be crucial for the armor pieces and capelet to lay correctly. 

The organization of projects is something I learned very early on at Gnomon. I'm not the neatest individual, but having some organization helps me be a more efficient artist. 

I start with a project directory that contains 3 folders: Source, Work and Out

  • Source: I place all my references in here; even though I use PureRef to consolidate these, it's still useful to have folders separating each item. 
  • Work: contains subfolders of programs I work in; this is essential for efficient asset transfers if you work in multiple software solutions, which we often do in the pipeline.  
  • Out: consists of images that I've taken upon the project completion or work in progress.

I wasn't aiming for a likeness sculpt for this character as I enjoy game characters that have believable human faces but aren't recognizable in terms of one specific actress or actor. So when I was character casting, I looked for faces that evoked the story I was trying to tell.

I found a picture of Alexandria Daddario wearing a hoodie, and it sparked my first connection to the character. Her eyes were what stood out so much for me. She became my primary referential source. I found pictures of her at different ages to get a better understanding of how to make a character appear younger by comparing her photos over time. Raffey Cassidy had a spunky innocence I wanted my character to evoke. I also liked Natalie Portman in Léon, a younger character with an edge that I wanted my character to have. 

As 3D artists going off illustrative concepts, we need to take from reality to make believable 3D sculpts. Having guidelines and references will always help with that. Taking time to cast characters is important since faces are usually what people first notice in character work. 


Hero characters tend to have strong silhouettes as they have to be recognizable from every angle and distance. So I blocked those out as early as possible. Doing so early would also give the art director or, in my case, the professor a chance to critique the silhouette in a 3D context. 

In ZBrush, I used simple primitive shapes as well as extraction to create my first silhouette blockout. I did this over a base body that I modified from a previous project.

When I went into Marvelous Designer to create my garment, I focused on emulating how the actual garment would be made in reality versus fixating on it being 1-to-1 with my silhouette plan. 

For this character, the Marvelous Designer silhouette was not that far off from my main goals, but still, I'd bring it back into ZBrush and mold it closer to the shape of my blockout. At this point in the process, I begin to add more sculpting details to the clothing.

Working this way helped me establish a good read of the character from a distance even after adding details to it. 


The face is an important aspect of character creation, and a lot of time should be spent on making sure it looks compelling. Reference is my main tip for sculpting believable faces - this ranges from 2D images of the character cast to 3D references such as 3D scans.  

Using 3D scans is a great way to reference anatomy and proportions you otherwise might have missed looking at 2D images. I use a 3dscanstore’s asset in the scene next to my sculpting process to look at human anatomy from every angle.

My initial workflow is a constant back and forth to establish a face that I think works for the character. Then once all that has been set, I add in the details like skin pores and wrinkles. Tertiary details aren't quite as crucial as establishing primary and secondary forms. I think it is especially true for game characters where assets tend to be optimized.

For primary and secondary forms, my sculpting brushes tend to be very basic; I use standard, damstandard, move, and claytube brushes for the most part. Again, I often look at references to make sure I'm on track anatomically. 

For the skin details of this character, I mainly used resources for ZbrushGuide as well as Rafael Souza's brushes to add in the tertiary details of the face. As my character was younger, I needed to balance between the addition of pores and wrinkles and not aging her in the process.

My texturing workflow usually involves an initial polypainting pass in ZBrush. It's done very quickly and is used only to get a feel for how the textures would look on the sculpt. 

I create a base texture by projecting texturingXYZ images in Mari using photographs from real skin. It helps establish the complexity of human skin very quickly. I then bring it over to Substance Painter to finesse the skin and add material information on it. Substance Painter is useful for generating environmental effects on the skin, such as dirt and grime. 

Substance Painter also exports the maps I need for Marmoset or Unreal more efficiently, which is why I prefer using this software when working on game characters. 

Clothing Simulation

I was excited to spend time within Marvelous Designer. Before this character, I always tackled very simple garments, so I knew there was much for me to learn. I learned many techniques from Damon Woods while he was teaching the class, but watching various YouTube tutorials has also helped me tremendously. 

Many of the pieces are fairly straightforward. I took apart real-life sewing patterns to understand how each garment is constructed and then tried to replicate them within Marvelous Designer. 

Internal lines on pattern pieces will allow you to simulate quilting and sewing lines:

For the garments that needed thicker piping around the edges, I would offset an internal line, cut that piping out, then layer clone which would sew a duplicate over the original piping. I added pressure to both of these to puff volume into the piping. I used the same approach for any pieces that required a puffy look.

The skirt was created using individual panels. Instead of sewing the panels together, I simply tacked some of their parts to the piece next to it. This would give me dents on the tacked areas so I could add stitches in ZBrush. I think it gave it a more medieval look where everything is more handmade.

Having a frozen OBJ of the skirt allowed me to match the apron draping over it without taking too many resources to simulate:

The bag pattern was referenced from real leather pouches. I strengthened the band and used a stiffer fabric preset so that it simulated more like a leather band, not fabric.

The scarf was done simply by lasso pinning and slowly folding the scarf into shape. This served as a base for me to nanomesh thread pieces in ZBrush.

I approached each piece systematically, trying to get the overall shape before creating internal lines to simulate seams on clothing. Each piece had its own MD project and I imported frozen OBJs of a garment piece if I needed to simulate another piece on top of it. I wanted to work this way instead of keeping everything in 1 MD project since I knew I was going to nudge everything into shape in ZBrush. Doing things one at a time helped me not become too overwhelmed by the technicalities of multiple clothing simulation, and it also speeds up the simulation.


For the capelet, which was the most important article of clothing, I needed to approach the simulation in steps.

I did a basic pattern first, trying to get the overall silhouette. Once it was simulated on the character, I could change the outline to better fit what I needed and then add elements like the hood. 

After that, I added internal lines for the quilting, and layer clone with pressure to add air into the garment. The pressure made it difficult to control the cloak's draping, but I knew I could easily nudge that within ZBrush. 

Marvelous Designer to ZBrush Workflow

My Marvelous Designer to ZBrush workflow is the same for every piece of garment:

I tend to work as low as possible in MD but when I’m happy with the overall look, I simulate a dense version of the pattern piece to get better clothing folds. I export the garment with thin and unwelded properties so I can easily autogroup in ZBrush. 

The next step sometimes is the exact same as your MD patterns; if so, you can just proceed to panel looping. In the case of the gambeson piece, it was different so I had to repolygroup to determine where the natural seamlines are.

I then panel loop with thickness to add volume before beginning to detail and sculpt the high poly piece. Ultimately, I'm just focused on creating high poly assets and ignore topology in order to pay more attention to the detailing process. Below, I will showcase some of the brushes I used at this stage.

Once I like the high poly asset, I bring it over to Maya for retopology with Quad Draw and UV the pieces using RizomUV. There are so many ways to do this, TopoGun and Headus are also strong alternatives. 

High Poly Detailing in ZBrush

Depending on the garment, sometimes I add a fabric surface noise all over it. TexturingXYZ is a great resource for fabric displacements. If the cloth is more refined or has thinner fabric, I tend to add textiles during texturing in Substance Painter or Mari. 

I first shaped the garment to fit my silhouette better or to fix any odd intersections. I enhanced the clothing wrinkles using the standard brush, following folds naturally created through the cloth simulation. 

Memory folds help make clothing feel more 'worn', and there are many methods to do so. One efficient way to do it is using fold alphas or VDMs to emulate them. I use Sergi Camprubí's wrinkle VDMs with low intensity.

My character was likely to be in a dirty environment, and her clothing was most likely aged and worn out. Using Nicolas Swijngedau's cloth damages VDM, I added fabric wear to areas that naturally damage over time with use. Reference images, as well as thinking about how the character moves, will determine where the damages occur.

To break up the garment's edge, I used Igor Golovkov's torn fabric brush to add IMM strands around the edges. Another method of doing this is to use the snake hook brush with Alpha07 to pull out areas around the seamlines, giving the fabric a ripped effect.

For stitches and seams, there are plenty of resources out there. I would recommend looking at Dan Rožański's or Alex Vasin's brushes. These could be IMM or an alpha projection, depending on the look you prefer. 

Cotton or linen fabrics have a pilling effect when worn for a long time. To create this effect, I use the dam Standard or standard brush with Alpha07 to scatter little dots around the garment. 

1 of 4

Retopo & UV

Retopology and UVs came in pretty late for this particular character because I was working on a personal project, and my focus was solely on baking the assets as well as possible. 

I sent the high-poly model from ZBrush into Maya (either decimated or just as it is), made it live, and quad drew a low poly version. All I focused on was getting as much of the silhouette as possible to help the baking process. 

1 of 2

The final tricount for this piece was 68,466 tris. I originally had the head lower but was told to bring it up for a Hero Character. The initial plan was to keep everything under 100k and I tried to optimize this piece as much as possible. 

RizomUV or HeadusUV are software solutions that can help speed up the UV process. For this character, the UV groups were done keeping layers in mind. This meant that the capelet and glove sleeves were kept in the same UV group so as when the character took off the uppermost layers of clothing, she could also reduce 1 texture tile. This just helped with optimizing the game asset further.

Baking in Marmoset

I baked all the assets in Marmoset because the software could handle large amounts of polygons. I also find that it helps speed up the Substance Painter baking process.

I brought in the high poly and low poly assets into Marmoset; bake groups were created based on each UV shell. The maps that I bake out are Normal Maps, Curvature Maps, and Ambient Occlusion. 

I like that in Marmoset I can interactively alter the baking shell and also simultaneously see changes on the mesh. I'm able to quickly see the bake's results versus having to wait to see what happens. 

Texturing in Substance Painter

Substance Painter is a great software solution for texturing and by far the most intuitive one for me. When building materials in Substance, I think it's important to layer and tell a story with them.

The following gifs showcase my process of building the material up as I go. There really isn't a trick here, just build it patiently and keep in mind your references and the story you are trying to tell.

I always start with a base material that establishes roughness or use Substance Painter's smart materials to aid in this process. I then slowly layer up the materials using a variety of masks. The masks were created using the cavity bakes from Marmoset or grunge tiles from Substance Painter. 

I don't often use the smart masks within Substance Painter but create my own depending on each piece. 

The piece above was approached thinking about how the armor would be built in reality. I then made a folder for rust and grime to place above the metal material to simulate environmental damages.

Color correcting filters at the topmost layer can help you tweak your textures depending on the feedback:

Since the start of this project, I was already polypainting the pieces in ZBrush to indicate the colors of each piece. This helped me develop a color story throughout the entire modeling process. When you take your pieces to the rendering engine, you can make further tweaks based on how they look. 

Keep in mind that the entire workflow is very flexible, you can move from software to software and make changes whenever you need it. This is why neat project organization is key to facilitate the efficiency of this process.

Choosing the Engine

The final stage of this process included picking a rendering engine for the character. For games, this could be Unreal Engine, Unity, or in my case, Marmoset Toolbag. I just really enjoy the look and feel of Marmoset pieces. I think the lighting quality there is beautiful and I really like that I can quickly grab a turntable of the model for presentation.

I brought the character to ZBrush for posing, the pose was based on the original concept art. I believe presenting your characters in a pose helps bring it more to life. It gives context to all the pieces that you’ve made.

I created a simple plane to ground the character. The texture was created quickly using Quixel Mixer with a gradient alpha to fade it off. This simple addition helps establish an environment and makes your presentation more complete. 

Then, I brought in the texture maps generated from Substance Painter into Marmoset. For fabric pieces, I tend to set Microfiber under Diffusion and use a lighter color to control the fuzz settings. This emulates real-life fabric and helps sell the materials better.


The lighting for this character was done very much like how it would be in reality, by using a 3 point light system: key, rim, and fill.

  • Key - Key lights are the primary source of light. They establish the focus as well as the shadows of the piece. I tend to set this light first, ensuring that the shadows are falling well on the character's face.
  • Rim - Rim lights help push the character away from the background environment. It also helps highlight some of the pieces that fell into the shadows from the Key light.
  • Fill - Fill for me was done using the Sky Light in Marmoset. This light adds an environmental color to the scene; it fills the shadows, so they are not pure black and adds reflections onto the eyes and metal pieces. 


For presentation, I tend to set the viewport settings at the highest values to get a better render. 

Once I got a render from Marmoset, I adjusted the contrast in Photoshop using levels adjustment so as to create a more dramatic image. There was very minimal compositing done for the piece as I really wanted to focus on the execution of the character. I did, however, add some shadows to her eyes in the portrait shot since the SSS lightened the shadows in that area.  


I'm grateful for the chance to walk you through this process. I hope the final renders do the work I’ve done and the story of the character justice, and you’ve enjoyed seeing how I executed Svetlana Kostina's concept.

This character is honestly quite straightforward in terms of how it was made. Most of my work focuses on a film pipeline; since this was the first time I was going through a games pipeline, I wanted to focus on the technical side of things to familiarize myself with game asset creation. I learned so much in the process and am incredibly grateful to Damon Woods for giving us valuable instructions.

If you’re interested in looking at more of my art and also breakdowns of this character, feel free to head over to my ArtStation!

Kasita Wonowidjojo, 3D Generalist

Interview conducted by Arti Sergeev

Keep reading

You may find this article interesting

Join discussion

Comments 1

  • Marlow Adam

    Amazing Article. I really appreciate that you also included your depth on File Structure and planning.


    Marlow Adam

    ·23 days ago·

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

Game Character Production from a 2D Concept