Step-by-Step
Open the plugin in Tools > MetaHuman > MetaHuman Optimizer and select the Face Optimizer tab (the first one).

1. Select your source face mesh(es)
In the content browser navigate to your MetaHuman face skeletal mesh, select it and click on Add Selected. Typically this asset is named SKM_<CharacterName>_FaceMesh and you will find it under /MetaHumans/Creator/<CharacterName>/Face/. You can also select and add multiple faces at once for batch processing.
Note
If you haven't already, please check the MetaHuman Settings guide to know how to assemble your source mesh and get the best results.
2. Check the ARKit animation sequence
The ARKit animation field is pre-filled with the default path:
/Game/MetaHumans/Common/Face/ARKit/AS_MetaHuman_ARKit_Mapping
You normally never need to change this. If it shows as missing, check that the required MetaHuman plugins are enabled (see Requirements).
3. Set the export directory
Use the Browse button to pick a folder on disk, or type a path directly. This directory will be the root export folder, and the plugin will automatically create one subfolder per character inside of it.
4. Select LODs
After adding a source mesh, the available LODs will show up as checkboxes. The LOD you want depends on how you assembled the character. If you followed our recommended assembly settings (Optimized/High) the sweet spot is LOD1.
Tip
You can select one LOD or several to export here, as our Blender script supports importing and merging several LODs in one go. Also see MetaHuman Settings for a full breakdown of which LOD to use for each assembly setting.
5. Overwrite Existing
Controls what happens if OBJ files already exist at the output path. When enabled (default), existing files are overwritten. When disabled, they are moved to a /Conflicts/ subfolder before the new files are written.
6. Click "Bake ARKit Poses"
The editor will freeze briefly while the plugin spawns a temporary actor, runs through all 52 pose frames, captures the CPU-skinned vertices at each frame, and writes the OBJ files.
Note
The freeze typically lasts 8~10 seconds per mesh, depending on vertex count and machine speed. The operation runs synchronously, do not force-close the editor.
Output Files
For each mesh and each selected LOD, the plugin writes a subfolder containing:
| File | What it is |
|---|---|
Neutral.obj |
Neutral pose: becomes the Basis shape key in Blender |
EyeBlinkLeft.obj … TongueOut.obj |
The 52 ARKit expression poses, one file each |
_uv_channels.txt |
UV channel metadata (used by import script) |
Total: 53 OBJ files + 1 sidecar per LOD.
Naming Convention
Pose files are named exactly after their ARKit blendshape name, and a _LOD{N} suffix is added if you selected more than one LOD.
EyeBlinkLeft_LOD0.obj
JawOpen_LOD0.obj
MouthSmileLeft_LOD0.obj
...
The full list of 52 pose names:
EyeBlinkLeft, EyeLookDownLeft, EyeLookInLeft, EyeLookOutLeft,
EyeLookUpLeft, EyeSquintLeft, EyeWideLeft, EyeBlinkRight,
EyeLookDownRight, EyeLookInRight, EyeLookOutRight, EyeLookUpRight,
EyeSquintRight, EyeWideRight, JawForward, JawLeft, JawRight,
JawOpen, MouthClose, MouthFunnel, MouthPucker, MouthLeft,
MouthRight, MouthSmileLeft, MouthSmileRight, MouthFrownLeft,
MouthFrownRight, MouthDimpleLeft, MouthDimpleRight,
MouthStretchLeft, MouthStretchRight, MouthRollLower,
MouthRollUpper, MouthShrugLower, MouthShrugUpper,
MouthPressLeft, MouthPressRight, MouthLowerDownLeft,
MouthLowerDownRight, MouthUpperUpLeft, MouthUpperUpRight,
BrowDownLeft, BrowDownRight, BrowInnerUp, BrowOuterUpLeft,
BrowOuterUpRight, CheekPuff, CheekSquintLeft, CheekSquintRight,
NoseSneerLeft, NoseSneerRight, TongueOut
Note
The plugin automatically corrects a known issue in the ARKit animation asset: EyeLookInLeft and EyeLookOutLeft are swapped in the source animation but the plugin exports them to the correct order.
Neutral Pose Only
The Neutral pose only checkbox skips all 52 expression poses and exports only the bind pose mesh as a single OBJ per LOD. This is useful when you want to export an additional character's neutral mesh to add as an extra shape key in Blender after you've already run a full ARKit export. It must use the same source mesh and the same LOD as your ARKit exports, since Blender shape keys require a perfectly matching vertex count and order.