TEI Prototype — Controls & Hotkeys

Reference for keyboard controls, developer hotkeys, and Kinect gesture mappings.

Keyboard Player Controls
Player 1 WASD
WASD
Move light
E
Use ability (Break Wall or Collect Station)
R
Zoom in FOV (hold)
F
Zoom out FOV (hold)
Player 2 Arrow Keys
Move light
Enter
Use ability (Break Wall or Collect Station)
Right Shift
Zoom in FOV (hold)
Right Ctrl
Zoom out FOV (hold)
Shared — Both Players
Tab
Swap fish abilities between Player 1 and Player 2 (BreakWall ↔ CollectStation). Triggers score increment and screen flash.
Abilities: Each fish carries one ability at a time. Break Wall detonates an expanding sphere that destroys nearby breakable wall segments. Collect Station detonates a sphere that collects nearby station objects. Both have a cooldown between uses.
Kinect Controls

Gesture Reference

🖐
Move Light — Both Hands Relative to Chest

The average world-space offset of both hands from the chest bone drives the input axis.
Hands left of chest → move left  |  Hands right of chest → move right
Hands above chest → move up  |  Hands below chest → move down
A deadzone of ~15 cm is ignored; full input is reached at ~60 cm offset. Diagonal movement is supported and normalized.

🦵
Use Ability — Jump (Pelvis Rise)

Jump detection watches the pelvis bone against a rolling 2-second baseline height.
The ability fires the instant the pelvis rises ~12 cm above the baseline. The signal stays active for ~0.25 seconds, then resets once the pelvis falls back within ~4 cm of baseline — ready for the next jump.

🤝
Swap Abilities — Players Touch Chests

When the two players' chest bones come within ~60 cm of each other, their fish abilities are swapped immediately (same effect as pressing Tab). Players must then move apart beyond ~120 cm before the next proximity swap can trigger — this prevents repeated accidental swaps while standing close. The swap increments the score counter and triggers the screen flash.

Player assignment: Player 1 uses Kinect Body ID 0, Player 2 uses Body ID 1. Switch between Keyboard and Kinect modes at any time with Shift + C. The FOV depth mode also switches automatically alongside the control scheme.
Developer Hotkeys
UI Visibility — Individually Persisted
Shift+K
Toggle Kinect debug UI panel Saved
Shift+M
Toggle microphone debug UI panel Saved
Shift+F
Toggle FPS display Saved
Shift+L
Toggle logger UI panel Saved
Shift+V
Toggle minimap camera Saved
Shift+S
Toggle SimpleSpectrum bars (moves object ±100 units on Y — no SetActive) Saved
Shift+P
Toggle progress bar UI panel Saved
Shift+A
Master show / hide — turns all UI panels on or off together (Kinect, Mic, FPS, Logger, Minimap, Spectrum, Progress Bar). Does not affect individual panel states or their saved prefs. Session only
Session Controls
Shift+Space
Start / stop logging session. Writes CSV output via Logger.
Shift+R
Regenerate maze. Stops any active logging session first. Resets score counters and updates max walls / stations in the debug UI.
Shift+C
Toggle control scheme for both players: Keyboard ↔ Kinect. P1 switches WASD ↔ Body 0; P2 switches Arrow Keys ↔ Body 1. FOV depth mode switches automatically. Saved
Saved hotkeys write their state to PlayerPrefs and restore it on the next run. Session only hotkeys reset to default each time the application starts.