Tutorial — Baking Detail Maps for MetaHuman
Augmented Traveler local tutorial. Back to ZBrush — Tutorials · previous: Tutorial — Flat Albedo from Polypaint
How to bake fine skin detail from the high subdivision levels of the round-trip tool into normal and cavity maps. You then load these into MetaHuman Creator's Texture Override. Pores, fine wrinkles, small scars and age texture belong here, not in the rig mesh.
Draft. Validate on the first texture pass and correct menu names here.
1. Which maps
| Map | Used by | Format |
|---|---|---|
| Normal (tangent space) | Creator Texture Override: Face / Body Normal | 8-bit PNG or TGA, linear (non-colour), green channel flipped for Unreal (DirectX) |
| Cavity | Creator Texture Override: Face / Body Cavity | 8-bit (or 16-bit) greyscale, linear |
| Displacement | Not used by real-time MetaHumans; keep it for stills and archive | 32-bit EXR |
| Animated maps (expression wrinkles) | Creator Face Animated maps | Not in scope yet. Keep MetaHuman's defaults until a figure needs custom wrinkle maps |
2. Prerequisites
- The round-trip tool:
- MetaHuman topology and UVs;
- level 1 identical to the calibrated neutral;
- higher levels for detail (Tutorial — ZBrush No-Topology-Change Round Trip).
- Enough subdivision for pores: usually 5–6 levels on the head.
- The neutral is final. Maps baked on an earlier neutral will drift.
3. Sculpt the detail
- Sculpt on its own layers:
detail_pores;detail_wrinkles_static(lines present at rest, at the figure's age);detail_marks(documented scars and moles).
- Pores: use skin alphas at the top level with low intensity, varied by region (larger on the nose and cheeks, finer on the eyelids).
- Static wrinkles follow the figure's age and the evidence (crow's feet, forehead lines).
- Expression wrinkles that appear only when moving belong in animated maps, not here.
- Stay subtle. The kiosk display shows the face life-size, so overdone pores read as disease.
4. Bake with the Multi Map Exporter
- Open ZPlugin → Multi Map Exporter.
- Settings:
| Setting | Value |
|---|---|
| Normal Map | On, Tangent |
| Flip G | On for Unreal (DirectX). Check against a known map on the first bake |
| Flip V | On (usually needed for Unreal); check with a test |
| Cavity Map | On |
| Displacement Map | Optional; 32-bit EXR for archive |
| SmoothUV | Match how the base was subdivided; test both on the first bake |
| Map size | 4096 or 8192, matching Creator's texture resolution |
| Border (padding) | 8–16 pixels |
| Base level | Subdivision level 1 (the rig mesh) |
- Export:
T_<Figure>_Head_Normal_v###.pngandT_<Figure>_Head_Cavity_v###.png. Do the same for the body if needed.
5. Into Unreal and Creator
- Import the normal map with compression Normalmap and sRGB off. Import the cavity map as greyscale with sRGB off.
- In MetaHuman Creator, open Skin → Texture Override and set Face → Normal and Face → Cavity, or the Body equivalents.
- Look-dev check:
- kiosk lighting at life-size;
- the Quest build at arm's length;
- a raking light for seams around the ears, neck and hairline.
- If the detail looks inside-out (pores raised instead of recessed), the green channel is flipped the wrong way. Re-export with Flip G toggled.
6. Check
Sources
- Novedge, ZBrush map export bit-depth best practices: https://novedge.com/blogs/design-news/zbrush-tip-zbrush-map-export-bit-depth-best-practices-for-games-and-vfx
- Epic, Skin Material Tools (Texture Override: base colour, normal, cavity, animated maps): https://dev.epicgames.com/documentation/metahuman/skin-material-tools?lang=en-US
- Epic, MetaHuman 5.8 release notes: https://dev.epicgames.com/documentation/metahuman/metahuman-5-8-release-notes-in-unreal-engine?lang=en-US
- Full list: Sources — 2026-09-19