benaclejames / VRCFaceTracking

OSC App to allow VRChat avatars to interact with eye and facial tracking hardware
https://docs.vrcft.io
Apache License 2.0
631 stars 96 forks source link

Is there complete list of OSC Parameters provided by / read by VRC Face Tracking? #237

Open anatawa12 opened 3 weeks ago

anatawa12 commented 3 weeks ago

Hello. I'm the author of Avatar Optimizer.

Is there any documentation or source code location that provides all parameters VRCFaceTracking provide to / read from Avatar?

I'm planned to implement more optimization for Animator Controller in the future release of Avatar Optimizer assuming parameters are not animated. However, this optimization would break compatibility with OSC Tools, so Avatar Optimizer is going to have system to declare parameter information about OSC Tools since next release, and bundle information for popular tools like VRCFaceTracking.

Therefore, I want to know all parameters VRCFaceTracking provide to / read from Avatar.

I found https://docs.vrcft.io/docs/tutorial-avatars/tutorial-avatars-extras/parameters but this says it's incomplete, and there are no information about which parameters are read by VRC Face Tracking.

There are many parameters listed here, and some that are undocumented to help users save performance (such as 100% optimal parameter replacements for some parameters).

I found https://github.com/benaclejames/VRCFaceTracking/blob/master/VRCFaceTracking.Core/UnifiedTracking.cs#L37-L46 and it looks complete but I could not trust my assumption so I asked here. And this also doesn't have information about which parameters are read by VRC Face Tracking.

lonelyicer commented 2 weeks ago
v2/EyeSquintRight
v2/EyeSquintRightNegative
v2/EyeSquintLeft
v2/EyeSquintLeftNegative
v2/EyeWideRight
v2/EyeWideRightNegative
v2/EyeWideLeft
v2/EyeWideLeftNegative
v2/BrowPinchRight
v2/BrowPinchRightNegative
v2/BrowPinchLeft
v2/BrowPinchLeftNegative
v2/BrowLowererRight
v2/BrowLowererRightNegative
v2/BrowLowererLeft
v2/BrowLowererLeftNegative
v2/BrowInnerUpRight
v2/BrowInnerUpRightNegative
v2/BrowInnerUpLeft
v2/BrowInnerUpLeftNegative
v2/BrowOuterUpRight
v2/BrowOuterUpRightNegative
v2/BrowOuterUpLeft
v2/BrowOuterUpLeftNegative
v2/NasalDilationRight
v2/NasalDilationRightNegative
v2/NasalDilationLeft
v2/NasalDilationLeftNegative
v2/NasalConstrictRight
v2/NasalConstrictRightNegative
v2/NasalConstrictLeft
v2/NasalConstrictLeftNegative
v2/CheekSquintRight
v2/CheekSquintRightNegative
v2/CheekSquintLeft
v2/CheekSquintLeftNegative
v2/CheekPuffRight
v2/CheekPuffRightNegative
v2/CheekPuffLeft
v2/CheekPuffLeftNegative
v2/CheekSuckRight
v2/CheekSuckRightNegative
v2/CheekSuckLeft
v2/CheekSuckLeftNegative
v2/JawOpen
v2/JawOpenNegative
v2/JawRight
v2/JawRightNegative
v2/JawLeft
v2/JawLeftNegative
v2/JawForward
v2/JawForwardNegative
v2/JawBackward
v2/JawBackwardNegative
v2/JawClench
v2/JawClenchNegative
v2/JawMandibleRaise
v2/JawMandibleRaiseNegative
v2/MouthClosed
v2/MouthClosedNegative
v2/LipSuckUpperRight
v2/LipSuckUpperRightNegative
v2/LipSuckUpperLeft
v2/LipSuckUpperLeftNegative
v2/LipSuckLowerRight
v2/LipSuckLowerRightNegative
v2/LipSuckLowerLeft
v2/LipSuckLowerLeftNegative
v2/LipSuckCornerRight
v2/LipSuckCornerRightNegative
v2/LipSuckCornerLeft
v2/LipSuckCornerLeftNegative
v2/LipFunnelUpperRight
v2/LipFunnelUpperRightNegative
v2/LipFunnelUpperLeft
v2/LipFunnelUpperLeftNegative
v2/LipFunnelLowerRight
v2/LipFunnelLowerRightNegative
v2/LipFunnelLowerLeft
v2/LipFunnelLowerLeftNegative
v2/LipPuckerUpperRight
v2/LipPuckerUpperRightNegative
v2/LipPuckerUpperLeft
v2/LipPuckerUpperLeftNegative
v2/LipPuckerLowerRight
v2/LipPuckerLowerRightNegative
v2/LipPuckerLowerLeft
v2/LipPuckerLowerLeftNegative
v2/MouthUpperUpRight
v2/MouthUpperUpRightNegative
v2/MouthUpperUpLeft
v2/MouthUpperUpLeftNegative
v2/MouthUpperDeepenRight
v2/MouthUpperDeepenRightNegative
v2/MouthUpperDeepenLeft
v2/MouthUpperDeepenLeftNegative
v2/NoseSneerRight
v2/NoseSneerRightNegative
v2/NoseSneerLeft
v2/NoseSneerLeftNegative
v2/MouthLowerDownRight
v2/MouthLowerDownRightNegative
v2/MouthLowerDownLeft
v2/MouthLowerDownLeftNegative
v2/MouthUpperRight
v2/MouthUpperRightNegative
v2/MouthUpperLeft
v2/MouthUpperLeftNegative
v2/MouthLowerRight
v2/MouthLowerRightNegative
v2/MouthLowerLeft
v2/MouthLowerLeftNegative
v2/MouthCornerPullRight
v2/MouthCornerPullRightNegative
v2/MouthCornerPullLeft
v2/MouthCornerPullLeftNegative
v2/MouthCornerSlantRight
v2/MouthCornerSlantRightNegative
v2/MouthCornerSlantLeft
v2/MouthCornerSlantLeftNegative
v2/MouthFrownRight
v2/MouthFrownRightNegative
v2/MouthFrownLeft
v2/MouthFrownLeftNegative
v2/MouthStretchRight
v2/MouthStretchRightNegative
v2/MouthStretchLeft
v2/MouthStretchLeftNegative
v2/MouthDimpleRight
v2/MouthDimpleRightNegative
v2/MouthDimpleLeft
v2/MouthDimpleLeftNegative
v2/MouthRaiserUpper
v2/MouthRaiserUpperNegative
v2/MouthRaiserLower
v2/MouthRaiserLowerNegative
v2/MouthPressRight
v2/MouthPressRightNegative
v2/MouthPressLeft
v2/MouthPressLeftNegative
v2/MouthTightenerRight
v2/MouthTightenerRightNegative
v2/MouthTightenerLeft
v2/MouthTightenerLeftNegative
v2/TongueOut
v2/TongueOutNegative
v2/TongueUp
v2/TongueUpNegative
v2/TongueDown
v2/TongueDownNegative
v2/TongueRight
v2/TongueRightNegative
v2/TongueLeft
v2/TongueLeftNegative
v2/TongueRoll
v2/TongueRollNegative
v2/TongueBendDown
v2/TongueBendDownNegative
v2/TongueCurlUp
v2/TongueCurlUpNegative
v2/TongueSquish
v2/TongueSquishNegative
v2/TongueFlat
v2/TongueFlatNegative
v2/TongueTwistRight
v2/TongueTwistRightNegative
v2/TongueTwistLeft
v2/TongueTwistLeftNegative
v2/SoftPalateClose
v2/SoftPalateCloseNegative
v2/ThroatSwallow
v2/ThroatSwallowNegative
v2/NeckFlexRight
v2/NeckFlexRightNegative
v2/NeckFlexLeft
v2/NeckFlexLeftNegative
v2/Max
v2/MaxNegative
v2/BrowUpRight
v2/BrowUpRightNegative
v2/BrowUpLeft
v2/BrowUpLeftNegative
v2/BrowDownRight
v2/BrowDownRightNegative
v2/BrowDownLeft
v2/BrowDownLeftNegative
v2/MouthSmileRight
v2/MouthSmileRightNegative
v2/MouthSmileLeft
v2/MouthSmileLeftNegative
v2/MouthSadRight
v2/MouthSadRightNegative
v2/MouthSadLeft
v2/MouthSadLeftNegative
v2/EyeX
v2/EyeXNegative
v2/EyeY
v2/EyeYNegative
v2/EyeLeftX
v2/EyeLeftXNegative
v2/EyeLeftY
v2/EyeLeftYNegative
v2/EyeRightX
v2/EyeRightXNegative
v2/EyeRightY
v2/EyeRightYNegative
v2/
v2/PupilDilation
v2/PupilDilationNegative
v2/PupilDiameterLeft
v2/PupilDiameterLeftNegative
v2/PupilDiameterRight
v2/PupilDiameterRightNegative
v2/PupilDiameter
v2/PupilDiameterNegative
v2/EyeOpenLeft
v2/EyeOpenLeftNegative
v2/EyeOpenRight
v2/EyeOpenRightNegative
v2/EyeOpen
v2/EyeOpenNegative
v2/EyeClosedLeft
v2/EyeClosedLeftNegative
v2/EyeClosedRight
v2/EyeClosedRightNegative
v2/EyeClosed
v2/EyeClosedNegative
v2/EyeWide
v2/EyeWideNegative
v2/EyeLidLeft
v2/EyeLidLeftNegative
v2/EyeLidRight
v2/EyeLidRightNegative
v2/EyeLid
v2/EyeLidNegative
v2/EyeSquint
v2/EyeSquintNegative
v2/EyesSquint
v2/EyesSquintNegative
v2/BrowUp
v2/BrowUpNegative
v2/BrowDown
v2/BrowDownNegative
v2/BrowInnerUp
v2/BrowInnerUpNegative
v2/BrowOuterUp
v2/BrowOuterUpNegative
v2/BrowExpressionRight
v2/BrowExpressionRightNegative
v2/BrowExpressionLeft
v2/BrowExpressionLeftNegative
v2/BrowExpression
v2/BrowExpressionNegative
v2/JawX
v2/JawXNegative
v2/JawZ
v2/JawZNegative
v2/CheekSquint
v2/CheekSquintNegative
v2/CheekPuffSuckLeft
v2/CheekPuffSuckLeftNegative
v2/CheekPuffSuckRight
v2/CheekPuffSuckRightNegative
v2/CheekPuffSuck
v2/CheekPuffSuckNegative
v2/CheekSuck
v2/CheekSuckNegative
v2/MouthUpperX
v2/MouthUpperXNegative
v2/MouthLowerX
v2/MouthLowerXNegative
v2/MouthX
v2/MouthXNegative
v2/LipSuckUpper
v2/LipSuckUpperNegative
v2/LipSuckLower
v2/LipSuckLowerNegative
v2/LipSuck
v2/LipSuckNegative
v2/LipFunnelUpper
v2/LipFunnelUpperNegative
v2/LipFunnelLower
v2/LipFunnelLowerNegative
v2/LipFunnel
v2/LipFunnelNegative
v2/LipPuckerUpper
v2/LipPuckerUpperNegative
v2/LipPuckerLower
v2/LipPuckerLowerNegative
v2/LipPuckerRight
v2/LipPuckerRightNegative
v2/LipPuckerLeft
v2/LipPuckerLeftNegative
v2/LipPucker
v2/LipPuckerNegative
v2/LipSuckFunnelUpper
v2/LipSuckFunnelUpperNegative
v2/LipSuckFunnelLower
v2/LipSuckFunnelLowerNegative
v2/LipSuckFunnelLowerLeft
v2/LipSuckFunnelLowerLeftNegative
v2/LipSuckFunnelLowerRight
v2/LipSuckFunnelLowerRightNegative
v2/LipSuckFunnelUpperLeft
v2/LipSuckFunnelUpperLeftNegative
v2/LipSuckFunnelUpperRight
v2/LipSuckFunnelUpperRightNegative
v2/MouthUpperUp
v2/MouthUpperUpNegative
v2/MouthLowerDown
v2/MouthLowerDownNegative
v2/MouthOpen
v2/MouthOpenNegative
v2/MouthStretch
v2/MouthStretchNegative
v2/MouthTightener
v2/MouthTightenerNegative
v2/MouthPress
v2/MouthPressNegative
v2/MouthDimple
v2/MouthDimpleNegative
v2/NoseSneer
v2/NoseSneerNegative
v2/MouthTightenerStretch
v2/MouthTightenerStretchNegative
v2/MouthTightenerStretchLeft
v2/MouthTightenerStretchLeftNegative
v2/MouthTightenerStretchRight
v2/MouthTightenerStretchRightNegative
v2/MouthCornerYLeft
v2/MouthCornerYLeftNegative
v2/MouthCornerYRight
v2/MouthCornerYRightNegative
v2/MouthCornerY
v2/MouthCornerYNegative
v2/SmileFrownRight
v2/SmileFrownRightNegative
v2/SmileFrownLeft
v2/SmileFrownLeftNegative
v2/SmileFrown
v2/SmileFrownNegative
v2/SmileSadRight
v2/SmileSadRightNegative
v2/SmileSadLeft
v2/SmileSadLeftNegative
v2/SmileSad
v2/SmileSadNegative
v2/TongueX
v2/TongueXNegative
v2/TongueY
v2/TongueYNegative
v2/TongueArchY
v2/TongueArchYNegative
v2/TongueShape
v2/TongueShapeNegative
EyeTrackingActive
ExpressionTrackingActive
LipTrackingActive
JawRight
JawRightNegative
JawLeft
JawLeftNegative
JawForward
JawForwardNegative
JawOpen
JawOpenNegative
MouthApeShape
MouthApeShapeNegative
MouthUpperRight
MouthUpperRightNegative
MouthUpperLeft
MouthUpperLeftNegative
MouthLowerRight
MouthLowerRightNegative
MouthLowerLeft
MouthLowerLeftNegative
MouthUpperOverturn
MouthUpperOverturnNegative
MouthLowerOverturn
MouthLowerOverturnNegative
MouthPout
MouthPoutNegative
MouthSmileRight
MouthSmileRightNegative
MouthSmileLeft
MouthSmileLeftNegative
MouthSadRight
MouthSadRightNegative
MouthSadLeft
MouthSadLeftNegative
CheekPuffRight
CheekPuffRightNegative
CheekPuffLeft
CheekPuffLeftNegative
CheekSuck
CheekSuckNegative
MouthUpperUpRight
MouthUpperUpRightNegative
MouthUpperUpLeft
MouthUpperUpLeftNegative
MouthLowerDownRight
MouthLowerDownRightNegative
MouthLowerDownLeft
MouthLowerDownLeftNegative
MouthUpperInside
MouthUpperInsideNegative
MouthLowerInside
MouthLowerInsideNegative
MouthLowerOverlay
MouthLowerOverlayNegative
TongueLongStep1
TongueLongStep1Negative
TongueLeft
TongueLeftNegative
TongueRight
TongueRightNegative
TongueUp
TongueUpNegative
TongueDown
TongueDownNegative
TongueRoll
TongueRollNegative
TongueLongStep2
TongueLongStep2Negative
TongueUpRightMorph
TongueUpRightMorphNegative
TongueUpLeftMorph
TongueUpLeftMorphNegative
TongueDownRightMorph
TongueDownRightMorphNegative
TongueDownLeftMorph
TongueDownLeftMorphNegative
Max
MaxNegative
JawX
JawXNegative
MouthUpper
MouthUpperNegative
MouthLower
MouthLowerNegative
MouthX
MouthXNegative
SmileSadRight
SmileSadRightNegative
SmileSadLeft
SmileSadLeftNegative
SmileSad
SmileSadNegative
TongueY
TongueYNegative
TongueX
TongueXNegative
PuffSuckRight
PuffSuckRightNegative
PuffSuckLeft
PuffSuckLeftNegative
PuffSuck
PuffSuckNegative
JawOpenApe
JawOpenApeNegative
JawOpenPuff
JawOpenPuffNegative
JawOpenPuffRight
JawOpenPuffRightNegative
JawOpenPuffLeft
JawOpenPuffLeftNegative
JawOpenSuck
JawOpenSuckNegative
JawOpenForward
JawOpenForwardNegative
JawOpenOverlay
JawOpenOverlayNegative
MouthUpperUpRightUpperInside
MouthUpperUpRightUpperInsideNegative
MouthUpperUpRightPuffRight
MouthUpperUpRightPuffRightNegative
MouthUpperUpRightApe
MouthUpperUpRightApeNegative
MouthUpperUpRightPout
MouthUpperUpRightPoutNegative
MouthUpperUpRightOverlay
MouthUpperUpRightOverlayNegative
MouthUpperUpRightSuck
MouthUpperUpRightSuckNegative
MouthUpperUpLeftUpperInside
MouthUpperUpLeftUpperInsideNegative
MouthUpperUpLeftPuffLeft
MouthUpperUpLeftPuffLeftNegative
MouthUpperUpLeftApe
MouthUpperUpLeftApeNegative
MouthUpperUpLeftPout
MouthUpperUpLeftPoutNegative
MouthUpperUpLeftOverlay
MouthUpperUpLeftOverlayNegative
MouthUpperUpLeftSuck
MouthUpperUpLeftSuckNegative
MouthUpperUpUpperInside
MouthUpperUpUpperInsideNegative
MouthUpperUpInside
MouthUpperUpInsideNegative
MouthUpperUpPuff
MouthUpperUpPuffNegative
MouthUpperUpPuffLeft
MouthUpperUpPuffLeftNegative
MouthUpperUpPuffRight
MouthUpperUpPuffRightNegative
MouthUpperUpApe
MouthUpperUpApeNegative
MouthUpperUpPout
MouthUpperUpPoutNegative
MouthUpperUpOverlay
MouthUpperUpOverlayNegative
MouthUpperUpSuck
MouthUpperUpSuckNegative
MouthLowerDownRightLowerInside
MouthLowerDownRightLowerInsideNegative
MouthLowerDownRightPuffRight
MouthLowerDownRightPuffRightNegative
MouthLowerDownRightApe
MouthLowerDownRightApeNegative
MouthLowerDownRightPout
MouthLowerDownRightPoutNegative
MouthLowerDownRightOverlay
MouthLowerDownRightOverlayNegative
MouthLowerDownRightSuck
MouthLowerDownRightSuckNegative
MouthLowerDownLeftLowerInside
MouthLowerDownLeftLowerInsideNegative
MouthLowerDownLeftPuffLeft
MouthLowerDownLeftPuffLeftNegative
MouthLowerDownLeftApe
MouthLowerDownLeftApeNegative
MouthLowerDownLeftPout
MouthLowerDownLeftPoutNegative
MouthLowerDownLeftOverlay
MouthLowerDownLeftOverlayNegative
MouthLowerDownLeftSuck
MouthLowerDownLeftSuckNegative
MouthLowerDownLowerInside
MouthLowerDownLowerInsideNegative
MouthLowerDownInside
MouthLowerDownInsideNegative
MouthLowerDownPuff
MouthLowerDownPuffNegative
MouthLowerDownPuffLeft
MouthLowerDownPuffLeftNegative
MouthLowerDownPuffRight
MouthLowerDownPuffRightNegative
MouthLowerDownApe
MouthLowerDownApeNegative
MouthLowerDownPout
MouthLowerDownPoutNegative
MouthLowerDownOverlay
MouthLowerDownOverlayNegative
MouthLowerDownSuck
MouthLowerDownSuckNegative
MouthUpperInsideOverturn
MouthUpperInsideOverturnNegative
MouthLowerInsideOverturn
MouthLowerInsideOverturnNegative
SmileRightUpperOverturn
SmileRightUpperOverturnNegative
SmileRightLowerOverturn
SmileRightLowerOverturnNegative
SmileRightOverturn
SmileRightOverturnNegative
SmileRightApe
SmileRightApeNegative
SmileRightOverlay
SmileRightOverlayNegative
SmileRightPout
SmileRightPoutNegative
SmileLeftUpperOverturn
SmileLeftUpperOverturnNegative
SmileLeftLowerOverturn
SmileLeftLowerOverturnNegative
SmileLeftOverturn
SmileLeftOverturnNegative
SmileLeftApe
SmileLeftApeNegative
SmileLeftOverlay
SmileLeftOverlayNegative
SmileLeftPout
SmileLeftPoutNegative
SmileUpperOverturn
SmileUpperOverturnNegative
SmileLowerOverturn
SmileLowerOverturnNegative
SmileOverturn
SmileOverturnNegative
SmileApe
SmileApeNegative
SmileOverlay
SmileOverlayNegative
SmilePout
SmilePoutNegative
PuffRightUpperOverturn
PuffRightUpperOverturnNegative
PuffRightLowerOverturn
PuffRightLowerOverturnNegative
PuffRightOverturn
PuffRightOverturnNegative
PuffLeftUpperOverturn
PuffLeftUpperOverturnNegative
PuffLeftLowerOverturn
PuffLeftLowerOverturnNegative
PuffLeftOverturn
PuffLeftOverturnNegative
PuffUpperOverturn
PuffUpperOverturnNegative
PuffLowerOverturn
PuffLowerOverturnNegative
PuffOverturn
PuffOverturnNegative
TongueSteps
TongueStepsNegative
EyesX
EyesXNegative
EyesY
EyesYNegative
LeftEyeX
LeftEyeXNegative
LeftEyeY
LeftEyeYNegative
RightEyeX
RightEyeXNegative
RightEyeY
RightEyeYNegative
LeftEyeWiden
LeftEyeWidenNegative
RightEyeWiden
RightEyeWidenNegative
EyeWiden
EyeWidenNegative
LeftEyeSqueeze
LeftEyeSqueezeNegative
RightEyeSqueeze
RightEyeSqueezeNegative
EyesSqueeze
EyesSqueezeNegative
EyesDilation
EyesDilationNegative
EyesPupilDiameter
EyesPupilDiameterNegative
LeftEyeLid
LeftEyeLidNegative
RightEyeLid
RightEyeLidNegative
CombinedEyeLid
CombinedEyeLidNegative
LeftEyeLidExpanded
RightEyeLidExpanded
EyeLidExpanded
LeftEyeLidExpandedSqueeze
RightEyeLidExpandedSqueeze
EyeLidExpandedSqueeze
LeftEyeLidExpandedNegative
RightEyeLidExpandedNegative
CombinedEyeLidExpandedNegative
LeftEyeLidExpandedSqueezeNegative
RightEyeLidExpandedSqueezeNegative
CombinedEyeLidExpandedSqueezeNegative
LeftEyeWidenToggle
RightEyeWidenToggle
EyesWidenToggle
LeftEyeSqueezeToggle
RightEyeSqueezeToggle
EyesSqueezeToggle
BrowsInnerUp
BrowsInnerUpNegative
BrowInnerUpLeft
BrowInnerUpLeftNegative
BrowInnerUpRight
BrowInnerUpRightNegative
BrowsOuterUp
BrowsOuterUpNegative
BrowOuterUpLeft
BrowOuterUpLeftNegative
BrowOuterUpRight
BrowOuterUpRightNegative
BrowsDown
BrowsDownNegative
BrowDownLeft
BrowDownLeftNegative
BrowDownRight
BrowDownRightNegative
MouthRaiserLower
MouthRaiserLowerNegative
MouthRaiserUpper
MouthRaiserUpperNegative
EyesSquint
EyesSquintNegative
EyeSquintLeft
EyeSquintLeftNegative
EyeSquintRight
EyeSquintRightNegative
CheeksSquint
CheeksSquintNegative
CheekSquintLeft
CheekSquintLeftNegative
CheekSquintRight
CheekSquintRightNegative
MouthDimple
MouthDimpleNegative
MouthDimpleLeft
MouthDimpleLeftNegative
MouthDimpleRight
MouthDimpleRightNegative
MouthPress
MouthPressNegative
MouthPressLeft
MouthPressLeftNegative
MouthPressRight
MouthPressRightNegative
MouthStretch
MouthStretchNegative
MouthStretchLeft
MouthStretchLeftNegative
MouthStretchRight
MouthStretchRightNegative
MouthTightener
MouthTightenerNegative
MouthTightenerLeft
MouthTightenerLeftNegative
MouthTightenerRight
MouthTightenerRightNegative
NoseSneer
NoseSneerNegative
NoseSneerLeft
NoseSneerLeftNegative
NoseSneerRight
NoseSneerRightNegative

That should be all.

lonelyicer commented 2 weeks ago
foreach (var parameter in UnifiedTracking.AllParameters_v2.Concat(UnifiedTracking.AllParameters_v1)
                 .ToArray())
{
    var paramNames = parameter.GetParamNames();
    foreach (var (paramName, paramLiteral) in paramNames)
    {
        _logger.LogInformation($"{paramName}");
    }
}

I used this method to output them, and manually removed duplicate rows. This method comes from here: https://github.com/benaclejames/VRCFaceTracking/blob/master/VRCFaceTracking.Core/OscQueryConfigParser.cs#L55-L59

benaclejames commented 2 weeks ago

Don't forget about binary parameters as well! Any of the above parameters can be prefixed by a number of power of 2. These are generated at runtime and so might need special handling to detect. We use a regex pattern internally

anatawa12 commented 2 weeks ago

Thank you for extracting list.

Don't forget about binary parameters as well!

Thank you for note that. I didn't know about that. I'll add support for regex pattern for better support. You mean something like v2/EyeSquintRight1 are valid.

It looks lonelyicer's list is about parameters VRCFT sends to VRChat, but is there any parameters VRCFT reads from VRChat?