From 2097fe3c93fb9a990ca935198d4de6737033242f Mon Sep 17 00:00:00 2001
From: Adjerry91 <58948489+Adjerry91@users.noreply.github.com>
Date: Sun, 10 Dec 2023 13:17:26 -0600
Subject: [PATCH] Add Combined Shapes
Adding combined shapes in the Unified Expressions adds benefits that other standards do not.
- Simplify animations for face tracking. This reduces the amount of animated blend shapes used.
- Helps with blend shape creation workflow. Create the mirrored blend shapes then separate out with blender scripts.
Bring TongueOutStep1 and TongOutStep2 back to Unified Expressions as avatar with tongue low in the jaw will clip the bottom lip if it just TongueOut. This is not required but would like this to be offical option corrective shape.
Bring back tongue morph shapes as optional corrective shapes.
---
.../compatibility/overview.mdx | 57 ++++++++++++++-----
1 file changed, 43 insertions(+), 14 deletions(-)
diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx
index a1519d48..959b482a 100644
--- a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx
+++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx
@@ -66,90 +66,119 @@ dedicated sections for each standard.
headers={['Unified', 'ARKit', 'SRanipal', 'Meta Movement (Quest Pro)']}
omitHeaders={['Unified']}
rows={[
+ [EyeLookUp, '~', '~', '~'],
['EyeLookUpRight', 'eyeLookUpRight', 'Eye_Right_Look_Up', 'EYES_LOOK_UP_R'],
- ['EyeLookDownRight', 'eyeLookDownRight', 'Eye_Right_Look_Down', 'EYES_LOOK_DOWN_R'],
- ['EyeLookInRight', 'eyeLookInRight', 'Eye_Right_Left', 'EYES_LOOK_IN_R'],
- ['EyeLookOutRight', 'eyeLookOutRight', 'Eye_Right_Right', 'EYES_LOOK_OUT_R'],
['EyeLookUpLeft', 'eyeLookUpLeft', 'Eye_Left_Look_Up', 'EYES_LOOK_UP_L'],
+ [EyeLookDown, '~', '~', '~'],
+ ['EyeLookDownRight', 'eyeLookDownRight', 'Eye_Right_Look_Down', 'EYES_LOOK_DOWN_R'],
['EyeLookDownLeft', 'eyeLookDownLeft', 'Eye_Left_Look_Down', 'EYES_LOOK_DOWN_L'],
+ [EyeLookIn, '~', '~', '~'],
+ ['EyeLookInRight', 'eyeLookInRight', 'Eye_Right_Left', 'EYES_LOOK_IN_R'],
['EyeLookInLeft', 'eyeLookInLeft', 'Eye_Left_Right', 'EYES_LOOK_IN_L'],
+ [EyeLookOut, '~', '~', '~'],
+ ['EyeLookOutRight', 'eyeLookOutRight', 'Eye_Right_Right', 'EYES_LOOK_OUT_R'],
['EyeLookOutLeft', 'eyeLookOutLeft', 'Eye_Left_Left', 'EYES_LOOK_OUT_L'],
+ [EyeClosed, '~', '~', '~'],
['EyeClosedRight', 'eyeBlinkRight', 'Eye_Left_Blink', 'EYES_CLOSED_R'],
['EyeClosedLeft', 'eyeBlinkLeft', 'Eye_Left_Blink', 'EYES_CLOSED_L'],
+ [EyeSquint, '~', '~', '~'],
['EyeSquintRight', 'eyeSquintRight', '~', 'EYES_SQUINT_R'],
['EyeSquintLeft', 'eyeSquintLeft', '~', 'EYES_SQUINT_R'],
[<>BrowDownRight
CheekSquintRight
EyeSquintRight
While EyeClosedRight>, '~', 'Eye_Right_squeeze¹', '~'],
[<>BrowDownLeft
CheekSquintLeft
EyeSquintLeft
While EyeClosedLeft>, '~', 'Eye_Left_squeeze¹', '~'],
+ [EyeWide, '~', '~', '~'],
['EyeWideRight', 'eyeWideRight', 'Eye_Right_Wide', 'EYES_WIDEN_R'],
- ['EyeWideLeft', 'eyeWideLeft', 'Eye_Left_Wide', 'EYES_WIDEN_L'],
+ ['EyeWideLeft', 'eyeWideLeft', 'Eye_Left_Wide', 'EYES_WIDEN_L'],
+ [EyeDilation, '❌', '~', '❌'],
['EyeDilationRight', '❌', 'Eye_Right_Dilation', '❌'],
['EyeDilationLeft', '❌', 'Eye_Left_Dilation', '❌'],
+ [EyeConstrict, '❌', '~', '❌'],
['EyeConstrictRight', '❌', 'Eye_Right_Constrict', '❌'],
['EyeConstrictLeft', '❌', 'Eye_Left_Constrict', '❌'],
+ [BrowDown, '~', '❌', '~'],
[BrowDownRight, 'browDownRight', '❌', 'BROW_LOWERER_R'],
[BrowDownLeft, 'browDownLeft', '❌', 'BROW_LOWERER_L'],
+ [BrowInnerUp, 'browInnerUp', '❌', '~'],
['BrowInnerUpRight', '~', '❌', 'INNER_BROW_RAISER_R'],
['BrowInnerUpLeft', '~', '❌', 'INNER_BROW_RAISER_L'],
- [BrowInnerUp, 'browInnerUp', '❌', '~'],
+ [BrowOuterUp, '~', '❌', '~'],
['BrowOuterUpRight', 'browOuterUpRight', '❌', 'OUTER_BROW_RAISER_R'],
['BrowOuterUpLeft', 'browOuterUpLeft', '❌', 'OUTER_BROW_RAISER_L'],
+ [NoseSneer, '~', '❌', '~'],
['NoseSneerRight', 'noseSneerRight', '❌', 'NOSE_WRINKLER_R'],
['NoseSneerLeft', 'noseSneerLeft', '❌', 'NOSE_WRINKLER_L'],
+ [CheekSquint, '~', '~', '~'],
['CheekSquintRight', 'cheekSquintRight', '~', 'CHEEK_RAISER_R'],
['CheekSquintLeft', 'cheekSquintLeft', '~', 'CHEEK_RAISER_L'],
+ [CheekPuff, 'cheekPuff', '~', '~'],
['CheekPuffRight', '~', 'Cheek_Puff_Right', 'CHEEK_PUFF_R'],
['CheekPuffLeft', '~', 'Cheek_Puff_Left', 'CHEEK_PUFF_L'],
- [CheekPuff, 'cheekPuff', '~', '~'],
+ [CheekSuck, '❌', 'Cheek_Suck', '~'],
['CheekSuckRight', '❌', '~', 'CHEEK_SUCK_R'],
['CheekSuckLeft', '❌', '~', 'CHEEK_SUCK_L'],
- [CheekSuck, '❌', 'Cheek_Suck', '~'],
['JawOpen', 'jawOpen', 'Jaw_Open', 'JAW_DROP'],
['MouthClosed', 'mouthClose', <>Mouth_Ape_Shape¹
Negates Jaw_Open>, 'LIPS_TOWARD'],
['JawRight', 'jawRight', 'Jaw_Right', 'JAW_SIDEWAYS_RIGHT'],
['JawLeft', 'jawLeft', 'Jaw_Left', 'JAW_SIDEWAYS_LEFT'],
['JawForward', 'jawForward', 'Jaw_Forward', 'JAW_THRUST'],
+ [LipSuckUpper, 'mouthRollUpper', 'Mouth_Upper_Inside', '~'],
['LipSuckUpperRight', '~', '~', 'LIP_SUCK_RT'],
['LipSuckUpperLeft', '~', '~', 'LIP_SUCK_LT'],
- [LipSuckUpper, 'mouthRollUpper', 'Mouth_Upper_Inside', '~'],
+ [LipSuckLower, 'mouthRollLower', 'Mouth_Lower_Inside', '~'],
['LipSuckLowerRight', '~', '~', 'LIP_SUCK_RB'],
['LipSuckLowerLeft', '~', '~', 'LIP_SUCK_LB'],
- [LipSuckLower, 'mouthRollLower', 'Mouth_Lower_Inside', '~'],
+ [LipFunnel, 'mouthFunnel', '~', '~'],
+ [LipFunnelUpper, '~', 'Mouth_Upper_Overturn¹', '~'],
['LipFunnelUpperRight', '~', '~', 'LIP_FUNNELER_RT'],
['LipFunnelUpperLeft', '~', '~', 'LIP_FUNNELER_LT'],
- [LipFunnelUpper, '~', 'Mouth_Upper_Overturn¹', '~'],
+ [LipFunnelLower, '~', 'Mouth_Lower_Overturn¹', '~'],
['LipFunnelLowerRight', '~', '~', 'LIP_SUCK_RB'],
['LipFunnelLowerLeft', '~', '~', 'LIP_SUCK_LB'],
- [LipFunnelLower, '~', 'Mouth_Lower_Overturn¹', '~'],
- [LipFunnel, 'mouthFunnel', '~', '~'],
+ [LipPucker, 'mouthPucker', 'Mouth_Pout', ''],
[<>LipPuckerUpperRight
LipPuckerLowerRight>, '~', '~', 'LIP_PUCKER_R'],
[<>LipPuckerUpperLeft
LipPuckerLowerLeft>, '~', '~', 'LIP_PUCKER_L'],
- [LipPucker, 'mouthPucker', 'Mouth_Pout', ''],
+ [MouthUpperUp, '~', '~', '~'],
['MouthUpperUpRight', 'mouthUpperUpRight', 'Mouth_Upper_Up_Right', 'UPPER_LIP_RAISER_R'],
['MouthUpperUpLeft', 'mouthUpperUpLeft', 'Mouth_Upper_Up_Left', 'UPPER_LIP_RAISER_L'],
+ [MouthLowerDown, '~', '~', '~'],
['MouthLowerDownRight', 'mouthLowerUpRight', 'Mouth_Lower_Down_Right', 'LOWER_LIP_DEPRESSOR_R'],
['MouthLowerDownLeft', 'mouthLowerUpLeft', 'Mouth_Lower_Down_Left', 'LOWER_LIP_DEPRESSER_L'],
+ [MouthSmile, '~', '~', '~'],
[MouthSmileRight, 'mouthSmileRight', 'Mouth_Smile_Right', 'LIP_CORNER_PULLER_R'],
[MouthSmileLeft, 'mouthSmileLeft', 'Mouth_Smile_Left', 'LIP_CORNER_PULLER_L'],
+ [MouthFrown, '~', '~', '~'],
['MouthFrownRight', 'mouthFrownRight', '~', 'LIP_CORNER_DEPRESSOR_R'],
['MouthFrownLeft', 'mouthFrownLeft', '~', 'LIP_CORNER_DEPRESSOR_L'],
+ [MouthSad, '~', '~', '~'],
[MouthSadRight, '~', 'Mouth_Sad_Right', '~'],
[MouthSadLeft, '~', 'Mouth_Sad_Left', '~'],
+ [MouthStretch, '~', '~', '~'],
['MouthStretchRight', 'mouthStretchRight', '~', 'LIP_STRETCHER_R'],
['MouthStretchLeft', 'mouthStretchLeft', '~', 'LIP_STRETCHER_L'],
+ [MouthDimpler, '~', '~', '~'],
['MouthDimplerRight', 'mouthDimpleRight', '~', 'DIMPLER_R'],
['MouthDimplerLeft', 'mouthDimpleLeft', '~', 'DIMPLER_L'],
+ [MouthRaiser, '~', '❌', '~'],
['MouthRaiserUpper', 'mouthShrugUpper', '❌', 'CHIN_RAISER_T'],
['MouthRaiserLower', 'mouthShrugLower', 'Mouth_Lower_Overlay', 'CHIN_RAISER_B'],
+ [MouthPress, '~', '❌', '~'],
['MouthPressRight', 'mouthPressRight¹', '❌', 'LIP_PRESSOR_R'],
['MouthPressLeft', 'mouthPressLeft¹', '❌', 'LIP_PRESSOR_L'],
+ [MouthTightener, '❌', '❌', '~'],
['MouthTightenerRight', '❌', '❌', 'LIP_TIGHTENER_R'],
['MouthTightenerLeft', '❌', '❌', 'LIP_TIGHTENER_L'],
- ['TongueOut', 'tongueOut', <>Tongue_LongStep1
Tongue_LongStep2>, '❌'],
+ [TongueOut, 'tongueOut', <>Tongue_LongStep1
Tongue_LongStep2>, '❌'],
+ ['TongueOutStep1' '~', 'Tongue_LongStep1', '❌'],
+ ['TongueOutStep2' '~', 'Tongue_LongStep2', '❌'],
['TongueUp', '❌', 'Tongue_Up', '❌'],
['TongueDown', '❌', 'Tongue_Down', '❌'],
['TongueRight', '❌', 'Tongue_Right', '❌'],
['TongueLeft', '❌', 'Tongue_Left', '❌'],
['TongueRoll', '❌', 'Tongue_Roll', '❌'],
+ ['TongueUpLeftMorph', '❌', 'Tongue_UpLeft_Morph', '❌'],
+ ['TongueUpRightMorph', '❌', 'Tongue_UpRight_Morph', '❌'],
+ ['TongueDownLeftMorph', '❌', 'Tongue_DownLeft_Morph', '❌'],
+ ['TongueDownRightMorph', '❌', 'Tongue_DownRight_Morph', '❌'],
]}
/>