Repository navigation
LipTrackingActive and EyeTrackingActive parameters are not reliable at all #277
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or request
Description
Activity
- addedbugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or request
on May 13, 2025 This actually isn't a bug but is a result of the aforementioned parameters being omitted from the OSC receiver. The documentation is not inline with the current functionality. I am not entirely sure why these parameters were commented out but they should be functional from the OSC receiver:
VRCFaceTracking/VRCFaceTracking.Core/Services/OscQueryService.cs
Lines 140 to 171 in 46453fc
switch (msg.Address) { case "/avatar/change": HandleNewAvatar(msg.Value as string); break; case "/vrcft/settings/forceRelevant": // Endpoint for external tools to force vrcft to send all parameters if (msg.Value is bool relevancy) { _parameterSenderService.AllParametersRelevant = relevancy; } break; /* case "/avatar/parameters/EyeTrackingActive": if (UnifiedLibManager.EyeStatus != ModuleState.Uninitialized) { if (!msg.Value.BoolValue) UnifiedLibManager.EyeStatus = ModuleState.Idle; else UnifiedLibManager.EyeStatus = ModuleState.Active; } break; case "/avatar/parameters/LipTrackingActive": case "/avatar/parameters/ExpressionTrackingActive": { if (!msg.Value.BoolValue) if (UnifiedLibManager.ExpressionStatus != ModuleState.Uninitialized) UnifiedLibManager.ExpressionStatus = ModuleState.Idle; else UnifiedLibManager.ExpressionStatus = ModuleState.Active; } break; */ }
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or request
this is a copy paste from a thread in the discord, to keep this in a more visible place https://discord.com/channels/849300336128032789/1369298092184047616
according to the docs, "These parameters are set by VRCFaceTracking to indicate the status of the relevant tracking module. They are only sent upon load or when the status of the module changes." - https://docs.vrcft.io/docs/tutorial-avatars/tutorial-avatars-extras/parameters#tracking-active-parameters.
however, there seems to be multiple issues with them:
when you first load into VRChat, even if both eye and lip tracking modules are loaded, sometimes one or both parameters fail to get set.
if the parameters are marked are not marked as Saved, they will not be set properly when the user changes avatar or switches worlds, and face tracking won't work. if they are marked as Saved, and the user closes VRChat, the next time they launch the game, the parameters can be True even if VRCFT isn't running. this means the value of the parameters can't be trusted to enable/disable functionality.
the docs say to not use them in the expression menu, however, it seems like Jerry's templates do use them for enabling or disabling eye/lip tracking. this complicates things a bit, and means that changing the behavior of the parameters may have consequences.
the reason I bring this up is because I'm working on a better viseme replacement system that works in conjunction with face tracking to improve the responsiveness of speech, with additional logic to avoid over-driving shapes. if the user currently isn't using lip tracking, I need to know that so I can make the visemes have full influence, but I can't reliably do that with the current behavior of the parameters. if the parameters worked as stated in the docs, this wouldn't be a problem.