Using HID-Compliant Controllers?

Hi all,

I am attempting to add support for a Fanatec ClubSport Wheel as it is a fairly common high-end racing wheel with force-feedback support. I have no problems getting the wheel recognized to be recognized by my Windows 10 machine as a Game Controller, which reports that it is a: HID-compliant game controller, and a USB Input Device.

I cannot find a way to enable generic HID-compliant devices in Unreal Engine 4 unfortunately. I went hunting through the source code and it looks like there is a “HIDInputInterface” class which polls HID devices and has a big table for remapping controller buttons and standardizing it all. However, this looks like it’s only implemented for the Mac runtime, and not on Windows.

I assume it is not implemented on Windows because of XInput/DirectInput? Unfortunately this device doesn’t seem to be detected by UE4 either way. When I enable “ShowDebug Input” in the console the wheel does not show up at all.

Is there any plans for supporting generic HID-Compliant controllers in the future, or is there an easy way to poll HID-Compliant devices on Windows? Or will I need to go through this wiki article and manually handle HID-devices myself on Windows?

Thanks!

On PC, UE4 only recognizes xinput controllers (xbox 360, etc). In my opinion it’s not likely that Epic would add generic controller support (directinput) since the default controller mapping system is very xinput specific – everything is named with modern console controllers in mind, making it not very extensible.
In light of that I made a plugin to add generic controller support Controlysis in Code Plugins - UE Marketplace

Too little, too late unfortunately. We ultimately ended up integrating SDL as a custom Input Device and hard-wiring in the responses we needed from the various SDL joysticks as required for our specific one-off project. I will keep your plugin in mind in the future however!