Your Hand Controllers

Configure your hand-controllers.

Overview

High Fidelity supports the HTC Vive, Oculus Touch, Razer Hydra, Leap Motion and XBOX One Controllers. You can check out the system requirements here.

Basic Controller Configuration

Although navigation and limited interaction can be accomplished with a keyboard/mouse, fully interacting with in-world objects in High Fidelity requires a hand controller.

Razer Hydra or HTC Vive Hand Controllers

You can enable a Razer Hydra or an HTC Vive hand controller by:

  1. Going to Settings > Advanced Menus.
  2. Navigating to Avatar > Input Devices > Sixense for the Hydra or Avatar > Input Devices > Vive for the Vive.

Note: Vive users should have SteamVR running before starting Interface.

Once enabled, you should be able to use the hand controller to navigate and grab objects. If it is not working, select Edit > Running Scripts or press Ctrl + J to open the Running Scripts panel and check to see if the handControllerGrab.js script is running. It should be running by default.

Leap Motion Orion

You can enable Leap Motion with an HMD by:

  1. Going to Settings > Developer Menus.
  2. Navigating to Developer > Hands > Leap Motion > Leap Motion on HMD.
  3. Going to Edit > Running Scripts or press Ctrl + J to open the Running Scripts panel.
  4. Navigating to the Running Scripts panel, and then to the leapHands.js script (controllers/leap) and highlighting it.
  5. Clicking Load to run the script.

If the Leap is detecting your hands, when you look down you will see the avatar's hands move in sync with your own.

XBOX One Controller

You can enable an XBOX One controller by:

  1. Going to Settings > Advanced Menus.
  2. Navigating to Avatar > Input Devices > SDL2.

Note: If you are using Mac OS, and are having issues with using an XBOX controller, see Xbox 360 Controller (OS X) for more information.

Razer Hydra for Power Users

Setting up the Razer Hydra (Mac Users)

  1. Download the Sixense SDK from http://sixense.com/hardware/sixensesdk.
  2. Copy lib/osx_x64/release_dll/libsixense_x64.dylib to Applications/Interface/Contents/Frameworks.

Calibration

Using Interface with defaultScript.js running for calibration.

For the best results, the Hydra orb should be placed on a flat surface to the left of where your hands would be on the keyboard. It should be oriented so that the two cables are on the back. To measure your arm-span, hold your arms straight out to either side in a “T” pose, then press and hold the two bumper buttons for one second and let go.

Cursors

Each controller has its own cursor, drawn as a cyan dot-plus-circle. These act like a normal mouse cursor. You move them by adjusting the pitch and yaw of your controllers.

  • Bumper button: Left-click.
  • Trigger: Right-click.
  • Developer > Hands > Sixense > Enable Sixense Mouse Input: Enable/disable the controller cursors.
  • Preferences > Invert Mouse Buttons: Swaps the left- and right-clicks.
  • Preferences > Reticle Movement Speed: Adjusts the sensitivity of the cursor movement.
  • Your right-hand controller can also control the normal mouse pointer: enable/disable this control by pressing button 0 on the right-hand controller (the small skinny one between buttons 1 and 2).

Controller Graphics

Manage your controller's graphics using the below menu options:

  • Developer > Show Hand Info: Draws a red disc plus sphere and pointer that depicts your controller orientation. These coincide with your "palm" positions if you have Preferences > Avatar Scale = 1.0; if you don't, then they are drawn some distance away. Your avatar's hands will not necessarily coincide with the "palm" positions.
  • Developer > Show Hand Targets: Draws a wire mesh ball the position of your "finger tips," if Show Hand Info is enabled. These are 0.3m away from your "palm" position.
  • Developer > Avatar > Show Skeleton Collision Shapes: If your avatar scale != 1.0 then you'll see green balls drawn at your avatar's "palm" positions.
  • Developer > Hands > Sixense > Enable Sixense UI Lasers: Shows/hides cyan "lasers" emanating from the position of the red disc-plus-sphere-and-pointer.

Movement

Left joystick: Moves you forwards/backwards in the direction you're looking, and left/right.

Right joystick: Rotates your view up/down and left/right.

Button 4 on either controller: Press and hold, then:

  • Tilt and horizontally rotate your controller to tilt and rotate your view.
  • Move your controller backwards/forwards/left/right/up/down to move in that direction.

Model Editing

When you enable model editing (right-hand toolbar's cube) a pair of lasers is drawn.

  • Left- or right-bumper: Toggle lasers red/blue.

    • Red: Mode 0
    • Blue: Mode 1
  • Single-laser editing: Make one of your lasers intersect with a model then "grab" it by pulling and holding the relevant controller's trigger.
    • Mode 0: The model rotates around your controller's location, keeping the model "looking at" the controller, and changing position with changes in your controller's position.
    • Mode 1: The model rotates about its axis as you rotate your controller, and moves position as a multiple of changes in your controller's position.
  • Dual-laser editing: Make both your lasers intersect with a model then "grab" it by pulling and holding both controllers’ triggers.
    • Mode 0: Move and scale the model according to your controllers' rotations.
    • Mode 1: Rotate model according to your controllers' relative positions.

Miscellaneous

  • Left-bumper + left-trigger, or right-bumper + right-trigger: Show/hide UI.
  • Button 3 on either controller: Show/hide magnification window in VR display mode.
  • Taking off and putting on avatar attachments: Grab an attachment per model editing and move it so that it is a normal model in the world and no longer an attachment; or grab an in-world model and make it an attachment by moving it close to one of your avatar's joints.
  • squeezeHands.js: This script makes your avatars' hands clench as you pull the Hydra's triggers.