mmorselli Posted May 9, 2018 Share Posted May 9, 2018 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 More sharing options...
HackPerception Posted May 10, 2018 Share Posted May 10, 2018 , any thoughts on this? Link to comment Share on other sites More sharing options...
mmorselli Posted May 10, 2018 Author Share Posted May 10, 2018 I've done more tests, it lasts exactly two seconds, even with a very short pulse. In the video below I'm driving a solenoid, but with the hyperblaster is the same Link to comment Share on other sites More sharing options...
mmorselli Posted May 12, 2018 Author Share Posted May 12, 2018 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 More sharing options...
mmorselli Posted May 15, 2018 Author Share Posted May 15, 2018 , could the new SteamVR Input helps? https://steamcommunity.com/games/250820/announcements/detail/3809361199426010680 Link to comment Share on other sites More sharing options...
dario Posted July 30, 2018 Share Posted July 30, 2018 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 More sharing options...
mmorselli Posted July 30, 2018 Author Share Posted July 30, 2018 I haven't tried, but ironically the tracker should work better with this bug, because it interprets duration... as a duration, not as a force, so a limit to usDurationMicroSec should be a good workaround. Link to comment Share on other sites More sharing options...
dario Posted July 31, 2018 Share Posted July 31, 2018 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 More sharing options...
mmorselli Posted August 26, 2018 Author Share Posted August 26, 2018 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 More sharing options...
mmorselli Posted September 20, 2018 Author Share Posted September 20, 2018 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. Still outdated? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.