Faces, expressions and lip-sync

Every character has 34 facial blend shapes (morph targets): 20 for expressions and 14 for speech. They're built from MakeHuman's CC0 expression data and blended by the character's ethnicity mix, so they fit every face.

The expression shapes follow Apple's ARKit names where they match:

Expressions

Nine expressions: neutral, happy, laughing, angry, sad, crying, surprised, afraid and determined. The chosen expression is the resting face in the viewer and in every exported clip: the blend shapes' default weights in GLB and FBX, baked into the mesh for OBJ.

Teeth and tongue

MakeHuman's CC0 teeth (six variants, picked under Expression) and tongue.

A living face

In the exports

Blender, Unity, Unreal, Godot and three.js read both.

Turn off Facial blend shapes in the Export panel to leave them out; the expression is then baked into the mesh. Speech mouth shapes can be left out on their own: they add about 0.7 MB per medium-detail GLB, or 1.5 MB at high detail.

Talking and lip-sync

The 14 speech shapes (visemes) use the Oculus / Meta names that lip-sync tools output:

Shape Sounds
viseme_PP M, B, P
viseme_FF F, V
viseme_TH TH
viseme_DD D, T
viseme_kk K, G
viseme_CH CH, J, SH
viseme_SS S, Z
viseme_nn N, L
viseme_RR R
viseme_aa, viseme_E, viseme_I, viseme_O, viseme_U vowels

Rest (sil) is every shape at zero. The jaw, lower teeth and tongue open with the shapes. The Talk clip (Emotes) loops a stretch of babble with head nods and brow raises on stressed syllables, for background chatter and previews.

To lip-sync real dialogue, drive the shapes from audio:

Blend between shapes over about 50–80 ms rather than switching, and keep each weight at 1 or below; the Talk clip does the same.

The full set of 52 ARKit shapes for iPhone face capture is planned: see issue #11.