11using VRCFaceTracking . Core . Params . Data ;
2+ using VRCFaceTracking . Core . Params . Expressions ;
3+ using VRCFaceTracking . Core . Types ;
24
35namespace ETVRTrackingModule . ExpressionStrategies ;
46
57public class V1Mapper : IExpressionMapper
68{
7- private Dictionary < string , float > parameterValues = new ( )
9+ private Dictionary < string , float > _parameterValues = new ( )
810 {
9- { "RightEyeLidExpandedSqueeze" , 0f } , // no fucking idea if this should be EyeWide bullfuck
11+ { "RightEyeLidExpandedSqueeze" , 0f } ,
1012 { "LeftEyeLidExpandedSqueeze" , 0f } ,
1113 { "LeftEyeX" , 0f } ,
1214 { "RightEyeX" , 0f } ,
1315 { "EyesY" , 0f } ,
1416 } ;
1517
16- private string [ ] eyeExpressions = new [ ]
17- {
18- "RightEyeLidExpandedSqueeze" ,
19- "LeftEyeLidExpandedSqueeze"
20- } ;
21-
2218 public void handleOSCMessage ( OSCMessage message )
2319 {
24- string paramToMap = IExpressionMapper . GetParamToMap ( message . address ) ;
25- if ( parameterValues . ContainsKey ( paramToMap ) )
20+ var paramToMap = IExpressionMapper . GetParamToMap ( message . address ) ;
21+ if ( _parameterValues . ContainsKey ( paramToMap ) )
2622 {
27- parameterValues [ paramToMap ] = message . value ;
23+ _parameterValues [ paramToMap ] = message . value ;
2824 }
2925 }
3026
3127 public void UpdateVRCFTEyeData ( ref UnifiedEyeData eyeData , ref UnifiedExpressionShape [ ] eyeShapes )
3228 {
33- throw new NotImplementedException ( ) ;
29+ HandleEyeOpenness ( ref eyeData , ref eyeShapes ) ;
30+ HandleEyeGaze ( ref eyeData ) ;
31+ }
32+
33+ private void HandleEyeOpenness ( ref UnifiedEyeData eyeData , ref UnifiedExpressionShape [ ] eyeShapes )
34+ {
35+ // we should widen the eye
36+ if ( _parameterValues [ "RightEyeLidExpandedSqueeze" ] > 0.8f )
37+ {
38+ eyeData . Right . Openness = _parameterValues [ "RightEyeLidExpandedSqueeze" ] ;
39+ eyeShapes [ ( int ) UnifiedExpressions . EyeWideRight ] . Weight = 1 ;
40+ }
41+ if ( _parameterValues [ "RightEyeLidExpandedSqueeze" ] < 0.0f )
42+ {
43+ eyeData . Right . Openness = _parameterValues [ "RightEyeLidExpandedSqueeze" ] ;
44+ eyeShapes [ ( int ) UnifiedExpressions . EyeSquintRight ] . Weight = - 1 ;
45+ }
46+ eyeData . Left . Openness = _parameterValues [ "RightEyeLidExpandedSqueeze" ] ;
47+
48+ if ( _parameterValues [ "LeftEyeLidExpandedSqueeze" ] > 0.8f )
49+ {
50+ eyeData . Left . Openness = _parameterValues [ "LeftEyeLidExpandedSqueeze" ] ;
51+ eyeShapes [ ( int ) UnifiedExpressions . EyeWideLeft ] . Weight = 1 ;
52+ }
53+ if ( _parameterValues [ "LeftEyeLidExpandedSqueeze" ] < 0.0f )
54+ {
55+ eyeData . Left . Openness = _parameterValues [ "LeftEyeLidExpandedSqueeze" ] ;
56+ eyeShapes [ ( int ) UnifiedExpressions . EyeSquintLeft ] . Weight = - 1 ;
57+ }
58+ eyeData . Left . Openness = _parameterValues [ "LeftEyeLidExpandedSqueeze" ] ;
59+ }
60+
61+ private void HandleEyeGaze ( ref UnifiedEyeData eyeData )
62+ {
63+ eyeData . Right . Gaze = new Vector2 ( _parameterValues [ "RightEyeX" ] , _parameterValues [ "EyesY" ] ) ;
64+ eyeData . Left . Gaze = new Vector2 ( _parameterValues [ "LeftEyeX" ] , _parameterValues [ "EyesY" ] ) ;
3465 }
3566}
0 commit comments