Private & Confidential

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

The game control page allows control of Unity and Unreal applications that are integrated with the Igloo Toolkit from a remote device.


Usage

Click or tap the “Control game engines” button to begin controlling Unity/Unreal.

You can control orientation, movement, and game controller button presses in a number of ways which are outlined below.

“Orientation” in an immersive environment is actually controlling the on-screen, world-space cursor. You’ll see this move on the ICE Canvas when you change your orientation through any of the control methods.


If you’re using a mouse and keyboard, your mouse will be locked to the Control Panel window, and all further mouse movement and keyboard interactions will be forwarded to Unity/Unreal. Press [Escape] to unlock your mouse and stop controlling the ICE cursor.

Mouse movement will adjust your rotation within the Unity/Unreal scene. Left clicking will send an A button press.
Keystrokes will send movement messages or button presses. See below for a keymap of these controls.


If you’re using a touchscreen device with gyroscope support, and your device is in a portrait orientation, the page will try and use data from your device’s gyroscope to control your orientation.
You can control your movement with a virtual joystick. Tap + drag anywhere on the dotted area to start using this joystick.
Buttons are shown at the bottom of the screen.

It’s possible when controlling orientation with a gyroscope that you’ll be physically facing a different direction to the on-screen cursor.
To adjust for this, hold down the cube in the top right and rotate your device/body to point at the on-screen cursor. When you release the cube, you’ll begin controlling orientation from this new direction instead.

On iOS, you’ll be asked to approve use of the gyroscope when pressing the “Control game engines” button. If you deny this, the page will fall back to its no-gyroscope behaviour (described below).


If you’re using a touchscreen device without gyroscope support, you pressed the “Control game engines” button with your phone in a landscape orientation, or denied permission to use the gyroscope, the page will provide two areas for virtual joysticks - one for orientation and one for movement.

Tap + drag anywhere on the screen to start using a virtual joystick.
Joysticks on the left hand side of the screen will control movement.
Joysticks on the right hand side of the screen will control orientation.
Buttons are shown in the top-right of the screen.


Keyboard controls

Keyboard/mouse input

Unity/Unreal result

W

Move forwards

A

Move left

S

Move backwards

D

Move right

Z

A button

X

B button

C

X button

V

Y button

Mouse movement

Change camera orientation

Left click

A button


Control method selection


Pre-requisites


OSC output

Movement (WASD/virtual joystick)

/controller/0/leftThumb [x] [y]

x and y are the virtual joystick’s coordinates, either from an on-screen virtual joystick or calculated from WASD presses.

Orientation (Mouse/gyro orientation/virtual joystick)

/ximu/euler [y] 0 [x]

x and y are components of a rotation Euler describing the user’s current world-space rotation.
This is initialised at (0, 0, 0) when the user presses the “Start controlling game engines” button, and reset whenever they stop casting.
Changes to the rotation are tracked by the page and the resulting world-space rotation is provided. This means that the game engine’s camera will jump back to a (0, 0, 0) rotation between control sessions.

Buttons (Click/keyboard events/on-screen buttons)

(The app only sends 'A' button on click/press of on-screen button)

/controller/0/[button]

ControllerServiceButtons {
    x: 'buttonX',
    y: 'buttonY',
    a: 'buttonA',
    b: 'buttonB',
  }

  • No labels