Skip to main content
Up and Coming
March 1, 2024

v62 ControllerDrivenHands broken?

Hello,

I just updated to SDK v62, and after a little bit of confusion on where to get the samples (find them in the 'Samples' tab, for each package in the Package Manager window - it then adds them to Assets/, not Packages/), it seems that I can't get my controller-driven hands to show up.

At first I thought I was using the prefab wrong, but even if I open the official TouchGrabExamples scene, while hand-tracking works fine, if I pick up my controllers, the hand models do not appear. I have got "Controller Driven Hand Poses Type" set to "Natural" in the OVRCameraRig (the default setting in this sample).

It looks like the mesh renderer for the synthetic hands in the OVRControllerDrivenHands never gets enabled.

I'm using Unity 2022.3.14f1, testing over Quest Link. Am I missing something? If not, will it be fixed in v63?

    This topic has been closed for replies.

    27 replies

    New Participant
    May 3, 2024

    I am also facing the same issue any help will be appreciated!

    I am also updated to V64!

    New Participant
    May 4, 2024

    Hey ya'll, so DNightOwl's fix didn't work for me, and the hand examples still seem to broken in-editor and build. As far as I can tell, this is still an active issue, so you're not alone. I've put the hand animation on backburner for now as I work on other aspects of the project.

    TheDaddisAuthor
    Up and Coming
    August 2, 2024

    Just fyi, I'm still experiencing the same problem in v67. I would like to update my app with the latest SDK, but I can't debug it if I can't see the controller driven hands.

    Digging into the bug a little deeper it looks like the hand data it gets when switching to controllers does not look valid. As a result it disables the SkinnedMeshRenderer on the controller hand models.

    Participant
    August 18, 2024

    Since Meta seems to have no interest in fixing this, has anyone else dug deeper than just seeing the skinned mesh renderer never gets turned on?  I tried but now I am even more confused than before. 

    I compared OVRControllerDrivenHands to OVRControllerHands, which was the previously working controller hands solution but is now deprecated.  That deprecated prefab has a script FromOVRControllerHandDataSource which pulls from the controller input and generates a HandDataAsset for the Hand to use, doing things like converting the controller trigger value to a hand pinch value.  But the newer OVRControllerDrivenHands doesn't seem to have anything like that.  In fact as far as I can tell it's just set up to show controllers when you pick them up, or use hand tracking and show hands when controllers are set down, and nothing more.

    The deprecated FromOVRControllerHandDataSource does say to use ControllerHandDataSource instead, which does similar controller input to hand data mappings, but why is this script not anywhere in the OVRControllerDrivenHands prefab?  I did my best to learn how DataSource and DataModifier work, and tried to add that script into the prefab myself, and I did get the data flowing all the way to the hand visual and the skinned mesh renderer was supposedly on, but I still didn't see the hands appear.  For the record, the flow was: FromOVRControllerDataSource -> Controller -> ControllerHandDataSource -> Hand -> Synthetic Hand -> Hand Visual.

    If anyone has or is willing to dive into this deeper I'd love to hear some other thoughts about attempts to resolve this or clarification about stuff I may be misunderstanding. Or specifically if someone has some insight into the DataSource/Modifier system that is responsible for passing data around, I'm still not entirely sure I understand it beyond just Update After Previous Step is for receiving notification from the previous step that new data is available, and Data Modifer is for passing/modifying the data when something else requests it with GetData.

    New Participant
    August 18, 2024

    Of use and request confusion on where to get the samples (find them in the 'Samples' tab, for each package in the Package Manager window - it then adds them to Assets/, not Packages/), it seems that I can't get my controller-driven hands of the service to get the vista 

    New Participant
    August 19, 2024

    Same Problem In V67, I just wanna try the tutorial to vibrate conrtoller, still not fix it. ControllerDrivenHands still are controllers not synthetic Hands

    Inspiring
    August 22, 2024

    Hi all! I'm an engineer on the Interaction SDK team. We're sorry to hear this is still an issue for you; we're working to improve our docs to help this not be a problem going forward.

    In the meantime, can you confirm that the "Settings > Beta > Developer Runtime Features" setting is enabled in your Meta Quest Link app on your development PC? If not, does enabling it fix the issue for you?

    Inspiring
    August 23, 2024

    Yes, "Developer Runtime Features" are enabled. The Problem still persists.
    Even in the SampleScenes (v67) the Synthetic hands are not visible when testing in the Unity Editor. You can only see the controllers, but cannot grab anything.
    It only works in build for me.

    Inspiring
    August 23, 2024

    Okay, very interesting; thanks for helping us investigate this! Just to confirm, a lot of the sample scenes intentionally support controllers rather than controller-driven hands, but one exception is the "GestureExamples" scene. I just pulled that into a blank project (ISDK v68, Unity v2022.3.9f1) and was able to get controller-driven hands in that scene; does that scene behave as expected, or does that one also show controllers for you?

    Inspiring
    August 26, 2024

    I tested multiple scenes (in Editor via Link Cable) that have a version of the ControllerDrivenHands in their Rig (Gesture, Handgrab, HandgrabUse, Snap) in a new Project (ISDK v68, Unity v2022.3.15f1) - I can not see the synthetic hands anywhere and the controllers that are shown in the latter 3 scenes cannot perform any function (grabbing, use...).

    Inspiring
    August 26, 2024
    Okay, thanks again! Sorry if this reply is a bit of an info dump, but to reduce back-and-forth I'm just going to drop a lot of information about what's currently working for me, so that we can hopefully sift through more quickly and figure out where the difference is coming from.
     
    This morning I created a completely clean project (Unity 2022.3.9f1), installed Interaction SDK (v68), and was able to see controller-driven hands in Link (v68.0.0.515.361). The steps I followed were as follows:
    1.  Create the Unity project
    2. Switch build target to Android
    3. Install Meta XR All-in-One
    4. Install Unity XR support
    5. Enable Oculus XR plugins for both Android and Windows
    6. Run the Meta > Tools > Project Setup Tool and apply all recommended fixes
    7. Install the Interaction SDK Example Scenes
    8. Open the GestureExamples scene
    9. Start Link (with cable) from Quest 3
    10. While holding controllers, press Play in Unity
    On my (Windows) machine, these steps resulted in controller-driven hands working over Link. My Quest device is on a pre-release OS build, which I don't think should affect this behavior, but if you suspect that's an issue just let me know your OS version and I'll be happy to test again to be sure.
     
    Apart from that, one of my colleagues also put together a short list of things that have fixed controller-driven hands problems in the past. I think these are all already checked or not applicable here, especially in the example scenes, but in the interest of thoroughness here's the full list:
    •  In the OVRManager, ensure that the "Controller Driven Hands" setting is set to "Conforming to Controller" or "Natural."
    • In Unity's XR Plug-in Management, ensure the Oculus plug-in provider is enabled for both Android and Windows.
    • In PC Link, ensure that "Developer Runtime Features" are enabled.
    • In the OVRHand scripts on the OVRHandPrefab objects nested under "Left/RightHandAnchor," ensure that "Show State" is set to either "Always" or "Controller In Hand or No Hand."

    Do any of the things described here seem different between my setup and yours? If not, we might have to dive deeper to figure out why it behaves differently on my system versus yours. Thanks again for your patience in helping us delve into this!

    New Participant
    August 30, 2024

    Is this Problem related to Device? I am using quest2, if i wanna try ControllerDrivenHands, should i have to use Quets3?

    Inspiring
    August 28, 2024

    Thank you very much for looking into this. I followed the listed steps exactly but still had the same outcome as before: No Hands visible. Also doublechecked the four additional points mentioned. They had all been set correctly.


    I've noticed that this same problem is also being discussed in parallel in this other thread: https://communityforums.atmeta.com/t5/Unity-VR-Development/Set-up-controller-driven-hands-v65/td-p/1196675

    Maybe we can consolidate our efforts in one of the two for efficiency. That way you don't have to post the same thing in different threads over and over 😉

    Inspiring
    August 28, 2024

    >  consolidate our efforts in one
    Yep, probably a good idea. I had hoped that these were separate issues and that at least one of the threads would be resolvable fairly quickly, but sadly you've both defeated all my quick fix ideas so far. 😄 If you don't mind, let's continue in the other thread you linked to and rehydrate this one if the investigations diverge. Thanks!