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

4.26 with a setup including the Index (with two Knuckles) and 3 Vive trackers set to Left Foot, Right Foot, and Waist within SteamVR controller settings. Points of note:

1runeberg opened this issue · comments

Hi Rune, I've been having the same issue in 4.26 with a setup including the Index (with two Knuckles) and 3 Vive trackers set to Left Foot, Right Foot, and Waist within SteamVR controller settings. Points of note:

  • Similar to OP, I can't create or edit bindings for the trackers consistently. When I can, I don't have Special1 or other actions to set, I see "right pose" or "left pose" selections. Editing Index Controller bindings is possible, though. However, one time was I able to see Special1/other actions but they don't show up anymore. Soo, I'm a bit befuddled.
  • Using the following tutorial as my template, I got 2 out of 3 trackers to work by adding more motion controllers to the original Event Graph. However, upon a restart, they stopped working in UE4 but the base stations and SteamVR continue to track them. My last resort was to reinstall Win10 with UE4 and Steam installed only and the same thing happened. They worked on the initial install then stopped working after subsequent (normal) system restarts.

https://www.youtube.com/watch?v=ehK6j6Es-ck

This post is about as close as I've got to finding someone with a similar issue. Please let me know if this is worthy of re-engaging!

Originally posted by @EMDO81 in #173 (comment)

Hi @EMDO81 - with 4.26, you need to use the new motion sources which correspond to the tracker roles that you've setup in SteamVR. The Specialx generic motion sources arent used anymore by the plugin.

Can you also try on a simple project (without the third party plugin)?

Yes, sorry, I came across the Specialx discontinuation shortly after (facepalm).

I created a simple project with a basic pawn, added motion controllers for knuckles and tracker (tracker_waist in UE4 to correspond to Waist setting in SteamVR). I can see the knuckles but not the trackers in UE4, SteamVR is picking up all.

Can you send UE log file over to me as well as a SteamVR system Report so I can review?

image

MyProject.log
SteamVR-2021-02-19-PM_12_47_39.txt

Sorry for the delay, I decided to reinstall everything again and start from scratch.

TrackerTest.zip

Thanks for that @EMDO81

The setup seems ok, though in your UE logs it seems the engine is not spawning the motioncontroller pawn, not sure if the pawn has things that are colliding with the environment. So you may not actually be possessing the correct pawn in-between editor sessions. You can quickly check this by alt-tabbing back to the World View in the UE Editor while in VR Preview and check if the correct pawn has been spawned and not a Default Pawn or Camera Actor.

One way to ensure your pawn always spawns is to setit to "Always Spawn":
image

Obviously figuring in your scene where it's colliding is a good thing to do as it may ultimately affect your gameplay.

Attached is a quick project I made from the Blank template to mimic your project settings with three tracker controllers. This works for me in-between editor sessions and PC restarts.

Thanks for the tip and pardon some of my novice-ness if it comes out as I'm about one month into UE4.

I set the Spawn parameter as suggested but no effect. I can move and see the two knuckles controllers for which I'm assuming is confirmation that the correct pawn was spawned...? For my project, it was a blank template and the pawn was the only thing created for testing the controller connections (I'm gearing myself towards virtual production rather than gaming). I did some more troubleshooting with another machine and tried UE4 4.25.4. Notable notes:

  • I can see everything working in UE4 4.25.4 on my original PC and can recreate that success on my second PC. I had to use the old Special1/2/3 bindings to correspond to UE4 Special1/2/3 selections which is logical.
  • I could not get it to work in UE4 4.26.1 on either PC. On one of the machines is that I managed to access the SteamVR Controller Bindings for one tracker. I saw that there was nothing assigned to "tracker-raw" which I set to to the Left Foot. However, I encountered the issue of not being able to create or edit bindings when I tried for the other trackers. Not sure if this is actually of interest but I put it out there. Ultimately, I couldn't get any of the trackers working in 4.26.
  • Using the TrackerTest project, it didn't work in 4.26 but I recreated the pawn in 4.25 and it worked
  • To clarify, knuckles controllers are moving and visible in 4.25 and 4.26 with no issues. It's the trackers that aren't working in 4.26.
  • Attached are 4.25 and 4.26 versions of my work (the NewBluePrint pawn is identical in both versions) and current system report

I'd like to verify the controller binding in SteamVR for the 4.26 project but I can't since I can't edit the default binding and can't create a binding. I'm okay using 4.25 (until I run into the next issue) and happy to take your lead on what to do with 4.26.

4.26 Project.zip
SteamVR-2021-02-21-PM_03_04_15.txt
4.25 Project.zip

What was your result on the bare minimum sample project I sent using SteamVR beta? You shouldnt need to create any pose bindings in 4.26 though, they're auto generated for all possible tracker config unlike in 4.25.

One thing to try on the sample project is to delete the Steamvr app manifest file in the config directory and the steamvrbindings folder and all files in it.

The project I sent you I've tested in a couple of my test machines I have handy using stock Unreal Engine 4.26.

For the "old bindings ui" - there is a known issue in 4.26 and latest version of SteamVR where tracker bindings can't be edited - but you shouldn't need to do this anyways in 4.26.

To workaround this though if you want to see the dashboard for confirmation, you can add an empty sources array in the json file, for example:

{

                "name": "Default bindings for Vive Tracker (Camera)",

                "controller_type": "vive_tracker_camera",

                "last_edited_by": "UnrealEngine",

                "bindings":

                {

                                "/actions/main":

                                {

                                                "poses": [

                                                                {

                                                                                "output": "/actions/main/in/tracker_camera",

                                                                                "path": "/user/camera/pose/raw",

                                                                                "requirement": "optional"

                                                                }

                                                ],

                                                "sources" : [{}]

                                }

                },

                "description": "Virtual Reality BP Game Template-14830424"

}

One other thing to note with 4.26, is that Epic didn’t integrate a workaround in our PR to make the tracker mesh visible (so you won't see any default mesh) as they want to make a more substantial change for it in a future version. The part of the XR architecture that’s supposed to handle the meshes still uses the old enum for motionsources instead of the new FName.

So devs will need to set a custom mesh in the motion controller component for the tracker to be visualized or attach a mesh as a child, similar to the sample I sent you (pyramid mesh)

Only other thing I can think of that's a normal cause as I can't repro your issues is there's a 3rd party plugin using steamvr input and interfering with ours. some plugins sometimes have issues even if they are deactivated, unless they are cleanly uninstalled.

Very much thanks, Rune.

I got the TrackerTest you sent me to work and I can see the pyramids associated with trackers bouncing around ( I won't get into why I couldn't get it to work on the initial try this morning - I'm embarrassed). I understand now - the trackers were there but because I cheated in my blueprint by relying on "Display Device Model" rather than assigning a mesh manually, I could not see it.

FWIW, I came with one question but figured out my original issue. I had a pawn which consisted of a skeletal mesh. The animation blueprint was where I was capturing motion and the trackers came alive once I understood that the enumerated device type for Vive Trackers is Other rather than Controller.

Much appreciated again!

No prob @EMDO81 Glad you got it all sorted.

It's unfortunate that current limitation didn't make the release notes and it's certainly not your fault. This is one of the reasons why I sent a test project with a custom mesh attached to the motion controller component.

Good luck with your Virt prod adventures!