@@ -77,7 +77,15 @@ public enum FaceFb
77
77
UpperLidRaiserR = 60 ,
78
78
UpperLipRaiserL = 61 ,
79
79
UpperLipRaiserR = 62 ,
80
- FaceFbMax = 63
80
+ TongueTipInterdental = 63 ,
81
+ TongueTipAlveolar = 64 ,
82
+ TongueFrontDorsalPalate = 65 ,
83
+ TongueMidDorsalPalate = 66 ,
84
+ TongueBackDorsalVelar = 67 ,
85
+ TongueOutFb = 68 ,
86
+ TongueRetreat = 69 ,
87
+ Face1FbMax = 63 ,
88
+ Face2FbMax = 70 ,
81
89
}
82
90
83
91
public class ALVRModule : ExtTrackingModule
@@ -171,20 +179,21 @@ private static void SetCombEyesQuatParams(float[] p)
171
179
SetEyesQuatParams ( array ) ;
172
180
}
173
181
174
- private static void SetFaceFbParams ( float [ ] p )
182
+ static void SetParam ( float [ ] data , FaceFb input , UnifiedExpressions outputType )
175
183
{
176
- Debug . Assert ( p . Length == ( int ) FaceFbMax ) ;
184
+ UnifiedTracking . Data . Shapes [ ( int ) outputType ] . Weight = data [ ( int ) input ] ;
185
+ }
186
+
187
+ private static void SetFace1FbParams ( float [ ] p )
188
+ {
189
+ // Debug.Assert(p.Length == (int)Face1FbMax);
177
190
178
191
var eye = UnifiedTracking . Data . Eye ;
179
192
var expr = UnifiedTracking . Data . Shapes ;
180
193
181
194
eye . Left . Openness = 1.0f - ( float ) Math . Max ( 0 , Math . Min ( 1 , p [ ( int ) EyesClosedL ] + p [ ( int ) EyesClosedL ] * p [ ( int ) LidTightenerL ] ) ) ;
182
195
eye . Right . Openness = 1.0f - ( float ) Math . Max ( 0 , Math . Min ( 1 , p [ ( int ) EyesClosedR ] + p [ ( int ) EyesClosedR ] * p [ ( int ) LidTightenerR ] ) ) ;
183
196
184
- static void SetParam ( float [ ] data , FaceFb input , UnifiedExpressions outputType )
185
- {
186
- UnifiedTracking . Data . Shapes [ ( int ) outputType ] . Weight = data [ ( int ) input ] ;
187
- }
188
197
189
198
// Eyelids
190
199
SetParam ( p , LidTightenerR , EyeSquintRight ) ;
@@ -266,7 +275,6 @@ static void SetParam(float[] data, FaceFb input, UnifiedExpressions outputType)
266
275
SetParam ( p , DimplerL , MouthDimpleLeft ) ;
267
276
SetParam ( p , DimplerR , MouthDimpleRight ) ;
268
277
269
-
270
278
SetParam ( p , ChinRaiserT , MouthRaiserUpper ) ;
271
279
SetParam ( p , ChinRaiserB , MouthRaiserLower ) ;
272
280
SetParam ( p , LipPressorR , MouthPressRight ) ;
@@ -275,6 +283,14 @@ static void SetParam(float[] data, FaceFb input, UnifiedExpressions outputType)
275
283
SetParam ( p , LipTightenerL , MouthTightenerLeft ) ;
276
284
}
277
285
286
+ private static void SetFace2FbParams ( float [ ] p ) {
287
+ Debug . Assert ( p . Length == ( int ) Face2FbMax ) ;
288
+
289
+ SetFace1FbParams ( p ) ;
290
+
291
+ SetParam ( p , TongueOutFb , TongueOut ) ;
292
+ }
293
+
278
294
public override void Update ( )
279
295
{
280
296
byte [ ] packet ;
@@ -297,13 +313,16 @@ public override void Update()
297
313
switch ( str )
298
314
{
299
315
case "EyesQuat" :
300
- SetFaceFbParams ( GetParams ( packet , ref cursor , 8 ) ) ;
316
+ SetEyesQuatParams ( GetParams ( packet , ref cursor , 8 ) ) ;
301
317
break ;
302
318
case "CombQuat" :
303
- SetFaceFbParams ( GetParams ( packet , ref cursor , 4 ) ) ;
319
+ SetCombEyesQuatParams ( GetParams ( packet , ref cursor , 4 ) ) ;
304
320
break ;
305
321
case "FaceFb\0 \0 " :
306
- SetFaceFbParams ( GetParams ( packet , ref cursor , ( int ) FaceFbMax ) ) ;
322
+ SetFace1FbParams ( GetParams ( packet , ref cursor , ( int ) Face1FbMax ) ) ;
323
+ break ;
324
+ case "Face2Fb\0 " :
325
+ SetFace2FbParams ( GetParams ( packet , ref cursor , ( int ) Face2FbMax ) ) ;
307
326
break ;
308
327
default :
309
328
Logger . LogError ( "[ALVR Module] Unrecognized prefix" ) ;
0 commit comments