Skills

Blender Facial Shapekeys

Facial rigs and shape keys in Blender 5.2 - ARKit 52 blendshapes, visemes for lip-sync...

Install

npx skills add EL4CTEO/blender-skills --skill blender-facial-shapekeys -g -a claude-code -y
Category
Engineering
Updated
5d ago
License
MIT
Context cost
Lightabout 1,090 tokens
Runs scripts
Yes, review before use

What it does

Facial rigs and shape keys in Blender 5.2 - ARKit 52 blendshapes, visemes for lip-sync, sculpting expressions, splitting symmetric shapes into Left/Right, mirroring, corrective and combination shapes, drivers and control rigs, bone+blendshape hybrids, export to engines (Unity, Unreal, Roblox dynamic heads, VRM/web). Use for faces, expressions, lip-sync, or any shape-key work.

Facial Rig & Shape Keys

The execution model is in blender-core. The body rig is in blender-character-rigging.

Choose the approach

ApproachUseNotes
Blendshapes (ARKit 52)games, VTubers, mocap (iPhone/Live Link Face), web/VRMthe industry interchange set; each shape is sculpted
Bones (jaw, eyes, lids, brows, lips)stylized, low memory, mobilejaw + eyes as bones are almost always right
Hybridmost production game headsjaw/eye/tongue bones + blendshapes for everything soft
Rigify face (human metarig)film-style keyframe animation inside Blender100+ face bones, heavy for engines

Procedure (blendshapes)

  1. The head mesh needs clean loops around the eyes and mouth (blender-retopology-uv), with eyes, teeth and tongue as separate objects parented or weighted to bones.
  2. scripts/shapekeys.py -- --mesh Head --create arkit (or --create visemes for the 15 Oculus visemes) creates empty, correctly named keys.
  3. Sculpt each key (live: sculpt mode on the active key, use_shape_key_edit_mode). Symmetric expressions can be sculpted once, then --split eyeBlink gives eyeBlinkLeft/Right with a soft blend across X=0 (--falloff m).
  4. --mirror browDownLeft builds browDownRight (topology-independent mirror).
  5. --report lists unsculpted keys, the max offset per key, and missing ARKit names. A shape is done only when every key moves and nothing is left over.
  6. Optional: --drivers FaceCtrl adds a controller with 0, 1 custom properties driving each key, for keyframing in Blender.
  7. Check the extremes and combinations (jawOpen + mouthSmile, eyeBlink + eyeSquint) with look. Fix them with corrective combination keys driven by the product of two keys.
Read the whole SKILL.md on GitHub

More in Engineering