Forum Discussion

Negipoyoc's avatar
Negipoyoc
Explorer
12 months ago

Unintended automatic Recenter when using hand tracking with Quest Link

Location of the issue:
Quest Link home screen and applications using Quest Link
 
Symptoms:
- First, put on the Quest headset while it's in sleep mode.
- The proximity sensor then wakes the Quest from sleep mode and launches the app.
- At this point, if you use hand tracking to turn your palm towards yourself, it unintentionally triggers an automatic Recenter.
 
Additional information:
- Once this behavior occurs, it won't happen again until the Quest enters sleep mode next time.
- This issue occurs not only in Quest Link apps but also on the Quest Link home screen.
- The Recenter seems to trigger the moment the Meta button appears on the wrist.
- We checked the log output using ADB, but couldn't find any relevant error information at the moment this issue occurred.
 
This Recenter occurrence significantly disrupts the user experience when demonstrating apps that rely solely on hand tracking. When users move their hands, it unintentionally triggers a Recenter, causing confusion with the user's perspective and severely compromising the experience.
If anyone has encountered a similar issue and found a solution, we would greatly appreciate your input.
 
 

3 Replies

  • I have no help to offer yet, only a confirmation that you're not "crazy".  I've been working on a training project since around Feb/March, and this has been a recent issue for me as well - I'd say last month or so - end of July into August.  At first, I wasn't sure if it was due to one of Meta's frequent updates on the headset, or my code.  

    I can confirm it's the hand tracking.  Because at start up whenever I bring up my hands the first time, I get a system recenter.  Also, if I take the headset off and put it back on, and I put my hands in front of me afterwards, it again sometimes executes a system recenter.  This is really messing with the user experience in my case.

    Pretty sure this was introduced in a recent update.  Not sure if it's intended behavior, or it's happening due to some obscure setting in Unity, or if it's a bug.  I haven't found a way to prevent it happening.

    If you find a workaround solution, let me know.  If I find anything I'll post it here.

    Here's what I am using in case it helps Meta if they ever read this:

    Unity 2022.3.19f1

    Meta AIO SDK v64

    Quest 3

    Tracking origin type set on the OVRManager is "Floor Level".

    • Negipoyoc's avatar
      Negipoyoc
      Explorer
      Thank you! It is good to know that the problem is occurring in environments other than my own as well.
      I am continually working on this issue, but unfortunately have not found a solution.
       
      As for when the problem started, the “Meta button on wrist” was added in v66 of Quest OS, and I believe this is when the problem started occurring. (but maybe a little later).
       
       
      The problem is that the recenter occurs at an undefined timing (the moment the player's hand is tracked).
      This is a critical problem especially when demonstrating an app using Quest Link, and if the person experiencing the app is unfamiliar with VR, they will not be able to correct the viewpoint confusion themselves and experience the app correctly.
       
       
       
      Other things I found out are:
      - It seems that the recenter is applied at the moment when the Wrist Button is activated with the palm of the hand facing me, not just when tracking the hand.
      - This problem continues to occur even when the Wrist Button function is turned off.
      - This problem does not occur when the Hand Tracking function is turned off.
       
      And, this problem occurs on the Quest Link home screen even when Unity is not used.
      Therefore, I think that this is an issue with the OS itself.
  • Since Meta didn't address this issue for an entire year, I dealt with it as follows:

    Simply put:
    I allow this bug to occur, then detect when it happens and instantly revert the view back by the amount it shifted.

    - Reference the Transform of OVRCameraRig's CenterEye and record position and euler.y every frame
    - Monitor the rate of change for these two values while maintaining a history of 100 frames
    - When detecting a rate of change that would be impossible for human movement, consider the bug to have occurred
    - Using the Position and Rotation from one frame before the bug occurred, move back to that position

    This results in the view being incorrect for just one frame, but allows VR games to be played successfully.