Skip to main content
Version: Current (v5.0)

Tracking Standard Comparison Overview


How to read this section

This page goes over specific translations for each standard into Unified Expressions. For more concrete examples of each standard listed, please refer to the appropriate standards' documentation.

Base and Blended shapes from Unified Expressions will be matched directly with other standards' shapes. Some caveats such as unique shapes will be given more detailed explanations on how they can translate to Unified Expressions.

Table Explained

This table provides a comprehensive understanding of the relationship between various shapes and Unified Expressions:

When multiple shapes are listed in the same row, they collaboratively contribute to the formation of a specific standard shape.

~ indicates that the expression in a row is directly connected elsewhere.

indicates that the expression in a row is not tracked.

Some shapes have an extra condition (While X, Negates X) that indicates that specified cell needs the presence or absence of specific shapes to convey a specific expression accurately in order to correlate it to the other expressions in that row. This often necessitates particular adjustments (animation or blendshape) for compatibility with Unified Expressions, while maintaining anatomical consistency within the given row.

  • While signifies that a standard requires a shape to be active to match the row.
  • Negates signifies that a standard requires a shape to be inactive to match the row.

Regardless of the conditions, the shape can be converted into Unified Expressions without compromising tracking quality or expression behavior.

This section only provides a generalized comparison across all standards; for more specific information refer to the dedicated sections for each standard.

Standard Comparisons

UnifiedARKitSRanipalMeta Movement (Quest Pro)
EyeLookUpRighteyeLookUpRightEye_Right_Look_UpEYES_LOOK_UP_R
EyeLookDownRighteyeLookDownRightEye_Right_Look_DownEYES_LOOK_DOWN_R
EyeLookInRighteyeLookInRightEye_Right_LeftEYES_LOOK_IN_R
EyeLookOutRighteyeLookOutRightEye_Right_RightEYES_LOOK_OUT_R
EyeLookUpLefteyeLookUpLeftEye_Left_Look_UpEYES_LOOK_UP_L
EyeLookDownLefteyeLookDownLeftEye_Left_Look_DownEYES_LOOK_DOWN_L
EyeLookInLefteyeLookInLeftEye_Left_RightEYES_LOOK_IN_L
EyeLookOutLefteyeLookOutLeftEye_Left_LeftEYES_LOOK_OUT_L
EyeClosedRighteyeBlinkRightEye_Left_BlinkEYES_CLOSED_R
EyeClosedLefteyeBlinkLeftEye_Left_BlinkEYES_CLOSED_L
EyeSquintRighteyeSquintRight~EYES_SQUINT_R
EyeSquintLefteyeSquintLeft~EYES_SQUINT_R
BrowDownRight
CheekSquintRight
EyeSquintRight
While EyeClosedRight
~Eye_Right_squeeze¹~
BrowDownLeft
CheekSquintLeft
EyeSquintLeft
While EyeClosedLeft
~Eye_Left_squeeze¹~
EyeWideRighteyeWideRightEye_Right_WideEYES_WIDEN_R
EyeWideLefteyeWideLeftEye_Left_WideEYES_WIDEN_L
EyeDilationRightEye_Right_Dilation
EyeDilationLeftEye_Left_Dilation
EyeConstrictRightEye_Right_Constrict
EyeConstrictLeftEye_Left_Constrict
BrowDownRightbrowDownRightBROW_LOWERER_R
BrowDownLeftbrowDownLeftBROW_LOWERER_L
BrowInnerUpRight~INNER_BROW_RAISER_R
BrowInnerUpLeft~INNER_BROW_RAISER_L
BrowInnerUpbrowInnerUp~
BrowOuterUpRightbrowOuterUpRightOUTER_BROW_RAISER_R
BrowOuterUpLeftbrowOuterUpLeftOUTER_BROW_RAISER_L
NoseSneerRightnoseSneerRightNOSE_WRINKLER_R
NoseSneerLeftnoseSneerLeftNOSE_WRINKLER_L
CheekSquintRightcheekSquintRight~CHEEK_RAISER_R
CheekSquintLeftcheekSquintLeft~CHEEK_RAISER_L
CheekPuffRight~Cheek_Puff_RightCHEEK_PUFF_R
CheekPuffLeft~Cheek_Puff_LeftCHEEK_PUFF_L
CheekPuffcheekPuff~~
CheekSuckRight~CHEEK_SUCK_R
CheekSuckLeft~CHEEK_SUCK_L
CheekSuckCheek_Suck~
JawOpenjawOpenJaw_OpenJAW_DROP
MouthClosedmouthCloseMouth_Ape_Shape¹
Negates Jaw_Open
LIPS_TOWARD
JawRightjawRightJaw_RightJAW_SIDEWAYS_RIGHT
JawLeftjawLeftJaw_LeftJAW_SIDEWAYS_LEFT
JawForwardjawForwardJaw_ForwardJAW_THRUST
LipSuckUpperRight~~LIP_SUCK_RT
LipSuckUpperLeft~~LIP_SUCK_LT
LipSuckUppermouthRollUpperMouth_Upper_Inside~
LipSuckLowerRight~~LIP_SUCK_RB
LipSuckLowerLeft~~LIP_SUCK_LB
LipSuckLowermouthRollLowerMouth_Lower_Inside~
LipFunnelUpperRight~~LIP_FUNNELER_RT
LipFunnelUpperLeft~~LIP_FUNNELER_LT
LipFunnelUpper~Mouth_Upper_Overturn¹~
LipFunnelLowerRight~~LIP_SUCK_RB
LipFunnelLowerLeft~~LIP_SUCK_LB
LipFunnelLower~Mouth_Lower_Overturn¹~
LipFunnelmouthFunnel~~
LipPuckerUpperRight
LipPuckerLowerRight
~~LIP_PUCKER_R
LipPuckerUpperLeft
LipPuckerLowerLeft
~~LIP_PUCKER_L
LipPuckermouthPuckerMouth_Pout
MouthUpperUpRightmouthUpperUpRightMouth_Upper_Up_RightUPPER_LIP_RAISER_R
MouthUpperUpLeftmouthUpperUpLeftMouth_Upper_Up_LeftUPPER_LIP_RAISER_L
MouthLowerDownRightmouthLowerUpRightMouth_Lower_Down_RightLOWER_LIP_DEPRESSOR_R
MouthLowerDownLeftmouthLowerUpLeftMouth_Lower_Down_LeftLOWER_LIP_DEPRESSER_L
MouthSmileRightmouthSmileRightMouth_Smile_RightLIP_CORNER_PULLER_R
MouthSmileLeftmouthSmileLeftMouth_Smile_LeftLIP_CORNER_PULLER_L
MouthFrownRightmouthFrownRight~LIP_CORNER_DEPRESSOR_R
MouthFrownLeftmouthFrownLeft~LIP_CORNER_DEPRESSOR_L
MouthSadRight~Mouth_Sad_Right~
MouthSadLeft~Mouth_Sad_Left~
MouthStretchRightmouthStretchRight~LIP_STRETCHER_R
MouthStretchLeftmouthStretchLeft~LIP_STRETCHER_L
MouthDimplerRightmouthDimpleRight~DIMPLER_R
MouthDimplerLeftmouthDimpleLeft~DIMPLER_L
MouthRaiserUppermouthShrugUpperCHIN_RAISER_T
MouthRaiserLowermouthShrugLowerMouth_Lower_OverlayCHIN_RAISER_B
MouthPressRightmouthPressRight¹LIP_PRESSOR_R
MouthPressLeftmouthPressLeft¹LIP_PRESSOR_L
MouthTightenerRightLIP_TIGHTENER_R
MouthTightenerLeftLIP_TIGHTENER_L
TongueOuttongueOutTongue_LongStep1
Tongue_LongStep2
TONGUE_OUT
TongueUpTongue_Up
TongueDownTongue_Down
TongueRightTongue_Right
TongueLeftTongue_Left
TongueRollTongue_Roll
  • ¹ Requires the use of a specialized animation setup to work with VRCFT V2 tracking.
  • Bold Blended Shape.

Standard Documentation