Skip to content

Commit ec448ee

Browse files
committed
Add squint and squeeze
1 parent 7db6035 commit ec448ee

1 file changed

Lines changed: 30 additions & 2 deletions

File tree

ExpressionStrategies/V2Mapper.cs

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ public class V2Mapper : BaseParamMapper
1313
"EyeX",
1414
"EyeY",
1515
"EyeLid",
16-
"BrowExpression"
16+
"BrowExpression",
17+
"EyeSquint"
1718
};
1819

1920
private Dictionary<string, float> _parameterValues = new()
@@ -32,6 +33,11 @@ public class V2Mapper : BaseParamMapper
3233
{ "BrowExpression", 0.5f },
3334
{ "BrowExpressionLeft", 0.5f },
3435
{ "BrowExpressionRight", 0.5f },
36+
{ "CheekSquintRight", 0f },
37+
{ "CheekSquintLeft", 0f },
38+
{ "EyeSquintRight", 0f },
39+
{ "EyeSquintLeft", 0f },
40+
{ "EyeSquint", 0f },
3541
};
3642

3743
private readonly string[] _gazeParameters =
@@ -69,7 +75,10 @@ public override void HandleOSCMessage(OSCMessage message)
6975

7076
_parameterValues[paramToMap] = oscF.value;
7177

72-
_isSingleEye = _singleEyeParamNames.Contains(paramToMap);
78+
if (paramToMap == "EyeX" || paramToMap == "EyeY")
79+
_isSingleEye = true;
80+
else if (paramToMap == "EyeLeftX" || paramToMap == "EyeRightX")
81+
_isSingleEye = false;
7382
}
7483

7584
public override void UpdateVRCFTEyeData(ref UnifiedEyeData eyeData, ref UnifiedExpressionShape[] eyeShapes)
@@ -78,9 +87,28 @@ public override void UpdateVRCFTEyeData(ref UnifiedEyeData eyeData, ref UnifiedE
7887
HandleEyeDilation(ref eyeData);
7988
HandleEyeOpenness(ref eyeData, ref eyeShapes, _isSingleEye);
8089
HandleEyebrows(ref eyeShapes, _isSingleEye);
90+
HandleSquints(ref eyeShapes, _isSingleEye);
8191
EmulateEyebrows(ref eyeShapes, _isSingleEye);
8292
}
8393

94+
private void HandleSquints(ref UnifiedExpressionShape[] eyeShapes, bool isSingleEyeMode = false)
95+
{
96+
if (isSingleEyeMode)
97+
{
98+
var eyeSquint = _parameterValues["EyeSquint"];
99+
eyeShapes[(int)UnifiedExpressions.EyeSquintRight].Weight = eyeSquint;
100+
eyeShapes[(int)UnifiedExpressions.EyeSquintLeft].Weight = eyeSquint;
101+
}
102+
else
103+
{
104+
eyeShapes[(int)UnifiedExpressions.EyeSquintRight].Weight = _parameterValues["EyeSquintRight"];
105+
eyeShapes[(int)UnifiedExpressions.EyeSquintLeft].Weight = _parameterValues["EyeSquintLeft"];
106+
}
107+
108+
eyeShapes[(int)UnifiedExpressions.CheekSquintRight].Weight = _parameterValues["CheekSquintRight"];
109+
eyeShapes[(int)UnifiedExpressions.CheekSquintLeft].Weight = _parameterValues["CheekSquintLeft"];
110+
}
111+
84112
private void HandleEyebrows(ref UnifiedExpressionShape[] eyeShapes, bool isSingleEyeMode = false)
85113
{
86114
if (isSingleEyeMode)

0 commit comments

Comments
 (0)