Jump to content

Absolutely can NOT get hand tracking working in Unity for Vive XR Elite


Radicals

Recommended Posts

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!!

 

D5I-JqpOO0Z0JqanymJpwlfSe1VpcxlGdrzZTHi5ronajrw5E2VI6njYH6MjPtWh5kFZ8DF1QwNuz1nCyCA5HS81ULmlWfN-ZoR_K2MU1SpIlZtr_1GPwwCGhewUrDw4cQ4cAkO-3we2rYV1Lxau420

TUY4n_m1Gvu3MRCvPRJ6dTwHZCK87mZH4l7_-SkNcDYc2P8akKHcakSIM0dh9Cld3ZkAwC4o6-eZY4VVtqgamPzNQeTxbx_9Hdsd4G3w6ZgUcZqQrRuPjULHiSQHiuTPaqS-T0R_gtsmzJQylG30UF8

Fexki8M6YFqvHCIHhCGU0SpvPLg7bgDBgwotcaqk3hwyY4uWRLyFTvjexA9RtMmW213j0jim1uhYbFhBMNBZ5xAkDa-qGJm67YJMOTFmJxPRgQxpPoCbNF1bFqM4Hg20RXuUtb3yjBhZUawdw1ACbAM

PdFlnTOCgKUdCdhVXWx152lVFPWOTZUc3PuN893fasjYuQelf8sCioABnNVO5TkHIDBtTRmqOJlK-vz69G7r3MF60EMUsuRZ_yHvVQgO_tsMssSnB0Hl_XmWFUerw8AlXl3CFLHrHDgDVqqiGNPDn6w

0FdQOUnQRzusxcZsSlX4IIeWnFCtScmMN9PMqTXFPtCMrCcwMBHaVof-o3bzCRPPKPxumNUEGB_1MJQoYclvBb0iGgi9BbhR1RxlJENhIv5Jg8yCLblDX2A96QUSIProtBOZiXSRfgArWN9_8_s1L1M

 

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>
 

Link to comment
Share on other sites

Hi @Radicals,

Based on the images you shared, I believe that you are mixing both Wave SDK and Wave OpenXR. You should be using on of the two.

If you are using the Wave SDK then in you XR Plugin-Management you should have the WaveXR tick box ticked (The WaveXR settings will not affect OpenXR content). Otherwise, if you are using OpenXR in you XR Plugin-Management you should have the OpenXR tick box ticked similar to the picture you shared and enable the Hand tracking feature from the OpenXR Feature Groups, ref image below.

image.png.d572c5ebf6e293d58bed01193bd76460.png

 

 

Link to comment
Share on other sites

Thanks, Mark - I have good news - turns out we don't need hand tracking on the XR Elite in this particular project after all, so that is a load off my mind. 

But for those who find this thread and do need it - at the last second I managed to get hands and controllers working via the package "Vive OpenXR Toolkit Samples - Android"  - this package contains a sample scene for both hands and controllers working simultaneously, granted they are with skeleton hands, but it's a start.

  • Like 1
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...