Developing for Room-Scale VR Using Unity3d

  • View
    1.287

  • Download
    0

  • Category

    Software

Preview:

Citation preview

Dario LaverdeSr Developer Evangelist, HTC

Developing for Room Scale VR

Using Unity3d

http://virtualrealitysummit.com/new-york/2016/

If you haven’t experienced Room ScalE…

GETTING STARTED tutorial

Best Practices (so far)

Room-Scale VR • dramatically adds to immersivenes• along with submillimeter tracking provides

presence

• Presence vs Immersiveness

Why Room Scale?

The psychological state of “being there”

Presence

Valve’s Lighthouse System• 2 base stations• An infrared blast followed by laser sweeps

How the Vive works

How the Lighthouse works

https://www.youtube.com/watch?v=oqPaaMR4kY4

What room Scale MEANs or DOESN’T mean• It doesn’t mean that you need absolutely need a dedicated

room for VR

• Developers should consider as small as 2m x 1.5m

• Standing and seated options are available

• >16 ft technically between base stations feasible with additional base stations (not supported yet)

OpenVRValve’s OpenVR SDK is the basis of the available support in various engines:

https://github.com/ValveSoftware/openvr

Unity3d, Unreal, Cryengine, StingRay, jMonkeyVR and more…

GETTING STARTED with Unity3d tutorial

Search for the SteamVR plugin

For Unity3d – just search on the assets store!Note: develop on Win/Mac/Linux, runs only on Windows

Step 1: drag n drop the Camera Rig prefab

avoid “Tracked Devices” as found in example scene:

Step 2: disable existing camera object

and Step 3. Run…. assuming you have a kit and the Steam client installed to run SteamVR’s VRCompositor*

* provides chaperone

some out of the box gotchasmodels provided under the steamvr application folder under …. /SteamVR/resources/rendermodels

If you copy it to your assets folder, you can provide offline access to controller objects with models

current controller model:vr_controller_vive_1_5

runtime check for Vive disables controllers

Customizing Controllers in Unity

Customizing Controllers in UnitySteamVR scripts automatically set up the default models for tracked items (this includes the base stations)So you can add to the model or replace the model (at least change the color)In some cases it may make sense to keep the default models for the controllers

Customizing Controllers in Unity

Customizing Controllers in Unity

Disable default rendering

Customizing Controllers in Unity

Using SteamVR’s model requires 180 degree rotation

Customizing Controllers in Unitycustomize color

Developing without a Vive KIT in Unityallowing offline (and Unity3d on a Mac) development requires this tmp change in SteamVR_ControllerManager.cs

steps for porting existing appsAs indicated in the steamvr docs (guide):

steps for porting existing apps

Best Practices (so far)

some best practices for Room-ScaleFPS (First Person Shooter) does not port to room-scale out of the box – requires rethinking game design!

Do not move the player (head bob, stafing, jumping, foot steps, collisions… etc.)

Allow exploring beyond scene borders

Transition with complete fades

Be innovative with teleporting

Test, test, testespecially teleporting!

If you don’t have a lighthouse tracking system try other positional tracking alternatives – e.g. Project Tango Tablet

Borrow a HTC Vive…

more example scenesHidden under “extras”

more example scenesHidden sample scenes currently include: TestThrow TextIK (inverse kinematics)

Room Scale demo : AltSpaceVR

Thank you! And Q&A and Resources

Room Scale VR with Unity3d (blog entry)http://medium.com/@dariony

recommended book:The VR BookHuman-Centered Design for Virtual Reality

author: Jason Jerald, Ph.D.

contact:http://google.com/+DarioLaverde