banner
augustbelhaha.bsky.social
@augustbelhaha.bsky.social
Lead Character Tech Artist at Spry Fox working on Spirit Crossing! 🦊✨ (Previously Cozy Grove, Steambird's Alliance, Minecraft)

🏳️‍🌈 augustbelhumeur.com 🏳️‍⚧️
(The real kicker is that Unreal and Maya see 0,0 as different locations on the UV grid, so the texture coordinate numbers in Maya on the texture sheet are always reversed on the V axis, but the attribute buttons and values on the bones match what Unreal wants.🙃Ridiculous lol)
February 4, 2026 at 12:48 AM
If you're curious, here's what the custom attributes look like in Maya. The attribute changes the UV values of the texture sheet, but also adds the values to the bones when keyframed so it gets included in the FBX export.
February 4, 2026 at 12:48 AM
Making players for a mobile MMO means performance is top of mind! 100 players at a dance party cannot require loading hundreds of face textures, so face textures are shared, loading the same ones for everyone. There are always trade-offs and choices to make in this regard!
February 3, 2026 at 11:49 PM
And players have a choice of different textures to add to their face, like blush, freckles, age lines, etc. NPC's use similar textures to communicate story (are they older? sick? tired?) They all have subtle shadows on their noses, which is purely a stylistic choice!
February 3, 2026 at 11:49 PM
Faces have all kinds of small details, like texture sheets next to modeled eyebrows that add creases and furrows to let us push expressions further. Angry *feels* more angry with the extra tension lines. 😡
February 3, 2026 at 11:49 PM
👁️👄👁️ Eyes and mouths are on individual geometry planes skinned to eye/mouth bones, allowing animators to translate/scale (and squash/stretch) face elements for more expression. Our characters are emotive and cartoony in ways that we also accentuate with VFX!
February 3, 2026 at 11:49 PM
The faces themselves are 2D texture grids that get keyframed using custom attributes on the rig that change the UV coordinate values of the texture. The values export on face bones and become curves in each animation in UE5 that changes the corresponding parameter in the material instance.
February 3, 2026 at 11:49 PM
...but still iterated on each expression and the exact style over time. It reminds me of this page from Scott McCloud's "Understanding Comics". This wasn't *why* we chose dot-eyes, but we do hope our players can see themselves in the avatar they create and stylization can help w/ inclusive design.
February 3, 2026 at 11:49 PM
Yes! All of our shaders are custom and made in Unreal.
January 23, 2026 at 10:34 PM
Thanks! ☺️
January 23, 2026 at 8:06 PM
In my next thread, I'll go over more of how our character's faces are made! Let me know if there's something else you're curious about and maybe I'll make a thread about it in the future. 😊
January 23, 2026 at 7:53 PM
On characters, we customize normals beyond soft/hard edges. This is key for faces, so they don't have weird jagged shadows across low geo surfaces, like a cheek. Normals facing up get full light and smoothed normals facing down get a rounded shadow (at the jaw, under the nose for some heads, etc.)
January 23, 2026 at 7:53 PM
This also means that some elements are fully modeled in, when you might not expect it. Where other games might choose to use a normal map for tiny details, we use geometry, for the linework. We actually use a lot fewer textures than you might expect overall, but that's a post for later.
January 23, 2026 at 7:53 PM
To look more "hand-drawn", interior hard edges may get a couple soft edges to break the line, so the line isn't solid and has moments to rest. This isn't dissimilar from line breaks in Cozy Grove (which *was* actually entirely hand drawn). It also helps reduce feeling visually noisy.
January 23, 2026 at 7:53 PM