mm0zct / Oculus_Touch_Steam_Link

SteamVR driver to enable Oculus Touch controllers with other headsets
MIT License
62 stars 20 forks source link

vrchat breaks from controller model names in steamvr #4

Open theshibeisreal opened 2 years ago

theshibeisreal commented 2 years ago

so i noticed after vrchat changed to the ik 2.0 beta that using oculus touch link for trackers no longer works, i believe this is caused by the names of the left and right controllers, this shows the error that shows from the game insta crashing. the 3rd tracker (vr object) doesnt show. unknown (41) and it only shows 2 trackers rather than all 3 unknown (42) i believe a way to fix this would be by somehow spoofing all the controllers to register as (generic tracker) as stated by a vrc dev image it also makes blade and sorcery freak out as well, makes it so the trackers just dont work if you take the time to read and fix this it would be greatly appreciated, but i believe the vrc issue will be fixed by the devs in the future but im not sure

SKIZZOO commented 2 years ago

Hopefully there's a fix for this soon.

AuroraNemoia commented 2 years ago

Using run_as_trackers.bat should already be doing this. also, this is a VRChat bug and it affects a multitude of other devices and setups, this isn't on TouchLink to fix IMO.

mm0zct commented 2 years ago

Thanks for letting me know about the issue, hands are a bit full with a new puppy but if someone gives me a concrete thing that needs changed I can probably rebuild. You can try renaming the tracking space, but the controller objects names are not modifiable. If it's the controller model that needs changed I can probably do that? Maybe someone could experiment and let me know what works. Not a vr chat user myself

ReadieFur commented 2 years ago

Thanks for letting me know about the issue, hands are a bit full with a new puppy but if someone gives me a concrete thing that needs changed I can probably rebuild. You can try renaming the tracking space, but the controller objects names are not modifiable. If it's the controller model that needs changed I can probably do that? Maybe someone could experiment and let me know what works. Not a vr chat user myself

I gave something like that a go but I had no luck unfortunately. The cpp file was a bit difficult for me to read because of the mess but oh well xp,. I'm currently trying to rewrite up a cleaner version.

AuroraNemoia commented 2 years ago

Yea, @hyblocker and I were working on a fork of Aero's last night implementing the ability to turn on individual trackers.

While the fork was made and works, at this point we'll probably make a K2TrackingDevice plugin for Amethyst so that people can use it for trackers with the advanced features of Ame.

About the actual issue, it's when a device used in VRChat calibration has a TrackedDeviceClass that's not GenericTracker. The tracking space, model name and render model don't actually matter.

By the way, I noticed development is currently stretched across this original upstream version, readie's fork and OculusToSteamVR, aeroscripts' fork, hekky's and mine.

I think it might be a good idea to all get together to consolidate it all together. I think cv1 full body is sick. And also that being able to continue using the world's most GOATed VR controllers of all time with any headset is super sweet. But a lot of useful development efforts are repeated over and over and it feels like this app is a year behind in progress from where it could be.

I personally have a lot on my plate with Amethyst, but I'll be following along more closely from now on.

ReadieFur commented 2 years ago

Yea, @hyblocker and I were working on a fork of Aero's last night implementing the ability to turn on individual trackers.

While the fork was made and works, at this point we'll probably make a K2TrackingDevice plugin for Amethyst so that people can use it for trackers with the advanced features of Ame.

About the actual issue, it's when a device used in VRChat calibration has a TrackedDeviceClass that's not GenericTracker. The tracking space, model name and render model don't actually matter.

By the way, I noticed development is currently stretched across this original upstream version, readie's fork and OculusToSteamVR, aeroscripts' fork, hekky's and mine.

I think it might be a good idea to all get together to consolidate it all together. I think cv1 full body is sick. And also that being able to continue using the world's most GOATed VR controllers of all time with any headset is super sweet. But a lot of useful development efforts are repeated over and over and it feels like this app is a year behind in progress from where it could be.

I personally have a lot on my plate with Amethyst, but I'll be following along more closely from now on.

I could be down for making a group project to make something pretty good. My cpp is weak but I can work my way around it. I had initially in my OculusToSteamVR plugin had ovr integrated to it but now im getting weird init errors so im working on some things around that at the moment. But yeah I could be down to try and work on this together.

mm0zct commented 2 years ago

If people tell me they are forking this or make pull requests I'd work to mainline the improvements. When you run "as trackers" this driver already acts as a Generic Tracker class device, so is there still an issue?

Sorry the code is a mess, it was a hacked together protect in the first place which has had a bunch of other feature requests bolted on, and a bunch of.hack-around oculus issues in very limited development windows. Very happy if anyone else wants to take on the project and help polish it up and improve it.

ReadieFur commented 2 years ago

Sorry, this isnt related to the issue but about making this a group project @mm0zct and @TripingPC, I'd be down to go ahead with that and if you have a way we can communicate, such as on Discord, id share my tag. Ive reweitten quit a good bit of this program but I do have some questions for you as I cant figure out how you got open space cal working with this, my inputs seem to all be reversed, that being rotated 180* and position too.

mm0zct commented 2 years ago

Sorry, this isnt related to the issue but about making this a group project @mm0zct and @TripingPC, I'd be down to go ahead with that and if you have a way we can communicate, such as on Discord, id share my tag. Ive reweitten quit a good bit of this program but I do have some questions for you as I cant figure out how you got open space cal working with this, my inputs seem to all be reversed, that being rotated 180* and position too.

Ping me on discord @ mm0zct#0533

DeltaNeverUsed commented 2 years ago

i figured out what was causing VRChat to crash on launch, i've just made a PR #6 that fixes it

mm0zct commented 2 years ago

i figured out what was causing VRChat to crash on launch, i've just made a PR #6 that fixes it

Thank you! Looks like vrc are doing some bollocks with the serial numbers, I've just auto merged your pr for now to unblock users

DeltaNeverUsed commented 2 years ago

the vrchat devs have been made aware of it, and are going to look into fixing it but it's low priority at the moment

DeltaNeverUsed commented 2 years ago

Oh, and just as a side note I believe the Failed to get render model name for tracked object None is unrelated to this, and is in fact your controllers, not the "trackers"

AuroraNemoia commented 2 years ago

The commit also includes a ton of code styling changes (e.g. spaces to tabs, removing some alignments), user-specific files and folders that should've been gitignored and the built debug files. If anyone had other useful changes, they now have to adapt them to this huge change by hand.

As well, changing the controller serials to LHR-XXXXXX is not a good thing at all. @cnlohr from Valve asked me to tell everyone that they should use their own tracking space and controller/tracker serials. OpenVR APIs will take care of making them work with everything despite their names. And it makes everything easier to handle.

For example, I have all of these image in my vrsettings and they all work in VRChat.

DeltaNeverUsed commented 2 years ago

all the styling changes weren't intentional, and i only noticed they even happened after i made the PR and thanks for the letting me know that other at least similar serials should work

i'm gonna fix all these issues (as well as reverting the styling) on my fork and make another PR tomorrow

mm0zct commented 2 years ago

Yeah I saw all the formatting changes and crap, I just wanted to unblock the users, and clear up later. If I have time I'll back it out and redo it properly, but I can't really use my pc at the moment so this was the easiest option for now. The mobile github app just has an automerge button I could click.

mm0zct commented 2 years ago

FYI if anyone wants to be a maintainer for this just shout, I'll add you to the project. You can do whatever you like to fix it up etc. so long as you don't remove functionality :-)

DeltaNeverUsed commented 2 years ago

@TripingPC i have reverted my accidental formatting changes, as well as changed the default tracking space and made a new PR #7

ReadieFur commented 2 years ago

I would also like to point out that the PR made above also seems to fix the devices for NeosVR. Prior to this update when I opened neos using this tool the left controller would never be picked up by the game, dont know how that got fixed, possibly in the naming of the devices but to anyone who plays neos and had that issue, this should hopefully fix that for you too.

mm0zct commented 2 years ago

Great to know, thanks. This driver used to work fine for NeosVR, I tested it for someone about a year ago so I guess they changed something, but glad it's sorted now :-)

I'll look at the other unrelated PR when I get my pc back to a desk since it needs merging with this one.

DeltaNeverUsed commented 2 years ago

i actually fixed this in my fork ages ago, the reason why neos didn't work with the left controller was because it used the same serial number as the third controller