Raicuparta / nomai-vr

Outer Wilds VR Mod with 6DOF tracking and full motion control support
https://outerwildsmods.com/mods/nomaivr
MIT License
343 stars 17 forks source link

Letting a 2nd player initiate certain commands with an external controller for accessibility/difficulty reasons #502

Open SgtSweetieBelle opened 2 years ago

SgtSweetieBelle commented 2 years ago

This is a bit of an odd request, so I'll provide context further below.

Request

Allow a 2nd player outside of the headset to execute certain commands with an external controller or keyboard, so that the actual player inside the headset only needs to look and point.

It does not need to be particularly robust. Just reenabling the buttons and thumbsticks on the controller.

Would this be possible at all, or does the nature of how controller commands are passed to the game not really allow this to happen?

Context

I love introducing new players to Outer Wilds. But for non-gamers, low-skilled players, and especially physically handicapped players, one of the highest barriers of entry for Outer Wilds is the ship controls and the platforming sections.

My solution to this has been to play it like a co-op game, where I’m the mostly-silent “driver” who’s responsible for controlling the character and playing through the mechanical challenges, while the other player is a “passenger” who makes all the important decisions, like where to go, what to do, and how to solve all the puzzles. This works insanely well and has made it super easy for me to get people into Outer Wilds, even if they’re not an experienced gamer. (It also lets me re-experience the game vicariously through them, since their level of knowledge basically serves as my progression gate that keeps me from skipping puzzles, haha)

The opportunity to introduce people to this game in VR is honestly really exciting to me. But unfortunately, because of the nature of VR controllers, it’s difficult to control the character from outside of the headset. Mainly due to perspective reasons.

This is particularly challenging in the case of a friend of mine who is physically handicapped. They can hold the controllers, point, and look around. They also happen to have excellent VR legs, so they can deal with the lateral movement without getting sick. But the nature of their handicap means they can't engage 90% of the buttons or thumbsticks (with the exception of the grip commands). So they can't move their character, they can't control the ship, they can't jump, etc.

Having the option to initiate some of these commands from my couch with an Xbox controller while they're in VR space would go a LONG way towards letting them be able to fully experience this game in VR.

Raicuparta commented 2 years ago

Very interesting request. NomaiVR has a big issue with this: it disables the native Unity inputs, meaning keyboards and game controllers are completely disabled. While what you request may be possible to achieve, it would be a pretty big task, not something that can be easily done in a couple hours. So unless another modder makes a NomaiVR addon for this, I doubt it will ever happen.

My suggestion is that you look for a solution that works on any SteamVR game. I'm not sure if there is such a thing. The OpenVR Input Emulator has a different goal, but maybe what you want can be achieved with it. The benefit here is that, if you manage to get it to emulate VR inputs via external keyboard/controller inputs, you'd be able to do this for any game, not just Outer Wilds.

farmboy0 commented 2 years ago

Sorry for the somewhat offtopic question: Would it be possible for NomaiVR not to disable keyboard input? The reason for this is some mods only work with keyboard input so they are currently not usable i.e. this one: https://outerwildsmods.com/mods/suicidemod

SgtSweetieBelle commented 2 years ago

Understood. Thanks for the detailed reply. I figured it was something like that, haha.

I will try and figure out if I can use OpenVR to hook into the game. Thank you!

SgtSweetieBelle commented 2 years ago

Unfortunately it seems that the OpenVR Input Emulator is no longer actively being developed, and crashes when I attempt to remap controls :(