Installation/Setup
Requirements
Virtual reality requires special hardware to run. Currently ASL has the most built in tested support for SteamVR devices. Steam has the following as reccomended specifications for running SteamVR
- OS: Windows 7 SP1, Windows 8.1, or Windows 10
- Processor: Intel i5-4590 / AMD FX 8350 equivalent or greater
- Memory: 4 GB RAM
- Graphics: NVIDIA GeForce GTX 970 / AMD Radeon R9 290 equivalent or greater
The work machine in graduate lab features a GTX 1070, which is more than powerful enough given the scope of the assets in ASL and has been tested with the HTC Vive.
Note: You may experience technical difficulties with setting up the Occulus Rift on this PC & it will not support the Windows Mixed Reality Devices
ASL also has support for the Windows Mixed Reality Device using SteamVR, which has the following requirments
- Requires a 64-bit processor and operating system
- OS: Windows 10 April 2018 Update
- Processor: Intel i5-4590 / AMD FX 8350 equivalent or greater
- Memory: 8 GB RAM
- Graphics: NVIDIA GeForce GTX 970 / AMD Radeon R9 290 equivalent or greater
- DirectX: Version 11
- Bluetooth: Bluetooth 4.0 for accessories
We have found that laptops with 8GB of RAM and a dedicated video card (GTX 9xxM series +) can get by running ASL with the Windows Mixed Reality Devices.
Note: Natively the Windows Mixed Reality uses the Universal Windows Platform API, but ASL does not currently support building toward that platform, so to use the Windows Mixed Reality devices you need to install the following from Steam.
Windows Mixed Reality for SteamVRVR Setup
For Vive setup follow these instructions
For Windows Mixed Reality initially follow these instructions Then procede to install SteamVR and Windows Mixed Reality for SteamVR.
ASL Usage
Virtual Reality Toolkit
ASL's support of VR devices is built on top of the Virtual Reality Toolkit. The VRTK modules are sourced from the github repository, the version on the Unity store is outdated and will not work with ASL.
VRTK is an open source framework designed to ease VR development and allow for easing support of multiple devices. The following are some resources for using VRTK
Adding a VR player
Adding a VR player to a scene in ASL is rather trivial. Once a supported VR device is setup and installed all that is required is for the VR Player System prefab to be included in a scene, the VR device connected to the computer, and to have the appropriate version of SteamVR running.
From the prefab you then select the supported device you would like to load and then press play. This will lead to the creation of a networked avatar that will provide a visual representation of the VR player that is synchronized across ASL.
VR Player Types
Currently ASL supports a simulator VR player and a SteamVR player. In order to add support for a device the camera rig prefabs of an SDK setup is modified to have reference points for the components of a networked VR avatar. The VR Initilization Script will first create an instance of a networked avatar. Upon creation the avatar the apppropriate VR scripts, based off of the selected device field, will be activated. After activiation GameObject references for the avatar will be found by the initilization script, which will call the VRAvatarInitialization initilize function.
This process has already been implemented for SteamVR devices and the simulator.
Controlling a VR player
Interactions with VR input devices that control a VR player are located in the 'VRTK_Scripts' GameObject. These scripts are implemented to support any VR device supported by VRTK, given the appropriate SDK is included in the project (see SteamVR and OVR in 3rd Party Libraries). See this playlist for an example of setting up these scripts. Scenes in 'ASL/3rd Party Libraries/VRTK/Examples', specifically [004 - Locomotion] Teleporting & [006 - Locomotion] MovementTypes should also be useful references for changing the way a VR player is controlled.
Simulator
The simulator emulates movement of the headset via the VRTK input simulator script. When a simulator is created there will be a GUI element displaying controls.
The current built in controls use WSAD for moving the playerspace/camera rig. The mouse moves the direction the headset is oriented. You can follow the GUI to emulate buttons press with keypresses to trigger teleportation.
SteamVR
When using an actual VR device you will interact with an additional movement option. The simulator can only move the orientation of the headset. When using VR the camera will move in relation to your actual headset movement and will move with you relative to the playspace and camerarig. However, when using SteamVR, you lose support for WSAD movement & the existing method of moving in the virtual scene outside of the length of your VR playspace is to use the trigger buttons to teleport around.
Other devices
Other devices have yet to be implemented, but should control just like the SteamVR devices.