Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The game control controller page allows control of Unity and Unreal applications external applications from a remote deice. Generally these are Unity/Unreal apps that are integrated with the Igloo Toolkit from a remote device.

Table of Contents
minLevel1
maxLevel72
typeflat
separatorpipe

...

Usage

...

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

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 Igloo Core Engine 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 Igloo Core Engine 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.

...

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 calibrate button in the top right and rotate your device/body to point at the on-screen cursor. When you release the cubebutton, you’ll begin controlling orientation from this new direction instead.

...

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.

IMG_1827-20240305-100953.pngImage Added

Tap + drag anywhere on the screen to start using a virtual joystick.


Joysticks on the left hand side of the screen will control movement. (Blue in this image)
Joysticks on the right hand side of the screen will control orientation. (Green in this image)
Buttons are shown in the top-right of the screen.

...

Keyboard controls

Keyboard/mouse input

Unity/Unreal result

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

...

DualSense controllers

image-20240229-122437.pngImage Added

Igloo Control Panel also handles input from DualSense controllers, utilising the gyroscope for rotation.

Connect the DualSense controller to the device running Igloo Control Panel via Bluetooth, then open the game engine tab and press one of the circle/square/cross/triangle buttons to ensure it’s connected. The “Start casting” button will show a PlayStation logo to demonstrate this. Press the PlayStation button to start casting.

The left stick provides movement control, and the DualSense’s gyroscope is used for orientation control.

Calibration of the orientation offset is available using the “mic mute” button on the DualSense controller (labelled M in the diagram above). Hold down this button and rotate to face the onscreen cursor, as you would using the touch controls described above.

Troubleshooting

  1. Ensure Igloo Control Panel is up to date.

  2. Check the Unity app is accepting any input from the game engine tab (does the screen rotate when moving the mouse)

  3. If the left stick is working, but the gyroscope isn’t, try updating the controller's firmware.

...

Control method selection

Drawio
zoom1
simple0
inComment0
custContentId3353870356
pageId3307569154
custContentId3353870356
lbox1
diagramDisplayNameUntitled Diagram.drawio
contentVer23
revision23
baseUrlhttps://360igloo.atlassian.net/wiki
diagramNameUntitled Diagram.drawio
pCenter0
width481
links
tbstyle
height441

...

Pre-requisites

OSC output

...

As for all Igloo Control Panel usage, the Igloo Core Service must be installed and running on the media server.

The Igloo Controller Service also needs to be installed and running on the media server.

See Desktop UI - Setting up a Game Engine Layer for instructions on setting up an Igloo Core Engine layer to display the application, and correct configuration of that application (if using the Igloo Toolkit).

External applications that you want to control need to either be using the Igloo Toolkit (for Unity/Unreal), or accept the OSC messages outlined below.

...

OSC output

Messages to the Igloo Controller Service are sent on port 10000. Messages to external applications are sent on ports defined in the config file (by default 9007 and 9008).

Movement → Igloo Controller Service

/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.

...

Results in software Xbox controller moving its left thumbstick

Orientation → External application

/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).

The Igloo Toolkits for Unity and Unreal accept this OSC by default.

Buttons → Igloo Controller Service

/controller/0/[button]

...

languagenone

...

where button is one of [ 'buttonX',

...

'buttonY',

...

'buttonA',

...

'buttonB'

...

]

Results in software Xbox controller pressing the button.