Skip to content

fix(face-tracking): make host authoritative for activity state and neutralize startup sync#582

Open
Toys0125 wants to merge 6 commits intoBasisVR:developerfrom
Toys0125:Fix-Face-Tracking
Open

fix(face-tracking): make host authoritative for activity state and neutralize startup sync#582
Toys0125 wants to merge 6 commits intoBasisVR:developerfrom
Toys0125:Fix-Face-Tracking

Conversation

@Toys0125
Copy link
Contributor

@Toys0125 Toys0125 commented Mar 7, 2026

  • Added an internal FaceTrackingActivityRelay channel (HVR/Internal/FaceTrackingActive) with a host-only inactivity timeout (0.5s). Remotes now follow host activity and do not run their own timeout logic.
  • Wired OSC input to activity updates so any incoming face packet marks tracking active.
  • Fixed remote eye application in EyeTrackingBoneActuation (!IsLocal && Receiver != null) and ensured remote override flags are cleared when tracking is inactive/disabled.
  • Gated eye and blendshape actuation behind propagated tracking activity:
    Active: HVR drives local/remote face data.
    Inactive: reset HVR-driven values to neutral and return control to Basis default behavior.
  • Stopped applying startup/default blendshape overrides when tracking is inactive; defaults are only pushed while tracking is active.
  • Changed mutualized feature initialization to neutral normalized values based on interpolation ranges (AbsoluteToRange(0) when 0 is in range), preventing signed channels from booting at low-end values (e.g. unintended TongueLeft).
  • Updated networking init flow to seed neutral values before initial replay, and fixed wearer/range bookkeeping issues in HVRAvatarComms.

Toys0125 added 4 commits March 6, 2026 22:04
…utralize startup sync

* Added an internal `FaceTrackingActivityRelay` channel (`HVR/Internal/FaceTrackingActive`) with a host-only inactivity timeout (0.5s). Remotes now follow host activity and do not run their own timeout logic.
* Wired OSC input to activity updates so any incoming face packet marks tracking active.
* Fixed remote eye application in `EyeTrackingBoneActuation` (!IsLocal && Receiver != null) and ensured remote override flags are cleared when tracking is inactive/disabled.
* Gated eye and blendshape actuation behind propagated tracking activity:
Active: HVR drives local/remote face data.
Inactive: reset HVR-driven values to neutral and return control to Basis default behavior.
* Stopped applying startup/default blendshape overrides when tracking is inactive; defaults are only pushed while tracking is active.
* Changed mutualized feature initialization to neutral normalized values based on interpolation ranges (AbsoluteToRange(0) when 0 is in range), preventing signed channels from booting at low-end values (e.g. unintended TongueLeft).
* Updated networking init flow to seed neutral values before initial replay, and fixed wearer/range bookkeeping issues in `HVRAvatarComms`.
…utralize startup sync

* Added an internal `FaceTrackingActivityRelay` channel (`HVR/Internal/FaceTrackingActive`) with a host-only inactivity timeout (0.5s). Remotes now follow host activity and do not run their own timeout logic.
* Wired OSC input to activity updates so any incoming face packet marks tracking active.
* Fixed remote eye application in `EyeTrackingBoneActuation` (!IsLocal && Receiver != null) and ensured remote override flags are cleared when tracking is inactive/disabled.
* Gated eye and blendshape actuation behind propagated tracking activity:
Active: HVR drives local/remote face data.
Inactive: reset HVR-driven values to neutral and return control to Basis default behavior.
* Stopped applying startup/default blendshape overrides when tracking is inactive; defaults are only pushed while tracking is active.
* Changed mutualized feature initialization to neutral normalized values based on interpolation ranges (AbsoluteToRange(0) when 0 is in range), preventing signed channels from booting at low-end values (e.g. unintended TongueLeft).
* Updated networking init flow to seed neutral values before initial replay, and fixed wearer/range bookkeeping issues in `HVRAvatarComms`.
@dooly123
Copy link
Collaborator

dooly123 commented Mar 7, 2026

break out the other changes to just what is needed and run that by hai please

@Toys0125
Copy link
Contributor Author

Toys0125 commented Mar 7, 2026

break out the other changes to just what is needed and run that by hai please

Okay done.
@hai-vr if you up to review the changes be greatly appreciated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants