Neos-Metaverse / NeosPublic

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

Finger Photos Alternatives on non finger tracked controllers. #1704

Open TehTurk opened 3 years ago

TehTurk commented 3 years ago

Is your feature request related to a problem? Please describe.

The Finger Photo Camera Gesture is really neat, but not everyone controller can use it, it'd be nice if there were a more generalized system so that users could use it more often. I'm aware of Oculus, Vive, and WMR/G2 Controllers having funky setups or being outright impossible.

Relevant issues

1372 #1179 #1194 #859

Describe the solution you'd like

For more finger tracking based controllers keep them how it is, but add something to the process to making them more uniform, or add in compensation for other controllers to make the expected usages more relaxed.

Aerizeon commented 3 years ago

Honestly, I find it extremely difficult to use on my index, probably due to it not completely registering my fingers being off the sensors - so, perhaps there should be an easy way to tweak the settings in general.

StarfishHidari commented 3 years ago

I know the finger gesture was originally designed for index and leap motion, and just happens to work on other controllers, but it would be really nice to have it reworked so that it works standard on every controller. I use it constantly with my CV1 and it's an extremely nice feature to have.

TehTurk commented 3 years ago

I know the finger gesture was originally designed for index and leap motion, and just happens to work on other controllers, but it would be really nice to have it reworked so that it works standard on every controller. I use it constantly with my CV1 and it's an extremely nice feature to have.

This is why I decided to open the issue, while it might not be like a right now thing, but I think marking it down for now for the future is important.

Frooxius commented 3 years ago

I'm not really sure that expanding the scope to support those controllers is something we want to do because of all the complications it brings. The gesture was designed specifically for finger tracking, which a lot of the controllers lack. With most of them you can't even move the fingers without activating other actions like grabbing or clicking, so having official support for them would require to deal with all the possible conflicts and that's not something I really want to get into, as it's complicated as is.

TehTurk commented 3 years ago

I understand, but ideally even without the ability to control the fingers, users basically doing a grab input and then posing their hands would usually be simple enough I'd reckon as the Finger Pose would have to be in the proper spot to take said photo. That's how the finger photos have always often felt, and I see not problem as it requires you to position your hands regardless. I remember doing this with Vive Wands, and seeing it on Oculus and it was pretty bare-able if your scale was locked on either controller, doing it before this change would be downright impossible.

Are they any conflicts or complications that I might not be aware of? I know ideally for the finger photo to occur it requires the angle of the hands to match, using the thumb and index finger endpoints as reference points.

Abysmal2134 commented 3 years ago

Why not just add a shortcut to the quick menu that is accessible by everyone that spawns the one time snapshot frame that you can then grab and position by dragging the corners. This could be used in desktop mode too.

The core of the problem seems to be that there isn't an easy and quick method to spawn a one time camera for all controllers, rather than that you need to have a gesture to do that for all of them.

TehTurk commented 3 years ago

I don't know if that'd be ideal. The fact that it's quick and easy makes it waaay more accessible. By tying it to the dash or any menu it makes it inherently slower. The fact that I can muscle memory take a picture is really nice.

StarfishHidari commented 3 years ago

I'm not sure what complications come from supporting this gesture generally rather than relying exclusively on finger tracking, the general input for every controller I can think of would mainly just be pressing grip on both hands, and positioning your hands in the same way as before.

The only complication I was able to think of arising is scaling, but as Turk said, with the scale lock feature this has never been an issue for me on my rift CV1. I can't think of a situation where you press both grips and position your hands in the same rather limited angle to take a photo that would cause a complication either

also yes, a dash/menu shortcut doesn't seem like a good alternative, I really like the convenience of that muscle memory of just forming my hands together to take a photo, it works well and is very intuitive when you know how to do it.

Frooxius commented 3 years ago

You can grab onto the environment, grab random stuff, click things you didn't mean to, activate anything receiving those inputs (tools, items, anchors...). If we add any more future interactions they would now need to consider this gesture too, so this would severely limit what we can add in the future or how we can add it, leaving the inputs free gives us a lot more freedom to operate without worrying about those conflicts.

This would be better solved by having a quick access to inventory, e.g. on your avatar, where you can have a shortcut for the actual camera.

TehTurk commented 3 years ago

Yes, but I'm aware when the actual gesture is being done everything else turns off no? Like I don't think I've ever had "clicking" or "equipping" within it's usage of like 2 years and the worry of that might be over compounding the issue, sure grabbing happens but generally unless your moving, or something moving runs into you this is a non-issue as when your taking a photo your standing still and aiming the camera.

I understand they need to be considered, but I don't think that identifies the problem. The Photo Gesture is TOO good, anything otherwise feels lesser and incomplete. It allows a quick, easy, effortless photo. If you want a more proper one you'd pull out your camera ideally. Sure you could hit a button to enter a "photo mode" so maybe that would be more ideal.

Heck having the Photo Mode being a setting toggle would be more apt as it'd let people know they are willingly using it and aware of it's draw backs. That or have it be a separate component so that people could configure it on their avatars so Users can willingly use it or configure it for their usages.

Frooxius commented 3 years ago

No it doesn't, that's the problem. There's not a nice mechanism to decide when to turn things off, because how do you differentiate if the user is trying to do the gesture or they're just using tools? Doing that would severely complicate the whole logic and bring lots of weird edge-cases ("Why does grabbing randomly stop working?" "Why I can't use my tool when I angle my hand like this?", etc.) to deal with that I don't really want to get into.

The gesture is quick and fast because the controllers it was designed for have proper finger tracking, which allows it to be performed without tying any of the other inputs. Other controllers don't have that, so the inputs that are used for different things need to be tied, meaning there will be weird conflicts, which would very likely end up reported as bugs sooner or later.

StarfishHidari commented 3 years ago

I've been clicking down my grip to take photos for nearing a year now and haven't run into issues, yes sometimes I did accidentally grab onto something when i went to do it, in which case i just let go and redid the gesture.

I'm not asking to disable stuff like using tools or grabbing things when you do the gesture, I feel like that could get more confusing as you said, and overcomplicates it.

also i will add on that clicking should not be an issue, this gesture shouldn't ever require you to press your trigger, only the grip, and tools don't often utilize grip, and even if they did, i don't think it's unreasonable to expect that the player could realize "this tool does things when i grip, so if i want to use the photo gesture without triggering that, i should unequip it"

Frooxius commented 3 years ago

Just because you don't have trouble with it doesn't mean other players won't, especially in different contexts. Plus like I said, the big concern is also for any future additions and interactions as well. Having to consider that the gesture should always be usable even for those controllers will severely tie our hands for these.

You still need to use trigger to actually take the photo, because that's done by curling the finger.

TehTurk commented 3 years ago

Hmm that's a shame :\ It's a really neat solid/marketable feature for Neos so I'd like it to get the TLC it deserves. That's why I suggested something as a menu option to enable the photo mode for other controllers and by doing so kinda waives the weight of users complaints because it's an opt in thing, or maybe some form of component a user can put on their avatar so they can willingly opt in and any fault of Jank/edge cases is somewhat nill and fault is on the creator not you.

I understand the concern of not wanting to lock away the type of Inputs, but having definable gestures to activate a certain function/object (Respawning, Opening Dash, Taking a Picture etc) what I think in the future would alleviate this in some form then.

I'm going to rename the issue to reflect the discussion

TiagoTiago commented 3 years ago

For fingerlesss handtracking input devices; what if you just looked for the rotation of the hands relative to the imaginary line connecting one hand to another, and the relative position and rotation of that line relative to the headset, looking for a close match to the expected values for performing the gesture, and then had a countdown visible to the user, that would get canceled if the hands move too much, but if the user stay still long enough, then the photo is taken?