I’m excited to announce the Pre-Release of v2.0.0! This isn’t just a regular update; it’s a complete architectural overhaul designed to make the plugin more stable, faster, and future-proof.
Updated Demo Project: Arena Shooter
We have fully updated the Arena Shooter example project included with the plugin.
Gyroscope Aiming: Refined and smoother. If you want to see how to implement high-precision gyro aiming in Unreal, ### check this out.
Stability: The refactor improved performance without breaking existing blueprints.
I’m having an issue I haven’t seen mentioned here, I was testing the plugin, added some basic movement and camera inputs and in editor it is plug and play, didn’t have to do anything aside from the input mappings. Works in selected viewport, and PIE, but once testing as simulated game or packaged, it no longer detects controller input. Anyone know what might the issue here?
This is a great plugin, thanks! (I would have payed for it)
Any plans to integrate other controller types into this plugin as well? I love how seamless the PS controller is integrated into the Enhanced Input System, good work there!
I am considering to buy an additional plugin that supports HOTAS, etc., but I am a bit worried over the two plugins fighting each other over a PS controller (I have no idea if that concern is justified).
BTW just a story from the battle field: In order to sync adaptive triggers with digital input actions, e.g. like the semi-automatic weapon, I figured out that it is possible to change the Pressed Trigger Actuation value at runtime for any given IMC, so there is no need to check the axis value manually when detecting the button down event. Instead you can change the action threshold whenever the adaptive trigger is reconfigured. I personally feel this is the best approach since it uses the original Enhanced Input System design.
Find KeyMapping related to action (Shoot action in this case is the hardcoded name that the InputAction was given):
The only caveat here is that in my implementation the actuation threshold will update for all assigned keys if one of them is RT or LT, but in practice this will probably not matter at all because the other mapped keys are most likely digital keys anyway.
Hi, thank you for sharing this knowledge. Your implementation is great. Congratulations . Regarding support for other gamepads, there won’t be any. The plugin can coexist with other plugins as long as it’s not a plugin that steals the handle or hides the device like DSX or Steam. The mapping is done through the native Unreal Engine, so it always assigns a new device ID; there won’t be conflicts if the plugin you buy doesn’t support DualSense.
Hi, thanks for the feedback, I haven’t been able to reproduce this problem. You could open an issue on GitHub. Maybe someone there could give some tips as well.
Hi, I’ve been trying to work on some haptic feedback but can’t seem to get anything working in the main DualSense vibration. Force Feedback doesn’t seem to do anything. The machine node doesn’t either. Would you be able to advice?
Hi, sorry for the delay in replying. So, the version here on FAB Marketplace is v1… in that version, haptics wasn’t very well defined yet.
To make it work in your project, I suggest you download the Audio Haptics example project. If your project doesn’t already have a Plugins folder, create one and copy or move the plugin from the example project to your project.
Once you do that, start your project and the engine will compile the plugin. Then you can go to the PlayerController example project and see the example there for audio haptics. It works via USB and Bluetooth.
I’m still learning UE so this might be a silly problem; I’ve enable the plugin, set up according to the gyro user guide but no matter what I’m getting no movement with the IA_Rotator. I downloaded the example project, and everything seems to work (can feel the haptics) except gyro, which is the one thing I need
Hi! I’ve been testing out your plugin, and almost everything works perfectly out of the box!
However, I’ve found I need to manually call the ISonyGamepad::UpdateOutput() function in order to get rumble/vibration on my DualSense. Is this intended, and is there an ideal place to call the function?
When I call UpdateOutput() every frame in the AsyncTask created in DeviceManager::Tick() (next to the call to UpdateInput()) I get a pulsing sudden vibration together with the touchpad LED flashing.
Hi, so actually the UpdateOutput is only meant to be called after a chain of commands or a specific command; it wasn’t designed to be called in a loop.
For example, calling it in beginplay events or custom events to apply configurations and actions to the controller is always done after sending a command to the controller, but never in a loop.
Why was it done this way?
In v1, every time you called it via blueprint, it called the UpdateOutput behind the scenes. The problem was that it was generating inconsistencies, especially when the controller was connected via Bluetooth, which requires data integrity with the checksum. What was actually happening was a race condition, invalidating the checksum if you call this UpdateOutput function in a loop.
There is no longer any disconnect device node and i was wondering if it was possible to bring it back or make something that would reset the controller to the original settings when it was plugged in. What i mean for example is the lights in the controller they were originally blue but after a change in the code it changes to yellow and if you dont change it back to blue through code/blueprints it will stay yellow after pressing stop play or closing the editor, same happens with triggers. Only way i found to reset it was to unplug the device and plug it back in.