logo80lv
Articlesclick_arrow
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_login
Log in
0
Save
Copy Link
Share

Reimagining Street Fighter 6’s A.K.I. in ZBrush & Marmoset Toolbag

Jessie Chan showed us the workflow for the fan art of A.K.I. from Street Fighter 6, explaining how a symmetrical low-poly mesh linked to the posed high-poly sculpt in ZBrush made texturing in Substance 3D Painter easier, and how she lit the character in Marmoset Toolbag.

Introduction

Hello! I’m Jessie Chan, and I’ve been working in games as a 3D Character Artist for three years. During that time, I’ve contributed to Fortnite, Deadlock, Hell Let Loose, and some unannounced projects. I’m also the host of A Test of Character, a private Discord server for character artists and character art enthusiasts. This character piece, A.K.I., was made for our Capcom Challenge, where artists chose a character from any Capcom IP and created PBR fan art. We are a group of friends who create art for fun; there are no winners or prizes in our challenges!

As someone who relied on 80 Level articles when I was breaking into the industry, I’m grateful and humbled to give back and share my process. I’ll try to include extra tips and tricks that I wish I had known when I was starting out, and I hope it’s useful to other character artists out there. If there’s anything you’d like to know more about, feel free to reach out on social media.

Getting Started

When it comes to references, I tend to gather whatever inspires me. I wanted to focus on A.K.I.’s feeling and aura, and how she could convey it in the style I was aiming for. I gathered a variety of works from artists whose style I love, even if they weren’t directly applicable to this model, to see how they approach different areas of a model. The works shown in the images are by Blouko, Manu, GrayKolori, Senzu, and Calvin Bastian.

Fan art also helped a lot, as I’m not super familiar with the character; seeing what fans prioritize in her design helped me understand which elements get emphasized and have become her distinguishing features. To me, these were her tinted glasses, golden talon claws, long legs, and slicked-back hairstyle. 

Everything about her design is long and swooping, like a snake. Keeping that in mind while sculpting informed a lot of my design decisions, from how much to flare out the trousers to adding a slight curve to the earring tassels. As this was my own interpretation of her, I changed some elements of her Street Fighter 6 design to suit how I’d like to present her. I made the glasses transparent, reduced the number of chains going around her arms and hands, made the hair a little more complex with flow, and rounded out her silhouette to add to that cobra shape language.

Throughout the process, I constantly referred back to these references and the swooping shape design. When I do paint-overs of my own work, I try to push the model in these directions to make everything more harmonious.

Modeling

For modeling, I prefer to use ZBrush for sculpting organic forms. I like to start from base meshes to speed up the blockout stage, but for this project I decided to create one from scratch as a chance for practice. I started by shaping polyspheres at a low subdivision to create the major muscle groups. I kept these as separate objects so I could manipulate and iterate easily. This allowed me to quickly change the forms and influence how thin, heavy, athletic, stylized, or realistic I wanted her body to be.

One of the most important lessons I learned from a previous mentor was: “Anatomy is everything; even if your whole character is covered in clothes, incorrect anatomy will leak from inside out.” That is why I start with the base mesh and build the other assets on top, like dressing a doll!

Once I was happy with the base mesh, I merged it using Remesh By Union. I use this method instead of DynaMesh when I want a low-density mesh without fusing forms that are close together (for example, the fingers would stick together if the DynaMesh resolution wasn’t high enough). 

Here’s a little step-by-step on how I merge my base meshes to create a sculptable base for the high-poly stage.

This whole project was about fluidity, and that was especially true of my workflow. I iterated on every element again and again, trying to push it to a quality I hadn’t achieved before. There were many stages where I backtracked on a stylistic choice, but it was still very helpful to explore that direction and later decide not to continue with it, rather than never experimenting with it at all. 

The face was the biggest example of this fluidity. I played around with leaning more towards her original design, then a more snake-like one, before landing somewhere in between. Here are some screenshots of the different faces, up to the final one. I truly trusted the process: let it exist first, and make it good later.

For clothes and accessories, I like to block them in at the same time as the face and body. I usually work on the same stage across the whole model; this gives me a better idea of how the model reads as a whole. I’m a huge fan of looking at the character’s overall composition and how they will be presented, rather than getting tunnel vision on smaller details.

I created all of them in an A-pose to save time. Most, if not all, of these accessories are made of very simple primitive shapes that have been deformed to the model’s proportions. For example, the trousers are two cylinders that are connected at the top, and the belts are single-sided planes with dynamic thickness applied!

I added trims to give the design more complexity and a sturdier feel. I learned this from studying StylisedSenzu’s Dokkaebi model (which he has generously made available for free on Gumroad). For single-sided cloth, it’s a great way to fake thickness and add layers of detail that feel connected. There are a number of ways to add trims, but I’ve included a small guide on how I did the more complex curves around the jacket.

For hair, I’d recommend taking a look at Julia Acherontias’ stylized hair guide. Instead of using ZBrush’s built-in Curve Tubes, which she uses, I opted for Renaud Galand’s RenHair brush to lay larger hair strands because its low-poly topology suits my low-density workflow. I use dynamic subdivisions with creasing to keep the blockout low while building up the layers of hair strands: always larger primary shapes first, then secondary breakup, and lastly the tertiary flyaways. Once I’m happy, I apply the subdivisions and DynaMesh the hair together so I can sculpt finer details and break up large, flat surfaces.

After blocking everything in with symmetry, it was time to pose the character! Disclaimer: this deviates from the usual game pipeline (A-pose high-poly -> retopology -> texturing), and I was aiming to create a high-poly figurine instead. 

There are pros and cons to creating a high-poly piece. I have more room for flow, personality, and control over each element, at the cost of working asymmetrically and without UVs and topology optimized for texturing. Also, from this point on, changes could be quite destructive. For better or worse, A.K.I. is locked into this pose for life.

I used TransposeMaster to pose her and created a Posing in ZBrush Guide for this project! 

I did quite a lot of different tests at various stages of the character. For a project like this, where the final result is posed, I think it’s important to test how the asset looks with expression to see whether the current blockout reads well. Posing her before finishing the A-pose model helped me realize the trousers should flare wider, and I preferred her slimmer at the top. I also noticed I liked highlighting the fingers, and emphasizing their shape with a strong silhouette added contrast to the smooth curves of the character. Also, I always like to get my character in a lighting scenario as soon as possible. Sometimes surfaces or volumes stand out much more in Marmoset than they do in ZBrush. Again, very much chanting “let it exist first and make it good later”.

Now that I was homing in on the final pose, it was time to start seeing her in the render engine with proper lighting. As 3D artists, despite making a complete 360-degree model, our final output online is just 2D images and videos, so the goal is to do anything and everything to create the best image possible. Usually, once I’m about 80% happy with the model, I start using Marmoset Toolbag as my new viewport, and I constantly switch between ZBrush and Marmoset to get the best results. Working through the Marmoset camera gives me a clearer idea of the final render, and I can make more intentional changes with that in mind. This is usually called the LookDev stage, where I start adding textures and material definitions.

Retopology

Since A.K.I. was not going to be used in a game context, I saved time by not retopologising the whole model. There are some focus areas where I wanted more control over her textures (the clothes and the hair), so I took them through the usual game pipeline: retopologised and UV’d in Maya and textured in Substance 3D Painter. The remaining assets were polypainted, decimated, and dialed in with shaders in Marmoset Toolbag.

The floral pattern on the clothing was particularly difficult to create; I hadn’t thought to create UVs while the model was still symmetrical, so I had to take extra corrective steps to recreate the pattern to match the concept. (Foreshadowing how complex this next part is, I had to scour the internet and rely on personal trial and error to get to this solution! I’m super happy it worked, but hopefully I won’t have to do this again, and I'll set it up properly next time.)

I’ve tried my best to explain my thinking. 

  1. In pink is the posed high-poly mesh, with folds sculpted at a high subdivision level. In blue, I created a separate, symmetrical, low-poly, UV’d version from scratch. I added a layer and moved it as close as possible to the posed position; I can now toggle the pose and A-pose on/off.
  2. With the pose layer on, I exported the symmetrical LP and then went to the posed high-poly mesh’s first subdivision. When I imported the symmetrical low-poly mesh, ZBrush asked whether I’d like to transfer the high-resolution details; this is what links the meshes!
  3. Now I have linked my low-poly and high-poly mesh, and I can make changes to both at once. The layer has been maintained, and I can toggle between the pose and the A-pose. I can texture the low-poly with its existing UVs, and it’ll work with the high-poly mesh in pose without worrying about stretching or compression.


Problem-solving in character art can be frustrating but really satisfying when it works out!

Now that I had a symmetrical mesh with UVs, I could finally texture! Capcom kindly provided the stencils used for the floral patterns in its official concept art. All parts of the design use some or all elements of these stencils, and I tried to match the concept as closely as possible. If you haven’t used stencils before, have a look at David Bittorf’s Guide to Stencils in Substance 3D Painter. 

With the stencils, I used anchor points to separate the flower mask and embroidery effect. This allows for more control and a less destructive workflow. I created the illusion of stitches with a ‘ratio_stripes’ texture subtracted from the master anchor point and a cloud texture on top for extra breakup.

The setup for making the mesh symmetrical really paid off; there were so many intricacies with the mesh and placement that it would’ve taken more than double the time to texture it in the pose.

For the hair, I decided to add texture for the anisotropy effect (where light travels along the direction of the hair strand). Since I hadn’t worked with this effect before, a good friend, Lauren Lapierre Armande, kindly made a short tutorial for me on how they created hair for Barok van Zieks, their own submission for the Capcom Challenge (a great advantage of doing this challenge together!)

The hair strands had great topology from using the RenHair Brush, which minimized the retopology needed and meant the UV seams were clean and could be hidden on internal faces. For anisotropy to work, the UVs had to be oriented from root (at the top of the 0-1 space) to tip (at the bottom of the 0-1 space). I also straightened the island borders so the strands in the texture follow the flow of the hair. In the image, I’ve also included the Substance 3D Painter material and Marmoset Toolbag material setup for the hair shader!

Pavel Drabkin’s hair guide also strengthened my understanding of the process!

Lighting & Rendering

For lighting, I always start with the Rembrandt three-point lighting setup. It’s a very common portrait setup with a key light, a fill light, and a rim light. Rendering High-Quality Clay Characters in Marmoset Toolbag by Gianluca Squillace is an excellent resource that explains how to achieve this setup. My key takeaways are the influence percentages each light source should have and using a rectangular spot light for the rim light.

Source: Rendering High-Quality Clay Characters in Marmoset Toolbag by Gianluca Squillace

Building on top of the three main light sources, I added small spot lights where I wanted to highlight details, such as her gold fingers. I also pointed two spotlights at her eyes, as the glasses were blocking some light. Finally, I added a faint purple fill light from underneath her to create a more sinister mood, like a torch shining up from under her chin. I rendered this separately and composited it in Photoshop afterward for better control.

In Photoshop, I made slight adjustments to the contrast, brightness, and sharpness, and added a slight vignette for framing. Sometimes I wanted the hair specular from one render but the metallic claw from another, so I cut and stitched them together where needed. Again, these were shortcuts I took due to time constraints, but they’re perfectly harmless, as she’ll only exist as images in my portfolio and not in a game context.

Taking inspiration from Arcane’s opening sequence, I decided to try creating a reveal trailer that played with lighting and camera angles. 

I recorded each clip separately in Marmoset Toolbag by keyframing the model’s rotation or pivoting a spotlight around a point. I then did the post-processing and stitched the clips together in DaVinci Resolve. These days, I try to create short-form videos of my work alongside still renders. Having a variety of media in your final presentation can be more engaging for viewers, and it's interesting to see what the algorithms tend to push to audiences.

Here are some of the final renders! All of them are available in the final ArtStation Post: 

Conclusion

This two-month project was a massive learning experience and a chance to combine what I’d learned in the industry with my friends’ feedback. Thank you, 80 Level, for giving me the opportunity to talk through:

  • Creating my own base mesh from scratch and merging it into a low-density mesh
  • Iterating faces to understand exactly what I want the final result to be
  • Taking inspiration from other artists’ workflows, such as adding trims to clothing for complexity
  • Creating layered hair with the RenHair brush
  • The importance of posing the character early and how much it can change design decisions
  • Using the render engine as a viewport to have a better idea of what the final result will be
  • Connecting a symmetrical LP and posed HP for easier texturing
  • Anchor points, stencils, and anisotropy
  • The Rembrandt Lighting setup and how we build from that for our characters
  • And the final touches before posting!

Of all these detailed learning points, the overarching takeaway from this project was growth through experimentation. I wouldn’t have achieved this result without failing, making mistakes, and learning how to overcome them. In future projects, I’ll continue this mindset and stop trying to make things perfect in the first few tries. Sometimes it takes weeks of small changes to build toward a much larger result. Although I hadn’t done it before, it was really satisfying to focus on reinterpreting an existing character and going through the LookDev stage – rendering and texturing have quickly become my favorite part of the process.

However, the biggest factor in this project was that I didn’t do it alone. With our lovely character community, I was always seeking comments and feedback on the character’s vibe and how I was doing. A massive, massive thank you to everyone who helped this character get to her final form! Check out other challengers’ work via our Linktree.

Please feel free to reach out on social media: Instagram, X/Twitter, and LinkedIn.

Jessie Chan, 3D Character Artist

Interview conducted by Amber Rutherford

Built for the Game & Digital Art Industry
Get Our Media Kit

Comments

0

arrow
Type your comment here
Leave Comment
Built for the Game & Digital Art Industry
Get Our Media Kit