I’m struggling to have my demo game approved by Meta for App Lab, i’ve received this request for modification:
VRC.Quest.Functional.9
Criteria
In experiences using a Local tracking space, the user must be able to reset their forward orientation.
Additional details
In a Stage tracking space, the elements in a scene are laid out according to the Guardian boundary, so recentering doesn’t apply. The point of stage mode is to maintain a consistent reference point to the user’s physical space. For more information, see Guardian.
Steps to test
Launch the app
Observe the forward facing direction
Turn your body 180 degrees
Long press meta quest button.
Expected result
Forward orientation is reset.
I have no idea how to fullfill the request, as far as I know i can’t receive input from the “Menu” buttons on Quest HMDs.
Indeed, if you use the stage reference space, which is the default setting for Godot, you’re responsible for reacting to any orientation reset the user invokes (which happens when the user holds the Meta button on their right controller for a few seconds).
Officially in OpenXR, how you react to this is completely up to you. Meta however for store submission wants you to code the logic as described in their report.
How you do this depends a bit on the mechanisms you’ve already implemented in your game for recentering but in essence you need to react to the OpenXRInterface.pose_recentered signal and call XRServer.center_on_hmd. You will likely need to do something to then adjust the players position center_on_hmd resets orientation AND positioning, and you only want to reset orientation.