Documentation (#126)

* 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
This commit is contained in:
ykeara
2019-03-23 23:58:55 -05:00
committed by GitHub
parent 74573eefaa
commit 97703098e6
24 changed files with 233 additions and 52 deletions
+121
View File
@@ -0,0 +1,121 @@
# 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?
1. 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)
2. Select your application you want to modify keybinds (Advanced Settings will currently always be at the bottom)
3. Select your Controller, (the controller must be on)
4. Select your binding.
5. Now We Are Ready to Bind our Actions!
### Binding UI
![Binding Overview](screenshots/guide/bindingoverview.png)
- 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
![Grip Plus](screenshots/guide/gripplus.png)
- We then select the behavior of the button.
![Button Type](screenshots/guide/buttontype.png)
- 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.
![Action List](screenshots/guide/actionlist.png)
- 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
![Edit Action](screenshots/guide/actionlist.png)
- 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
![Edit Action Haptics](screenshots/guide/actionhaptics.png)
- 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?!”
![More Options](screenshots/guide/moreoptions.png)
- 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.
![Empty Action](screenshots/guide/emptyaction.png)
- 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
![Chord Prototype](screenshots/guide/chordproto.png)
- And keep adding if you want to make sure you really don’t accidently press it!
![Chord Complete](screenshots/guide/chordcomplete.png)
- 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”
![Empty Action](screenshots/guide/emptyaction.png)
- 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.
![Multiple Actions](screenshots/guide/multipleactions.png)
- 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.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB