Skip to content

Bring Your Own MetaHuman

Alex Coulombe edited this page Jun 10, 2026 · 1 revision

Bring Your Own MetaHuman

This repo ships the tooling — no MetaHuman assets. You supply a character.glb at the project root (auto-wired via the built-in profile) or load any model at runtime with Load custom character / drag-and-drop.

The short version

Export your MetaHuman from Unreal and assemble one GLB containing the face mesh, body mesh, outfit, and groom cards, with baked textures alongside the project root (head/body BaseColor, Normal, SRMF, Scatter; eye iris/sclera pairs; groom coverage atlases). The built-in "guy" profile then wires everything automatically.

Gotchas the hard way (all encoded in the tool)

  • Wire MetaHuman face materials by SURFACE INDEX, not name. The baked face's surface 0 is labelled ..Teeth_Baked.. but is the main face skin (24K verts); name-based wiring skips it and the face renders flat gray. The shipped profiles map {0,7 skin · 1 teeth · 3 eyeR · 4 eyeL · 2,5,6,8 hide}.
  • Modern MetaHumans ship NO ARKit morph targets — the face is RigLogic/bone-driven. The 52 shapes must be baked (Sequencer pass of AS_MetaHuman_ARKit_Mapping → FBX → per-pose linear-blend-skinning → named shape keys). An un-baked face loads as a static mesh with the blendshape sliders disabled — expected, not a bug.
  • Custom GLBs get unit-normalized in world space — skeletal meshes carry the cm→m 0.01 on the armature, static meshes carry it on the mesh; the loader measures per-mesh world AABBs and rescales only what needs it.
  • Custom skin gets a white roughness texture bound — the skin shader multiplies a roughness texture by the slider, and an unbound sampler reads ~0 (glassy skin).
  • The full automated UE → Blender → Godot export pipeline (one-shot export, surface remapping, ARKit bake, animation setup) is a separate offering and not part of this repo — see the README's "The full pipeline" section.

Clone this wiki locally