@@ -46,6 +46,7 @@ private void UpdateVRCFTEyeData(ref UnifiedEyeData eyeData, ref UnifiedExpressio
4646 {
4747 HandleEyeGaze ( ref eyeData , isSingleEyeMode ) ;
4848 HandleEyeOpenness ( ref eyeData , ref eyeShapes , isSingleEyeMode ) ;
49+ EmulateEyebrows ( ref eyeShapes , isSingleEyeMode ) ;
4950 }
5051
5152 private void HandleEyeGaze ( ref UnifiedEyeData eyeData , bool isSingleEyeMode )
@@ -106,4 +107,53 @@ float squeezeThreshold
106107 ) ;
107108 }
108109 }
110+
111+ private void EmulateEyebrows ( ref UnifiedExpressionShape [ ] eyeShapes , bool isSingleEyeMode = false )
112+ {
113+ if ( isSingleEyeMode )
114+ {
115+ var eyeOpenness = _parameterValues [ "EyeLid" ] ;
116+
117+ _emulateEyeBrow (
118+ ref eyeShapes ,
119+ UnifiedExpressions . BrowLowererRight ,
120+ UnifiedExpressions . BrowOuterUpRight ,
121+ eyeOpenness ,
122+ _config . WidenThreshold ,
123+ _config . SqueezeThreshold
124+ ) ;
125+
126+ _emulateEyeBrow (
127+ ref eyeShapes ,
128+ UnifiedExpressions . BrowLowererLeft ,
129+ UnifiedExpressions . BrowOuterUpLeft ,
130+ eyeOpenness ,
131+ _config . WidenThreshold ,
132+ _config . SqueezeThreshold
133+ ) ;
134+
135+ return ;
136+ }
137+
138+ var baseRightEyeOpenness = _parameterValues [ "RightEyeLidExpandedSqueeze" ] ;
139+ var baseLeftEyeOpenness = _parameterValues [ "LeftEyeLidExpandedSqueeze" ] ;
140+
141+ _emulateEyeBrow (
142+ ref eyeShapes ,
143+ UnifiedExpressions . BrowLowererRight ,
144+ UnifiedExpressions . BrowOuterUpRight ,
145+ baseRightEyeOpenness ,
146+ _config . WidenThreshold ,
147+ _config . SqueezeThreshold
148+ ) ;
149+
150+ _emulateEyeBrow (
151+ ref eyeShapes ,
152+ UnifiedExpressions . BrowLowererLeft ,
153+ UnifiedExpressions . BrowOuterUpLeft ,
154+ baseLeftEyeOpenness ,
155+ _config . WidenThreshold ,
156+ _config . SqueezeThreshold
157+ ) ;
158+ }
109159}
0 commit comments