Philémon Belhomme talked about his character made for the Shiro Games’ new title Darksburg. Software used: ZBrush, Substance Painter, Blender, and Toolbag.
Let me present you Rose in a few words. She is a Bounty Hunter supported by her little chipmunk “Twig”. She’s trapped in a small village surrounded by zombies and so she must collaborate with the remaining villagers.
In terms of Gameplay, Rose is a mid-range shooter, she’s fast and can jump over medium obstacles, but she’s also the most fragile member of the team. This is the reason why she is young, slender and athletic. She is also well equipped but with limited gear, so she remains light and quick.
Start of the Character Production
It can seem funny, but my main goal was to fulfill Jeremy Vitry‘s expectations. He is the Art Director and concept artist on Darksburg and he does his best to make the game’s visuals great and consistent.
Once he has done some good sketches for a new character, I start with a 3D template that we compare in-game to the other characters to check the proportions and level of details. Then, when the character design is approved by the team, I start the block-in phase in which Jeremy gives me a lot of feedback and paint over, so that I can be really close to what he wants.
I am satisfied only when he’s convinced by the result and we work this way until the character is done.
Technical Restrictions & Avoiding Them
In terms of technical restrictions, the only one I have is to keep the 3D model at a decent polycount. Even if the heroes’ budget is quite ample, we have between 15k and 20k tris for a character and their weapon, which is dense enough for our game view.
We have one constraint which has a huge influence on the characters’ graphics processing: it is the top-down game view, far from the action. The characters must be readable from the distance and they must not be “noisy”.
For example, between Rose’s High Poly sculpt and the final model, some parts have been scaled up or inflated to make them visible. This also explains the size of her crossbow which seems huge on close views, but perfectly well-sized in-game.
We also try to focus on the main shapes and avoid details that are too small. For example, I make as few folds as possible and I simplify them as much as I can. There isn’t memory folds or noise textures.
Another tip to prevent “noisy” objects, is to avoid hard cuts in ZBrush. With the distance, that would become a thin pixel strip which would cause some flickering issues.
Even if chiseled shapes are a part of the artistic direction I smooth/polish all the hard edges to make them soft, kind of like Heroes of the Storm assets which have inspired us.
For the UVs, there is nothing really specific however, I always keep two things in mind:
- The full character must fit in one texture sheet and their weapon in another (in case the weapon should be changed).
- Optimise the space as well as I can and gather UV islands per materials (the hair on one side, the skin on another, etc.) to avoid color blending between them when the mipmapping is turned on. This will make the seams less visible in low textures resolutions. It is also pleasant to work on a well-organized texture, as it is easier to locate each element this way.
Texturing & Colors
For texturing, we work with classic PBR metalness workflow, but we want to have a handpainted feeling (Rose’s crossbow especially shows it). For now, there isn’t an easy way to do it, so I switch between Substance Painter, Photoshop and Blender. I am improving the workflow little by little, so it’s better each time I create a new asset, however, because of this I have to rework some of the assets sometimes.
Let’s see how I proceed.
First, I make an albedo base in Photoshop by combining some baked textures to create a nice picture in greyscale which defines the volumes nicely. To do that, I use as much data from the Highpoly as I can to save time later.
- Normal Object R/G/B
- Normal Tangent in grey scale
- Ambient Occlusion local/global
- position (ramp)
Once this part is done, I add the colors with gradient maps (using a baked ID map as masks), then I send all of this to Substance Painter in which I create very simple materials. I generally use this software to set the roughness and metalness in real time.
We have one specific issue: we want to avoid materials that are too shiny and glossy, so we set the roughness to a minimum of 0,25 and the metalness to a maximum of 0,75. That gives a soft look to the 3D model. I then send back the Albedo in a 3D painter software (in this case, Blender) and rework the texture by painting over with brush strokes.
Once I am happy with it, I transfer my modifications to the others maps (Metalness/Roughness) in Photoshop by playing with level modifiers to match the previous Substance Painter’s textures.
The skin is the only thing I deal with differently. I use a material that I created with a simple tileable skin texture. From this texture, I make a grey scale image which is applied in ‘overlay’ on the Albedo. Using a level modifier I plug it also in the Roughness channel and still using the same texture, I generate a Normal map in B2M which is set in the normal channel.
In order to give life to the character, I add color variations with a mask editor and some soft painting. Afterward, it is the Subsurface Scattering which makes the difference in Marmoset Toolbag!
There is nothing special about the Hair texturing, but for the rendering part, in Marmoset Toolbag, I’ve decided to switch to a ”specular workflow” material, allowing to add colors in reflections. I’ve also set the Reflections parameter to Anisotropic, which gives nice and more accurate reflections shapes.
At the moment, my biggest challenge is something more technical. I am still trying to find the most efficient workflow to achieve a stylised/handpainted PBR while reducing going back and forth between programs. Substance is effective for a lot of things, but not yet for the render I am looking for. Matching textures made in Substance with the albedo inside Blender and Photoshop isn’t always straightforward. However, every new asset has helped refine my methods of work, which I hope will bring me to a quick and easy, repeatable method.
If you found this article interesting, below we are listing a couple of related Unity Store Assets that may be helpful for you.