The game control controller page allows control of external applications from a remote devicedeice. Generally these are Unity/Unreal apps that are integrated with the Igloo Toolkit.
Table of Contents | ||||||||
---|---|---|---|---|---|---|---|---|
|
...
Usage
...
Click or tap the “Control game engines” button to begin controlling external applications.
...
“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. Press [Escape]
to unlock your mouse and stop controlling the ICE Igloo Core Engine cursor.
Mouse movement will adjust your rotation within the 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.
...
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 | 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
ICE Igloo Control Panel also handles input from DualSense controllers, utilising the gyroscope for rotation.
Connect the DualSense controller to the device running ICE 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.
...
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
Ensure ICE Igloo Control Panel is up to date.
Check the Unity app is accepting any input from the game engine tab (does the screen rotate when moving the mouse)
If the left stick is working, but the gyroscope isn’t, try updating the controller's firmware.
...
Control method selection
Drawio | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Pre-requisites
As for all ICE Igloo Control Panel usage, the Igloo Core Service must be installed and running on the media server.
...
See Desktop UI - Setting up a Game Engine Layer for instructions on setting up an ICE 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]
...
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.
The Igloo Toolkits for Unity and Unreal accept this OSC by default.
Buttons → Igloo Controller Service
/controller/0/[button]
where button is one of [ 'buttonX', 'buttonY', 'buttonA', 'buttonB' ]
...