Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OVR Advanced Settings Playspace Drag Major Feature Parity #50

Open
CorneliusCornbread opened this issue Jun 15, 2024 · 8 comments
Open

Comments

@CorneliusCornbread
Copy link

This is a meta issue which lists the major features of OVR's Playspace Drag that the majority of users are going to be wanting when switching, see their motion page documentation

  • Gravity with configurable strength
  • Ability to change binding of drag (likely complex to implement as a lot of UI is required)
  • Drag multiplier (how far you move relative how far your bound drag hand moves)
  • Left/Right hand drag

There are a few more features that I think users would want when switching (ex Force Bounds), but I didn't include them for now as they're going to require major upstream work before they could be implemented.

@galister
Copy link
Owner

Gravity: not planned
Ability to change binding: see wiki
Drag multiplier: this will likely happen soon, as it's quite simple
Left/Right hand drag: bind the action to the other hand, it'll drag on the other hand

@Baplar
Copy link

Baplar commented Jun 19, 2024

Small question regarding the bindings.
OVRAS also offers a binding to reset the playspace. WlxOverlay-S implements this feature, but seemingly only exposes it to be bound to UI, it is even available by default on the settings pop-up on the watch.
Would it be possible to also allow binding it to a controller button through an action?

@freebird1963
Copy link

how do i get ovr on here?

@galister
Copy link
Owner

@freebird1963 if you're on monado, you can use Wlx-S directly for space drag and space turn. See Wiki: OpenXR Bindings on how to.

If you're on SteamVR, simply grab the AppImage from the Latest Release of OpenVR Advanced Settings and run that. If it doesn't run due to a platform plugin error, try unsetting your WAYLAND_DISPLAY first.

@TYTheBeast
Copy link

TYTheBeast commented Aug 26, 2024

Is there any way to force a binding such as showhide to only trigger when all inputs in the binding are pressed? I'd like to have to double-click both of my grab buttons on my Index controllers

@galister
Copy link
Owner

@TYTheBeast this is not possible with pure OpenXR, we'd need to implement a layer for handling composite input on top of OpenXR input.

If you're on SteamVR, it's possible to set whatever you want via SteamVR bindings.

@TYTheBeast
Copy link

Is there any documentation I could refer to, in order to try and implement it myself? Sounds like a fun challenge to work with OpenXR's inputs

@galister
Copy link
Owner

galister commented Sep 17, 2024

OpenXR spec - input section to get started.

The obvious limitation is that one action can be bound to any number of profiles/buttons, and it will activate if at least one of these is enabled.

As such, the workable solution would be to use combinations of actions.

Right now, wlx bindings work like this:

  • wlx actions map to raw openxr actions
  • double/triple clicks use separate actions

as such, in your file, you'd have something like:

    profile: "/interaction_profiles/oculus/touch_controller",
    [...]
    space_drag: {
      double_click: true,
      left: "/user/hand/left/input/menu/click",
    },

this binds space_drag to the oculus_controller's left/input/menu/click directly.

the advantage of this method is that any interaction profile is supported, as long as the user adds it to their json.

another solution would be to use openxr actions as raw button presses, and map them to wlx actions using an additional layer of configuration.

in this case, instead of having space_drag/left map to /user/hand/left/input/menu/click, we would have left_menu map to /user/hand/left/input/menu/click (on all controllers) and then the user would instead define that left_menu triggers left_space_drag.

relevant code:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants