Finally got Input Emulator working with the new OpenVR driver API. There are some MASSIVE changes to the driver API which required me to completely overhaul the hooking mechanisms and significantly change the inner working of Input Emulator. Therefore the code may (and most probably will) still contain bugs, and some things don't work as expected.
The previous API basically worked as follows:
- Driver tells runtime that button 2 has been pressed on device 4.
- Runtime tells application that button 2 has been pressed on device 4.
For button remapping i only needed to change some numbers, and everything directly translated to the application side.
The new API now basically works as follows:
- Driver tells runtime that input component "/input/grip/click" (that you need to register first at startup) on device 4 has been set to true.
- ???
- Runtime tells application that button 2 has been pressedon device 4.
To be able to remap buttons I now need to know to what button a specific input component is mapped, which I cannot for all devices. I own only a Vive, so I can only know it for sure for this device. There is enough information on the internet so that I can pierce together a mapping for the Rift, but for other devices like the Windows Mixed Reality headsets some inputs may not work.
Also I can only map a button to another button for which an input component already exists. So mappings to arbitary non-existing buttons will not work. Even some exising ones are now ignored, e.g. it is not possible to map a button to the trigger button on the Vive controller despite an existing suitable input component. I suppose the same is also true for the trigger and grip buttons on the Touch controllers.
For documentation about Fallout 4 VR specific fixes see here.
Changelog
- Added support for the new OpenVR driver API (Works with all current SteamVR branches)
- Keyboard bindings are correctly saved into profiles.
- Keyboard bindings allow to configure whether virtual key codes or scan codes are used.
- Tuned down volume of audio cue.
- Other bugfixes and improvements.
Requirements
Requires the newest version of whatever branch of SteamVR you are currently on.
Usage
Installer
Download the installer and then execute it. Don't forget to exit SteamVR before installing/de-installing. After that you can access the configuration overlay in the SteamVR dashboard
Command-Line Client (Optional)
Download the command-line client archive, unzip it, and then execute the contained binary in a cmd window. Enter 'client_commandline.exe help' on the command line for usage instructions.