Skip to content

Commit

Permalink
Merge Aero v1.6 Quest Pro
Browse files Browse the repository at this point in the history
  • Loading branch information
Adjerry91 committed Nov 5, 2022
1 parent bdbd54e commit baa125e
Show file tree
Hide file tree
Showing 9 changed files with 978 additions and 334 deletions.
78 changes: 50 additions & 28 deletions VRCFaceTracking/Params/Eye/EyeTrackingParams.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,17 @@ public static class EyeTrackingParams
new EParam(v2 => v2.Left.Widen > v2.Right.Widen ? v2.Left.Widen : v2.Right.Widen, "EyesWiden"),
new EParam(v2 => v2.Left.Widen, "LeftEyeWiden"),
new EParam(v2 => v2.Right.Widen, "RightEyeWiden"),

#endregion


#region Squint
new EParam(v2 => v2.Left.Squint > v2.Right.Squint ? v2.Left.Squint : v2.Right.Squint, "EyesSquint"),
new EParam(v2 => v2.Left.Squint, "LeftEyeSquint"),
new EParam(v2 => v2.Right.Squint, "RightEyeSquint"),
#endregion

#region Squeeze

new EParam(v2 => v2.Combined.Squeeze, "EyesSqueeze"),
new EParam(v2 => v2.Left.Squeeze, "LeftEyeSqueeze"),
new EParam(v2 => v2.Right.Squeeze, "RightEyeSqueeze"),
Expand All @@ -46,21 +52,21 @@ public static class EyeTrackingParams

new EParam((v2, eye) =>
{
if (v2.Left.Widen > 0)
if (v2.Left.Widen > 1-v2.Left.Openness)
return NormalizeFloat(0, 1, 0.8f, 1, v2.Left.Widen);
return NormalizeFloat(0, 1, 0, 0.8f, v2.Left.Openness);
}, "LeftEyeLidExpanded", 0.5f, true),

new EParam((v2, eye) =>
{
if (v2.Right.Widen > 0)
if (v2.Right.Widen > 1-v2.Right.Openness)
return NormalizeFloat(0, 1, 0.8f, 1, v2.Right.Widen);
return NormalizeFloat(0, 1, 0, 0.8f, v2.Right.Openness);
}, "RightEyeLidExpanded", 0.5f, true),

new EParam((v2, eye) =>
{
if (v2.Combined.Widen > 0)
if (v2.Combined.Widen > 1-v2.Combined.Openness)
return NormalizeFloat(0, 1, 0.8f, 1, v2.Combined.Widen);
return NormalizeFloat(0, 1, 0, 0.8f, v2.Combined.Openness);
}, "CombinedEyeLidExpanded", 0.5f, true),
Expand All @@ -71,27 +77,27 @@ public static class EyeTrackingParams

new EParam((v2, eye) =>
{
if (v2.Left.Widen > 0)
if (v2.Left.Widen > 1-v2.Left.Openness)
return NormalizeFloat(0, 1, 0.8f, 1, v2.Left.Widen);
if (v2.Left.Squeeze > 0)
if (v2.Left.Squeeze > 1-v2.Left.Openness)
return v2.Left.Squeeze * -1;
return NormalizeFloat(0, 1, 0, 0.8f, v2.Left.Openness);
} ,"LeftEyeLidExpandedSqueeze", 0.5f, true),

new EParam((v2, eye) =>
{
if (v2.Right.Widen > 0)
if (v2.Right.Widen > 1-v2.Right.Openness)
return NormalizeFloat(0, 1, 0.8f, 1, v2.Right.Widen);
if (v2.Right.Squeeze > 0)
if (v2.Right.Squeeze > 1-v2.Right.Openness)
return v2.Right.Squeeze * -1;
return NormalizeFloat(0, 1, 0, 0.8f, v2.Right.Openness);
} ,"RightEyeLidExpandedSqueeze", 0.5f, true),

new EParam((v2, eye) =>
{
if (v2.Combined.Widen > 0)
if (v2.Combined.Widen > 1-v2.Combined.Openness)
return NormalizeFloat(0, 1, 0.8f, 1, v2.Combined.Widen);
if (v2.Combined.Squeeze > 0)
if (v2.Combined.Squeeze > 1-v2.Combined.Openness)
return v2.Combined.Squeeze * -1;
return NormalizeFloat(0, 1, 0, 0.8f, v2.Combined.Openness);
} ,"CombinedEyeLidExpandedSqueeze", 0.5f, true),
Expand All @@ -102,21 +108,21 @@ public static class EyeTrackingParams

new BinaryParameter((v2, eye) =>
{
if (v2.Left.Widen > 0)
if (v2.Left.Widen > 1-v2.Left.Openness)
return v2.Left.Widen;
return v2.Left.Openness;
}, "LeftEyeLidExpanded"),

new BinaryParameter((v2, eye) =>
{
if (v2.Right.Widen > 0)
if (v2.Right.Widen > 1-v2.Right.Openness)
return v2.Right.Widen;
return v2.Right.Openness;
}, "RightEyeLidExpanded"),

new BinaryParameter((v2, eye) =>
{
if (v2.Combined.Widen > 0)
if (v2.Combined.Widen > 1-v2.Combined.Openness)
return v2.Combined.Widen;
return v2.Combined.Openness;
}, "CombinedEyeLidExpanded"),
Expand All @@ -127,27 +133,27 @@ public static class EyeTrackingParams

new BinaryParameter(v2 =>
{
if (v2.Left.Widen > 0)
if (v2.Left.Widen > 1-v2.Left.Openness)
return v2.Left.Widen;
if (v2.Left.Squeeze > 0)
if (v2.Left.Squeeze > 1-v2.Left.Openness)
return v2.Left.Squeeze;
return v2.Left.Openness;
}, "LeftEyeLidExpandedSqueeze"),

new BinaryParameter(v2 =>
{
if (v2.Right.Widen > 0)
if (v2.Right.Widen > 1-v2.Right.Openness)
return v2.Right.Widen;
if (v2.Right.Squeeze > 0)
if (v2.Right.Squeeze > 1-v2.Right.Openness)
return v2.Right.Squeeze;
return v2.Right.Openness;
}, "RightEyeLidExpandedSqueeze"),

new BinaryParameter((v2, eye) =>
{
if (v2.Combined.Widen > 0)
if (v2.Combined.Widen > 1-v2.Combined.Openness)
return v2.Combined.Widen;
if (v2.Combined.Squeeze > 0)
if (v2.Combined.Squeeze > 1-v2.Combined.Openness)
return v2.Combined.Squeeze;
return v2.Combined.Openness;
}, "CombinedEyeLidExpandedSqueeze"),
Expand All @@ -158,14 +164,30 @@ public static class EyeTrackingParams

// These parameters are used to distinguish when EyeLidExpanded / EyeLidExpandedSqueeze
// is returning a value as a Widen or Squeeze. Intended for the Bool or Binary param variant.
new BoolParameter(v2 => v2.Left.Widen > 0, "LeftEyeWidenToggle"),
new BoolParameter(v2 => v2.Right.Widen > 0, "RightEyeWidenToggle"),
new BoolParameter(v2 => v2.Combined.Widen > 0, "EyesWidenToggle"),
new BoolParameter(v2 => v2.Left.Widen > 1-v2.Left.Openness, "LeftEyeWidenToggle"),
new BoolParameter(v2 => v2.Right.Widen > 1-v2.Right.Openness, "RightEyeWidenToggle"),
new BoolParameter(v2 => v2.Combined.Widen > 1-v2.Combined.Openness, "EyesWidenToggle"),

new BoolParameter(v2 => v2.Left.Squeeze > 1-v2.Left.Openness, "LeftEyeSqueezeToggle"),
new BoolParameter(v2 => v2.Right.Squeeze > 1-v2.Right.Openness, "RightEyeSqueezeToggle"),
new BoolParameter(v2 => v2.Combined.Squeeze > 1-v2.Combined.Openness, "EyesSqueezeToggle"),

#endregion

new BoolParameter(v2 => v2.Left.Squeeze > 0, "LeftEyeSqueezeToggle"),
new BoolParameter(v2 => v2.Right.Squeeze > 0, "RightEyeSqueezeToggle"),
new BoolParameter(v2 => v2.Combined.Squeeze > 0, "EyesSqueezeToggle"),
#region EyeBrow

new EParam(v2 => v2.Left.Brow.InnerUp > v2.Right.Brow.InnerUp ? v2.Left.Brow.InnerUp : v2.Right.Brow.InnerUp, "BrowsInnerUp"),
new EParam(v2 => v2.Left.Brow.InnerUp, "BrowInnerUpLeft"),
new EParam(v2 => v2.Right.Brow.InnerUp, "BrowInnerUpRight"),

new EParam(v2 => v2.Left.Brow.OuterUp > v2.Right.Brow.InnerUp ? v2.Left.Brow.OuterUp : v2.Right.Brow.OuterUp, "BrowsOuterUp"),
new EParam(v2 => v2.Left.Brow.OuterUp, "BrowOuterUpLeft"),
new EParam(v2 => v2.Right.Brow.OuterUp, "BrowOuterUpRight"),

new EParam(v2 => v2.Left.Brow.InnerDown > v2.Right.Brow.InnerUp ? v2.Left.Brow.InnerDown : v2.Right.Brow.InnerDown, "BrowsDown"),
new EParam(v2 => v2.Left.Brow.InnerDown, "BrowDownLeft"),
new EParam(v2 => v2.Right.Brow.InnerDown, "BrowDownRight"),

#endregion

#region Status
Expand All @@ -179,4 +201,4 @@ public static class EyeTrackingParams
private static float NormalizeFloat(float minInput, float maxInput, float minOutput, float maxOutput,
float value) => (maxOutput - minOutput) / (maxInput - minInput) * (value - maxInput) + maxOutput;
}
}
}
6 changes: 3 additions & 3 deletions VRCFaceTracking/Params/Lip/LipShapeConversion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class PositiveNegativeShape : ICombinedShape
private float _positiveCache, _negativeCache;
private bool _steps;

public PositiveNegativeShape(LipShape_v2 positiveShape, LipShape_v2 negativeShape, bool steps = false)
public PositiveNegativeShape(UnifiedExpression positiveShape, UnifiedExpression negativeShape, bool steps = false)
{
_positiveShape = (int)positiveShape;
_negativeShape = (int)negativeShape;
Expand All @@ -37,7 +37,7 @@ public class PositiveNegativeAveragedShape : ICombinedShape
private readonly int _positiveCount, _negativeCount;
private readonly bool _useMax;

public PositiveNegativeAveragedShape(LipShape_v2[] positiveShapes, LipShape_v2[] negativeShapes)
public PositiveNegativeAveragedShape(UnifiedExpression[] positiveShapes, UnifiedExpression[] negativeShapes)
{
_positiveShapes = positiveShapes.Select(s => (int)s).ToArray();
_negativeShapes = negativeShapes.Select(s => (int)s).ToArray();
Expand All @@ -47,7 +47,7 @@ public PositiveNegativeAveragedShape(LipShape_v2[] positiveShapes, LipShape_v2[]
_negativeCount = negativeShapes.Length;
}

public PositiveNegativeAveragedShape(LipShape_v2[] positiveShapes, LipShape_v2[] negativeShapes, bool useMax)
public PositiveNegativeAveragedShape(UnifiedExpression[] positiveShapes, UnifiedExpression[] negativeShapes, bool useMax)
{
_positiveShapes = positiveShapes.Select(s => (int)s).ToArray();
_negativeShapes = negativeShapes.Select(s => (int)s).ToArray();
Expand Down

0 comments on commit baa125e

Please sign in to comment.