ValveSoftware / steamvr_unreal_plugin

SteamVR Input Unreal Plugin - Documentation at: https://github.com/ValveSoftware/steamvr_unreal_plugin/wiki Sample project (UE4.15-4.23): https://github.com/ValveSoftware/steamvr_unreal_plugin/wiki/sample/SteamVRInputPlugin.zip Sample Project (UE.424+): https://github.com/ValveSoftware/steamvr_unreal_plugin/wiki/sample/SteamVRInputPlugin_UEIntegrated.7z

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Getting Trigger Event from Tracker Pogo Pin

PJninja opened this issue · comments

Hi all,
I am unable to get a trigger event from our tracker that has the 4th Pin power on a switch.
I am using UE4 4.23.1, SteamVR 1.12.5, and SteamVRInput Plugin 1.18.19

On UE4 4.25 binary I am able to get this event.

Also in SteamVR "Test controller" I can see the event thrown from Trigger and in Input Debugger on SteamVR I see the trigger setting to True.

In UE4 I added an Input called TriggerAction (visible in SteamVR Input Debugger and set to Tracker Held In Hand Left -> Trigger in SteamVR Input Binding). I have an BP Actor in my scene with an attached MotionController child MotionSource set to LEFT. I added the TriggerAction event to my BP leading to a PrintString. When I play and press trigger I get nothing. What am I missing here? I attached some screenshots to hopefully help. Also is it possible to get DeviceID or Serial Number from a TriggerPull of a Tracker to define which Tracker pulled the trigger and is it possible to have more than 2 trackers send an input? Thanks

EDIT: The last screenshot shows I set it to MotionController(L) Trigger -> I also tried HTC VIVE (L) Trigger varients
Capture
Capture2
Capture3
Capture4

Hi - sorry missed replying to this yesterday. There's no built-in support (as a key) for this in the Input plugin. You likely have the action triggered in 4.25 by another valid VR controller key? I suggest doing similar mappings for your 4.24 project and not use the deprecated MotionController abstraction.

I am doing the same thing in 4.25 and 4.23 just without an added MotionController component, but when I remove MotionController I still get no event called. I understand SteamVR is treating the Tracker pogo pin as a controller trigger pull, does that mean there is no way to get more then 2 tracker inputs?

In 4.25, you may have a specific XR controller mapped somehow as this is the only way to trigger actions. You cant leave the inputs empty.

Unfortunately our support for trackers in the UE plugin is limited for inputs, but we'll have a look at this for 4.26

In 4.25, you may have a specific XR controller mapped somehow as this is the only way to trigger actions. You cant leave the inputs empty.

Unfortunately our support for trackers in the UE plugin is limited for inputs, but we'll have a look at this for 4.26

You can't leave inputs empty in SteamVR bindings? I was unaware of this.
Do you know of any way to receive Tracker Pogo Event via SteamVR without it being "Held In Hand"? Either OpenVR integration or SteamVRInput?

In 4.25, you may have a specific XR controller mapped somehow as this is the only way to trigger actions. You cant leave the inputs empty.
Unfortunately our support for trackers in the UE plugin is limited for inputs, but we'll have a look at this for 4.26

You can't leave inputs empty in SteamVR bindings? I was unaware of this.
Do you know of any way to receive Tracker Pogo Event via SteamVR without it being "Held In Hand"? Either OpenVR integration or SteamVRInput?

Sorry I was referring to (empty) UE key-and-axis bindings and not the SteamVR Input Bindings :) The integrated version of the plugin in UE4.24 and above selects one key in the UE key-and-axis list and uses that to trigger actions. The Marketplace version on the other hand (UE4.15-4.23) auto-generates a temporary key and uses that to trigger actions, so I suspect this is how it has been working for you even though we havent really hooked up support for tracker inputs (other than poses) in Unreal.

Let me get back to you on your question re: openvr pogo pin inputs.

Hi @PJninja - talked to the dev that's more familiar with that part of the code in the runtime - currently not possible outside the handed mode.

there shouldnt be any technical reason/difficulty though not to be able to add inputs outside the handed roles. i'll have a look at adding them in the runtime, along with the task of supporting tracker inputs in the ue plugin - theres a couple of other priorities though at this time, so this may not be in at any time soon, so I wouldn't rely on it for any upcoming projects.

Thank you @1runeberg for looking into this. Is there anything I can do in the meantime? Are you able to provide a system map or guidelines on where/how to implement so I can take a stab at it? It's pretty important for an upcoming large project and I would like to try everything being crossing it off.

Hi @PJninja - you can try editing the profiles in your steamvr install:
{drive letter}:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\htc\resources\input\tracker

Have a look at the handed vs the nonhanded profiles>

Then in UE, look for how we're adding Cosmos keys in our plugin (and corresponding json entries we generate for it), you should add custom tracker keys as well so you can use those for the mapping in the UE4 side.

note your driver profile changes may be stomped during steamvr updates. and I cant guarantee simply changing these profiles will work though, as there could be some things we need to pipe in the runtime as well. but the profile changes and custom keys are the two major pieces needed to make the inputs work properly in ue.

I will get on this right away, thanks again for your help. I'll be on the lookout for future updates with Pogo Functionality.