ValveSoftware / openvr

OpenVR SDK
http://steamvr.com
BSD 3-Clause "New" or "Revised" License
6.07k stars 1.28k forks source link

Intercepting device outputs - possible? #1394

Open vittorioromeo opened 4 years ago

vittorioromeo commented 4 years ago

Let's say I want to create an overlay that allows me to adjust the angle of my controllers in games that have no native support for that. A possible idea would be intercepting the orientation returned by the devices themselves, tweaking it, and feeding it back to OpenVR so that games will get the new tweaked value instead of the raw orientation returned by the devices.

Is this possible with OpenVR? I've looked at the Wiki but couldn't find anything helpful.

Can I somehow create a "fake controller device" that reads data from the real controllers, and exposes tweaked data?

Raivr-dev commented 4 years ago

Yes, I think this is possible as OpenVR-SpaceCalibrator does something similar (intercepting position and orientation, and changing that on the fly). Source is here: https://github.com/pushrax/OpenVR-SpaceCalibrator

FreeTheSmoke commented 4 years ago

Two very powerful options started from a user called matzman666

I suggest you check OpenVR-InputEmulator the fork by procsynth is most up to date. Description:

An OpenVR driver that allows to create virtual controllers, emulate controller input, manipulate poses of existing controllers and remap buttons. A client-side library that communicates with the driver via shared-memory is also included.

Link https://github.com/procsynth/OpenVR-InputEmulator

Another very useful tool that I would recommend for anyone using VR is OpenVR-Advanced-Settings Far too many awesome features to list https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings#--space-offset-page