praydog / UEVR

Universal Unreal Engine VR Mod (4.8 - 5.4)
http://uevr.io
3.08k stars 158 forks source link

[Feature Request] Provide alternative way to enable/rebind Dpad-shifting for controllers without thumb rest #14

Open ixtrix opened 9 months ago

ixtrix commented 9 months ago

The pico 4 doesnt have touch controller/thumb rest buttons, can you add an option so it uses both grips and a joystick as an options for the DPadMethod.

UEVR-1.0\src\mods\VR.hpp Line 730 static const inline std::vector<std::string> s_dpad_method_names { "Right Thumbrest + Left Joystick", "Left Thumbrest + Right Joystick", "Left Joystick (Disables Standard Joystick Input)", "Right Joystick (Disables Standard Joystick Input)"

FolkSong commented 9 months ago

I agree more options for this would be good (affects WMR controllers as well).

One idea I had, inspired by the REFramework, is moving your hand beside your head to make the stick control the dpad. Or some other position-based modifier that won't interfere with most games.

FolkSong commented 9 months ago

I just realized - on WMR we have a right menu button which is completely unused! I think Pico does too. The easiest solution would be to use this as the dpad shifter.

It seems like we should be able to map it ourselves through the injector, but I can't get the extra button to map to anything. I'll open a dedicated issue for this: #37

ixtrix commented 9 months ago

The menu button on pico opens up the Pico HUB/VD options, so I think it has to be done through the grips/other non system buttons for this.

vkleinmp commented 9 months ago

Index user here with same problem. Also Index has 2 touchpads you could use either as touch touchpad + controller (like default withthum rest) or use the touchpad directly as 4 way dpad.

o8615998 commented 9 months ago

If you don't need to use the right joystick for control, you can change your right joystick to control the D-PAD. The method of use is as follows: Open the UE menu in the game->Click Input->Click Right Thumbrest+Left joystick ->Select Right Joystick (Disables Standard Joystick Input) ->At this time, your right joystick is up to D-PAD UP,And so on -> Next close the menu and enjoy the game!

Kassender commented 9 months ago

Sorry, i just came in, and i have a pico 4, what s your problem exactly? The issue is the lack of the cross buttons maped on the controller to sélect the spells?

In this case, what i notice is the right grip is useless, the best would be to transforme the right joystick in D-Pad when we tighten the grip.

FolkSong commented 9 months ago

@ixtrix could you change the title to be more descriptive? Something like "[Request] Provide alternative ways to enable Dpad for controllers without thumb rest". I don't want this to get lost.

wdoo02 commented 9 months ago

Hey guys, just managed to add an alternative dpad-shifting method (Right joystick click + Left joystick) based on UEVR 1.2. See the release link below. I have tested it with a few games. Seems to work fine. I am going to test some more games before a pull request.

https://github.com/wdoo02/UEVR/releases/tag/1.2.2

joeyhodge commented 9 months ago

Hey guys, just managed to add an alternative dpad-shifting method (Right joystick click + Left joystick) based on UEVR 1.2. See the release link below. I have tested it with a few games. Seems to work fine. I am going to test some more games before a pull request.

https://github.com/wdoo02/UEVR/releases/tag/1.2.2

very interested how your testing goes, and just curious isn't one of the existing dpad shifting options right joystick click+left joystick?) or is this using different syntax than the existing option?

FolkSong commented 9 months ago

@joeyhodge The existing option is the right "thumb rest" which is a touch-sensitive area on the face of Oculus controllers, beside the buttons. Not the thumb stick.

@wdoo02 That sounds great, I'll have to try it. The only problem is that in some games the right stick click is a needed function.

joeyhodge commented 9 months ago

gotcha, thanks for clarification, same as "trackpad" currently, yes? I also do not have that on G2 controllers if so, and would likely benefit from that patch

Kassender commented 9 months ago

Thank you very much for your work, congrats. I gona try it now

joeyhodge commented 9 months ago

HAPPY to report, the new dpad shifting you added works like a charm for me in openXR G2

praydog commented 9 months ago

Initial version of gesture-based DPad shifting has been implemented in 1404191ac58f28eaab3f5e93ad62a8955af16ed5. Will need to switch the shifting method under Input. Dev builds can be downloaded from Actions

For now it is

  1. Move left controller to left side of head
  2. You'll feel a vibration, then can move the joystick in any direction to initiate DPad inputs

I will add the right controller soon and can add something like arm near the waist as well

Kassender commented 9 months ago

just amazing, thank you very much !!! good job and thanks again

Kassender commented 9 months ago

It s a very good idea combined to the one of joeyhodge as well. Thank you so much.

But do you have a file to download or install in the folder uevr 1.02 ?


De : praydog @.> Envoyé : vendredi 12 janvier 2024 07:38 À : praydog/UEVR @.> Cc : Kassender @.>; Comment @.> Objet : Re: [praydog/UEVR] [Feature Request] Provide alternative way to enable/rebind Dpad-shifting for controllers without thumb rest (Issue #14)

Initial version of gesture-based DPad shifting has been implemented in 1404191https://github.com/praydog/UEVR/commit/1404191ac58f28eaab3f5e93ad62a8955af16ed5

For now it is

  1. Move left controller to left side of head
  2. You'll feel a vibration, then can move the joystick in any direction to initiate DPad inputs

I will add the right controller soon and can add something like arm near the waist as well

— Reply to this email directly, view it on GitHubhttps://github.com/praydog/UEVR/issues/14#issuecomment-1888512738, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BFA6PZIGJT5BZTH22UF62RLYODK6RAVCNFSM6AAAAABBJIDWOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBYGUYTENZTHA. You are receiving this because you commented.Message ID: @.***>

joeyhodge commented 9 months ago

Nice work PD, works great! sometimes takes a couple tries of moving left controller near head before it vibrates, but not bad at all. I'm sure it will only continue to get fine tuned/more options in future, but this takes care of a really big need in a lot of games for folks. If you have the full release of 1.02 beta, then can use that same folder and just replace the single file UEVRBackend.dll with the new one on github actions tab under the latest run on the summary page at bottom under artifacts

Kassender commented 9 months ago

Is it possible to use the method of L3 as well , it çan be good to be able to use both

Envoyé à partir de Outlook pour Androidhttps://aka.ms/AAb9ysg


From: joeyhodge @.> Sent: Saturday, January 13, 2024 2:29:08 AM To: praydog/UEVR @.> Cc: Kassender @.>; Comment @.> Subject: Re: [praydog/UEVR] [Feature Request] Provide alternative way to enable/rebind Dpad-shifting for controllers without thumb rest (Issue #14)

Nice work PD, works great! sometimes takes a couple tries of moving left controller near head before it vibrates, but not bad at all. I'm sure it will only continue to get fine tuned/more options in future, but this takes care of a really big need in a lot of games for folks. If you have the full release of 1.02 beta, then can use that same folder and just replace the single file UEVRBackend.dll with the new one on github actions tab under the latest run on the summary page at bottom under artifacts

— Reply to this email directly, view it on GitHubhttps://github.com/praydog/UEVR/issues/14#issuecomment-1890236940, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BFA6PZNLLYGZ2M74AACK5S3YOHPOJAVCNFSM6AAAAABBJIDWOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJQGIZTMOJUGA. You are receiving this because you commented.Message ID: @.***>

praydog commented 9 months ago

Gesture based method is in 1.03

Not fully closing yet as other options may be needed

FolkSong commented 9 months ago

A few notes testing 1.03 with Reverb G2 (openXR)

joeyhodge commented 9 months ago

A few notes testing 1.03 with Reverb G2:

  • I don't get any vibration to tell me when my hand is in position (I do get vibration from the game)
  • Left joystick mode works as expected
  • Right joystick mode sends dpad commands but also sends snap turns at the same time, with that option enabled. I would expect snap turn to be disabled when in dpad mode.

agreed on the right joystick commands, however, I do get vibration on both methods (G2 OpenXR 2080 super) although it takes me a couple of tries and would very much like the option that was made in this thread as well:

Hey guys, just managed to add an alternative dpad-shifting method (Right joystick click + Left joystick) based on UEVR 1.2. See the release link below. I have tested it with a few games. Seems to work fine. I am going to test some more games before a pull request.

https://github.com/wdoo02/UEVR/releases/tag/1.2.2

joeyhodge commented 9 months ago

Gesture based method is in 1.03

Not fully closing yet as other options may be needed

The more I test the gesture method, the more inconsistent and more attempts it takes before it actually works. Can you please also give the option listed above Right joystick click + Left joystick (disables R3) as that was 100% reliable especially in games when dpad is time sensitive.

Kassender commented 9 months ago

@wdoo02 @praydog Please, Is it possible to ADD in the last release 1.03 the DPAD method click R3 + Left joystick (disables R3) ? The more we have; the better, and i tested it of Lies of P; kena and Hogwarts legacy and it works amazing.

Thank you again.

wdoo02 commented 9 months ago

I have catch up with the current version and opened a pull request. "click L3 + Right joystick (disables L3)" is also added. When using this method, snap turn is temporarily disabled when the left joystick is pressed.

As for the snap turn issue: I am unable to temporarily disable snap turn for gesture + right stick in my patch. My guess is that this is caused by the difference in frequency between the gesture-detection and the key-mapping.

https://github.com/wdoo02/UEVR/releases/tag/1.03.1

Kassender commented 9 months ago

So we just need to take uevr 1.03 and change the backend.dll by yours ?

Envoyé à partir de Outlook pour Androidhttps://aka.ms/AAb9ysg


From: wdoo02 @.> Sent: Tuesday, January 16, 2024 5:28:54 PM To: praydog/UEVR @.> Cc: Kassender @.>; Comment @.> Subject: Re: [praydog/UEVR] [Feature Request] Provide alternative way to enable/rebind Dpad-shifting for controllers without thumb rest (Issue #14)

I have catch up with the current version and opened a pull request. "click L3 + Right joystick (disables L3)" is also added. When using this method, snap turn is temporarily disabled when the left joystick is pressed.

As for the snap turn issue: I am unable to temporarily disable snap turn for gesture + right stick in my patch. My guess is that this is caused by the difference in frequency between the gesture-detection and the key-mapping.

https://github.com/wdoo02/UEVR/releases/tag/1.03.1

— Reply to this email directly, view it on GitHubhttps://github.com/praydog/UEVR/issues/14#issuecomment-1894090237, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BFA6PZLXFOUPWHFTBLDKKDTYO2TENAVCNFSM6AAAAABBJIDWOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJUGA4TAMRTG4. You are receiving this because you commented.Message ID: @.***>

joeyhodge commented 9 months ago

yep that is correct, this works like a charm

So we just need to take uevr 1.03 and change the backend.dll by yours ? Envoyé à partir de Outlook pour Androidhttps://aka.ms/AAb9ysg ____ From: wdoo02 @.> Sent: Tuesday, January 16, 2024 5:28:54 PM To: praydog/UEVR @.> Cc: Kassender @.>; Comment @.> Subject: Re: [praydog/UEVR] [Feature Request] Provide alternative way to enable/rebind Dpad-shifting for controllers without thumb rest (Issue #14) I have catch up with the current version and opened a pull request. "click L3 + Right joystick (disables L3)" is also added. When using this method, snap turn is temporarily disabled when the left joystick is pressed. As for the snap turn issue: I am unable to temporarily disable snap turn for gesture + right stick in my patch. My guess is that this is caused by the difference in frequency between the gesture-detection and the key-mapping. https://github.com/wdoo02/UEVR/releases/tag/1.03.1 — Reply to this email directly, view it on GitHub<#14 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BFA6PZLXFOUPWHFTBLDKKDTYO2TENAVCNFSM6AAAAABBJIDWOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJUGA4TAMRTG4. You are receiving this because you commented.Message ID: @.***>