MixedRealityToolkit / MixedRealityToolkit-Unity

This repository holds the third generation of the Mixed Reality Toolkit for Unity. The latest version of the MRTK can be found here.
BSD 3-Clause "New" or "Revised" License
362 stars 91 forks source link

MRTK3 triggerPressed is overly sensitive #82

Open IssueSyncBot opened 1 year ago

IssueSyncBot commented 1 year ago

Original issue opened by:

@ryan-motive @ryan-motive


Describe the bug

{...}/triggerPressed fires when hand is in a natural position, causing Activate and UI Press to be invoked when the hand is held in a natural position. Users need to hold fingers stiffly in order to avoid activating. ## To reproduce Steps to reproduce the behavior: Point at an interactable object (e.g. a grabbable) and let hand rest into a natural position (fingers slightly curled). Object will be grabbed. ## Expected behavior Hand/finger posture should have to be more pronounced in order to fire "triggerPressed" ## Screenshots N/A ## Your setup (please complete the following information) - Unity Version [e.g. 2021.3.18f1] - MRTK 3 3.0.0-pre.16 - ## Target platform (please complete the following information) - HoloLens 2 ## Additional context Meta "pinch" action is far more restrictive and requires a natural movement in order to activate. This implementation results in many unexpected activations and button pushes. ___ ### ISSUE MIGRATION Issue migrated from: https://github.com/microsoft/MixedRealityToolkit-Unity/issues/11629
IssueSyncBot commented 1 year ago

Original comment by:

@ryan-motive ryan-motive


Happy to see this added to "future" but is there any way to adjust this in the current version? 😆

IssueSyncBot commented 1 year ago

Original comment by:

@AMollis AMollis


@ryan-motive have you tried changing the "Hand Aggregator Subsystem" settings? The "Pinch" settings meet be able to help you out.

image

Otherwise, we have plans to use Unity XRI's recently added hand support, perhaps during this time we will be able to address your concerns more. However, switching to XRI's hand support will come post-GA

IssueSyncBot commented 1 year ago

Original comment by:

@ryan-motive ryan-motive


Didn't realize this was there! This is great, I'll try it out.

IssueSyncBot commented 1 year ago

Original comment by:

@ryan-motive ryan-motive


Hm, doesn't seem to make a difference. Does this impact the triggerPressed action?

IssueSyncBot commented 1 year ago

Original comment by:

@iantrobinson iantrobinson


I've been running into the same issue. I've tried adjusting those values as well and it seems to have little effect if any at all.

IssueSyncBot commented 1 year ago

Original comment by:

@halfpasttense halfpasttense


Same issue here. Increasing the range of those values has helped a little but finger tapping on Quest is still broken. The main issue is that a single finger tap can very often be recognized as multiple taps, which is obviously an issue. This can be easily fixed by simply having a short timeout window after a finger tap is recognized during which another finger tap cannot be activated. This works great anywhere I can build it into my own code, but it needs to be built in system wide so it behaves correctly with things like MRTK buttons.

aiasSot commented 9 months ago

Did you ever solve this problem? Funny thing is in the mrtk Dev examples, hands work perfectly. But when i copy the exact settings and I try it in my project it doesnt work as smooth. I can literally point to an object and it gets "grabbed".

cnyeu commented 5 months ago

Did you ever solve this problem? Funny thing is in the mrtk Dev examples, hands work perfectly. But when i copy the exact settings and I try it in my project it doesnt work as smooth. I can literally point to an object and it gets "grabbed".

I still have the same problem, but with the tabToPlaceExample and the pinch-gesture. It works in the mrtk dev example, but when I copy it and use it in my project, it doesn't work. As soon as a e.g. flat hand is recognised, a pinch gesture is identified. Is there a way to fix this?

iantrobinson commented 5 months ago

Did you ever solve this problem? Funny thing is in the mrtk Dev examples, hands work perfectly. But when i copy the exact settings and I try it in my project it doesnt work as smooth. I can literally point to an object and it gets "grabbed".

Same here. This is really more than just a bug, this is serious issue that is interfering with the main mode of interaction with my entire project. @AMollis can you please have someone look into this? I have tried the fixes at https://github.com/MixedRealityToolkit/MixedRealityToolkit-Unity/issues/82#issuecomment-1685412376 and they have not worked.

JosefKnize commented 4 months ago

Hi i encountered this aswell. I think it's caused by unfinished migration from HandsAggregator to unity actions and binding to unity inputs.

Quick workaround is to edit ArticulatedHandController script in packages. All you need to is remove 4 conditions on lines 109, 116, 122 and 129 that ignore HandsAggregator if unity action was already used. This will result in HandsAggregator being used and the treshold mentioned above should work. Editing package code is bad practice tho and it can't be pushed to Git.

I was looking into config of unity inputs (Project Setting -> Input System Package) and it didn't affect the pinch action. But i didn't look that deeply into it.