Jump to content

Vive Tracker (Hyperblaster) haptic feedback is too long if used as Vive controller


mmorselli

Recommended Posts

The Hyperblaster haptic feedback works fine when used with a few (5) compatible games, such as Arizona Sunshine or The American Dream, but redirecting controller input to tracker via OpenVR Input Emulator, or using it as controller after role change (Vive Tracker Role Changer) any haptic events (typically a shot) last about 3 seconds instead of a few milliseconds as in the original controller. I tried to read the tracker  pin 1 (output)  directly and I can confirm that it remains high for about 3 seconds. Tested with two trackers (v1.0)

 

That's sad because it prevents using the hyperblaster or other guns in any games except for those 5

is there anything I can try to fix it?

 
Link to comment
Share on other sites

well, another night of testing and now I know what is the problem

 

The OpenVR function TriggerHapticPulse() acts  in a different way if sent to Vive Tracker or a Vive Controller

the third parameter (usDurationMicroSec) if sent to a tracker acts (almost) as you expect, the pulse lasts as many milliseconds as the indicated microseconds (sic!)

when sent to a controller, it acts as a pulse intensity, not a pulse duration, the pulse is always very short, a value of 50 is barely noticeable, a value of 2000 is quite strong. When a developer places a gun in a game he obviously wants robust feedback, so he sets >2000, which means "2 seconds" for the tracker

any hints to fix the problem?

Link to comment
Share on other sites

  • 2 months later...

Actually there are issues with the trackers and the new input system unless you correct the input device mapping (but there's a fall back version on SteamVR you can revert to from the Steam client).

 

As for the haptic method the original signature  https://github.com/ValveSoftware/openvr/wiki/IVRSystem::TriggerHapticPulse is ok but doesn't match the openvr_api.cs C# wrapper.

UnmanagedFunctionPointer(CallingConvention.StdCall)]internal delegate void _TriggerHapticPulse(uint unControllerDeviceIndex, uint unAxisId, char usDurationMicroSec);

 

the last argument should be ushort and not char (this primarily addresses the issue of not enough haptic strength since the range is limited but check if this also addresses your issues)

 

Note this was fixed a few days ago in OpenVR 1.0.16 but as per above, the latest SteamVR runtime is still at OpenVR 1.0.15 which still had the bad argument.

 

-Dario 

Link to comment
Share on other sites

Well like I said it's been fixed in a just updated OpenVR update (yet to be included in SteamVR or the Unity beta plugin).

 

But regarding "redirecting controller input to tracker via OpenVR Input Emulator, or using it as controller after role change (Vive Tracker Role Changer) "  please note that both of these can now be considered EOL due to the new button/role bindings in the new input system in SteamVR.

 

That being said, once you do map a hand role to a tracker (the bindings can be customized by the user via settings within the headset or at the desktop running SteamVR at http://127.0.0.1:8998/dashboard/controllerbinding.html ) then the class id will be changed from generic_tracker to controller according to the latest release notes for the latest release version of SteamVR.  Technically this would break existing apps that used the generic tracker class id for hand roles however it can now role change to identify as a controller (left/right or both) and allow any shooter game use a tracker with a Hyperblaster.  Moving forward, these SteamVR apps that broke should get updated and specify default action mappings. The beta SteamVR Unity plugin creates templates for you to edit if you need examples.

Link to comment
Share on other sites

  • 4 weeks later...


 wrote:

 

But regarding "
redirecting controller input to tracker via OpenVR Input Emulator, or using it as controller after role change (Vive Tracker Role Changer) 
"  please note that both of these can now be considered EOL due to the new button/role bindings in the new input system in SteamVR.

Since the SteamVR Input interface is not so clear, I would like to ask for some clarification.

With SteamVR Input, could I:

 

1 - redirect tracker to controller, so the game believes the tracker is the controller?

2 - change the tracker offset (x,y,z and yaw,roll,pitch) to match ingame weapons position?

3 - remap the tracker button (system) to trigger? 

Link to comment
Share on other sites

  • 4 weeks later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...