Closed MikemaFBS closed 2 years ago
I know the contrary is introduced in Quest version of VRChat. Does Rift(with SteamVR) version have the same mapping?
It is possibly difficult to solve the problem by fixing ALVR. Can you re-mapping those behaviors in SteamVR settings?
I'm preety sure it doesn't work like that on rift. Also the A button just doesn't work. I think it's because the game detects Quest controllers as Vive, because the pointer in game is on the handle instead of the quest/rift/rift S trigger. The gestures works with the sticks instead of the rest of the buttons (like in this video https://youtu.be/DZIaAHJRQzI). basically the input is the same as VRChat Quest version. I'm almost sure that the problem (and maybe every input problem in other games, are because the game detects that you're using a Vive controller instead of a Rift one.
You can try to play VRChat QUest version and see how the controls are, I can confirm that the input are the same as Rift. Maybe if you see how is in Quest, you can figure out how it works on Rift and maybe that can help you to fix input problems. But again, I think the problem is that VRChat detects that you're playing with Vive controllers (beacuse that is what the shows when you want grab some objects)
I have attempted remapping to no avail in Steam. They work as expected in Quest VR. For whatever reason it will not allow the joysticks to work without being pressed. I tried mapping the joystick touch to joystick click and that won't work.
I know. I think it's because the game recognizes the controllers as Vive controllers instead of Touch for Rift, Rift S or Quest. And you can't jump either, A button just doesn't work. @DigitalStyx918 @polygraphene
It looks like, barring a change of course from Oculus, for this to be successful we need a custom mapping tool. It seems all the buttons function in some capacity through various apps except for maybe the touch sensors, but SteamVR doesn't offer enough options to make use of them.
It seems like some sort of openVR tool could be made to allow the Quest Touch to function as touch at least in respect to buttons, triggers, and sticks with an app to correct the mapping. Not ideal, but at least it keeps it somewhat practical for most users. I don't know the odds of me self-teaching myself the necessary skills to pull this off in a timely manner, but I'm disappointed to see no hint of a discussion of a solution for this, only an acknowledgment of the limitation. @MikemaFBS @polygraphene
I don't even know about a solution as well. I'm just testing and if I find a bug or something that can be improved, I just report it to github. Let's see how Polygraphene fixes this problem, and if he doesn't, he is making a wonderful work anyways. He can be proud of what he archieved until now.
A solution should be possible. Three apps that I know of now make Quest and SteamVR possible. All of them stop at the controllers not binding correctly. Now we just need someone who knows what they are doing with OpenVR to make a binding fix as the buttons and joysticks clearly work and are read there is no reason they can't be made to function as intended on a touch. I'm not sure about all the capacitive touch sensors but the joystick responds to touch. If you move it without touching the top of the stick it does not gesture. If you put your thumb on it it gestures. Click to gesture and touch to move would be a much better setup, and most games using touch expect to touch to move not click.
The controllers track in SteamVR and all the buttons seem to register which means a solution is possible outside of Oculus. Whether any Dev can do it with Unity and openVR I don't know, but Steam could certainly create a solution with SteamVR on their end. They could call it a Quest touch, Alternative Touch, generic touch or something and simply have it as an option for Dev's to report their controllers as and Quest users may then desire to take their Steam library to Index when they are ready for the next level. Especially with Index available with even more buttons and sensors available, that should leave plenty available input options for fully mapping a touch to. It might even create a scheme that would be beneficial in getting developers to incorporate the Index controllers in their games.
I tried to change HMD model name (Prop_ModelNumber_String). But no luck.
I found the log file of VRChat in AppData\LocalLow\VRChat\vrchat
I will check detail of how VRChat detect touch controller.
2019.05.31 15:43:45 Log - AmplitudeWrapper initialized
2019.05.31 15:43:45 Log - LimitedConcurrencyLevelTaskScheduler created, threads: 1
2019.05.31 15:43:45 Log - LimitedConcurrencyLevelTaskScheduler created, threads: 1
2019.05.31 15:43:45 Log - VRC Analytics Initialized
2019.05.31 15:43:45 Log - OpenVR initialized!
2019.05.31 15:43:46 Log - [VRCFlowManagerVRC] waiting for UI Manager
2019.05.31 15:43:46 Log - InitVRSDK: OpenVR success! loadedDeviceName: 'OpenVR'
2019.05.31 15:43:46 Log - Connected to Oculus Tracker:OculusRift-001
2019.05.31 15:43:46 Log - Steam tracking system name: 'Oculus Tracker'
2019.05.31 15:43:47 Warning - The referenced script on this Behaviour (Game Object 'LoadingIcon') is missing!
2019.05.31 15:43:47 Warning - The referenced script on this Behaviour (Game Object 'Checkboxes') is missing!
2019.05.31 15:43:47 Warning - The referenced script on this Behaviour (Game Object 'BlueprintDetailsPopup') is missing!
2019.05.31 15:43:47 Warning - The referenced script on this Behaviour (Game Object 'Checkboxes') is missing!
2019.05.31 15:43:47 Warning - The referenced script on this Behaviour (Game Object 'Checkboxes') is missing!
2019.05.31 15:43:47 Log - [VRCFlowManagerVRC] showing disconnect reason
2019.05.31 15:43:47 Warning - OvrLipSync Awake: Queried SampleRate: 48000 BufferSize: 1024
2019.05.31 15:43:48 Log - STEAM Tracking System: Oculus Tracker
2019.05.31 15:43:48 Log - VRCInputProcessorVive: using vive controllers = True
2019.05.31 15:43:48 Log - STEAM Tracking System: Oculus Tracker
2019.05.31 15:43:48 Log - VRCInputProcessorViveAdvanced: using vive controllers = True
2019.05.31 15:43:48 Log - VRCInputProcessorTouch: using touch controller = False
VRChat seems to check Prop_TrackingSystemName_String. And it seems to expect lower case of "oculus". Now I get Oculus Quest like input bindings.
Awesome Polygraphene. Hopefully you are knocking on the door of the fix, but I did have success getting some better controller binding to work. It should be shared, but I'm not seeing it show up as shared yet,
It is named: "Shared binding from DigitalStyxDIY for using Oculus Quest with SteamVR VRchat."
Also I was able to confirm that the capacitive senors fully report touch as well as buttons and triggers all work with the lone exception of the Quest. It is definitely fixable.
VRChat seems to check Prop_TrackingSystemName_String. And it seems to expect lower case of "oculus". Now I get Oculus Quest like input bindings.
Could this be the key to other games with incorrect mappings, specifically Fallout 4VR?
@satyaloka93 Maybe. I implemented that fix on alpha5. Try it.
@polygraphene I just tried alpha5. You have done a very nice work! It needs to be improved but at least now the game detects my Quest touch as rift CV1 controllers and works very very nice. There's still some issues with the input, but not very bothering:
-The pointer is located on the handle instead of the tip of the index finger trigger, it needs to be like you did in SteamVR Home. That makes the hand, if you grab the controller as normal, to be always twisted. I need to grab the controller like a stick (just like Vive controller) to make the hand look normal. but at least the game recognizes my controller as a Rift touch, wich is wonderful.
-Related with ALVR software: It would be great, if it's possible, to configure the resolution as Quest native resolution (2880 x 1600, 1440 x 1600 per eye).
-I need to check a possible gesture issue related with the input, but I need to compare first with a Rift CV1 with a friend.
Wonderful work, in spite of actual issues, now VRChat is perfectly playable.
@polygraphene Edit: I tried VRChat on Rift CV1 and I can confirm the imput works perfectly fine. The input is just like the adaptation of VRChat Quest version so no worries about that.
Now about the pointer in game, let me show you with some screenshots:
That's how it looks with Quest on PC version with ALVR.
And that is how the pointer it's supposed to look like. That's the VRChat Quest version. If you can fix that, the game will be perfectly playable, but now it's wonderful to play, you just need to improve some ALVR software related issues like de decoding quality and native Quest resolution.
@polygraphene The controllers look ok, but their pitch has been off as if the game thought they were vive wands. I have not tested Alpha 5 yet myself, but I corrected this problem with Open Vr Input Emulator by adjusting the headset relative pitch by + 30 degrees I think.
I do know its possible to have a Quest touch launch in SteamVR with the correct pitch without manually adjusting in OpenVR Input Settings, but I'm not sure how that was done.
I look forward to testing this. I fixed the binding for the thumbsticks before the update but got no where on actual touch support while attempting to mimic a Vive controller. However I did confirm, using the Steamvr menu and the controls display that everything on the Quest controller definitely reports to steam including touch. That menu actually serves as a controls test as well.
BTW: Good work. Vrchat is a very popular game and a game where the Quest port is not and cannot be on par with PC version of the game. It is also a game where a little extra latency is not going to be a problem. With the controllers fixed this game may become the biggest reason people install ALVR and similar apps.
The Quest version of Vrchat works surprisingly well. It is a nice mobile option, but it will never satisfy as a replacement in full for PC access to the game. This app allows people who purchased a Quest by mistake for VRchat to basically get what they had hoped for and allows others who bought a Quest to upgrade their PC to play the game instead of needing both a PC and a PCVR headset.
For many other games and uses this capability on Quest is more of a novelty as the majority of people who own SteamVR games have at some point had a PCVR headset, but this looks very promising as a viable, regular use, solution for VRchat.
@DigitalStyx918 you're right. I fixed that problem with OpenVR Input Emulator, thank you!
You're welcome. I can say I know touch can work perfectly with VRchat through Quest and SteamVR now, but I know this on condition of keeping a secret. Default bindings, touch, correct angles, and everything can work with touch seen as touch
I don't know how it was done. I just tested it.
On Sat, Jun 1, 2019, 5:18 PM MikemaFBS notifications@github.com wrote:
@DigitalStyx918 https://github.com/DigitalStyx918 you're right. I fixed that problem with OpenVR Input Emulator, thank you!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/polygraphene/ALVR/issues/320?email_source=notifications&email_token=AMGPN44V4HDPYOEPUR55SX3PYLYTDA5CNFSM4HP47EH2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWXJSBY#issuecomment-497981703, or mute the thread https://github.com/notifications/unsubscribe-auth/AMGPN47HTMI5CYZC725FBS3PYLYTDANCNFSM4HP47EHQ .
@MikemaFBS For resolution: Native display resolution is meaningless for ALVR. See: #32
I have no idea about how to fix the origin and angle of pointer. Is it caused by the difference of the shape between CV1 and Quest/S?
@polygraphene The angle pointer is like Vive controller instead of Rift or Quest/S. The pointer actually is located in the place where the Vive pointer should be. It can be fixed with OpenVRInputEmulator like @DigitalStyx918 said.
Btw for some reason sometimes OpenVRInputEmulator doesn't let me make changes and I have to restart the server until it works. By doing that I realized that if I Open and close ALVR server many times. the game became so laggy I can't play. Maybe is caused because some kind of process or service that stays open even if I close the server?
Don't really know, but the thing is that if I open and close ALVR server a few times, my GPU ends exploding, maybe the server doesn't really close as it should.
@polygraphene I just tried VRChat and input is wrong again, maybe is due to the VRChat update. Any help? If this is goin to happen everytime the game updates, maybe you should tell us what to do everytime this happens (if it requires the same fix, and if it's not very difficult. I'm not a programmer)
Due to the update. A binding by me should help you move and jump for now.
On Thu, Jun 6, 2019, 3:09 PM MikemaFBS notifications@github.com wrote:
@polygraphene https://github.com/polygraphene I just tried VRChat and input is wrong again, maybe is due to the VRChat update. Any help?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/polygraphene/ALVR/issues/320?email_source=notifications&email_token=AMGPN42L5KQGDWATXVIZGMLPZFVHBA5CNFSM4HP47EH2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXEAMZQ#issuecomment-499648102, or mute the thread https://github.com/notifications/unsubscribe-auth/AMGPN47WUQWZ3PYPJ7V7JR3PZFVHBANCNFSM4HP47EHQ .
but what about the gestures?
They have to be fixed at the game level through ALVR or VRchat.
On Thu, Jun 6, 2019, 3:59 PM MikemaFBS notifications@github.com wrote:
but what about the gestures?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/polygraphene/ALVR/issues/320?email_source=notifications&email_token=AMGPN44BEDQHVZ4NQIZFBJDPZF3BXA5CNFSM4HP47EH2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXEETCI#issuecomment-499665289, or mute the thread https://github.com/notifications/unsubscribe-auth/AMGPN46YORG3MXYLSA53LVLPZF3BXANCNFSM4HP47EHQ .
how? that's the question. I think it will need to be fixed on each VRChat update you know...
I hope not. This update was specifically adding support for Index Controllers. Maybe they just cleaned up their code because what fixed it before was apparently defining it as an Oculus in all lower case or something.....
On Thu, Jun 6, 2019, 5:00 PM MikemaFBS notifications@github.com wrote:
how? that's the question. I think it will need to be fixed on each VRChat update you know...
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/polygraphene/ALVR/issues/320?email_source=notifications&email_token=AMGPN45YSMF5NLBYPRW3HR3PZGCHRA5CNFSM4HP47EH2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXEJFRA#issuecomment-499684036, or mute the thread https://github.com/notifications/unsubscribe-auth/AMGPN47T7DC5O2KUKZOSNILPZGCHRANCNFSM4HP47EHQ .
Any update on this issue? It worked fine before last VrChat update.
@nskolaris Indeed, It worked before that update. Let's see what Polygraphene can do about it.
@nskolaris Indeed, It worked before that update. Let's see what Polygraphene can do about it.
I got it somewhat working by running the Oculus Home version through ReVive. Only hand open and V gestures don't work, also it runs slightly worse than just steamvr.
2019.06.13 01:28:56 Log - STEAM Tracking System: oculus
2019.06.13 01:28:56 Log - STEAMVR HMD Model: Oculus Rift
2019.06.13 01:28:56 Log - VRCInputProcessorVive: can use vive controllers = True
2019.06.13 01:28:56 Log - STEAM Tracking System: oculus
2019.06.13 01:28:56 Log - STEAMVR HMD Model: Oculus Rift
2019.06.13 01:28:56 Log - VRCInputProcessorViveAdvanced: can use vive advanced controllers = True
2019.06.13 01:28:56 Log - STEAMVR Tracking System: oculus
2019.06.13 01:28:56 Log - STEAMVR HMD Model: Oculus Rift
2019.06.13 01:28:56 Log - VRCInputProcessorIndex: can use index controllers = True
2019.06.13 01:28:56 Log - STEAM Tracking System: oculus
2019.06.13 01:28:56 Log - STEAMVR HMD Model: Oculus Rift
2019.06.13 01:28:56 Log - VRCInputProcessorTouch: can use Oculus Touch controller = True
Controller detection method was largely changed on the update. I couldn't figure out how they distinguish controllers.
@polygraphene so there's no way to fix this issue?
@MikemaFBS I need information about how VRChat detect controllers.
If anyone has Oculus Rift or S, I want to see the output of vrcmd command when running SteamVR with Rift.
You can run vrcmd by opening command prompt and then put
"C:\Program Files (x86)\Steam\steamapps\common\SteamVR\bin\win64\vrcmd.exe"
.
@MikemaFBS I need information about how VRChat detect controllers.
If anyone has Oculus Rift or S, I want to see the output of vrcmd command when running SteamVR with Rift. You can run vrcmd by opening command prompt and then put
"C:\Program Files (x86)\Steam\steamapps\common\SteamVR\bin\win64\vrcmd.exe"
.
C:\Users\47>"C:\Program Files (x86)\Steam\steamapps\common\SteamVR\bin\win64\vrcmd.exe"
Device 0 - oculus.WMHD315N300QZE - Oculus Rift CV1 by Oculus driver 1.38.0 - HMD - generic_hmd
Hardware Revision: 14
D3DAdapterIndex: 0
RecommendedRenderTargetSize: width=1328, height=1584
Left Projection: left=-0.955764, right=0.710781, top=-1.103618, bottom=0.880347
Right Projection: left=-0.710781, right=0.955764, top=-1.103618, bottom=0.880347
Lens Center: (0.000000, 0.000000), (0.000000, 0.000000)
Tracking universe: 4
Device 1 - oculus.WMHD315N300QZE_Camera0 - Oculus Rift CV1 (Camera0) by Oculus - Tracking Reference - rift_camera
Hardware Revision: 14
FOV: 50, 35, 50, 35
Range: 0.4 to 2.5 meters
Device 2 - oculus.WMHD315N300QZE_Camera1 - Oculus Rift CV1 (Camera1) by Oculus - Tracking Reference - rift_camera
Hardware Revision: 14
FOV: 50, 35, 50, 35
Range: 0.4 to 2.5 meters
Device 3 - oculus.WMHD315N300QZE_Camera2 - Oculus Rift CV1 (Camera2) by Oculus - Tracking Reference - rift_camera
Hardware Revision: 14
FOV: 50, 35, 50, 35
Range: 0.4 to 2.5 meters
Device 4 - oculus.WMHD315N300QZE_Controller_Left - Oculus Rift CV1 (Left Controller) by Oculus - Controller - oculus_cv1_controller_left
Hardware Revision: 14
No supported buttons
Axis 0 is a k_eControllerAxis_Joystick
Axis 1 is a k_eControllerAxis_Trigger
Axis 2 is a k_eControllerAxis_Trigger
Device 5 - oculus.WMHD315N300QZE_Controller_Right - Oculus Rift CV1 (Right Controller) by Oculus - Controller - oculus_cv1_controller_right
Hardware Revision: 14
No supported buttons
Axis 0 is a k_eControllerAxis_Joystick
Axis 1 is a k_eControllerAxis_Trigger
Axis 2 is a k_eControllerAxis_Trigger
Driver VirtualDesktop : 0 displays
Driver alvr_server : 0 displays
Driver gamepad : 0 displays
Driver htc : 0 displays
Driver indexcontroller : 0 displays
Driver indexhmd : 0 displays
Driver lighthouse : 0 displays
Driver oculus : 0 displays
Driver oculus_legacy : 0 displays
Driver null : 0 displays
Hope this helps!
Thank you! I tried to fake these values as your result, but no luck.
Can you help me a little more?
log file of vrchat is in C:\Users\(username)\AppData\LocalLow\VRChat\vrchat
.
Please tell me if you can see following lines in the log and tell me whether the line VRCInputProcessorVive: can use vive controllers =
shows True or False.
2019.06.13 01:28:56 Log - STEAMVR HMD Model: Oculus Rift
2019.06.13 01:28:56 Log - VRCInputProcessorVive: can use vive controllers = True
2019.06.13 01:28:56 Log - STEAM Tracking System: oculus
2019.06.13 01:28:56 Log - STEAMVR HMD Model: Oculus Rift
2019.06.13 01:28:56 Log - VRCInputProcessorViveAdvanced: can use vive advanced controllers = True
2019.06.13 01:28:56 Log - STEAMVR Tracking System: oculus
2019.06.13 01:28:56 Log - STEAMVR HMD Model: Oculus Rift
2019.06.13 01:28:56 Log - VRCInputProcessorIndex: can use index controllers = True
2019.06.13 01:28:56 Log - STEAM Tracking System: oculus
2019.06.13 01:28:56 Log - STEAMVR HMD Model: Oculus Rift
2019.06.13 01:28:56 Log - VRCInputProcessorTouch: can use Oculus Touch controller = True
2019.06.15 23:14:03 Log - Connected to oculus: XXXXX
2019.06.15 23:14:03 Log - Steam tracking system name: 'oculus'
2019.06.15 23:14:04 Log - [VRCFlowManagerVRC] showing disconnect reason
2019.06.15 23:14:05 Log - STEAM Tracking System: oculus
2019.06.15 23:14:05 Log - STEAMVR HMD Model: Oculus Rift CV1
2019.06.15 23:14:05 Log - VRCInputProcessorVive: can use vive controllers = True
2019.06.15 23:14:05 Log - STEAM Tracking System: oculus
2019.06.15 23:14:05 Log - STEAMVR HMD Model: Oculus Rift CV1
2019.06.15 23:14:05 Log - VRCInputProcessorViveAdvanced: can use vive advanced controllers = True
2019.06.15 23:14:05 Log - STEAMVR Tracking System: oculus
2019.06.15 23:14:05 Log - STEAMVR HMD Model: Oculus Rift CV1
2019.06.15 23:14:05 Log - VRCInputProcessorIndex: can use index controllers = True
2019.06.15 23:14:05 Log - STEAM Tracking System: oculus
2019.06.15 23:14:05 Log - STEAMVR HMD Model: Oculus Rift CV1
2019.06.15 23:14:05 Log - VRCInputProcessorTouch: can use Oculus Touch controller = True
Thank you! I finally found VRChat looks whether Prop_RegisteredDeviceType_String contains "oculus". Now I can move/rotate by touch instead of click. This patch will be included in next release.
Maybe hand gesture and facial expression are still broken.
Great! I hope hand gestures work since it's basically all that's missing now. Move/rotate can be fixed with steamvr bindings
are hand gestures fixed yet or can they not be fixed
It has been 3 months and no news. It's there a way to do so it detects the Quest as Rift S directly? Maybe through the drivers that installs with ALVR? Then I guess we wouldn't need to worry anymore but I guess that may be easier to say than to do.
If at least we could customize the controls to set spacebar on the stick then we could at least jump in VRC :(
Both sticks controls are wrong. If I move the stick, the avatar does gestures. If I press the stick and move it, I walk. They are inverted, it supposed to be on the contrary.