Successive Haptic pulses stop working after a few seconds

Follow up on UE-33361 (Issue Link)

PlayHapticEffect stops having an effect if a short one is triggered multiple times in a row. I suspect “short” is less than deltatime. Instead I would expect the haptic pulse to either work, or not at all.

Opening the Steam VR system menu and hovering over the buttons (which have haptic effects) re-enables haptics, but the issue re-occurs after about the same time.
PlaySteamVRHapticFeedback does not have this issue, but it can reproduce the issue by calling it again later with an amplitude of 0; it will trigger the haptics a couple of times, until it stops. Just like with PlayHapticEffect.

The TriggerHapticVibrationAction function used with SteamVR has a duration parameter, which unreal fills with delta-time, so it can update the data next frame. For short pulses this next frame has an amplitude of 0. I think in the case of SteamVR unreal should skip that closing call to TriggerHapticVibrationAction.

Neither Unreal documentation, nor SteamVR Documentation notes any limitation like this, though the duration setting does imply usage, which leads me to believe this is an issue on Unreal’s side.

Tested with:

  • Version: 4.26.1-0+++UE4+Release-4.26
  • SteamVR
  • Valve Index Controllers