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

Sculpting a Unique Character with a Dark & Mystical Aesthetic

Ana Callahan shared a breakdown of how she created The Oracle, explaining how the body proportions were sculpted, how the hair was created, and how the body paint was textured.

Introduction

Hello everyone! I'm Ana, a 3D Character Artist and a recent graduate from the Think Tank Training Center. Before Think Tank, I spent nearly five years as a Project Manager in game development outsourcing. I enjoyed the work and the variety of clients with studios of all sizes, including AAA projects, but over time, admittedly, it was hard being so close to the creative process without actually touching it directly.

As I organized art production for countless projects, I kept finding myself peeking over the shoulders of concept and 3D Artists, fascinated by what they were making and why they made the choices that they did as they worked. So I took the leap and left management behind and enrolled at Think Tank to become an artist myself.

The Oracle Project

For my first full character after graduating from Think Tank, I knew I wanted to sharpen my anatomy skills and push myself out of my comfort zone with texturing. So I started looking for a concept that would force me to do both. Pagan culture has always been a big inspiration for me. I love sculpting rough, worn elements combined with organic materials.

When I discovered the concept by the amazing artist Kaija Saaremäel for the game Ryse: Son of Rome, it checked all the boxes I was looking for. The character had a lot of exposed skin, which meant I couldn't hide from anatomy, and the complex body paint gave me exactly the texturing challenge I was looking for. It also helped that the concept included a back view and color samples, which is a rare luxury for 3D artists.

Usually, remaking a character from an existing game isn't the best portfolio move. But since the Ryse is over 12 years old, I saw an opportunity to create a "2025 version" and push past the technical limitations of the original. I also decided to interpret the character as male to give it a personal touch, which felt natural given the design.

Modeling

As Metahuman continues to get powerful updates, we're seeing more and more impressive characters both across ArtStation and in new games, but I think as a community we're also starting to recognize a particular "MetaHuman look". For this project, I wanted to tap into the technical benefits the system offers, but the challenge I set out for myself was to, at the same time, push the visual style as far from that overly familiar look as possible.

Starting with a MetaHuman base gives you a head start on proportions, but that head start can also be deceiving, as you have to constantly remind yourself to remember the difference between a body that simply "looks good" and one that looks right for your concept. In my case, my goal was to transform a healthy, anatomically correct body into something disturbingly thin, which meant it was quite an evolution.

The emaciated look of the concept required precision with bone landmarks and figuring out how to add muscle definition that doesn't exist on the average base body. In prior versions of Unreal before 5.6, working with this pipeline was more restrictive because I was limited to maintaining the original pose, and changing proportions required special plugins to keep access to the MetaHuman rig.

Upgrading to 5.6 for this project gave me much more freedom, where I could sculpt heavily over the mesh and adjust proportions like longer limbs and fingers, even if just subtly.

For the clothing and accessories, I had a goal of pushing everything towards a rough, barbarian look to do the concept justice. The leather and fabric were quite straightforward, but the rope was the real test I came to realize. Knots are notoriously hard to sculpt, and no tool simply ties them for you, so you have to build them by hand and work to make them convincing.

I started by placing temporary spheres at every knot position, creating curves around them, then deleting the spheres and manually adjusting each loop to match the knot concept. For the ropes wrapping around the body and the complex back knots, I mostly used ZSpheres, which gave me the most control over the curves.

The leather was more about surface storytelling. I almost always use border brushes, even when the concept doesn't explicitly call for it. In my experience, they help to add instant volume and edge variation, which was especially useful here since the concept has a lot of flat white areas that needed a bit more visual interest.

The biggest lesson from this area of the project was to break up perfection. To accomplish that, after placing all the elements and borders, I used the Slash brush and Dam Standard to beat up the edges so the gear actually looked worn.

I used FiberShop to generate the clumps, but made a specific choice to keep the maps in grayscale. It might seem odd to skip color, but Grayscale maps are much lighter on memory than RGB. Plus, it lets you tweak hair color directly in Unreal Engine instead of regenerating textures for every small adjustment.

For placement, I used the GS Curve Tool in Maya. The non-destructive workflow meant I could keep adjusting without starting over, and the layer organization made it easy to manage the different hair sections.

Since the character wears a large headpiece, and I planned to only present the character with it equipped, I was able to save polygons by only building the visible layers around it. Additionally, by dropping subdivision on the curves and adding edges only where the hair actually curled, I cut the geometry from 17,090 tris down to 9,407 (making the asset lighter and game-ready).

Retopology

When it came time for retopology and UVs, I used Maya for retopo and unwrapping and Marmoset Toolbag for baking. One major advantage of using a MetaHuman base was that I didn't need to retopologize the face and body from scratch. That said, while MetaHuman is known for top-quality topology, the default settings are too dense for strict game budgets.

Since one of my goals for this project was finding the right balance between visual fidelity and game readiness, I took advantage of the pre-made UVs and LODs and went with lighter alternatives instead of the base LOD0. To keep the head and body aligned in topology density after stepping down from LOD0, I selected LOD1 for the body and LOD2 for the face. This brought my character's body from 108,820 tris for a typical MetaHuman body down to just 27,146 tris.

The headpiece consists of many overlapping leather straps, so keeping them all as separate objects would have created a mess of tiny UV islands and led to wasted texture space padding. To avoid this, I merged the straps, horns, and headbands into a single continuous mesh wherever possible, which made for much tighter UV packing.

I took the opposite approach with the rope. Because it's such a prominent visual element, I couldn't afford to lose the natural shadows, and separation between strands and merging would have flattened the look. So I kept the tubes as separate geometries and only merged the knots. It was a tradeoff, but it gave me the quality I wanted while keeping all of the clothing and accessories around 32k tris.

Texturing

The first challenge of the texturing phase was the separation of materials. The character design has a white skirt, a white leather corset, and white body paint. But having three elements of the same color touching each other often causes a flat, unreadable image, which meant I had to find clever ways to separate them.

I added a dark wrap on the edge of the corset that evolved the original concept, but it provided a necessary dark border to visually break up the white shapes. For the white fabric of the skirt, I darkened it significantly, making it much dirtier than the leather, and added hue breakups using adjustment layers with black and white masks to further make these areas distinct from each other.

The body paint was the unique challenge of this project. Since the base is essentially white clay, I focused on capturing the physical properties of drying earth, for example, with wet versus dry spots, uneven Height maps, and peeling in high-movement areas.

All my paint and ornament layers were packed into a folder that used a mask containing all the cracks and peels. I used photos of cracked paint on walls and converted them into alphas to create realistic transitions between the skin and the paint. In places where the body would deform the most, I layered additional alphas to achieve that organic peeling effect.

For the skin, I took a slightly accelerated approach to balance input vs. impact. While custom skin projection and sculpting definitely yield higher quality, this particular concept is heavily covered in body paint, dirt, and blood, which means that the underlying skin and pores are barely visible.

Because of that, I felt comfortable leveraging the default MetaHuman albedo and normal maps as a foundation to build on. To ensure the character worked seamlessly with the default MetaHuman shaders in Unreal, I opted for separate texture sets instead of converting to UDIMs.

The downside to this decision was that my tri-planar projections didn't line up perfectly across the neck. After more experimentation and troubleshooting than I’d like to admit, I created a separate folder on top of my main paint material specifically for the seam.

I used a mask with a planar projection and a specific offset, then copied that exact offset to the other material and repeated it for all channels. Once the projection was aligned on both textures, I painted the mask to blend the transition, making the seam invisible.

MetaHuman Implementation

The engine implementation is where the MetaHuman pipeline naturally pays off the most. Because UE 5.6 now handles the mesh-to-rig mapping so smoothly compared to past versions I was familiar with in UE 5.5 and earlier, I was now able to jump straight into the artistic side instead of fighting with external plugins.

Getting access to such a detailed control rig is an extremely rewarding moment, and it was incredibly satisfying to create expressive shots and tell the Oracle's story in such a highly responsive, iterative environment.

Physics Implementation

Interacting with my character inside of Unreal inspired me to also add some life to the strings hanging from the horn, as well as the hair, to make them more flexible during the posing process. I created simple bone chains for the hanging elements and used Animation Blueprints with the AnimDynamic node.

This node provides access to a simple physics-like simulation that is very cheap in performance, but it turns out to yield amazing results. I could rotate the head and change the pose as much as I wanted, and the strings and hair would settle naturally without manual posing.

Lighting & Post-Production

For the lighting, I wanted to place the Oracle "in-world" rather than in a studio environment. I built a simple forest background with a full-moon skylight and heavily made use of volumetric fog. Since I was rendering with Path Tracing, the fog worked perfectly to soften the light and blend the background trees, helping the character's silhouette pop.

Unreal has a great feature that lets you choose exactly which lights influence the volumetrics, which meant I was able to assemble a classic 3-point setup to light the character without the fog getting overwhelmed by the rim light. The only extra addition was a pair of tiny lights specifically for the eyes to catch that vital reflection that always makes a character stand out more.

Post-production in my case, was fairly minimal by design as I wanted to achieve everything in Unreal as much as possible. The only things I did after the final render were cropping, adding a light touch of film grain in Lightroom, and highlighting the catchlight reflections in the eyes a bit more. I wanted to keep these subtle, though I feel even these slight tweaks made the renders feel more alive, grounded, and less like an overly flawless 3D render.

Conclusion

I faced quite a few challenges on this project, but the hardest was definitely the anatomy, as I expected and hoped for with my concept choice. Sculpting a face and body is never easy, but on an extremely skinny character, there is nowhere to hide because every mistake is obvious.

Much of the time, this means returning to basics, checking references constantly, and sculpting tiny regions one by one until they look correct. But I've also found that it can lead you into a spiral of guessing (and second-guessing) yourself, with there always being another region to refine or another detail that isn't quite right.

To combat this, I had to unlearn the beginner mindset of wanting to perfect everything in ZBrush or Maya before bringing it into the engine, where I'd treat that as one big reveal or payoff that I was waiting to be ready for. The truth is, no matter whether this is your first or tenth character (in my case, fourth), there will never be a "done" checkmark that appears at the top of your viewport.

So with this project, I avoided that loop by bringing my character into UE5 as early as possible, even at its roughest stage. Fortunately, since the topology and UVs were already set thanks to this pipeline, switching between ZBrush and Unreal was seamless, and the engine was able to become another helpful context for seeing my work in, rather than an output destination.

My advice for Beginners (and the Ana of two years ago): Trust the process, even when progress feels slow. Return to basics when you're stuck. And get your work into context early because the viewport in your ZBrush will never tell you the full story.

Ana Callahan, 3D Character Artist

Interview conducted by Gloria Levine

Ready to grow your game’s revenue?
Talk to us

Comments

0

arrow
Type your comment here
Leave Comment
Ready to grow your game’s revenue?
Talk to us

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more