Caterina Sumalla talked about making the 3D recreation of Sova from Valorant, discussed including Blender into the character art workflow, and told us about using the FlowMap to add the hair shine.
My name is Caterina Sumalla, and I’m currently working as a 3D Character Artist at SocialPoint (TakeTwo). I have been in the video game industry for approximately six years, and I have worked in companies such as A Crowd of Monsters, Digital Legends, 8Bit Studio, or Radical Graphics.
This breakdown will focus on my character creation workflow.
Why Sova? I think he’s a great character. He has a fascinating design to me, a new challenge with which to try new techniques and continue to improve my skills:
- Explore stylized hair.
- Learn to use Marvelous Designer.
- Work with hard-surface techniques on weapons.
I wanted to do something different, so I decided on a character halfway between the stylized cartoon style and the hyper-realistic style, trying to get the best of both worlds.
So, first, before starting to work, I spent a few hours looking for references, perhaps the most essential part.
BaseMesh in ZBrush
I started the model with a BaseMesh made from spheres, making it easier to modify proportions, muscles, etc. This way, the character obtains a defined musculature, and I don't have to sculpt everything from “slab”. This part is crucial because if it’s not done correctly from the beginning at the level of proportions we can find problems in the future.
Once I have obtained the shape that interests me, I use the DynaMesh function in ZBrush, thus converting all the spheres into a single piece, perfectly welded. From this point on, I am qualifying and sculpting the final muscles that my character will have.
As the character of the concept art is a strong man, I wanted to emphasize the lines of the musculature to leave it well marked, looking for an intermediate point between the stylized cartoonish and the realism.
One of the parts that I spend the most time on is the character's face since it’s the most characteristic and will make us identify him better. In Sova's case, he has a muscular body, and his face is very masculine: he has a prominent nose and a square jaw. I had to spend a long time detailing all those features without reaching a point where anyone could perceive the face as strange or exaggerated. I also did a hair blocking to make it look more like the final character.
In this sculpting phase, I always start to work on the features from the lowest SubDivision level to start pulling out the volumes, always trying to keep volumes smooth.
To get the bigger volumes, I use the Standard and Move brushes with low intensity. Depending on the occasion, I use either hPolish or TrimDynamic to leave the areas more polished.
I always try to have most of my sculpting work done in the lower subdivisions. When I see that I can not do anything else, I level up, preventing the "wobbly" clumps so troublesome from ZBrush.
Once I was finished with body proportions and the levels of detail of the face, I began to create the blocking of the clothes. This stage is where I decide the volumes that each piece will have.
I think carefully about all the elements that the character has (knife, pockets, etc.). I like to do this part in Blender since it allows me to model each asset very quickly.
In Blender, I made some armor pieces almost in their final form, such as the boots or the armband. It’s much more comfortable for me to make them in low poly in Blender and then take them to ZBrush to give them details, avoiding once again the "wobbly" part mentioned above.
Other pieces, like the gloves or the forearm sleeves, were created thanks to the Extrude function. I made a correct final topology for them and then sent them to ZBrush to give them the final details.
At this point, some pieces were not the optimal result: the shirt, the pants, and the cape. That is why I decided to make these garments in Marvelous and then give them some details in Zbrush.
With the shirt, I picked up a pattern from the internet. Some parts of the shirt were unnecessary, like the collar, because the cape would cover it. I didn't make the cuffs rolled up with Marvelous, as it would be too realistic, so I decided to make them later in Blender.
I got the basic shapes that interested me and then polished them in ZBrush.
The pants are a similar case to the shirt; I looked for a pattern online that more or less adjusted to what I needed, and I started creating it in Marvelous. Since there were no bloomer pants patterns, I added a seam to the above-knee section, getting the puff shape I needed and removing the tighter bottom.
The cape was a bit more complicated, as it’s a unique pattern made especially for the character, so I looked for references of capes and stoles and tried to mix the patterns to get the shapes that I liked.
One thing to keep in mind when we use Marvelous, it’s essential that we respect the volume of all the props that our character carries and that they are included in the model that we import into the program. In this case, I imported the character with the bow, so that the cloth simulation of the cape took into account the volume of the bow.
With these three garments made in Marvelous, the character has changed significantly, giving a much higher quality look and achieving that style between realism and stylized.
Another detail I did before working in ZBrush was touching up the pants to make them look like they are inside the boots, as it gives it a more refined finish and shows attention to detail.
Sculpting in ZBrush
We return to ZBrush, this time to give details to the clothes and polish other aspects.
The most extensive work I had to do at this point in the workflow was giving the final details of the clothes, such as the seams of the pants, the shirt, polishing the wrinkles that I brought from Marvelous Designer, and adding details to pockets, gloves, and other assets.
For scratches or to define more finely, I used the DamStandard, such as the details of the bib or the pockets, while for the seams of the trousers and the shirt I used the OrbCracks brush.
Then I made a second inspection of the character's face to give it a slightly more stylized touch, making the cheekbone, nose, lips, more hard edge. I also broke the symmetry of the eye, marking the scar and cutting off the eyebrow.
I also used the DE_HairRubes brush to define and polish the hair. I usually do the hair in Blender, but I was curious about this brush and felt like using it.
I also gave the fur more detail, using some alphas and sculpting by hand, giving it a more fluffy and worked look than before.
In short, these would be the brushes that I have used the most to give the details in ZBrush of my model.
Some close-ups from ZBrush:
Retopology and UVs
Retopology is one of the most important parts of the video game pipeline. If we have a correct topology, we will facilitate the work of the rigger and the animator. The most basic rules for a good retopology are putting more loops in the bending areas, such as shoulders, elbows, knees, hips, etc. There isn’t only one correct way to do it, so my recommendation is to look in ArtStation for different wireframe examples to see which one best suits your needs according to the polygonal load that the model requires.
As I had already made some pieces before, such as the boots or the gauntlet, this time, I was able to take advantage of them and save myself the retopology.
In my case, this character has 57,336 triangles, counting all the props, hair, etc., except the bow and the rifle. That polycount situates the character as a mid poly character, fully compatible with most games.
I used four packs for the character's UV at 2K because I wanted a good resolution but not a new generation character. So I divided the UVs into Hair and Fur, Rifle and Bow, and the other two packs on the body and clothing.
I always try to use the symmetry of the assets as much as possible, but in this particular model, I could only do it with the boots. I also try to place the pieces as much as I can, either horizontally or vertically, to avoid problems with patterns that may not match when texturing.
Another detail that I always do is to increase the space occupied by the face and eyes to give it more resolution than other pieces.
In the hair UV pack, the placement of the UVs will be crucial since it will help us for the future creation of the FlowMap, so all the strands have to be placed in the same direction, from roots to ends, in my case, vertical.
With the UVs mapped, I exported the low poly model and the high poly model to Marmoset Toolbag, where I did the texture baking.
The next step is to start texturing, in my case in Substance Painter. From Marmoset, I brought the texture packs of Normal Map, Ambient Occlusion, Curvature, Position, and Thickness.
At this point, I wanted a PBR texture that, even with detail, would be a bit stylized, so with this in mind, I began to texturize the skin, emphasizing the redder areas, such as cheekbones, chin, and nose, to give it a “lively appearance”, but without appearing to be wearing makeup.
As the character is blonde, I used tones that go from almost white to light brown, giving different shades since the hair is never one color. Soon I will explain how I solved the challenge of hair's brightness with the FlowMap technique.
I always avoid pure black and white in my texturing, and fur is a good example, where the light tones are a light yellowish gray, and the dark areas are a dark gray to brown.
I try to stay in the same color gamut, but at extremes like in the cape, I go from a more greenish and saturated blue to a more purple and darker blue. This way, I give the richness of color, and I can distort the lighting a bit (without exaggerating) and the ambient occlusions.
When I start texturing, I always put a basic color layer with a certain Roughness. Then I add another layer with very subtle color variations (using procedurals) and roughness as well. Afterward, I will clarify each piece's darker and lighter areas, but always within the same color range, as I have said before.
Once with this as a base, you can now vary between adding a fabric pattern (very subtle to avoid distortions and not going towards the realistic style), adding nuances to the AOs, and other details.
I wanted to make the weapons in style very similar to the Valorant and Overwatch textures, having a gray Roughness, without glare, and with subtle chromatic variations, with slightly blurred spots.
Clothes and props have a certain worn-out since I wanted to give it an effect of age-worn, but not of mistreated.
I wanted to get a special hair shine using the FlowMap for the first time for this character, so I got down to business.
We need to create a texture with this particular color (it doesn't have to be large, it can be 16x16 pixels). Then I drag the texture, drop it onto the Shelf in the program, and set up a brush.
Once I have the brush configured, I create a Layer, put it in Normal mode, and start painting in the UVs, always in the same direction (that's why the placement of the UVs was so important previously). In my case, the result is this.
I export the FlowMap to Photoshop and place it under the Multiply masks and with the Blue channel.
Then I took the model and the FlowMap to Marmoset and put this configuration on it.
And the results I think are very satisfactory (in this case, it’s a bit exaggerated to see that everything worked correctly).
Once I have the character ready, it’s time to pose it and prepare it for a good presentation, since this way, the work will look much more, and everything will be more spectacular. In my case, I decided to make a pose very similar to the concept and a simple base, but within the character's mood.
I did the pose with a simple rig in Blender and the lighting and rendering in Marmoset. The lighting is quite classic, with two leading lights, one warm and one cold, and then several support lights, to show the different volumes of the character.
Finally comes the layout and presentation. In this case, I have been inspired by several original Valorant publications to give it a closer and cooler style.
A huge thanks to 80 Level for inviting me. It was fun to describe the entire workflow and see what you can improve seeing your way of doing things, since sometimes, in the middle of the production process, you do not have time to reflect on it. It has been fun, and I hope it has been informative and can help others!
You may find these articles interesting