Tutorial — Expression Editor Fundamentals
Augmented Traveler local tutorial. Back to Maya — Tutorials · previous: Tutorial — Obtaining Initial Head DNA · sculpt pass: Tutorial — ZBrush No-Topology-Change Round Trip
The Expression Editor in MetaHuman for Maya changes a head DNA file at the expression level. This tutorial covers the ideas you need before touching a historical figure's face: sessions, modes, the order of work and how to get the result back into Unreal.
Draft. Written from Epic's MetaHuman 5.8 documentation. Validate on the first figure and correct button names here.
1. What it is for (and not for)
| Use it to | Don't use it to |
|---|---|
| Restore likeness details the auto-rig smoothed away (neutral pose) | Fix a large likeness miss. Re-sculpt and resubmit through Mesh to MetaHuman instead |
| Fix interpenetration or unflattering shapes in specific expressions | Rebuild the facial rig by hand |
| Push a figure's characteristic expressions (for example Mitchell's slight asymmetric smile, if the sources support it) | Invent features the sources don't support |
| Adjust skin weights where the face tears or pinches | Edit body DNA or joints-only rigs (not supported) |
Limit: very different morphologies (for example extra eyes or mouths) are not supported. That doesn't affect us.
2. Two words you must keep apart
- Scene. What Maya shows: the objects in the Outliner and the viewport.
- Session. A Maya instance with an open Expression Editor that has loaded a DNA file. It holds session data: a copy of the DNA in memory.
The golden rule: editing the scene does not change the DNA. You must update the DNA, which writes the scene into the DNA in memory. Exporting writes the DNA in memory, as it was at the last update, not what you see in the viewport.
This split exists because some operations (spreading changes to all LODs, automatic joint matching) take seconds to minutes.
3. The three editing modes
| Mode | Holds | Key facts |
|---|---|---|
| Neutral Pose | Vertex and joint positions at rest (the bind pose) | Work on LOD0 only and let the plugin spread changes to lower LODs |
| Skin Weights | How each vertex follows joints | Each LOD has its own weights. Maximum influences per vertex: 12 (LOD0–2), 8 (LOD3–5), 4 (LOD6–7) |
| Expression Poses | Each expression as joint animation plus per-vertex displacement | Edited through a graph of expressions, in tier order (below) |
4. The order of work
Each step builds on the ones before it, so work in this order:
- Get the starting DNA. See Tutorial — Obtaining Initial Head DNA.
- Get the best neutral pose.
- Check skin weights and adjust them where needed.
- Edit expression poses.
- Export for MetaHuman Creator and/or Unreal.
Going back to the neutral after editing expressions can undo earlier expression work. If you must, re-check every expression you edited.
5. Neutral Pose editing
- Switch the editor to Neutral Pose mode and select LOD0.
- Change the head shape, either directly in Maya or from a ZBrush sculpt:
- Directly: edit the LOD0 mesh in the scene.
- From a sculpt: import the sculpted mesh, which must have the same topology and vertex order (Tutorial — ZBrush No-Topology-Change Round Trip). Select the LOD0 mesh first, then the sculpt, and click Transfer Vertices.
- Click Update Vertices in the toolbar. This writes the scene to the DNA in memory and moves the surface joints and some volume joints to fit the new shape.
- Leave surface joints to automation. Place volume joints (eyes, mouth) by hand only if you moved the eyes or mouth.
- Save with automatic LOD spreading, then reload the DNA so the copy in memory matches.
6. Expression Poses: the graph and the tiers
Expressions sit in a graph. Edit them from the top tier down:
| Tier | What it is | Order |
|---|---|---|
| Primary | The most important single expressions | Edit first |
| Secondary | Combinations of primaries | Next |
| Tertiary | Shallow combinations | Rarely |
| Isolated | Independent sub-graphs | As needed |
| Tweaker | Technical fixes | Last |
Selecting: click or drag-select nodes. Right-click → Select Upstream Nodes / Select Downstream Nodes / Select Upstream and Downstream, to see what a change will affect.
Checking:
- Frame Analysis scrubs the timeline to show which expressions contribute on a frame.
- Preview Selected Node shows one expression by itself.
Utility toolbar:
| Group | Commands |
|---|---|
| Mirror | Toggle active side · Mirror vertex positions · Mirror joint transforms |
| Flip | Flip Vertices · Flip Joints |
| Mesh utilities | Transfer Vertex Positions · Delete History |
| Revert | Back to the neutral, or back to the DNA as loaded |
| Copy / paste | Joint transforms |
| Joint matching | Machine-learning joint matching |
Symmetry: historical faces are not perfectly symmetrical. Mirror only when the neutral is symmetrical at that spot. Otherwise edit each side and record why in the likeness log.
7. Likeness level: MH1 for our figures
- MH1: only the neutral is calibrated. The other expressions are estimated from the MetaHuman database. This is our default, because historical figures cannot be scanned making expressions.
- MH12 / MH50: these need scans of a real person making 12 or 50 expressions. Use them only with an actor whose contract covers blending their expressions into a historical face (MetaHuman for Maya — Considerations).
8. Getting the result out
| Destination | How | Caveat |
|---|---|---|
| MetaHuman Creator (to keep editing skin, eyes and grooms) | Creator → Head → Conform → Import DNA → turn on Import Whole Rig → Import | The Head tools are then locked for that character. Removing the rig or making a new one loses the Expression Editor edits |
| Unreal directly (FBX + DNA) | Export from the Expression Editor: Z-up (default) or Y-up; provide the body DNA or a compatible Maya .ma file | This DNA works with RigLogic but not with the Expression Editor or Creator. Keep both files |
Importing into Unreal:
- Drag the DNA into the Content Browser and choose MetaHuman Compatible. It converts to Left, Down, Front.
- On the FBX import, set Normal Import Method as Epic's page shows, turn on tangent updates and Skin Cache, and check the Skinning project settings.
- To re-import changed DNA on an existing character: right-click the skeletal mesh → MetaHuman DNA → Import DNA Asset.
- 5.8 warning: do not delete the old DNA asset first. Doing so breaks the rig without any error message.
9. Practice exercise (before touching a real figure)
- Load a test MetaHuman's DNA.
- In Neutral Pose, push the cheekbones out slightly. Transfer the vertices, then click Update Vertices.
- Save with LOD spreading and reload.
- In Expression Poses, find the smile primary and remove any lip-into-teeth interpenetration.
- Export to Creator and check that the edits survive.
- Record every step and snag here, and correct this tutorial.
Sources
- Epic, Expression Editor: https://dev.epicgames.com/documentation/en-us/metahuman/expression-editor
- Epic, Fundamentals (session, scene, session data): https://dev.epicgames.com/documentation/en-us/metahuman/fundamentals
- Epic, UX Overview: https://dev.epicgames.com/documentation/en-us/metahuman/ux-overview
- Epic, Workflow Overview: https://dev.epicgames.com/documentation/metahuman/workflow-overview?lang=en-US
- Epic, Editing Modes: https://dev.epicgames.com/documentation/metahuman/editing-modes?lang=en-US
- Epic, Neutral Pose: https://dev.epicgames.com/documentation/metahuman/neutral-pose?lang=en-US
- Epic, Expression Poses Editing: https://dev.epicgames.com/documentation/metahuman/expression-poses-editing?lang=en-US
- Epic, Saving and Exporting Data: https://dev.epicgames.com/documentation/en-us/metahuman/saving-and-exporting-data
- Epic, Working with DNA on a Customized MetaHuman (5.8): https://dev.epicgames.com/documentation/metahuman/working-with-dna-on-a-customized-metahuman-in-unreal-engine?lang=en-US
- Full list: Sources — 2026-09-19