Jump to content

Vive Cosmos Controller OpenXR Feature for Unity


dario

Recommended Posts

We have run into a bug Phasmophobia with the Vive Cosmos and OpenXR.

The input debugger shows that the Primary2DAxis is receiving input however we cannot get it to work at all with the input system.

We have tried referencing a generic XR controller as well as a specific controller for the Vive Cosmos however neither work. Every other controller works and we have no issues with those.

As far as we are aware this is a new issue with one of the latest XR or Vive Cosmos support releases.

If anyone knows a fix for this we would greatly appreciate it.

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...

Hi @Kinetic Games,

We are looking forward to clarifying the issue you are facing.

We did test again our latest VIVE OpenXR plugin with Unity OpenXR controller sample and all inputs including joystick x/y are working as usual.

It's kind of wierd that you mentioned about the issue just happens with the lastest update since we did not modified any of related inputs.

It'll be nice if you could provide more information and whether you could get it work with Unity OpenXR controller sample.

Link to comment
Share on other sites

  • 11 months later...

Hello,

I am currently working on an Unity 2022.3 project with OpenXR 1.8.2, the latest XR Interaction Toolkit version (2.4.3) and I am unable to get the left shoulder button of the Vive Cosmos to work. I have downloaded the latest 2.0.0 release of the VIVE OpenXR plugin for Unity and modified the Input sample scene as shown on the original post. I am using the VIVE OpenXR runtime, I tried using the Steam OpenXR but the shoulder buttons are not recognized at all.


This works perfectly fine for the right shoulder button but the left one does not work at all. I noticed that having only the left controller turned on makes it so the shoulder button works but once I'm turning up the right controller, it takes priority over the left shoulder button and it doesn't work anymore. I also noticed that if I swap out the two elements of the "List<DeviceConfig> deviceInfos", the left one works but the right one does not. I also tried to modify the ActionConfig of the "shoulderPressed" to "bumperPressed" because older versions of OpenXR seemed to use that in the past(?) but it didn't work. I confirm that the left and right shoulder buttons works without issue when I'm in the SteamVR environment (wanted to be sure it wasn't an hardware issue at first) but for obvious reasons, I want to work with UnityXR and therefore with that OpenXR plugin.

I hope having an answer to my issue, thank you.

Link to comment
Share on other sites

@MCA31

Throwing out some ideas --
1) can you try using the controller sample scene (you can import it by going to the openxr samples project and importing the samples under the "samples" tab). This should show a debug dump of different key presses
2) Maybe try updating to the openxr 2.x package here https://developer.vive.com/resources/openxr/unity/tutorials/how-to-install-vive-openxr-plugin/ There are regular fixes and updates to different versions of unity, ie for 2022 project. One thing to note in both of these, is that you may need to import our mappings and ensure they 

3) could try a 2021 lts to see if the same version of openxr is not reasonable
4) Try looking at the xr interaction debugger 


 

Link to comment
Share on other sites

  • 2 weeks later...
On 11/7/2023 at 12:34 AM, Alex_HTC said:

@MCA31

Throwing out some ideas --
1) can you try using the controller sample scene (you can import it by going to the openxr samples project and importing the samples under the "samples" tab). This should show a debug dump of different key presses
2) Maybe try updating to the openxr 2.x package here https://developer.vive.com/resources/openxr/unity/tutorials/how-to-install-vive-openxr-plugin/ There are regular fixes and updates to different versions of unity, ie for 2022 project. One thing to note in both of these, is that you may need to import our mappings and ensure they 

3) could try a 2021 lts to see if the same version of openxr is not reasonable
4) Try looking at the xr interaction debugger 


 

So I made some testing after reading your post :

1) The Samples scenes accessible of the VIVE OpenXR found here and especially the Input specific one never link the InputActions added with the plugin (a.k.a: the ViveCosmosController ones). I tried linking the VIVE Cosmos inputactions in that scene but it obviously doesn't work since it's what I already tried in my project

2) I am already working with the latest version of the VIVE OpenXR unfortunately

3) I can't go porting my project on Unity 2021 so it's a no-go for me 

4) The XR Interaction Debugger DOES receive the input of both controllers for the shoulder buttons (both L1 and R1) so it seems like it's not a OpenXR but definitely from the plugin side. I tried go over the code but I didn't really find anything to found a fix for this issue.

Also I wanted to point out multiple people are having the issue and notified whoever is in charge of the plugin on that repository (https://github.com/ViveSoftware/VIVE-OpenXR/issues/2), so I'm definitely not the only one having this problem.

 

I would very much like to know if someone can check if it is really an issue plugin-side since it seems OpenXR does recognize the input in the debugger.

Thank you and I wish you a good day.

Link to comment
Share on other sites

  • 4 months later...

Hi, since Unity OpenXR Plugin v1.9.1 (2023-10-19), they added a couple of new API functions for controller profiles the first of which, `GetDeviceLayoutName()` if not overridden results in a warning when loading up a project and when running it in Play mode/Standalone.

i.e.

No GetDeviceLayoutName() override detected in HTC Vive Cosmos Controller Support. Binding path validator for this interaction profile is not as effective. To fix, add GetDeviceLayoutName and GetInteractionProfileType override in this profile.
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()

I tried upgrading to v2.2.0 for the VIVE Wave OpenXR Plugin but all of the profiles still have not implemented GetDeviceLayoutName() (I'm on v1.0.4). It would be great if they could all be updated.

Thanks

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...