-
Notifications
You must be signed in to change notification settings - Fork 2
Bring Your Own MetaHuman
Alex Coulombe edited this page Jun 10, 2026
·
1 revision
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.
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.
-
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.