Haptics for various platforms

Hey, we’ve been using new FMOD haptics instrument for a while. There are several things that we’d like to imrpove (like no option of turning off async playback of haptic clip), but that’s for later.

My question is: is there an optimal way to optimize those haptics for basic controllers, e.g. Xbox gamepads? Whenever haptic instrument is played, it’s rich and nuanced on PS5 controller, while Xbox is just blasting rumble at full power. I presume it’s because of the nature of the built-in rumble motors.

Is there a way to do this adjustment without copying every instance of haptic to built-in Unity solution? Maybe adjusting rumble level multiplier if specific controller is detected? E.g. PS5 is 1, while Xbox is 0.2?

Just in case: we’re interested not only in platform-specific scenario, but also when user uses different gamepad on their PC.

Any help is appreciated!

Hi,

The difference between the PS5 and Xbox controllers is expected to some extent. The DualSense supports advanced haptics using both amplitude and frequency, while Xbox controllers use simpler rumble motors, so the same haptic clip can feel less detailed and more like traditional rumble on Xbox.

You can find more information about the differences between advanced and simple haptics in our Haptics Instrument documentation.

We have also discussed the differences in controller hardware in this forum thread.

Using a multiplier based on the connected controller is a reasonable approach. You can create a global continuous parameter such as HapticIntensity and use it to automate the Left and Right intensity of your Haptics Instruments, then set that parameter from Unity based on the connected controller.

We discussed a similar approach for controlling haptic intensity at runtime in Controlling Haptics via code - #2 by li_fmod

This would also work when different controllers are used on PC, without needing to recreate the haptics using Unity’s built-in rumble system. The exact multiplier for each controller would need to be tuned for your game and haptic content.

Hope this helps!