Zoé Brening has shared the workflow behind the Kuna Nuka project, thoroughly explaining the sculpting and texturing processes, and discussed the things she learned at Think Tank Training Centre.
My name is Zoé Brening. I am a Germany-based Character Artist and a student at Think Tank Training Centre. I have been studying at Think Tank Online since February 2022, where I chose to focus on 3D characters and creatures for games. I am currently in my Mentorship term.
As for industry experience, I don't have a lot of it. Before joining Think Tank I worked at Kevuru Games as a 3D artist (animals).
Think Tank Training Centre
I've always considered art to be an important part of life. I really like portraits. One day I realized that creating characters is what I like best. However, in order to reach my potential and start creating characters, I needed to improve my skills first. This prompted my decision to join Think Tank. And I have never regretted it.
At Think Tank, students can find everything they need to become professional CG artists. At the school, we always have access to the latest content, tools, and, more importantly, dedicated mentors.
References and Goals
The student's ́ journey at Think Tank is divided into four terms: Foundation, Intermediate, Advanced, and Mentorship. Kuna Nuka was a final project for my Advanced Term.
My main goal was to improve XGen skills, try to create a realistic skin material, and render the character in Unreal Engine. While searching for concepts, I came across a concept by David Benzal and immediately knew I wanted to work on it because it met all my needs.
Before getting into ZBrush and starting sculpting, I always look for inspiration and gather references. I came across Tsunaina, a model with unique beauty. She became my main inspiration for the project. So I gathered references and started working on the main forms, changing them according to the valuable feedback of my supervisor Jonathan Phillips.
At the blockout stage, I did the largest forms first and looked at the silhouette to make sure I was still matching the concept. I checked the proportions and worked from large to small. Everything can be very rough at this stage. But already here I was trying to get the feeling I wanted to reach in the shapes and the silhouette. I relied on the reference I had gathered and thought about the story of a character.
As for facial anatomy, my approach is based on the feeling of shapes and my knowledge of anatomy gained in Scott Eaton's courses and during my training at Think Tank. Usually, I also create a very basic hair blockout, because hair makes a big difference in the perception of the face.
My advice is simple:
- Never neglect learning anatomy! Although it is hard to argue with the statement that the study of anatomy is a never-ending process, just study it.
- Work from large to small, from primary to secondary. Do not switch to a higher subdiv level until you're sure you've done everything possible on the current one.
- Always have a morph target stored and work with layers. Especially for breaking the symmetry of a face.
- Adding poly groups is also very helpful when selecting and moving whole areas.
Outfit and Accessories
I usually use Marvelous Designer to create a base shape of the cloth. And this time was not an exception. All garments, with the exception of jeans and shoes, were primarily created in Marvelous Designer.
After that, I imported them into Maya for retopo using the following settings:
Tip: Try to find a balance between sculpting details on a high-poly mesh and creating them during the texturing process.
The technique for the shield was pretty simple. I used a custom Alpha to create the basic shape of the pattern and then sculpted on top of it. To make the Alpha stamp nice and clear, I used Standard Brush with the Focal Shift -100 and DragRect Stroke.
The same technique was used to create a pattern on the metal part of the shoulder piece. The weapons were modeled in ZBrush using ZModeler. And then just like the clothes went through the stage of adding details.
For face details, I used a VFace head from Texturing XYZ. I uploaded my model and the VFace mesh in ZBrush and fit the VFace to my model using the rotation, scale, and move tools.
I launched ZWrap and wrapped it. Here is a video on how to use the plugin. After this step, I cleaned up and polish a few things using layers and morph targets. I usually store a morph target before wrapping so that I can easily get some shapes such as a mouth bag or inner eye area back.
Before applying a displacement map I isolated the red, green, and blue channels of the map in Photoshop to get individual maps with different levels of detail. And after that, I applied the maps in ZBrush, saving the changes on separate layers. Then I slowly started to correct some errors using the Morph Brush. After that, it was really just applying skin details with some custom brushes. I used Daniel Boschung’s high-resolution photos as references for pores and wrinkles.
For texturing and baking maps, I used Substance 3D Painter. To create Base Colour for the skin, I did a lot of hand painting (blemishes, tonal maps, veins, arteries, freckles, and sunspots) to get the desired look. However, I tried to keep the natural look of the skin.
The model was divided into six texture sets: Torso, Weapons, Fabric, Leather, Legs, and Skin.
I used Substance materials as the base for the fabrics, and a dozen layers on top of them to accentuate the shape and add dust, dirt, and damage.
The leather material was created from scratch. I find it very helpful to use anchor points in my workflow.
The groom was made with the XGen. But before creating hair, I was looking for references. And I was lucky enough to find a hairstyle that matched the concept 100%.
I set up several different descriptions to have more control: for the main hair, knots, strands, flyaway, eyelashes, eyebrows, and vellus hair. To separate the main hair into different bands, I painted a region mask.
The knots were first modeled in Maya (I have four different types of knots). Then I converted the edges of the geo to curves. Those curves were then converted to guides using the XGen utility Cuves To Guides.
Once the groom was finalized, the XGen descriptions were converted to interactive grooms and then imported as an alembic cache into UE5.
Using Unreal Engine 5
My goal was to learn how to render a character in Unreal Engine. This was my first time using UE, so the process was a bit confusing. Fortunately, there were many tutorials online that answered most of my questions.
To create the hair material I was following the tutorial by J Hill and Unreal Engine documentation. As a result, I got a shader, that uses linear interpolation to change the hair pigment along the length of the hair.
As for the skin material my idea was to create it from scratch. The tutorial by Nick Rutlinh helped me a lot in understanding the shader workflow. The modular workflow was used here to make iterating on the material a lot faster. The material was divided into different groups to control individual parameters.
I also used a region mask to control different areas of the face. With this mask, I could easily reduce the roughness of a certain area of the face or change the color of the lips.
For the lighting, I used a skylight with custom HDRI and a few more lights – to emphasize the model's skin and hair. I didn’t use the skylight for anything major. I wanted it to add subtle reflections. So I set it to very low intensity. All my lights were set to "movable".
I also downloaded a snow texture from Quixel Megascans and assigned it to a plane. I used an ExponentialHeightFog and Niagara System for snow to create a cinematic effect.
I used a PostProcessVolume to push the final image a little more. I had all the settings set to a very subtle intensity.
The road was long, the path was crooked, and most of the time I felt miserable...
I am joking ;) I was able to finish the project in 12 weeks. In retrospect, a significant part of that time was spent on research and studying solutions for the lookdev side of the project.
The projects like this take a lot of time and effort, and you may have ups and downs at some point. But don’t give up and just keep going. Just keep going! If you're struggling, it means you're learning.
I want to thank my supervisor Jonathan Phillips for his support and feedback throughout the project. And many thanks to the 80 Level team for giving me the opportunity to talk about my project! Don’t give up, it can be rewarding!
You may find these articles interesting