Reset orientation on oculus button press and hold. VRC.Quest.Functional.9

Hi,
I am currently on a stage of publishing Oculus VR app and I am encountering an issue with the headset’s orientation reset functionality. This issue is critical for meeting the VRC.Quest.Functional.9 requirement.

When using the new VR template in Unreal Engine 5.3.2-5.4.4, pressing and holding the Oculus button only brings up the system screen with “Reset View” and “Exit,” but it does not reset the orientation as expected. The orientation reset functionality is crucial for ensuring users can reorient themselves in VR, especially to meet the certification requirements for VRC.Quest.Functional.9.

Steps Taken:

  1. I tried different Unreal Engine versions 5.3.2-5.4.4 with different XR API options inside MetaXR plugin settings:
    -OculusOVRPlugin + OpenXR backend
    -Epic Native OpenXR with Oculus vendor extensions

  2. I attempted to bind the “Reset Orientation and Position” functionality within Unreal Engine’s Enhanced Input system, but I cannot find the Oculus button listed in the input mapping options.

  3. I have tried mapping the orientation reset to other buttons (such as the A or B buttons), which works within the project but does not satisfy the requirement of using the Oculus button to trigger this action.

  4. I attached an “reset orientation” event on GetVRFocus False state and it’s working perfect but I received same VRC.Quest.Functional.9 with message: The user’s forward orientation is not reset when the Oculus Home button is long-pressed.

Could you please advise on how to enable the Oculus button to properly reset the orientation? Alternatively, if there’s a system-level setting that may be interfering with the reset function, guidance on how to resolve this would be greatly appreciated.

UPD:
5.4.4 VR template just reseting fine on oculus long press.

BUT,
5.4.4 Demand SDK 34 and shows error on SDK 32, META allows ONLY 32. What should I do now?

The VR template has the tracking origin set up as Stage by default, which is supposed to remain stationary relative to the room trough a reset. According to that requirement, applications using Stage are exempt from it: https://developers.meta.com/horizon/resources/vrc-quest-functional-9

You could try changing the Set Tracking Origin node in the player pawn to Local Floor instead. It should then reset the orientation transparently from the runtime side.

2 Likes

Greetings! have you find solution for this issue. i am also trying to submit game and it got rejected due to same issue.

same problem, someone has the solution?

Rectus provided the solution here:

i found the solution, i was not to put it on floor level but eye level then move the camera z to +85

ps. I did a video in case it helps somebody https://www.youtube.com/watch?v=E_QBXvM-dtk

Won’t that break the floor level though? That’s more likely to fail the certification requirements since it doesn’t just change the orientation.

Local floor seems to have been added to UE with version 5.4, so upgrading to it might be a good idea.

No, it doesn’t break it. In fact, this is how I passed the certification. I was on 5.3 and couldn’t upgrade to 5.4 because of a plugin. I’ll check it in the future. :eyes:

How are you adjusting the floor level then? The local reference space has no access to it.

Imagine a child with half your height putting on the headset. They would have the same perspective as you, but their feet would be almost a meter off the in-game floor. A taller person would be sunk into the floor instead, being able to crouch down and look under the floor. the local space is designed for games where the floor height doesn’t matter, like seated simulator games.

yeah, it’s because in my game height it’s not important

1 Like

Ah, my bad. The Eye-level option (which uses the Local reference space) is the correct value in that case.