08-22-2021 06:36 AM - edited 08-22-2021 06:37 AM
I am currently implementing OpenXR for Quest into my custom game engine and am running into some issues:
08-25-2021 08:04 AM - edited 08-25-2021 09:48 AM
Another problem I encountered is that when adding a suggested binding for the "simple controller" interaction profile, it will be used even though I am using touch controllers and have a suggested binding for them. (On Quest 2)
Edit: This actually depends on the order of the xrSuggestInteractionProfileBindings calls. If it is done for the simple controller binding first everything works as expected, if it is after the touch controller binding it breaks.
09-08-2021 04:53 AM
Another problem I now encountered is that if I request the microphone permission, xrWaitSwapchainImage will always time out after the popup is closed. If the timeout is high it will just freeze until the timeout is over. After it times out everything in the game starts lagging behind (rotating my head and it feels a bit head locked for example) and it only recovers when restarting the game.
09-11-2021 11:12 AM - edited 10-30-2021 04:12 PM
Have you tried uploading to Oculus? If so, how did you get entitlement to work with OpenXR?
With OculusVR plugin disabled I no longer seem to have the verify entitlement node.
*UPDATE, enable the Oculus Subsystem Plugin and the node is available again 😉
09-11-2021 11:18 AM
I have and it works just fine.
You need the Oculus Platform SDK for the entitlement check. I don't know if there is a standalone plugin for it that you can use or if you need to stock to the OculusVR plugin (but I think you can enable OpenXR with it somewhere?). I am not using Unity (nor Unreal), so I don't know the details.
09-11-2021 11:20 AM - edited 09-11-2021 01:05 PM
Thanks for the response Slin, I didn't see you were using a custom game engine. I'm reaching out to Unreal and Oculus support on this as well and hope they can give more detailed feedback.
10-30-2021 04:04 PM
You have to use Oculus Online Services and do it manually in C++; if you search in the old Oculus plugin you can see how they did it. If you can't figure it out let me know and I can make a video or something showing how to do it.
The relevant file is:
OculusEntitlementCallbackProxy.cpp
10-30-2021 04:11 PM
Hi Samalo0, yeah you're right about the Oculus Subsystem being needed for that node. It took me a while to figure that out, I continued setting up the project and then saw the node appear again and was able to deduce what I had missed 🙂 its funny / frustrating how the smallest oversights can cause so much hassle, though it won't be a mistake I make again. I should have Edited by question but I moved onto other things, thank you for making sure there's clarity for future people who come upon this, I know I appreciate it when I'm searching for answers.
10-30-2021 04:22 PM
Yeah!
Not to hijack the thread, but I'm having a LOT of issues with Oculus and OpenXR:
1. The Y button triggers the menu button (as you all found); I added a 2 second hold to trigger the menu so pressing Y doesn't cause it as easily. Lame work around for now.
2. The HMD events for detecting when you put it on your head/take it off/reset orientation don't fire. I can find where they are called in the Oculus plugin pre-OpenXR, but I can't find them in the OpenXR plugin. Therefore I assume there's no way to know when someone resets the view on the headset? I rotate my pawn with the stick, and I need to reset to forward when you reset orientation but now I cannot.
3. I tried going back to using the Oculus Plugin pre-open XR, and it crashes if I try Vulkan. It will run in ES3.1, but I need Vulkan for wireframes.
4. I can't go back to Ue4.27.0 because the Epic launcher won't let you install it.
Any ideas, let me know!