[PICO][OpenxR] [PR] Add XR_BD_controller_interaction and XR_BD_ultra_controller_interaction Extension Plugin

https://github.com/EpicGames/UnrealEngine/pull/13924

Provide a set of key definitions related to the PICO motion controller. With this pr, developers don’t need to install additional PICO Plugins from Fab to package standard OpenXR based applications to run on the PICO platform with PICO motion controller interactions.

[Attachment Removed]

The PR is currently being tested and will be submitted to Main soon. VR Template will also include support for a PICO interaction profile by default.

Question, if I implement support for the PICO 4 Controller Interaction Profile, does the PICO runtime rebind well to 3/Ultra, etc? Do you have a preferred Interaction Profile that we should support out of the box instead of PICO 4?

[Attachment Removed]

Victor, could you please help us to modify this pr (or I can create a new pr) to remove the G3 and Neo3 related(keys and controller model) and only keep 2 Interaction profiles, pico4 and ultra. And prefer pico4 Interaction profile. The pico4 profile can not auto map to previous devices like pico neo3, but can auto map to pico4 and pico ultra and later even pico5. (The current strategy is to be backward compatible. For example old pico4 game can run on pico5 with auto mapping controller)

To be honest, just the Pico 4 is enough, but why do we still hope to add the Ultra Controller?

The Ultral Controller supports Pico 4 Ultra and later versions. Whether from the hardware or software level, the Ultra Controller will be the form of controller that we will focus on supporting in the long term. That is to say, new VR devices may continue to use the old controller to pair and connect to new devices. In the short term, the physical hardware corresponding to the Ultra Controller may continue to serve as the controller for Pico’s VR headsets in the next few versions, and there will no longer be a one-to-one binding of one generation of devices to one generation of controllers.

So the vr template’s IMC, only needs to add PICO 4 Interaction profile, but still hope Developer can see the existence of Ultra controller.

[Attachment Removed]

Sounds good, go ahead and submit the new PR without the interaction profiles you don’t need and I’ll make sure it gets in for 5.8.

[Attachment Removed]

https://github.com/EpicGames/UnrealEngine/pull/14343

This is the final new PR, only keeping one set of keys (In fact, only Interaction profile paths and physical looks are different). Support PICO Controllers from PICO4 and later.

No longer needs to be compatible with neo3 and earlier devices, as there are many bugs in xr runtime and it is no longer updated or maintained.

Additionally, could you help us remove the code and model resources related to PicoNeo3? Because we will use https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_render_model to support the visualization of different controllers. [Image Removed]

[Attachment Removed]

Thanks we’ll get the PR in soon.

We’d like to support XR_EXT_render_model natively and have XRVisualizationComponent use that instead of the hardcoded models. However, we would keep the models as a fallback until enough runtimes support the extension. I’ve been waiting for more runtimes to support the extension before we implement support (I like to have at least two runtimes to test against). It looks like SteamVR is the only one that currently supports it. Do you as well, and if not, when do you expect to?

[Attachment Removed]

Got it.

https://github.khronos.org/OpenXR\-Inventory/runtime\_extension\_support.html I check the status of XR_EXT_render_model, openxr official website doesn’t update. In fact, PICO4 Ultra has already supported XR_EXT_render_model extension.

And victor, do you have PICO devices? PICO4, PICO4 Ultra?If you need, I think we can give you one or two devices.

[Attachment Removed]

That’s good to know!

I have a PICO4 and a PICO4 Enterprise - unless there’s anything specific with the runtime on the Ultra I’m content to use the ones I have for now.

[Attachment Removed]