lipsSupported auto-mapped Models & Visemes

In this guide, "supported models & visemes" means CrystalLipSync can auto-map visemes and/or auto-detect eye mappings from known naming conventions.

Manual setup is always available. That means any character model (including fully custom rigs) is still supported as long as it has usable viseme blendshapes and/or jaw/eye bone targets you can map manually.

This page summarizes what CrystalLipSync supports for:

  • Character/model families

  • Viseme naming conventions

  • Eye movement mapping conventions

  • Custom models with non-standard naming


Quick Support Matrix

Model / Standard
Lip Viseme Auto-Map
Eye Blink Auto-Detect
Eye Look Auto-Detect
Notes

VRM (0.x naming)

Supports VRM-style names like Fcl_MTH_A (mouth) and Fcl_EYE_LookUp (eyes).

DAZ3D Genesis 2/3/8

Supports vsm*, eCTRLv*, and eCTRLEyes* naming families.

DAZ3D Genesis 8.1

Supports DAZ FACS viseme forms like facs_ctrl_v*.

DAZ3D Genesis 9

✅ (plus supplement)

⚠️ Bone-driven policy

Eye movement is intentionally bone-driven; viseme mapping supports FACS + supplementary mouth entries.

Reallusion iClone / CC3 / CC4 / CC5

Supports CC pair naming (Open, Explosive, etc.) and V_* forms.

ARKit / Live Link Face style

✅ (preset combos)

ARKit models get preset multi-blendshape viseme combinations.

Oculus / VRC 15-code visemes

N/A

N/A

Standard viseme code names are supported by matcher (sil, pp, ff...).

Custom / Unknown rigs

✅ (scored matcher + manual fallback)

✅ (if names/bones found)

Generic tokenized/fuzzy matcher, manual mapping, jaw bone mode, and eye-bone fallback.


Core Viseme Set

CrystalLipSync uses a fixed 15-viseme set:

SIL, PP, FF, TH, DD, KK, CH, SS, NN, RR, AA, E, I, O, U

This is the internal target set used by:

  • Runtime viseme weights

  • Blendshape auto-mapping

  • Profile per-viseme multipliers


Supported Viseme Naming Conventions

CrystalLipSync's auto-mapper supports multiple naming families and separator/case variants.

1) Oculus / VRC-style viseme codes

  • Examples: viseme_aa, vrc.v_aa, sil, pp, ff, th, dd, kk, ch, ss, nn, rr, aa, e, i, o, u

2) Reallusion iClone / Character Creator

  • CC3 pair style: Open, Explosive, Dental_Lip, Tight-O, etc.

  • CC4/CC5 variant style: V_Open, V_Explosive, V_Dental_Lip, V_Tight_O, etc.

  • Direct profile aliases are also recognized (e.g., AE, EE, Er, Oh, Ah, Th).

3) DAZ Genesis families

  • Genesis 2 style: vsm* (e.g., vsmAA, vsmEH, vsmM, vsmRest)

  • Genesis 3/8 style: eCTRLv* (e.g., eCTRLvAA, eCTRLvF)

  • Genesis 8.1 / 9 FACS viseme style: facs_ctrl_v* and related variants

4) ARKit / descriptive naming

  • ARKit-style/descriptive mouth names are recognized via signature and keyword matching (e.g., jawOpen, mouthFunnel, mouthPucker, mouthStretch*).


ARKit Model Behavior

When a mesh is detected as ARKit-style:

  • CrystalLipSync applies a preset combination mapping.

  • Each viseme can use multiple blendshapes with tuned weights.

  • This is different from standard single-index mapping and usually gives better FACS-style articulation.


DAZ Genesis Notes

Genesis 2 / 3 / 8 / 8.1

  • Visemes: supported via DAZ naming families above.

  • Eye look: supports DAZ eCTRLEyes* patterns (including bipolar up/down and side/side controls).

Genesis 9

  • Lip Visemes: supported (including FACS detection).

  • Supplement: optional Genesis 9 FACS mouth blendshapes can be added as extra entries to improve articulation.

  • Eye Movement Policy: eye look/brow blendshape auto-mapping is intentionally disabled in auto-detect path; eye movement is intended to use eye bones.


Eye Movement Support by Naming Family

CrystalEyeBlink look blendshape auto-detection supports:

  • ARKit / CC ARKit profile (eyeLookUpLeft, eyeLookOutRight, etc.)

  • DAZ eCTRL (eCTRLEyesUpDownL, eCTRLEyesSideSideR, etc.)

  • DAZ Genesis 9 FACS eye look variants

  • VRM look names (Fcl_EYE_LookUp, etc.)

  • Generic/iClone-style fallback patterns

If look blendshapes are missing, CrystalEyeBlink can use Humanoid eye bones as fallback.


Custom Models (Non-Standard Rigs)

Custom models are supported through layered fallbacks:

  1. Scored auto-map (token, prefix, alias, keyword, fuzzy matching)

  2. Manual mapping in CrystalLipSyncBlendshapeTarget

  3. Jaw bone mode (for rigs with weak/no viseme blendshapes)

  4. Combined mode (blendshapes + jaw bone)

  5. Eye-bone fallback for gaze when look blendshapes are unavailable

This means a model does not need to be a named preset family to work.


Important Clarification: "Supported" vs "Auto-Detected"

  • Supported means the runtime/editor can drive the rig if mappings/bones are configured.

  • Auto-detected means CrystalLipSync can identify mappings automatically from names.

For unusual naming conventions, manual mapping may still be required even when the rig is fully supported at runtime.


Practical Recommendation

For best results:

  1. Run setup/auto-map first.

  2. Verify all 15 viseme slots.

  3. Manually adjust missing or weak mappings.

  4. Use CrystalLipSyncProfile to normalize behavior across characters.

  5. For Genesis 9 eye movement, prefer eye-bone workflow.

Last updated