VR On-boarding

Ali Siddiqui
code3100
Published in
3 min readJun 5, 2017

This is one of the most crucial parts of any kind of VR experience as you need to ensure the user knows how to use the controllers to navigate and interact.

DISCLAIMER: This will be using Mitch’s VR Template project which is freely available on GitHub.

Aim: To show the user how to teleport, pick up torch, turn on torch. This will be done using dynamic materials, text, and haptic feedback.

Firstly, we need to get the Oculus touch controller meshes and use them in the character model so the user can instantly relate real life and VR.

Ensure ‘Show Engine Content’ is checked in the view options
Type in ‘Oculus’ in the search bar to see the controller meshes
Apply those meshes in the hand sphere components

Next, install SteamVR to get individual components of a controller mesh. These meshes will be used to highlight the buttons that need to be used. The following are the required meshes:

  • Thumbstick — Used for teleportation
  • Grip — Used to pick up/interact with objects
  • Trigger — Used to turn on torch

Import the individual meshes and set its material to M_BasicHighlightMaterial. Then add this mesh to character model (using a static mesh component) and place it over the controller mesh. Then add a text render component that will be used as the instructions for the on-boarding.

Text Render Component
Highlighted Thumbstick and Text Render

Repeat this for the other two buttons. Next the Blueprint logic needs to be added.

Thumbstick On-boarding

Logic for the above image:

  • Thumbstick is highlighted and TextRender is showing when the user enters the game, the left controller is also vibrating.
  • Once the user presses the Thumbstick, the visibility for the highlighted mesh and TextRender is turned off, a sound effect is played and the haptic feedback stops.

This logic of toggling visibility and sound is used for the other buttons as well, however they are triggered when the user enters a trigger box and needs to pick up the torch. Below is an example of how it works:

--

--