Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
195 stars 9 forks source link

Increase thresholds for finger photo gesture #1179

Open shiftyscales opened 3 years ago

shiftyscales commented 3 years ago

On thorough analysis of the conditions under which the finger photo gesture activates, I've noticed two conditions that need to be met:

An issue that presents itself with the Index hardware is that the capacitive sensors are not always reliable in curling the fingers inward to the point the threshold is met.

Decreasing the threshold the middle fingers must be curled inward to compensate for this shortcoming of the Index controllers and will ensure more consistent behavior.

Additionally, the angular threshold could be increased slightly- if is often the case that while trying to frame a photo, or adjust the field of view, the gesture will flicker on and off.

Increasing the angular threshold will also ensure more consistent behavior while trying to take photos after initiating the photo preview.

Edit: As discovered by Alex from Alaska, if the capacitive sensors for either the touchpad or thumbstick are active on Index, the gesture will fail to initiate at all. This is another probable cause for why the gesture doesn't work at all for some users.

3x1t-5tyl3 commented 3 years ago

Adding onto that: Adding an option to disable thumb requirements for index might be nice.

Reasoning: Currently my Thumbsticks are broken and can't be rebound properly and my right thumb is always curled in, preventing me to actually use the gesture.

shiftyscales commented 3 years ago

There are no thumb requirements, @3x1t-5tyl3. As noted, the only pre-requisite for the gesture to be used is the middle fingers.

mralext20 commented 3 years ago

it appears fingerphoto needs the thumbs to be pointing along the edge of the photo, as per here: https://youtu.be/gemwlvsTo-Y

in the above video, putting either thumb on the touch pad or the thumbstick prevents the photo gesture from working.

shiftyscales commented 3 years ago

That's kind of bizarre. As has been noted by Frooxius, the finger photo gesture wasn't ever really intended for use on input methods other than the Index. I know on my end, the thumbs have absolutely no bearing on whether or not the gesture can be used for either Index or Leap.

https://cdn.discordapp.com/attachments/731903736028332083/768215323961851924/2020-10-20_13-50-55.mp4 https://cdn.discordapp.com/attachments/731903736028332083/768215404727500810/2020-10-20_13-51-21.mp4

shiftyscales commented 3 years ago

Oh interesting. Okay, on further examination from Alex, it appears that it's specifically when the capacitive sensors of either the thumbstick or touchpad are activated, the photo gesture will fail to register at all.

My thumbs are usually always off of those when performing the gesture hence why I never realized that.

mralext20 commented 3 years ago

im not sure if its the button inputs or the position that the thumb gets pointed in that results in a fail on the gesture's part.

Frooxius commented 3 years ago

The finger photo is designed so it needs thumbs and index fingers at roughly right angle to each other. If it's triggering without that, it's an issue with detection, not an intended feature.

Increasing the limits trivially isn't a good idea. Originally they were much looser and while this made it easier to trigger, it led to a lot of false triggers when simply gesturing, navigating UI or working on stuff in Neos, which is highly undesirable.

I plan on tweaking the algorithm some at some point, but I need to rig up some visualizations and do some testing with it. However the thumb requirement is not likely to go away, since it would make it too ambiguous and lead to frequent accidental triggers again.

shiftyscales commented 3 years ago

I see. If that's the case, then the detection of the thumbs definitely isn't working correctly/as intended. Because as far as I could see, the thumbs can be angled in pretty near any direction in the case of the Leap, and on Index, they work while either on the A/B buttons, or nothing, but don't work while on the trackpad, or joystick.

If the algorithm/detection is going to be changed to any extent, perhaps the target pose could/should also be reconsidered?

For a majority of the world, and as portrayed in media, when most people frame a scene using their fingers, they use the following pose: image

This pose is what all new users try when they're first introduced to the concept of the finger photo, and would hopefully also prevent the gesture from being accidentally triggered as per your concern since it is a much more deliberate action, @Frooxius.

Electronus commented 3 years ago

In my experience as an oculus user thumbs matter in that they have to be in towards the palm for the gesture to work. Also you have to be at a pretty exact angle on your fingers, as well as have your head not rotated much at all. If your head is to far up down, tilted left or right the gesture will not work.

StarfishHidari commented 3 years ago

on oculus CV1, the gesture does not work unless you touch the controller thumb rest (the flat part of the controller with a small circle, it's a seperate touch part and makes your thumb tuck into your fist)

That was extremely confusing when learning the gesture because the way it was usually shown was thumb out, but thumb out doesn't work for oculus CV1 (or at least not reliably at all, it's extremely difficult to do without touching the thumb rest, touching the thumb rest makes it very easy to pull off)

Frooxius commented 3 years ago

@shiftyscales Yeah that could be implemented to it supports both versions. However reworking the system takes a bit more time, so I'm not sure when it'll get prioritized.

@Electronus @StarfishHidari The gesture is designed specifically for finger tracking controllers, like Index or Leap Motion.

Oculus controllers provide very limited finger tracking, so the gesture isn't unfortunately officially supported on those, since that's something I don't have control over. If it's too confusing, I can just completely disable it when those controllers are detected, but I figured that some people would like to use it even if it's hard to trigger.

StarfishHidari commented 3 years ago

definitely do not disable it, plenty of people without index or leap motion use the gesture constantly. I use it all the time even though the way to trigger it is not what you'd normally expect

shadowpanther commented 3 years ago

Maybe instead of disabling the trigger if Touch controllers are detected, make trigger constraints more relaxed? Also, Rift S has Touch controllers without a thumb rest, so I use extended thumb, and sometimes I can trigger the gesture, but I haven't figured out yet how to do that reliably.

Electronus commented 3 years ago

Its too useful to disable honestly. And frankly I thought it was supported as the thumb requirement had been "removed". I see that's wrong now, but its used multiple times a session every session.