Texturing Characters for Games
A character is the most demanding object in the texture pipeline. The player looks at it constantly, at close range, from different angles. Any material error is immediately visible. Skin that doesn't diffuse light correctly looks plastic. Fabric with incorrect roughness looks like foil. Metal without edge wear looks like it came from a store, not from combat.
Texturing characters is not "make it look nice," it's solving a specific set of technical tasks.
Skin: Why It's the Most Complex Material
Human skin is a dielectric with Subsurface Scattering. This means light doesn't reflect from the surface like from metal — it penetrates several millimeters inside, scatters and exits back with changed color. On ears, fingers, nose wings this is clearly visible: when backlit they glow reddish.
For correct skin in a PBR pipeline you need a minimum of three things:
Correct Albedo. Skin in albedo should have a sufficiently saturated hue — its base color is darker than it appears under final lighting. Mistake: artists make albedo too light, compensating for the fact that SSS will add brightness. As a result, with SSS enabled, skin is overexposed. Good skin has roughness in the range of 0.55–0.75 (pores increase roughness), metallic = 0, albedo in the range of 160–200 on RGB for light skin.
Subsurface Scattering map. In Unity HDRP this is Subsurface Mask in the Lit Shader — white = maximum SSS, black = no scattering. Ears, nose, fingers — brighter. Forehead, cheeks — medium values. Back of head under hair — almost black. In Unreal Engine 5 for skin a Subsurface Profile asset is used with Scatter Radius parameters and separate values for three layers (epidermis, dermis, subcutaneous fat).
Detail Normal Map for pores. The overall Normal Map of a character works at macro level — muscle transitions, large wrinkles. Pores and fine skin texture are a separate tileable Detail Normal that is applied on top via Tiling UV (scale x10–x20 from the base). Without it, the face looks molded from plastic regardless of SSS.
Clothing and Armor: Layer Approach
A character rarely consists of one material. Standard set: skin, fabric, metal, leather belt, wooden hilt, glass visor. Each type requires its own values and approach in Substance Painter.
Work with a multi-material character is built through an ID Map — a texture where each material is painted with a separate pure color. In Substance Painter this allows assigning a Fill Layer with an ID mask to each material and working with them independently. Without an ID Map the artist works with manual masks — slow and with risk of losing masks when the mesh changes.
For fabric it's critically important to get the Roughness range right. Coarse wool — roughness 0.85–0.9. Silk — 0.3–0.45. Denim — 0.75–0.8. Typical mistake: artist makes fabric with roughness 0.6 — neither coarse nor smooth, just matte plastic.
Metal on a character is almost never new metal. Edge wear on edges via Curvature Generator (high metallic 0.95, low roughness 0.2), scratch pattern on flat surfaces via Anisotropy map, rust or corrosion via AO Generator in crevices. Layered approach in Substance Painter: base metal → scratches → edge wear → rust/dirt → final adjustments.
Working with Hair and Transparency
Hair is a separate challenge. Proper hair in real-time is alpha-clipped planes (hair cards) with properly configured Anisotropic Specular. In Unity HDRP hair requires a material with Hair Shader — it has Azimuthal Roughness and Longitudinal Roughness parameters for Marschner Model. In Unreal — Hair Shader with Backlit parameter for translucency.
Texture for hair cards: Albedo with alpha channel (transparency at strand edges), Normal Map for strand volume, Root-to-Tip Gradient (for Anisotropic Shift). Alpha mask quality is critical: rough edges turn hair into cardboard strips. Therefore, alpha in hair textures is stored in a separate channel, and when exporting 16-bit is used to preserve smoothness.
Character Texture Pipeline
In practice the process looks like this: get a mesh with UV unwrap, check texel density (for a hero character this is minimum 512 px/m), set up Baker Groups in Substance Painter for anatomical zones, bake Normal/AO/Curvature/ID. Next — work by zones: first base materials via Smart Materials, then manual refinement, then detail passes (dirt, scratches, wear), final checks in different lighting conditions.
| Task Scale | Estimated Timeline |
|---|---|
| NPC / background character (body + clothing) | 4–8 days |
| Main character without facial animation | 8–15 days |
| Hero character with full facial setup | 15–25 days |
| Creature / monster with organic geometry | 10–20 days |
Material checking is a mandatory step before submission. A character is run through several standard light situations: HDR studio lighting, overcast outdoor, harsh side light, night scene with point sources. A material that looks good only under one light is not ready.
Cost is calculated after analyzing the mesh, UV unwrap and technical project requirements.





