this is so cool! as someone who doesn't really understand the process of making simulations, i liked the explanations and it makes me appreciate the amount of work and creativity that's involved in making them.
Godot forever s2
Ackeem Durrant did a breakdown of his latest real-time character Jade, talked about delivering the mood, hair, clothes, lighting, retopology, and more.
Hi, I’m Ackeem Durrant. I’m originally from Jamaica but now live in the UK with my wife and children where I work as a character artist in the game industry. I started doing 3D when I was 16. I stumbled upon 3D world magazine in WHSmith and while reading I realized 3D character art was what I wanted to do. The thing that attracted me to 3D art was the fact that you never need to stop growing, there’s always new software choice to learn, new techniques to master and new pipelines to try.
I usually spend a lot of time looking for concepts both new and old. Great new art appears on the internet regularly but I like going back to old pieces, too. Siwoo Kim’s art has always caught my attention but when I looked at it several years ago I knew I wasn’t ready to tackle it. So, when I again saw it recently I decided it was time to try it out. Personally, I don’t like doing art that’s just eye candy and I enjoy feelings and movements. Siwoo’s concept had what I looked for, so I wanted to see how well I could translate that into 3D.
When I start a character the first thing I do is collect reference. For this project, I looked for style references to get an idea of how to translate the concept. Beth Cavener Stitcher and Maria Panfilova were my main references for the style. Looking at their work made me change my approach to clothing. All of the body elements were hand-sculpted as I wanted to make everything feel natural but not real, close to the style of those two artists.
To help me nail the proportions and the pose, at the start of the project, I set up a camera in ZBrush so I could use the see-through mode and reference the original artwork. The process involved much trial and error but it allowed me to match up the folds on the sleeves, the pose and lots of little touches Siwoo had that I would have otherwise missed.
The hair was placed by hand. I used this project to test XGen, FiberMesh and a few other tools for placing hair cards, but in the end, hand-placing the cards worked best for me. All other methods had too much clipping and I would waste a lot of time fixing that.
While surfing the internet for different solutions I came across Hair Grabber 2 developed by Alex Sizov. It’s a great tool with tons of functionality, but I especially love it for snapping verts along the hair card, altering the edge flow of a card, snapping cards and shrink wrapping to geo… honestly, the first two functions are the ones I use 80% of the time, but the tool had an answer for every problem I’ve run into and it’s free so I highly recommend it.
When doing hair I start by placing cards and working on my textures in another scene simultaneously. This is important for me because, in the beginning, it’s difficult to understand what textures would work for your hair. I iterate until I have a good base for each type of strand I’ll need: fringe, tightly pulled hair, loose hair, short hair, etc. For the hair texture, I use Adam Skutt’s workflow (he has a tutorial on his Gumroad). It involves using XGen and a plane to render out different clumps you will need. I change it a little by using the new interactive groom splines rather than the guide system in XGen but that’s just personal preference.
Beyond that, make sure your hair textures and cards flow in the same direction otherwise you’ll additionally need a flow map. If you use XGen and the Arnold shader you’ll be able to bake out all the passes you’ll need like diffuse, AO, normal, alpha, etc. In Unreal, you can also bake out ID masks, root to tip masks and whatever else you need. The only map I created in Photoshop was the spec map which is just the AO with a directional noise running along the strands to break up the reflectivity (otherwise you will have a uniform sheen).
All of the clothes were hand-sculpted in ZBrush. I tried Marvelous Designer initially but the look was too clean and I would have had to refine it, so I decided to sculpt the clothes instead.
For the clothing, I needed to understand what materials were used in the concept: it was a combination of heavy rigid and light floaty materials so it was vital to get references for both. After that, I got some fold breakdown references from Pinterest and then began sculpting. Keeping all of that in mind, I blocked in the clothes to match the concept as close as possible. Once I was happy with the result, I refined everything, then went back and forth adjusting the model until I felt like the model matched the feel of the 2D concept.
Layering the leather, ropes, rigid and soft fabric was difficult. Towards the end of sculpting, I made sure to do another pass during which I added bumps, dents, etc. to show where different materials met. This united everything and made it all feel a lot more intricate.
The clothes don’t have that many details: if you look at the sculpt closely, you’ll notice that most of the details are dents and inflated edges which were done with the Standard brush and Dam standard brush. The hardest object to sculpt was the scarf which is made out of a dynamesh sphere. I retopologized it once I had the base and finally created the wrinkles with the Standard and Dam Standard brush to make sure they felt like they were overlapping.
Getting the clothing right was an easy task compared to getting the right look of the face. For me, it had a tricky balance of youth, determination, and appeal. Early iterations never had all three of these elements. I gathered more references and focused on what I was missing, small things like rounding out the cheeks, pouting, and softening certain transitions.
For the face detailing I used Texturing.xyz displacement alphas in ZBrush. There’re pores but they were kind of “knocked back” because of the overall youthful look. For the diffuse, I began in Mari by projecting Texturing.xyz diffuse maps and then brought them into Substance to tweak the values and details. The mud was also added in Substance Painter by painting patches of dirt and using the smudge brush with a dotted alpha to move the dirt around so that it felt directional. This isn’t a part of the original image but I felt like it enriched the character.
I decided to approach the face differently: instead of sculpting the imperfections and making bold shapes I went for a more subtle and realistic feel. I decided to keep the eyes a bit stylized like in the concept and reworked the lips many times mainly tweaking them with Move and Move Topological brushes. I tried to make sure that the skin diffuse had tonal shifts a lot of which came from the diffuse textures. However, I manually made the tips of the fingers slightly redder (because of clutching the sword) or having the knuckles more saturated (injury). Such elements help to tell the story and create a special feeling of the character.
The materials are pretty simple, I think they look more complex because of many layers. For each material, I make a group, mask out the areas I’ll use it on and add a fill layer into that group. After that, I add variation with procedural textures and masks. These are built up until I am happy with the level of variation. I make sure to vary each parameter and work based on the reference. After each material is finished, I add a group on top of everything. In this group, I normally have a dirt pass to unify all the materials with dirt and other imperfections like grease and burns.
I develop the lighting and presentation for my characters throughout the project. As soon as I have a decent base I create my Toolbag scene and begin looking at the forms experimenting with cameras and making sure everything reads well.
When it comes to lighting in Marmoset, I break everything down by creating folders for my key, fill, and rim lights. I always begin by picking an HDRI that works well with the model. It doesn’t need to be perfect because it can always be changed. Then, I add my key lights: typically, only 1-3 are needed because these light should broadly set the tone and idea. In my case, I wanted the face to be the focus of the piece, so I used 1 key light for that area.
I then added fill lights used to prevent other areas of interest from becoming too dark. For example, there’re fill lights on the upper body, lower body, and the side of the hair facing the camera because my key light doesn’t catch these areas.
Finally, I add my rim lights. A single directional light could be used but for me, that never works because the look gets too heavy-handed and you lose the chance to tell a story. I use the rim lights to frame different areas. In this case, they were mainly used for the head, hands, weapon, and to add some dimension to the clothes.
For this project, the post-processing played a big role (the tone mapping settings in particular). By default, Marmoset sets the tone mapper to linear, and for me, this usually results in a much flatter and overexposed image. I like to use Hejl which darkens the shadows and creates a nice level of contrast, plus evens out the exposure reducing the overexposed areas. After I finished placing my lights I increased the exposure by .5 to brighten up the overall image and manipulated with the curves adding more blue to the highlights and balancing out the red and green.
Tips for Topology & Baking
Every artist needs a pipeline to streamline the process. You don’t want to worry about losing a stage of the model or constantly rebaking textures for the entire asset when updating just one part of your model. Issues like that can kill the final result by drowning it in the technical setbacks: even something as simple as creating a separate ZBrush scene for your head can cause crashing and other problems if it’s too heavy. Also, make sure that the iteration time is kept low. Midway through the project iteration is a lot more important than quality, so if that means working at 2k instead of 4k in Substance Painter, exporting lower res maps to test the final lighting ideas or reducing the number of tabs opened in your browser, get it done.
For baking in this project, I used Substance Painter. I go back and forth between Marmoset and Substance but I prefer the idea of baking and texturing in the same software solution. I make sure that all of my low and high poly models are named with the suffix _low/_high and that’s really it. The programs will then look for the corresponding meshes and bake only them unless stated otherwise. Both programs also have cage control but you get more functionality in Marmoset which is sometimes required.
For retopology, I normally keep two questions in mind: Is it animation-friendly? Does it fit whatever budget I need to meet? To keep things animation-friendly, I start my retopology with quads which are easier to visually understand from an animation standpoint. After my quad base is done I’ll cut triangles in where needed (for example, in clothes, some folds alter the silhouette and need triangles to support them because it would require too many quads).
When meeting the budget you need to prioritize the elements of your piece. I always start fairly even and then reduce less important areas that don’t deform or get less camera time. Such areas don’t require high polycount. On the other hand, curved or round areas do.
For this character, I gave myself a budget of 100k, and it ended being 99k. The final polycount could have been reduced a lot more but for personal work, that wasn’t that important. For example, I could reduce my use of ropes, delete the edges from the hair cards and reduce the number of unique meshes used – that would get me somewhere to 80k.
The final thing is to make sure you manually triangulate areas of the mesh that aren’t supported with topology at a glancing angle. This lets you ensure that when you turn the mesh the silhouette does not get broken in the engine, otherwise automatic triangulation can cause some gaps when your character turns.
This project showed me that I want to explore style much further. There’re so many media and artists to draw inspiration from that it would be a shame not too.
Ackeem Durrant, Character Artist
Interview conducted by Kirill Tokarev