Microphone, Face, and Eye tracking support on .avatar format

LIV public_beta & latest only

LIV will try to animate your .avatar when you are using the microphone, lip tracking, or eye tracking.

This is also true for VRM. If you are using VRM, please head over to the equivalent VRM article.

This article does not describe how to artistically model the blendshapes; it only describes which technical names the LIV software expects to function.

For information about the artistic aspect, you should refer to other online resources.

- In .avatar, we use Oculus Lipsync blendshapes for the microphone, and we recommend Vive SRAnipal blendshapes for face tracking

- In VRM, we use A/I/U/E/O blendshapes for the microphone, and we recommend Apple ARKit blendshapes for face tracking

.avatar Format

Naming convention

When using the .avatar format, we attempt to find out if it is compatible with microphone, and face tracking (lip and eyes).

Our current approach is to use naming conventions. In the future, we will provide you with a creation kit for avatars so that you can control exactly what is being animated.

We scan the entire avatar for SkinnedMeshRenderer components. We will animate all of those that have compatible blendshapes based on their name.

Microphone

For the microphone, it is loosely based on naming conventions derived from Oculus Lipsync, itself derived from the Viseme MPEG-4 Standard.

We will look for blendshapes ending with the following names, case insensitive:

v_sil v_pp v_ff v_th v_dd v_kk v_ch v_ss v_nn v_rr v_aa v_e v_ih v_oh v_ou

In addition, we will also look for alternate spellings:

v_a v_ee v_i v_o v_u

For example, a blendshape named example.V_Rr ends with v_rr: it will be matched with the rr viseme.

Eye gaze

Eye gaze works by rotating your avatar eye bones to match where you're looking at. You must enable "Use Experimental Eye Gaze" located in the VR LIV menu.

We will try to use the eye bones that are specified in the humanoid configuration of the avatar asset.

This can be set in the import settings of your avatar asset, usually a FBX file.

Lip/Eye tracking blendshapes

SRAnipal-styled naming (recommended for .avatar)

For Face tracking, it is based on SRAnipal LipShape_v2 and EyeShape_v2.

We will look for blendshapes with the following names, case sensitive:

Eye_Left_Blink Eye_Left_Wide Eye_Left_Right Eye_Left_Left Eye_Left_Up
Eye_Left_Down Eye_Right_Blink Eye_Right_Wide Eye_Right_Right Eye_Right_Left
Eye_Right_Up Eye_Right_Down Eye_Frown Eye_Left_Squeeze Eye_Right_Squeeze
Jaw_Right Jaw_Left Jaw_Forward Jaw_Open Mouth_Ape_Shape
Mouth_Upper_Right Mouth_Upper_Left Mouth_Lower_Right Mouth_Lower_Left Mouth_Upper_Overturn
Mouth_Lower_Overturn Mouth_Pout Mouth_Smile_Right Mouth_Smile_Left Mouth_Sad_Right
Mouth_Sad_Left Cheek_Puff_Right Cheek_Puff_Left Cheek_Suck Mouth_Upper_UpRight
Mouth_Upper_UpLeft Mouth_Lower_DownRight Mouth_Lower_DownLeft Mouth_Upper_Inside Mouth_Lower_Inside
Mouth_Lower_Overlay Tongue_LongStep1 Tongue_LongStep2 Tongue_Down Tongue_Up
Tongue_Right Tongue_Left Tongue_Roll Tongue_UpLeft_Morph Tongue_UpRight_Morph
Tongue_DownLeft_Morph Tongue_DownRight_Morph

ARKit-styled naming

If you avatar was already designed with ARKit in mind, we will also look for blendshapes named after ARKit-styled naming as defined in ARKitBlendShapeLocation, where the first letter is uppercase:

BrowDownLeft BrowDownRight BrowInnerUp BrowOuterUpLeft BrowOuterUpRight
CheekPuff CheekSquintLeft CheekSquintRight EyeBlinkLeft EyeBlinkRight
EyeLookDownLeft EyeLookDownRight EyeLookInLeft EyeLookInRight EyeLookOutLeft
EyeLookOutRight EyeLookUpLeft EyeLookUpRight EyeSquintLeft EyeSquintRight
EyeWideLeft EyeWideRight JawForward JawLeft JawOpen
JawRight MouthClose MouthDimpleLeft MouthDimpleRight MouthFrownLeft
MouthFrownRight MouthFunnel MouthLeft MouthLowerDownLeft MouthLowerDownRight
MouthPressLeft MouthPressRight MouthPucker MouthRight MouthRollLower
MouthRollUpper MouthShrugLower MouthShrugUpper MouthSmileLeft MouthSmileRight
MouthStretchLeft MouthStretchRight MouthUpperUpLeft MouthUpperUpRight NoseSneerLeft
NoseSneerRight TongueOut

You can also look at ARFaceAnchor.BlendShapeLocation documentation for reference but keep in mind the first letter must be uppercase.

Please don't have both ARKit-styled blendshapes and SRAnipal-styled blendshapes simultaneously!

VRM Format

If you are using VRM, please head over to the equivalent VRM article.

Was this article helpful?
0 out of 0 found this helpful