alvr-org / ALVR

Stream VR games from your PC to your headset via Wi-Fi
MIT License
5.3k stars 474 forks source link

Oculus Quest Soft touch finger-tracking not working #157

Closed lyndonguitar closed 4 years ago

lyndonguitar commented 4 years ago

Using experimental v9

I noticed that the finger tracking doesn't work on some games, especially Half-Life: Alyx, when their Oculus Link counterpart works otherwise.

I tested the controllers using SteamVR -> settings -> controllers -> test controllers and they DO detect soft touch input anyway. so I'm not sure why Alyx is not picking it up.

EDIT: after further testing on SteamVR/HL:Alyx controller bindings it seems that the anything i put "Hand" section doesn't seem to work. Any of the Hand/Finger Curls doesn't to work even if i set them on Touch/Click/Pull image

JeramZz commented 4 years ago

I am experiencing the same issue. I've been testing this out all morning. The finger tracking works with VRChat, I heard it's working for other SteamVR games as well.

lyndonguitar commented 4 years ago

after further testing on SteamVR/HL:Alyx controller bindings it seems that the anything i put "Hand" section doesn't seem to work. Any of the Hand/Finger Curls doesn't to work even if i set them on Touch/Click/Pull

JackD83 commented 4 years ago

ALVR is missing the skeleton hand tracking as mentioned here:

https://github.com/JackD83/ALVR/issues/135#issuecomment-602056209

Is Alyx working for you in general? Its freezing for me if I use ALVR

JeramZz commented 4 years ago

ALVR is missing the skeleton hand tracking as mentioned here:

#135 (comment)

Is Alyx working for you in general? Its freezing for me if I use ALVR

Hi, JackD83 We appreciate your quick response. I can confirm that Alyx is working for me in ALVR in the 4hrs I've played it. Aside from the touch tracking issue, performance has been great. If there's anything we can do to help please let me know.

lyndonguitar commented 4 years ago

ALVR is missing the skeleton hand tracking as mentioned here:

#135 (comment)

Is Alyx working for you in general? Its freezing for me if I use ALVR

Yes, for me HL: Alyx is working fine with ALVR(used v9). I even have 120% render resolution on Alyx and no problems. Great tracking (noticing little bit of delay in movement but still comfortably playable), very rare stutters, good picture quality. The non-finger tracking didn't even bother me until somebody mentioned that it should work (as with Oculus Link and VD). I really hope it gets fixed though.

for my ALVR settings: see attached pictures

image image

btw thanks of the quick reply

JackD83 commented 4 years ago

Please try the attached driver dll. I added the hand skeleton and poses are the same as with link. Its missing the animation between the poses and analog trigger and joystick have no influence on the pose.

driver_alvr_server.zip

JeramZz commented 4 years ago

Wow, that was fast! I can confirm that the dll works! Yes, missing the animation but the gestures seem to match as it is on Link. Awesome!!!

FB_IMG_1585148752321

lyndonguitar commented 4 years ago

The DLL indeed works! Can confirm the missing animations however. See here for comparison https://youtu.be/T54aGkkXfuc?t=935

If HL: Alyx doesn't work for you to test, you can also test Valve's "The Lab", free on SteamVR. It also uses the same poses i think, cause the DLL you sent also added finger-tracking to the hands.(it didn't have one like Alyx before)

One weird thing happening though, not sure if this is on Valve's part, or partly due to the missing animations, is when my fingers are rested on the buttons:

One workaround is to keep pressing the grip button

JackD83 commented 4 years ago
  • but while my middle (to pinky) fingers are rested on the grip, they still stretch out fully. I have to push so they would curl.

Yes, I was wondering about that too, but there is no pose for the hand if the grip is only touched. As I mentioned, I got the input from the Quest using link and there is no such pose.

The only difference is the analog input from the grip, trigger and joystick. With those you could "see" how much you pressed the grip instead of full and "not touched at all"

JackD83 commented 4 years ago

@zarik5 added the hand animations. Please test the new dll

driver_alvr_server.zip

lyndonguitar commented 4 years ago

@zarik5 added the hand animations. Please test the new dll

driver_alvr_server.zip

can confirm it works(Half-Life Alyx), all have proper transition animations now

the quick update is much appreciated

ryukra commented 4 years ago

Did this also fix the missing rumble in HL Alyx? Shooting guns, hitting buttons, tapping onto stuff?

lyndonguitar commented 4 years ago

Did this also fix the missing rumble in HL Alyx? Shooting guns, hitting buttons, tapping onto stuff?

I think I had the rumble even before using this fix

JeramZz commented 4 years ago

Thank you both, @JackD83 and @zarik5 The animations are present. Appreciate your work and attention to this. :)

What I noticed though is the animations are not yet based on button pressure.

yotam-frid commented 4 years ago

@JackD83 fantastic work! though now the animations are binary/instant and like @JeramZz said, don't use button pressure.

zarik5 commented 4 years ago

What I noticed though is the animations are not yet based on button pressure.

I'll look into it.

zarik5 commented 4 years ago

Is there any game that uses the hand pose that accounts for the controller (that is when the ring and pinky fingers are always curled)?

JeramZz commented 4 years ago

Is there any game that uses the hand pose that accounts for the controller (that is when the ring and pinky fingers are always curled)? Hmm.. Not really from my experience. Maybe with boxing games? Also, I don't think the way the fingers curl with pressure sensitivity deters aspects with the way HL:Alyx is played. I think it's a QoL thing, and makes interacting with environmental objects seem more realistic.

zarik5 commented 4 years ago

I almost finished the animations based on trigger and grip pressure.

I noticed that in my latest build, compared to the last merged commit, the index finger curls only ~90% and the middle, ring and pinky ~50%, because I'm expecting the trigger and grip values to be between 0 and 1. @JackD83 do you know what are the trigger and grip values when they are completely pressed? I wanted to print them on the log but I'm unable to activate it (I checked DebugLog but to no avail).

but while my middle (to pinky) fingers are rested on the grip, they still stretch out fully. I have to push so they would curl.

I think the grip has no touch sensitvity because there is no grip touch mentioned on oculus mobile sdk.

zarik5 commented 4 years ago

I wanted to print them on the log but I'm unable to activate it (I checked DebugLog but to no avail).

Ok, I just needed to create the log file first.

I'm expecting the trigger and grip values to be between 0 and 1

They are in fact exactly in the range [0, 1]. The problem was my Slerp function. The animations in the last build by JackD83 with my changes are also bugged but it wasn't obvious because I set the animation duration pretty short.

A PR is coming right up.

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

JackD83 commented 4 years ago

Was included in ev10