-
Notifications
You must be signed in to change notification settings - Fork 37
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
Oculus Rift: Detects in win7 compat (steamVR), but then no menu navigation (no controller detection) #79
Comments
We have a menu mode implemented when you turn it on. When we can switch to SteamVR Input API (#14) these controls should be available to the Touch joysticks as well. |
Ok, sounds like the input api will give us unified events across different controllers. That would be much easier for sure. Got the build debugging, and I've spotted the joystick events coming through on I think I want menu mode event loop on all the time, including the first menu etc. I'll have a play and see what I can come up with. I'll gladly welcome any tips/suggestions you might have. |
I have a fork over here https://github.com/flavourous/elite-vr-cockpit/tree/feature/rift with some fixes for rift, I can open you a PR if you're interested. Namely what I can remember:
|
@flavourous Sorry, most of that I really want to implement in a different way.
|
No problem @dantman, your overlay is awesome - I just wanted to be able to play it on rift, even when I got the menu navigation working there were these other few things I had to change to make it playable as I played through the game.
There's a lot of stuff here - I can split it into new/existing issues? Looks like:
|
The primary barrier is ValveSoftware/steamvr_unity_plugin#108, getting the plugin to fully work for overlays. After that I create a list of various actions like Grab, TrackpadPress, TrackBtnPress, and so on... I think I've got a post it with notes somewhere. Or a partial idea in an abandoned branch. Then those actions are mapped to various actions instead of specific buttons being mapped. I'll also probably be adding an action set for menu mode and some Menu{Up,Down,Left,Right,Select,Back,PrevCategory,NextCategory} bindings so that it's possible to put different bindings on different controllers. In-cockpit stuff like the 6DOF/throttle/joystick controls are not exposed to SteamVR Input. Instead we essentially expose basic actions and input like "What is the position of the hand", "Grab the object", "Pinch the object", "Pull the trigger", "Press a large trackpad", "Press a tiny trackpad", "Press a joystick", and so on. Which can then be bound to different buttons on various controllers. "Grab" can have three different actions to represent the 3 different styles (button press like on Vive, hold like on Touch and the Knuckles capacitance, and pinch like on Knuckles). Vive can bind the trackpad to the current large trackpad POV style, WMR and Knuckles can bind the small trackpad to a simple button press and drag POV, and Touch and Knuckles and bind the joystick to a Joystick style POV axis. Then in the overlay we listen for things like an abstract "Grab" action instead of listening for the state of the grip button.
I don't know. I haven't exactly tried using a controller in awhile. And ED is already quirky when it comes to bindings in the first place.
I'm actually in the middle of a new key interface and action press handling system.
The double-menu is needed since menu is also secondary fire and one can be held down for that reason. It's also how other games do it. When the SteamVR Input API is available I'll have two separate actions for reset so on Touch you can try to bind it to a single extra key (hopefully the Oculus equivalent of the application menu button on one controller can be bound in SteamVR Input). Or I'll have one instantaneous binding and use coords to implement the hold 2 menu buttons behaviour (if coords are capable of doing it).
Menu mode isn't for interacting with panels. Menu mode is exclusively for interacting with the game's main menu and esc/pause screen so you can start the game and set control bindings. It outputs fundamental keypresses (arrow keys, space, escape) that ED understands in menus even when you don't have UI navigation keys bound to anything. It unfortunately had to be a toggleable mode because ED does not tell us when a game menu is opened; even though it's happy to tell us when you go from the System map to the Orrery view, when the ship lights are on, and when the music changes. To interact with panels you bind the game's UI navigation bindings to the POV(s) on your joystick. The UI navigation bindings override whatever else you have bound to a POV when a panel is focused. So you can happily have say POV1-RIGHT bound to both "Next Target" and "UI Right" and it'll just work. Basically you treat the joystick just like a real HOTAS and bind POV buttons the way you would bind them on a real HOTAS to control the cockpit's panel navigation.
Ok. I guess it doesn't hurt to add some control button assets for those ship functions. Should double check there are good icons for them. Personally I've actually had the exact opposite problem. I've had an accidental keyboard number key press focus on one of the panels leaving me unable to control my ship even after looking away at the panel. After that it was a mad fumbling with the keyboard to try and regain control. |
This didn't even cross my mind, I'll try it now but I bet it just works. Although I think the hats are only listened to when you are grabbing the throttle or joystick?
I think I get it, user maps their controller to generic controller actions out of game with a config file, and then the generic actions get mapped in game like normal, you just have a big selection in edit mode to bind. I guess e.g. a POV hat action will be able to be bound differently for menumode, not grabbed, and specific to the grabbed throttle/joystick?
Second reason for splitting keyup/down is so that holding the pov/stick down will continuously scroll instead of one at a time, but I look forward to your patch!
In light of this actions stuff I will change my rift/vive specific stuff to large touchpad/joystick directionaction inputs, maybe configurable from one of the config files...I think this'll be more ready for the actions stuff, but I won't know until I look at that SteamVRInput stuff. Not sure if that helps. I did read through ValveSoftware/steamvr_unity_plugin#108, seems like there will be a long wait or an overlay fork of thier project. Any advice? I understand not wanting to merge in further hardcoded input mappings, but making that fork is going to be tricky...I could post a release on my fork for rift that you could point your rift users to when I get it tidied up, but I'm not sure if you'd be cool with that. |
Yes, you interact wit the panels while holding the cockpit's joystick.
In-overlay the generic actions are listened to by code to take actions. The mapping of controller button to generic action is done in SteamVR's interface.
Honestly the necessary changes are extremely minor. If someone made a PR it would probably take awhile for Valve to get around to it, but it wouldn't be a big deal. It's on my "Priority Issues" project list right after the map controls. |
Ok that makes sense, but I'll add something so I can use panels when not grabbing the cockpit sticks for myself, because otherwise I'll be crashing my ship while im in panels :D That config screen looks cool, how do you get to it in SteamVR? |
It's in the settings menu: Ignore whatever SteamVR has for the overlay for now. It'll be redone when I integrate the SteamVR Input API. |
I've tidied up the rubbish i wrote for picking up my rift controller on flavourous/elite-vr-cockpit/feature/riftJoystickForHat, and look forward to #14. I didn't even know that steam config screen existed, it looks really good! Picked up your You were right about binding hats to menu keys for navigating the panels, but It does indeed cause "ship navigation issues", I guess you shouldn't text and drive! :D There's also no hats on the virtual thruster stick for binding to panel tab/page buttons. I'll create another issue around panel navigation - feel free to close this one in favor of #14. Thanks for taking the time for all the chat and feedback, long thread here! |
From #14.
elite runs through oculus native by default, therefore we dont get detected:
setting "win7 compatibility mode" forces elite to run thought steamVR, however, occulus controls are gone (can even be seen in controls presets) which means the menus cannot be navigated by controller thumbsticks:
Happy to help.
The text was updated successfully, but these errors were encountered: