OpenVR-Advanced-Settings / OpenVR-AdvancedSettings

OpenVR Advanced Settings Dashboard Overlay
GNU General Public License v3.0
1.31k stars 131 forks source link

Joystick/vector bindings for "space-grab"/translation along predefined axes, specifically smooth Y translation for virtual crouch #501

Open wheeler-man opened 4 years ago

wheeler-man commented 4 years ago

Is your feature request related to a problem? Please describe. Most VR games do not include seated modes. Standing for extended periods is straining and often people opt not to play VR because they're too tired to stand (a huge problem for the medium in general IMO). But by allowing one to bind vertical translation to a joystick, this would enable fully functional seated play in all VR games in one fell swoop with no effort on the behalf of VR application developers. "Fully functional" in the sense that one can smoothly change their stance to any height rather than just using a toggle between two heights (toggles leave interaction at all other heights difficult or impractical--unlike flat gaming, VR often requires that one can interact at all heights, not just 2 or 3). Combining such a system with a swiveling stool and a wireless headset offers the optimal seated setup.

Describe the solution you'd like Rather than just space grab, I'd like to see SteamVR vector input bindings for smooth translation along predefined axes. E.g. a vector input binding for smooth translation along the Y / vertical axis (the axis perpendicular to the floor plane) bindable to a joystick's y-axis. Even better would be the ability to set predefined max and min threshold values for the smooth translation along that axis, which could be used to correctly simulate the max standing height and the minimum prone height. Also the ability to modify joystick curves (however I think SteamVR Input already offers this natively)

Describe alternatives you've considered Modified OpenVRInputEmulator but it's unreliable because it breaks with SteamVR updates.

The existing space grab with X and Z axes locked but it's too slow--and also clunky because one must interrupt their motion controller movements to smoothly translate.

The existing height toggle but it leaves all other heights inaccessible.

Additional context Add any other context or screenshots about the feature request here.

Norgaladir commented 4 years ago

This wouldn't just benefit people who are tired of standing and need to sit, but also benefit people who are forced to have blind spots in their setup due to play space limitations. I personally have a blind spot in my tracking about 50 cm above my floor so I frequently have to move my play space down to grab things on or near the floor.

Having this feature for any arbitrary axis (so basically smooth locomotion) would also be great for games like Five Nights at Freddy's: Help Wanted where there are no locomotion options, but your play space is too small for the game. Trying to quickly space drag in that game between walls is clunky and often results in me punching my own wall in a panicked hurry if I don't drag fast enough.