OpenVR / HTC Vive
OpenVR (SteamVR) is supported for Head Mounted Devices and Hand Controllers.
Note: Humanoid Control does not need the SteamVR SDK installed in the project because it uses the low-level OpenVR APII.
The Vive Trackers are documented separately.
Information about the use of VRTK with Humanoid Control is found here.
OpenVR is supported in InstantVR version 3.4 and higher. Steam VR controllers are only supported in InstantVR Advanced and Edge version 3.4 and higher.
OpenVR is supported in the Humanoid Control VR, Plus and Pro packages
HTC Vive, Oculus Rift and Mixed Reality are supported through OpenVR .
OpenVR is supported on Windows 10. MacOS support is available on request.
Pre Unity 2017.2: Virtual Reality Supported needs to be enabled in Edit Menu->Project Settings->Player->Other Settings. OpenVR needs to be added to the Virtual Reality SDKs.
Unity 2017.2 and higher: Virtual Reality Supported needs to be enabled in Edit Menu->Project Settings->Player->XR Settings. OpenVR needs to be added to the Virtual Reality SDKs.
Note: if both Oculus and SteamVR need to be supported in one build, make sure Oculus is listed higher than OpenVR in the Virtual Reality SDKs:
SteamVR needs to be enabled in the Edit Menu->Preferences->Instant VR->SteamVR Support.
The script IVR_SteamVR needs to be added to the character GameObject with the InstantVR script.
In Humanoid Control v2.1 and earlier, OpenVR needs to be enabled in the Edit Menu->Preferences->Humanoid->SteamVR Support.
In Humanoid Control v2.2 and higher, three options are available:
- Disabled: OpenVR is not supported
- Open VR 1: legacy OpenVR support as in Humanoid Control v2.1 and earlier
- Open VR 2: OpenVR support using action manifests and support for Skeletal Input. The action manifests are found in Assets/Humanoid/Scripts/Extensions/OpenVR/.
Disabling SteamVR Support ensures that no code related to SteamVR is included in the build.
To enable body tracking with OpenVR for an avatar, SteamVR or OpenVR needs to be enabled in the Humanoid Control component.
This option will be enabled automatically when OpenVR is added to the Unity Virtual Reality SDKs.
First Person Camera needs to be supported for the OpenVR HMD. For convenience, this option is also found on the Humanoid Control script.
The SteamVR or OpenVR HMD option is added with a reference to the Real World HMD:
The Steam VR Controller needs to be enabled on the Hand Targets for controller support.
Controller models are shown in the scene when Humanoid Control->Settings->Show Real Objects is enabled. These models can be moved in the scene to place the controllers to the right position relative to the hands of the avatar. A reference to these transforms is found in the Tracker Transform field.
Only when using OpenVR 2, an additional option will be available to enable the SteamVR Skeletal Input.
The buttons of the Steam VR controller can be accessed using the Game Controller Input. The buttons are mapped as follows:
|Menu button||controller.left.option / controller.left.button|
|Menu button||controller.right.option / controller.right.button|
By default, the origin position will be set at (0,0,0). This will be sufficient in most cases.
It is possible to set the origin manually though. The real world position and orientation of the origin can be set using the Tracker Position/Tracker Angles parameters in the IVR_UnityVR script.
When using the InputHandler example script, calibration is initiated when the Tab key on the keyboard is pressed or when the two Option buttons on any controller are pressed simultaneously.
The tracking position and orientation can be calibrated during gameplay by calling the Calibrate() function on the HumanoidControl object. This is often implemented using the Controller Input component.