Closed HyperLethalVector closed 9 months ago
I've verified that the 'pinch' interactions and everything else is detected.
On inpsection, the pointer poses aren't getting updated.
Hey there,
Sorry for the late response. I believe the reason you aren't seeing any pointers associated with your new articulated hand is because you are missing the appropriate attribute in above the class:
Your implementation:
LeapMotion Articulated hand definition:
The reason this is important is because pointers are configured to be available on certain controller types:
and based on the controller mappings, the AutohandArticulatedHand wasn't detected as an ArticulatedHandController
Moving the AutohandArticulatedHand into it's own file and adding the following attribute seemed to fix this issue after a project restart, I'd suggest doing that to resolve this issue.
[MixedRealityController( SupportedControllerType.ArticulatedHand, new[] { Handedness.Left, Handedness.Right })]
Thanks for using MRTK! In v3 we should have a much simpler process for all of this :)
Words cannot describe how hard I facepalmed after reading this, but I'm over-the-moon that it works very well.
Would there be an interest in doing a PR with this additional virtual hand driver?
I think I'd want to know a bit more about how the functionality that the new hand provides. If the improvements/new features it adds are useful, we'll gladly take a look at a PR, review it, and hopefully try to get it in!
For sure!
The aim was to allow us to rapidly prototype MRTK interactivity using VR controlled hands, but to do so in an abstract enough way to allow compatibility with any virtual hand system. This is mostly us skirting around not having enough hand-tracking enabled devices for our developers.
We appreciate your feedback and thank you for reporting this issue.
Microsoft Mixed Reality Toolkit version 2 (MRTK2) is currently in limited support. This means that Microsoft is only fixing high priority security issues. Unfortunately, this issue does not meet the necessary priority and will be closed. If you strongly feel that this issue deserves more attention, please open a new issue and explain why it is important.
Microsoft recommends that all new HoloLens 2 Unity applications use MRTK3 instead of MRTK2.
Please note that MRTK3 was released in August 2023. It features an all-new architecture for developing rich mixed reality experiences and has a minimum requirement of Unity 2021.3 LTS. For more information about MRTK3, please visit https://www.mixedrealitytoolkit.org.
Thank you for your continued support of the Mixed Reality Toolkit!
Unity editor version
2020.3.24
Mixed Reality Toolkit release version
2.7.3
Overview
Hi everyone!
For Experimentation purposes, I've created a virtual hand within the unity environment, and have been aiming to input the virtual hand joint positions as an articulated hand into the MRTK. I've done so based on the current MRTK Leap Motion Input Provider.
Expected behavior
So far, I've been able to create an Input Provider, and successfully raise/close the input source. I've also verified that the poses for the joints are updating correctly within the Input Provider, with the correct sources for each 'joint' to the MRTK. I would've expected everything MRTK to 'just work'
Actual behavior
However, I'm not seeing any cursors coming out of the hands (even though all my pointers are attached to the articulated hand), nor are any of my virtual 'pinch' gestures. Only the head gaze seems to be working.
Is there something I'm possibly missing?
The codebase for this provider can be found here:
https://drive.google.com/drive/folders/1a81DBVNaS7W6gwd2PYVMI14nKvczHJNc?usp=sharing
Basically, the AutoHand MRTK Skeleton obtains the transforms from the virtual hands, which are then used by the provider.
Steps to reproduce
Grab the above mentioned link, and drop it into the MRTK, you can assign the transforms of the autohand driver.
Any help would be massively appreciated :(