I am on a time-sensitive project to get our VR Unity app working on the Vive XR Elite headset (From the Quest2 build we have), ideally in the next few weeks as it is released during that time. I notice that on boot, the XR Elite headset says “Vive Focus 3” so I have been developing the port under the presumption that this headset is a Focus 3 (as there are virtually zero relatable results for “XR Elite” on the Vive developer forums.)
Our app uses both controllers and hand-tracking on the Quest 2, and we’d like for it to be able to use them both on the XR Elite. Therein lies our trouble…
Originally our app was built in Unity 2019.4.2, however I could not get controllers working in this version of Unity. I upgraded to 2021.3.12 and have eventually managed to get the XR Elite’s controller-tracking working in the app.
Now that I am trying to get hand-tracking working, I am at my wits end. I have tried following all of the following guides and tutorials to get hand tracking working in our app, to no avail: https://developer.vive.com/resources/openxr/openxr-pcvr/tutorials/unity/how-integrate-hand-tracking-data-your-hand-model/ https://www.youtube.com/watch?v=OnM58__AmQQ&t=119s&ab_channel=HTCVIVE https://hub.vive.com/storage/docs/en-us/UnityXR/UnityXRInteraction.html https://forum.htc.com/topic/12959-tutorial-focus3-openxr-getting-started-in-unity/ https://developer.vive.com/resources/openxr/openxr-mobile/tutorials/unity/getting-started-openxr-mobile/ https://forum.htc.com/topic/6959-wave-android-manifest-guide/?ct=1677534281 https://github.com/ViveSoftware/ViveInputUtility-Unity/wiki https://hub.vive.com/storage/docs/en-us/UnityXR/UnityXRHand.html
As you can imagine, we’re quite frustrated...!
Current Status of what works/what doesn’t:
So far the only way I can get hand-tracking working at all (outside of our app), is to create a brand new empty project in Unity;
2019.4.40 I can get the demo scene (From the Essence package) for hand tracking working, but not controllers
2021.3.12 I cannot get the hand demo scenes to work (that come with the Essence package) BUT I can spawn a bunch of cubes to each joint on the hand via the tutorial that I can’t find right now, spawning each cube joint of the hand dynamically. Though this is good, it’d mean I’d have to write my own grab/gesture code, which would be a bit much at this stage of the project, when all those things are already (apparently) working from the Vive SDK, I’d really rather just get the SDK hand tracking to work…
What actually happens:
(In Unity 2021.3.12) When you load into the app and put down the controllers, and wave your hands around in front of the camera, nothing happens/appears, no hand model, etc. The controllers just stay visible on the ground where you put them.
Can anyone help me? Here are all my settings for our 2021.3.12 Unity project. These screenshots below reflect just one of the many, many iterations I’ve tried, I don’t know if I’m supposed to be using the InteractionModeManager script, or the Wave SDK and the Open XR SDK with the Wave SDK Android Plugin or the Wave SDK Android Toolkit, or the PoseTracker script, or the HandManager script, the list goes on, as there have been so many versions of the Vive SDK and associated packages that I don’t know which one I should be using in this particular instance.
Any help is appreciated!!
AndroidManifest: <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools">
<application android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:theme="@style/Theme.WaveVR.Black"
tools:replace="android:theme">
<!--You can use your theme here.--> <activity android:name="com.htc.vr.unity.WVRUnityVRActivity"
android:label="@string/app_name"
android:configChanges="density|fontScale|keyboard|keyboardHidden|layoutDirection|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
android:enableVrMode="@string/wvr_vr_mode_component">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="com.htc.intent.category.VRAPP" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />
</activity>
</application>
<!-- <uses-permission android:name="android.permission.CAMERA" /> -->
<!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> -->
</manifest>