* Fix indentation in action manifest * Rename action sets to drop unnecessary prefix notation Since the variable is in the action_sets namespace it does not make sense to prepend it with an identifier for it being constant, or a set. * Rename input keys to drop prefix notation The vars are in a namespace that only contains constant inputs, it doesn't make sense to prepend it to every var. * Rename actions to drop prefixes It is implicit that actions are const values for sets, therefore the prefix is not needed. * Remove unneeded action set member func * Move active action set in preparation for more action sets * Move action strings above class Class is not able to use variables in namespaces, which is stupid. * Move sets into member variable * Split music into separate action set * Convert action_manifest.json to spaces only * Refactor actions into separate action sets * Rename main set to haptic * Reorder action sets The haptics and misc sets are misc bindings. * added partial action list to readme * finished action descriptions. * fixed conflict * added no link guide * fixed formatting * linked input guide to main page * added pictures * fixed file directories * fixed formatting * removed force revive setting * changed version to RC2 * hid revive force on settings page * revert to RC1 * updated screenshots * updated documentation * updated straggler changes * minor formatting change * formatting * Update Readme.md Co-Authored-By: ykeara <ykeara1@gmail.com> * Update Readme.md Co-Authored-By: ykeara <ykeara1@gmail.com> * Update Readme.md Co-Authored-By: ykeara <ykeara1@gmail.com> * Update Readme.md Co-Authored-By: ykeara <ykeara1@gmail.com> * Update Readme.md Co-Authored-By: ykeara <ykeara1@gmail.com> * Update Readme.md Co-Authored-By: ykeara <ykeara1@gmail.com> * Update Readme.md Co-Authored-By: ykeara <ykeara1@gmail.com> * Update Readme.md Co-Authored-By: ykeara <ykeara1@gmail.com> * Update Readme.md Co-Authored-By: ykeara <ykeara1@gmail.com> * Update Readme.md Co-Authored-By: ykeara <ykeara1@gmail.com> * 2nd batch of changes * fixed formatting for table * fixed table
5.3 KiB
5.3 KiB
SteamVR Input Guide
What is SteamVR Input?
- A universal keybind system for all controllers (in steamVR)
- A way for You to share/find keybind layouts.
- A way for developers to easily program for all controllers [needs a driver]
What do I need to know?
- You don’t bind buttons like a/b. you bind “actions”
- An action is simply just that an action…. Like “jump,” “shoot,” or “interact”
- Action Have Types such as : Digital (on/off), Analog (range of values 0-100 say), or special ones like Vibration (specifically for haptics)
Okay Cool? How do I do this?
- Go to SteamVR dashboard->Steam->Controller Bindings OR go to http://127.0.0.1:8998/dashboard/controllerbinding.html from a desktop browser WHILE steamVR is running (pic)
- Select your application you want to modify keybinds (Advanced Settings will currently always be at the bottom)
- Select your Controller, (the controller must be on)
- Select your binding.
- Now We Are Ready to Bind our Actions!
Binding UI
- A – Action sets, these tabs essentially let programmers have different keybinds for different events… say you may want different controls if you are driving a car versus running around. [In Advanced Settings we simply use them as a grouping utility, and ALL action sets are active ALL the time.]
- B – Input options – your “buttons”
- C – Chords/ Special Binds. More on these later.
- D – Controller Diagram, visually shows you the button location on a depiction of the controller
My First Bind
In this example we are going to use the "grip" button on a vive wand.
- First WE click the [+] on the grip line to create an emtpy binding
- We then select the behavior of the button.
- Button – action is active when button is pressed
- Toggle Button – Action toggles state when button is pressed i.e. on until pressed again
- Set Analog Action – for Actions that are not binary i.e. trigger is pressed 50%
- Now we select our action for the button “click” By Clicking the “none” box.
- Upon Clicking it a popup will let us choose the desired action.
- Now Simply Click the Checkmark to save changes, and you should be good to go!
Advanced Bindings
And you thought you were done?
- First we will start by editing an action, hover over a set action and click the pen
- Now you will notice two important things the “more options” and the cog.
- The Cog allows you to set up haptics for activating an action
- Amplitude - how powerful 0-100% the haptics should be.
- Duration – how long it will last 0-4 seconds.
- Frequency – The frequency/”feel” of the vibration
- But What about the “more options?!”
- Single – single click
- Double – double click (about .25 seconds in between clicks max)
- Long Hold – Long hold ~1-2 seconds
- Held – Action active when held!
- Touch – Active when the button is being touched (knuckles/ touch)
- And More – Analog inputs (i.e. Triggers/joysticks/ trackpads ) have more options and configurations you can try out!
Chord Bindings
The Combo Maker! Chords are just that, they allow you to combine a combination of Keys to do an action for example a Grip + trigger + trackpad Press.
NOTE: For you to be able to select a button in the chord menu you need to have clicked the [+] for the button and have an empty slot like below, And the behavior (toggle/Button etc.) must also be correct.
- Make sure you have empty Bindings or a binding for all keys you will want to use in your chord, then click the “Add Chords” followed by “Add New Chord”.
- You will be prompted for an action, select the result of your chord.
- You will Now see the prototype for your chord and can add inputs as you desire
- And keep adding if you want to make sure you really don’t accidently press it!
- That’s is it add more or close and you are done!
Odds and Ends.... and Haptics!
- Haptics are a special Action. as it essentially tells the program which controller this haptic “action” belongs to.
- The add/edit Haptics button will be next to the add/edit chord button. [in our app haptics only exist in the “haptics” action set, as such you will want to set them.]
- YOU MUST HAVE AN EMPTY BINDING, otherwise haptics will not be bind-able. Anything will do… even “unused”
- Other than that just place the appropriate haptic action in the appropriate spot!
But Wait it’s Broke!
- We recommend a Separate bind for every action. Multiple actions to one bind can cause un-predictable behavior.
- This Guide Did not cover Legacy Applications or Simulated Actions, as the old input method is deprecated.
- We also include default bindings with our program, but it is impossible for us to include bindings for all controllers.









