Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can we get optional depth+rotation when "Virtual VR Controllers" game interface is selected? #46

Closed
zerxen opened this issue Jul 5, 2023 · 14 comments

Comments

@zerxen
Copy link

zerxen commented Jul 5, 2023

I get the point that you would like only a pointer (e.g. headset-to-hand are the only two points on the vector). But since this is now the simplest to use guest2 hands-to-dcs option. Can you give us optionally a depth+rotation data to the virtual VR controller ?

Yes, this would then go towards VR controller emulation with hand, but honestly it is such a low hanging fruit and would definitelly help in both reaching switches in weird places and avoid accidental hits of cockipit switches. I would love to simply have a laser pointer comming out of my index finger or wrist instead of fixated to my eyes/hand vector. Can be optional checkbox next to the Oculus Touch VR controller.

PS: I am with you on the ring mouse buttons, but made quick/easy way by using a cheap aliexpres finger mounted bluetooth mouse with it's sensor cut-off, so getting an index finger laser pointer with 6DOF sounds like a dream come true

@fredemmott
Copy link
Owner

This is implemented, but not in the settings app because it's not actually useful. https://htcc.fredemmott.com/settings.html#handtrackingorientation

  • rotation: hugely reduces accuracy of pointing
  • depth: moving your hand near a cockpit switch triggers it, and AFAIK this can't be turned off. This is especially problematic with switches around the throttle: it's way too easy to accidentally turn off an A10C's fuel pumps when going to full throttle, or pull a fire extinguisher handle when pointing at the UFC
  • both/either: reduces immersion by creating an 'uncanny valley' effect with DCS's hand models: as it's controller emulation, DCS doesn't have the fingers rigged. Regardless of what your hand's doing, it's a pointing hand.

@fredemmott fredemmott closed this as not planned Won't fix, can't repro, duplicate, stale Jul 5, 2023
@fredemmott
Copy link
Owner

Those might be mitigated in the future by a variant of #44: magnetic pointing, but say a 1 inch "no touch zone" around every control

@fredemmott
Copy link
Owner

PS: I am with you on the ring mouse buttons, but made quick/easy way by using a cheap aliexpres finger mounted bluetooth mouse with it's sensor cut-off, so getting an index finger laser pointer with 6DOF sounds like a dream come true

If you've got a video/photos/instructions, I think there'd be quite a few interested people :)

@zerxen
Copy link
Author

zerxen commented Jul 6, 2023

PS: I am with you on the ring mouse buttons, but made quick/easy way by using a cheap aliexpres finger mounted bluetooth mouse with it's sensor cut-off, so getting an index finger laser pointer with 6DOF sounds like a dream come true

If you've got a video/photos/instructions, I think there'd be quite a few interested people :)

Ehm... getting a custom ring with mouse buttons is better. But if people just want to try this first on the cheap/easy then what I simply have is this thing, with movement sensor turned off, but for a quick experiment you can just duct tape the sensor.
Picture: https://m.media-amazon.com/images/I/61-H-bPXtbL._AC_SX466_.jpg
Amazon buy: https://www.amazon.com/Bestdo-Wireless-Optical-1600Dpi-Desktop/dp/B075CKYVDW/ref=sr_1_3?keywords=finger+mouse&qid=1688622415&sr=8-3

And in regarding all the negative things you mentioned, I agree, but all those would be fixed if we get ED to gives us option to disable the physical interaction of the hands and ONLY get hands interaction on mouse clicks from the laser pointer. Then this depth+rotation + a small mouse on finger becomes a go to thing.

@fredemmott
Copy link
Owner

all those would be fixed if we get ED to gives us option to disable the physical interaction of the hands and ONLY get hands i

I requested this a while back, without a response; I’ll be happy if it gets added, but surprised. It wouldn’t address the uncanny valley or accuracy issues though. The ideal would be for them to replace their leap motion support with direct support for openxr hand tracking (which also supports leap motion)

@zerxen
Copy link
Author

zerxen commented Jul 6, 2023

On that front, I am trying to get OpenXR guy to fix the OpenXR hand-tracking-TO-controller-emulation to work in DCS as it is broken at this moment and only works in MSFS. That would achieve something similar I am trying here :). And I know I like it because it works for me in MSFS. Funny enough OpenXR hand tracking works, but it's inputs are ignored by DCS, and HTCC doesn't track the way I want, but has a solid working DCS input .... unlucky me.
https://forum.dcs.world/topic/329865-openxrs-hand-tracking-and-controller-emulation-works-for-anyone/

@fredemmott
Copy link
Owner

I think you’re talking about OpenXR toolkit’s hand tracking support, which uses openxr’s hand tracking support, but isn’t the same thing. There is nothing game specific to change here in openxr.

@zerxen
Copy link
Author

zerxen commented Jul 6, 2023

I think you’re talking about OpenXR toolkit’s hand tracking support, which uses openxr’s hand tracking support, but isn’t the same thing. There is nothing game specific to change here in openxr.

Yes, but the OpenXR hand skeleton doesn't have an interface to the DCS's hand skeleton at the moment. So I cannot use OpenXR hands "as if" leap motion for example.

And the OpenXR's "universal" controller emulation which is supposed to fake to DCS that my hand is a controller and just translate gestures to controller button presses is broken right now.

So a no-go for DCS right now in both OpenXR directions.

@fredemmott
Copy link
Owner

fredemmott commented Jul 6, 2023

“Openxr hand tracking” is this specification: https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#XR_EXT_hand_tracking - which is implemented by various projects, including mbucchia’s toolkit. The ideal would be for DCS to directly implement this specification, not for some external project to change.

@fredemmott fredemmott reopened this Jul 6, 2023
@fredemmott
Copy link
Owner

fredemmott commented Jul 6, 2023

OpenXR does not provide a visual skeleton or controller emulation - OpenXR Toolkit does.

@zerxen
Copy link
Author

zerxen commented Jul 6, 2023

OpenXR does not provide a skeleton or controller emulation - OpenXR Toolkit does.

Which is the one broken right now as it's inputs are not registered by DCS and I am trying to ask mbucchia to fix in the ED forums I linked above.

“Openxr hand tracking” is this specification: https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#XR_EXT_hand_tracking - which is implemented by various projects, including mbucchia’s toolkit. The ideal would be for DCS to directly implement this specification, not for some external project to change.

Right, but we are in the "if only ED implemented XY" territory which burned me many time sin the last years. And I tried to find any project that would try to translate OpenXR skeleton to for example leap motions skeleton to fake to DCS that it is a leap motion interface. Didn't found anything like that for now. -> This project is the closes thing that is taking OpenXR hands and doing anything with them inside DCS as a virtual controller.

@zerxen
Copy link
Author

zerxen commented Jul 6, 2023

Well, tried starting a wishlist item, they ignored quest2 native hand-tracking two years ago when people asked for it (from oculus runtime). Hopefully OpenXR as more popular interface might get considered.
https://forum.dcs.world/topic/329971-openxr-hand-tracking-interface-as-input-to-dcs-eg-just-like-leap-motion-and-vrfreaa-and-other-have/
Now we wait the famous "2 to 3 weeks from now"

@fredemmott
Copy link
Owner

The leap motion implementation in DCS also isn’t great; I’m hoping if they ever look at openxr hand tracking they reconsider the interaction model too.

I’m not interested in emulating leap motion as DCS’s implementation is great for YouTube videos and immersion during a cold start with no time pressure, but also fairly common to accidentally hit or not hit controls and ends up pretty frustrating. Because of this, HTCC has a fair amount of ultra leap users too, as a replacement for DCS’s built in support.

HTCC 100% focuses on reliable control of the aircraft, and with DCSs current options, this is often directly opposed to feeling like your hands are actually there.

@zerxen
Copy link
Author

zerxen commented Jul 6, 2023

Yep, leap-motion physical hands pressing buttons accidentally was not a good decision on ED's part. That is why I am so often looping in this discussion the VTOL VR's way of handling the cockpit controls to go and try, as they are really, really ... really done right. I spent most of last year in VTOL VR's PvP multiplayer with fast interactions a must. I am starting all these conversations now because I really hit a pain wall comming back to DCS recently as VR pilot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants