WM Input Manager / RAW&XINPUT&DIRECTINPUT Unified INPUT, Runtime Device Mapper -> Updated


Overview :

Realtime visual RAWINPUT/XINPUT USB Device Manager. You can use any HID-Compliant Gamepads/Joysticks as your input device with the ability to visually use, remap, configure, debug, assign device to specific a player (PlayerController) during gameplay with pre-built UMG menus included in package.

It detects controllers with visual events Plug&Play functionality implemented inside the manager. All Devices have their own memory which memorizes 2 device modes that the developer or player can configure during gameplay.

If your device is plugged in it will automatically list your device in WM_InputManagerUMG & will read all possible inputs and give you an options list for you to easily remap or configure.

Each WM_Controller Input key will list all ACTIONS in which they are used.

Each device will automatically autodetect axis type on first connected. Detects if axes are pedals 0-1 range or -1 1 or inverted. Configure , sensitivity, deadzone with magnitude, “Auto/Reset” button for axes.

You can make your own visual templates for SteeringWheel , FlightStick etc.

ManagerUMG will list for you all used WM_Controller input keys with corresponding bound actions & combo options to pick target input path you wish.

WM_InputUMG must be added to Viewport inside GameMode because you have global control over devices while configuring so don’t do that in PlayerController if you are creating more local players.

It is a perfect solution for Local Multiplayer Games to allow players to quickly assign device to specific a PlayerController.

Features:

  • players & developers can remap Device Input paths visually during gameplay(shipping = OK)
  • All Devices has 2 configuration modes saved in memmory using savefiles and folder (Saved/WMDeviceConfigurations/)
  • Each Gaming controller has predefined setup which will work for most of gamepads avaliable
  • Easy button remapping with just one click (HOLD&Press)
  • automatic Axis type detection when device is 1stTime connected or via “Auto/Reset” (will detect if you have pedals 0-1 axis) Awesome !
  • “LISTEN” for input
  • PlayerController device assigment (via widget for assigning controller with dpad controlls or arrow clicks)
  • Use multiple devices per player & combine their input (virtually build multicontroller)
  • Perfect for game which is designed for more local players on one computer (Combat games, cooperative, fight)
  • Sensitivity, DeadZone, Invert, isPedal config
  • no need for XInput & other device emulators.

In Project settings->WM_Input_Manager_Settings you can change default axis sensitivity & default axis deadzone for all devices.

True power of WM Input Manager is that developers don’t need anymore to build big databases for different Gamepad/Joysticks. so end users , players can remap their devices during gameplay easily -> Just listen for input & its done. & can use , combine as many joysticks as they want to virtually build for example Racing Rigs, Simulation Rigs. Devices can be reassigned to specific player controller “PLAYER” on the fly via lightweight device assign UMG menu included.

Developers may want to build their own UMG to fit their project design… All UMG files included can be used instantly via few commands ->> see example project that can be downloaded on marketplace page of this plugin. Dont forget to swich example project to version U are just using. UMG files included also acts as documentation files for this product to easily build your own menu.

If there will be any issue “hope not” or you have idea how to improove this product, feel free to contact Creator of this plugin at [EMAIL=“Instrictlogic.ue4@gmail.com”]Instrictlogic.ue4@gmail.com & I am ready to help & solve with anything operating or is related with WM Input Manager.

Happy gaming & Thank You for supporting me by buying this product !!! :wink:

Changes for last released version no. v1.12:

  • added automatic function to cancel device inputs when device was detached from system during runtime.
  • fixed little bug when when device was reassigned to different player controller id & some button values was’nt updated correctly.

List of avaliable keys for WM Input Manager (“not showed on picture bellow”) was expanded to :

  • number of HID Joystick buttons to 42
  • expanded number of HID Joystick axes to 20
  • number of HID Joystick DPads to 3
  • If anyone need to use more axes in your project , feel free to contact me & I will add more axes, buttons , dpads for you.

Future version releases notes:

  • adding DirectInput wrapper to get full force feedback enabled devices support . (So, module will be Raw/Xinput/Directinput enabled).
  • for now to use force feedback controlls there will be need to use WM_PlayerController class included within this module , because default UE4 PlayerController class is calling their native force feedback functions continously or with little instructable which will be included in documentation to override PlayerController class function which is calling native ForceFeedback functions. Need to discuss with Epic Games if they will add ability to bypass their FF calls.
  • adding experimental support for 3D Connexion mouse & editor viewport controll binding for avaliable devices (in development)
  • nothing will drastically change, so , everything will work as it worked until now,
  • will need some investments to get a few force feedback devices to test until release

ed5fb02135572c1aad0249567b415c80ec7dfc8c.jpeg

So I’m having an issue with getting Axis Inputs that are different across multiple input hardware. For example I’m trying to map basic flight controls to a Warthog HOTAS and CH Pedals setup. When I use the WM UMG to inspect the axis they all seem to start with Axis 30. In the attached images you will see they are all showing up and cross mapping to other device inputs. I only have one of the respective inputs mapped to each axis and they still cross control other inputs. Any help would be greatly appreciated. It’s probably me looking at it for too long and a simple solution, I hope.