Pular para o conteúdo
Mídia 1 do anúncio SDL Enhanced Input (Universal Controller Support)

Descrição

SDL Enhanced Input

Bridges SDL3 gamepad and joystick input into Unreal Engine's Enhanced Input system, unlocking full support for controllers that UE doesn't handle natively — including DualSense adaptive triggers, motion sensors, touchpad, racing wheels, flight sticks, arcade controllers, and Nintendo Wiimotes.

The Problem

Unreal Engine's built-in input system only recognizes a limited set of standard gamepads. DualSense adaptive triggers? Ignored. Gyroscope and accelerometer? Not exposed. Touchpad? Invisible. Racing wheels, flight sticks, and arcade controllers? Partially supported at best. Wiimotes? Not even on the radar.

The Solution

SDL Enhanced Input uses SDL3 — the industry-standard input library trusted by thousands of games — as a bridge into UE's Enhanced Input system. It registers as a standard IInputDevice, so all inputs flow through the same Input Actions and Mapping Contexts you already use. No engine modifications, no hacks.

Supported Devices

  • PlayStation — PS4, PS5 with adaptive triggers, touchpad, motion, LED

  • Xbox — 360, One, Series with trigger rumble

  • Nintendo — Switch Pro, Joy-Cons, GameCube adapters

  • Racing Wheels — Logitech G29/G920+ with force feedback and RPM LEDs

  • Flight Sticks & HOTAS — Full axes, buttons, hats, force feedback

  • Arcade Sticks — Full button and stick support via raw joystick

  • Wiimote — BT scanning, buttons, accel/gyro, Nunchuck, IR tracking (Windows)

  • Generic HID — Up to 24 buttons, 8 axes, 4 hats on any SDL device

Key Features

  • DualSense Adaptive Triggers — Feedback, Weapon, Vibration effects with full parameter control from Blueprint

  • Motion Sensors — Gyro + accel as Enhanced Input axes with auto-calibration and deadzones

  • Touchpad Input — Two-finger position tracking, touch state, click on DualSense/DS4

  • Advanced Haptics — 11 force feedback types (Constant, Sine, Spring, Damper, Ramp...) with handle-based lifecycle and capability queries

  • Racing Wheel LEDs — Logitech RPM LED bitmask patterns or tachometer percentage

  • LED Control — Lightbar color on DualSense, DS4, Switch Pro, and others

  • 80+ Custom FKeys — Joystick axes/buttons/hats, motion, gamepad extras (Guide, Misc1-6, Paddles), touchpad, Wiimote IR

  • Battery & Device Info — Query type, name, VID/PID, battery %, connection state

  • Virtual Joystick — Simulate buttons/axes via console for testing without hardware

  • Connection Events — Blueprint delegates for connect/disconnect with device info

  • Multi-Controller — Up to 8 gamepads + 4 joysticks, optional "force all to Player 0"

  • Configurable SDL Drivers — HIDAPI, DirectInput, RawInput, WGI tuning from Project Settings

Console Commands

  • SDL.WiimoteScan [sec] — Start BT scan for Wiimotes

  • SDL.SetLED R G B [slot] — Set lightbar color

  • SDL.SetTrigger type [params] — DualSense adaptive trigger effect

  • SDL.Haptic type [str] [dur] [slot] — Play haptic effect

  • SDL.SetWheelLED pattern [slot] — Logitech RPM LEDs

  • SDL.SimButton / SDL.SimAxis / SDL.SimDestroy — Virtual joystick

Example Content (160+ Assets)

  • 5 Input Mapping Contexts — Gamepad, Motion, Touchpad, Wiimote, Joystick

  • 40+ Input Actions — Every button, axis, sensor, touchpad input

  • Debug UI Widgets — Real-time axes, buttons, hats visualization

  • 3D Controller Models — DualSense, G29, Wiimote, Flight Stick with per-button highlighting

  • Example Level — Playable demo showcasing all features

How It Works

The plugin loads SDL3 dynamically at startup and registers as an IInputDevice. Each tick, it polls SDL for events and translates them into FKey messages through UE's input pipeline. Gamepads map to standard FGamepadKeyNames (existing actions work out of the box) plus custom FKeys for features UE doesn't expose. Raw joysticks give direct access to every axis, button, and hat.

Slot ranges distinguish device types: 0-7 for gamepads, 100+ for Wiimotes, 200+ for raw joysticks. Wiimotes use a separate direct HID connection with background BT scanning.

This plugin requires the built-in plugin EnhancedInput to be enabled (EnabledByDefault since UE 5.0)

Documentation & bug reports? -> GitHub

Formatos incluídos