ladder8
Writing & work

Project note

I just wanted 3D characters... The Sequel.

I wanted enough customizable characters to fill a city. First, I had to get one woman's face to survive a smile.

Wren, a working character-head study. Eleven seconds, silent.

In one of the first builds, I played a conversation animation and watched a woman’s lower lip climb above her upper lip, almost to her nose. It was hilariously bad. I wish I still had an image of it.

She looked like Popeye.

That’s about how this project went for a while. Get excited about a face. Start rotating it, find something horribly wrong. Fix that, ask her to smile, and discover a completely different problem.

I still need characters for my game, by the way. Ideally a whole city of them. Somewhere along the way I became extremely interested in eyelids.

Coming out of Figurework

If you read my Figurework article, this is the follow-up I mentioned.

I spent the better part of a month in that editor. Exploring different topologies, trying different things. Trying to learn how to paint.

I came out of it knowing two things:

  1. I didn’t know how to paint.
  2. I needed more horsepower.

What I really wanted was to take a two-dimensional image, or a series of them, and use it as the basis for a 3D model. Much easier than learning to paint, and with MHR and MakeHuman sitting in the background I already had a starting point. What if I could make a parametric human that absorbed the measurements of the art?

I also didn’t want to spend a fortune on Meshy generating giant models. That runs against my whole “let’s keep this cheap, keep the world green for my daughter” motto from a previous article.

That turned out to be a much easier lift than I expected. Animation was the trick.

Figurework isn’t dead, by the way. It still has a future for the fine-tuning piece and the workflow automation. It just stopped being the place where characters get made.

What I’m actually building

The goal is a configurable cast for an RPG I’m building in Godot. It needs different faces, ages, body types, hair and facial hair. People who can wear different clothes, put armor over those clothes, equip gloves or a helmet, and still look like they belong there.

Originally I imagined generating characters and turning them into sprites, creating the illusion of a 3D person while keeping an illustrated look. The work has obviously moved into 3D, but I still want the personality of the painting. A technically correct human with the wrong face or a generic finish doesn’t hit the target.

The character in the current study is Wren. Her proportions, coloring and scar make her who she is. Keeping the scar while changing the shape of her eyes doesn’t necessarily preserve her. Neither does getting the front of her face right while the rest of her head looks like it belongs to someone else.

That last one was an actual problem, and from the research I’d done online, it’s the common problem with these kinds of things. From the front, we had a detailed painted face. Turn her sideways and the skin could change character completely. There were awkward joins around the nose and jaw, mismatched tones, and little bits of paint showing up where they had no business being.

Cleaning those up gave me problems. A smoother result could also be a less interesting one. Painted detail would disappear right along with the defect. Once that detail is gone, sharpening it or putting a pixel effect over it isn’t going to give the character back.

Then there’s the eyes

The thing I spent the most time trying to get right, and I’m still tuning it. A painted eye can look beautiful straight on. Start closing the eyelid, though, and you find out whether you have an eye that can blink or an image that can be squashed.

I want control over the iris, pupil, whites and the little painted highlights, while keeping the eye seated properly behind its lids. Those highlights also need to make sense as the lighting changes. A convincing effect has to survive the side view, the blink and the next expression. I don’t have it fully there yet, but we’re close.

Eyebrows fell into this a bit too. At one point I had them as separate geometry and they still looked painted on. The surface was raised so slightly that the texture did almost all the visible work. Fine raised structure helped, and gave the brows something for the camera and the light to catch. Go too thick and they immediately look worse. There’s a pretty small gap between a useful detail and a terrible eyebrow.

Then there was the smile

A smile in concept art carries information well beyond the corners of the mouth. The cheeks rise. The eyes change shape. Small folds appear around them. Dimples or creases change the surface around the mouth. If the model only stretches its lips, it can hit something that looks like a “smile” without looking anything like the drawing.

That pushed the work toward treating expression as a combination of shape and artwork. Geometry needs to support the cheek and mouth movement; the paint contributes the finer cues. Both have to agree about what the face is doing. The transitions matter too, because a game spends plenty of time between the poses on a comparison sheet.

Lighting adds another complication. The painting already contains an artist’s decisions about light and shadow. Add another light in 3D and those decisions can fight each other. Changing the light became a useful test of whether the character held together at all. It also became one of my favorite parts of the demo.

The shape of the pipeline

At a high level, this is what it runs through:

  1. Establish the character from the artwork. Keep a clear reference for identity, proportions, palette and the details that make this person recognizable.
  2. Prepare a usable 3D foundation. The surface needs to support the intended shape, viewpoints and expressions.
  3. Carry the painted appearance around the character. The face, sides and surrounding surfaces need to read as one person, while retaining the character of the source imagery.
  4. Give the features the behavior they need. Eyes, lids, mouth, brows and lashes need to work together through expression and movement.
  5. Check the result under motion and light. Inspect the ordinary views and the awkward ones, including transitions where attachments or shading can fail.
  6. Package a repeatable result. Keep the useful decisions in the tools so the next character can use the same process.

For the Adobe-centered version of this workflow, Adobe Firefly is the starting point for concept exploration and reference imagery. Firefly provides access to Adobe and partner image models, which gives that creative stage room to evolve. The reference still has to carry a recognizable character into everything that follows. Adobe’s partner-model overview describes the available options.

Adobe Substance 3D Designer has already been part of the material experiments, including work on skin color and texture continuity. Its procedural material workflow fits the broader aim: material decisions that can be adjusted and reused across a cast. Those experiments also reinforced how much the source artwork matters. Getting two areas closer in color doesn’t automatically make their brushwork belong together.

Less intervention every time

AI has helped with artwork exploration and with building the tools, but my goal is to need less of it as this matures. I don’t want every new character to require another long conversation with a model, another round of manual repairs and another person staring at the side of a head.

That’s the same argument as Pay the Model Once. Once a repeatable decision can be expressed in code, I want to keep it there. Selected creative work can still benefit from AI. The routine assembly and checks should become predictable, and unchanged work should be reusable. Getting a better result for one character is useful. Making that improvement available to the next character is the part that turns it into a tool.

The review process has to be equally practical. Automated checks can catch broken deformation, intersections and export problems. They cannot tell me that Wren has started looking like a different woman. I still rotate the head, inspect the expressions and look at the rendered frames. A passing check and a good-looking character are two different pieces of evidence.

The video at the top of this article is the current head study. It’s a Blender render: one character, including in the panel layout, with different expressions, head movement and changing light. The head assets have also been inspected in Godot, which gives me useful engine evidence, but a polished render is still a different milestone from a finished character running around inside the game.

Where it is now

There’s more to do. Scalp hair is still missing. The broader body and equipment system needs to come together, and the process needs to prove itself across different identities. Performance and levels of detail need attention as well. I’m not at “upload any image and get a finished game character” yet.

What I have is a much more useful head, a clearer understanding of what keeps breaking, and more of the repair and validation work captured in reusable tooling. The next test is getting that to hold across a cast. I cannot populate a city by spending this much time on every pair of eyebrows.

I work at Adobe. This is a personal project, and the views here are my own.