Some SteamVR games (most notable Valves own) have single actions instead of left/right hand specific actions in the SteamVR binding UI. These inputs have the ability to detect which hand fired them and keep track of multiple overlapping activations of the same input, for example having a single Grab action that lets you grab independently with both the left and right hand. This helps reduce clutter in the user facing binding interface, so it would be nice if it was supported in UE4.
From my experiments, there are a number of issues with implementing this in UE4. First, there is no runtime agnostic way of reading which hand or controller triggered the action, so there is no sure way of routing the input to the right logic. It’s possible to manually call the SteamVR Input API in OpenVR to find out the device, but that doesn’t work with other runtimes and it’s not integrated into the UE4 XR system.
Second, when an action is triggered, it can not detect other keys being pressed until the first key has been unpressed. This seems to be by design, so AFAIK the only way around it short of redesigning the action system, would be to separate the 1:1 mapping between XR inputs and UE4 actions.
Does anyone have any ideas on ways to get this working? This is not only relevant to SteamVR, but also to OpenXR if/when SteamVR or other runtimes starts supporting user bindings.