ViveSoftware / ViveInputUtility-Unity

A toolkit that helps developing/prototyping VR apps.
http://u3d.as/uF7
Other
353 stars 82 forks source link

Oculus Rift Device identification is not consistant #44

Open wirelessdreamer opened 6 years ago

wirelessdreamer commented 6 years ago

I recently started testing for rift support, sometimes the rift controllers are identified as one device, and at other times they get identified as a different rift device. The issue this creates is they have a different rotation offset for each, so the controller angles are incorrect they they detect as the other devices.

Has anyone else seen this behavior, or know of a way to resolve it? its all that's keeping me from being able to release for oculus at this point.

image

Both of these are the same controller on 2 consecutive startups of the project.

chengnay commented 6 years ago

We would like to know your environment settings. Do you have SteamVR plugin or Oculus plugin imported into your Unity project? What is your Unity version?

wirelessdreamer commented 6 years ago

unity 2017.2.0f3 steamvr plugin is installed Oculus plugin not installed

chengnay commented 6 years ago

From our investigation, the above behavior is by design. Serial number of Rift controller will show differently if developer does not install SteamVR plugin. You might have saved Role Binding config file before installing SteamVR plugin.

wirelessdreamer commented 6 years ago

The SteamVR plugin was installed for all tests that were ran, yet on sequential runs, different device names were shown. Without changing any plugins installed, both of the above device names were identified on sequential runs.

chengnay commented 6 years ago

We would like to know your settings in VIU Settings? Did you check both VIVE and Oculus Rift & Touch? Does your Oculus Touch controller keep changing its identification every time you ran your test? The "WMHD302M200V01_Controller..." serial number is provided by SteamVRModule, where "Oculus Rift CV1..." is provided by UnityEngineVRModule or OculusVRModule.

wirelessdreamer commented 6 years ago

Both Vive and Oculus are selected

Once how the device is detected changes, it stays changed for a while. I haven't noticed a pattern of when it changes back and forth.

Is there a way I can force rift to always use one of the other?

lawwong commented 6 years ago

That strange... suppose Unity will always try loading Oculus SDK before OpenVR SDK xr_settings_oculusvr_openvr

If you found out the pattern switching between modules please tell us, or report to Unity. VIU's VRModule activated depends on UnityEngine.XR.XRSettings.loadedDeviceName.

Before we can fix/work-around it, I suggest that you check only Oculus support in VIUSettings in your Oculus build, that should always stay with Oculus module.

wirelessdreamer commented 5 years ago

I just got a a rift to borrow from a friend for testing again, so I'm going to dig into this soon, and update with the results.

wirelessdreamer commented 5 years ago

It took me a little longer to get to looking into Oculus issues then I wanted, but I've been digging around for the past 2 nights. Here is what I have so far.

I need OpenVR and Oculus support for my Steam build. Everytime I place Oculus above OpenVR, then go back to XR settings later, OpenVR always moves above Oculus on its own. I previously didn't have the Oculus integration package installed, I have the current one installed in my testing, and am using 2018.2.of2. I'm still seeing the controllers detected as both, at different times.

wirelessdreamer commented 5 years ago

The issue only occurs when OpenVR is before Oculus in XR settings. The problem is every couple times I run the game OpenVR moves itself above Oculus, once I move it back its fine, but their order never stays put.