Hi Guys
We’re currently working on a customer project with the requirement to provide Force Feedback using the old Microsoft DirectX DirectInput Interface.
This allows our customer to create custom Force Feedback Effects for various type of devices still using this technology (which are still quite a lot, especially in the flight simulation scene).
Currently we are in a very early stage of the plugin, but it’s already usable for a “proof of concept” or to explore the technology behind. Unfortunately, we had not time to write the documentation yet, so you should have experience with DirectInput Force Feedback to understand how they work or you have to check the Demo Project Control Panel to see how it was implemented.
For more Information you can also refer to the MSDN DirectInput Force Feedback documentation.
We’ll include a proper documentation with a couple examples in future.
Here you can find a test Blueprint project including the plugin: VehicleBPTest
Press “Enter” to see the Control Panel within the Game. Here you can see a couple of basic effects.
I’ll try to keep this post up-to-date. Any feedback will be much appreciated.
DirectInputPluginLog: FJoystickPlugin::StartupModule() starting Joystick Devices…
DirectInputPluginLog: FJoystickPlugin::StartupModule() starting DirectX DirectInput…
DirectInputPluginLog: Initialize DirectX DirectInput System
DirectInputPluginLog: Created DirectX Device Logitech G27 Racing Wheel USB
DirectInputPluginLog: Joystick plugged in and configured: Id 0 Name Logitech G27 Racing Wheel USB
DirectInputPluginLog: Create Axis Mapping Key for Joystick Logitech G27 Racing Wheel USB Axis 0
DirectInputPluginLog: Create Axis Mapping Key for Joystick Logitech G27 Racing Wheel USB Axis 1
DirectInputPluginLog: Create Axis Mapping Key for Joystick Logitech G27 Racing Wheel USB Axis 2
DirectInputPluginLog: Create Axis Mapping Key for Joystick Logitech G27 Racing Wheel USB Axis 3
DirectInputPluginLog: Create Axis Mapping Key for Joystick Logitech G27 Racing Wheel USB Axis 4
DirectInputPluginLog: Create Axis Mapping Key for Joystick Logitech G27 Racing Wheel USB Axis 5
DirectInputPluginLog: Create Axis Mapping Key for Joystick Logitech G27 Racing Wheel USB Axis 6
DirectInputPluginLog: Create Axis Mapping Key for Joystick Logitech G27 Racing Wheel USB Axis 7
DirectInputPluginLog: Create POV Mapping Keys for Joystick Logitech G27 Racing Wheel USB POV 0
DirectInputPluginLog: Create POV Mapping Keys for Joystick Logitech G27 Racing Wheel USB POV 0
DirectInputPluginLog: Create POV Mapping Keys for Joystick Logitech G27 Racing Wheel USB POV 0
DirectInputPluginLog: Create POV Mapping Keys for Joystick Logitech G27 Racing Wheel USB POV 0
DirectInputPluginLog: Create POV Mapping Keys for Joystick Logitech G27 Racing Wheel USB POV 0
DirectInputPluginLog: Create POV Mapping Keys for Joystick Logitech G27 Racing Wheel USB POV 0
DirectInputPluginLog: Create POV Mapping Keys for Joystick Logitech G27 Racing Wheel USB POV 0
DirectInputPluginLog: Create POV Mapping Keys for Joystick Logitech G27 Racing Wheel USB POV 0
DirectInputPluginLog: Create POV Mapping Keys for Joystick Logitech G27 Racing Wheel USB POV 0
I got messages in the log file that looked like this:
LogStreaming:Warning: Failed to read file ‘…/…/…/Engine/Content/Editor/Slate/Common/Selection_16x.png’ error.
LogSlate: Could not find file for Slate resource: …/…/…/Engine/Content/Editor/Slate/Common/Selection_16x.png
LogStreaming:Warning: Failed to read file ‘…/…/…/Engine/Content/Editor/Slate/Common/Selection_16x.png’ error.
LogSlate: Could not find file for Slate resource: …/…/…/Engine/Content/Editor/Slate/Common/Selection_16x.png
LogStreaming:Warning: Failed to read file ‘…/…/…/Engine/Content/Editor/Slate/Common/Selection_16x.png’ error.
LogSlate: Could not find file for Slate resource: …/…/…/Engine/Content/Editor/Slate/Common/Selection_16x.png
ok great, that means the plugin did properly find your device.
Did you bind the Axis and Action Mapping through the Input Settings in the Project settings editor?:
(Demo Game hasn’t configured any mapping, since FKey change with every device. Input Mapping at project level or a dynamic input mapping system within the game is needed to process input.
Within the Demo Game you can press “Enter” to see a special menu with some test Force Feedback effects)
it should work if you just copy the Plugins\DirectInputPlugin folder into your Game Project Plugins folder. At the moment you can use it only in blueprint only projects. (C++ support will follow)
For compilation, you need VS2015. Create a new C++ class, and UE4 will open VS2015 for you. On the right hand side, select UE4, then go to menu and select “Build UE4”. VS2015 will compile the plugin for you, and you should be able to run UE4 with the plugin after that.
The plugin works perfect in the editor,it helps me a lot,I really appreciate it.But errors occur when I package the project, how to deal with the problem?
Hi flashASA, sorry, didn’t get the notification for new messages…
We’re planing to offer the final version of the plugin at the begining of november. The standard edition will only include bp binaries without source code and will cost a small fee. The source code will also be offered, but will cost slightly more. (For future releases we’re planning to build a c++ wrapper edition for c++ only projects without source code included)