New to the forums? Click here to read the "How To" Guide.

Developer? Click here to go to the Developer Forums.

Auto Oculus Touch v0.1.6 (Latest release 17 Nov 2019)

135

Comments

  • tacocatismtacocatism Posts: 2
    NerveGear
    Hey @kojack ! The work you're doing with Auto Oculus Touch is pretty awesome, keep it up! I built an experimental keyboard called TouchType:VR that lets you type with your controllers instead of needing to use the built in Dash keyboard (using AOT/AHK). You can access it at any time, your hands can send input independently, and you never need to set your controllers down! Hopefully this will allow for quicker typing than what you could get from the standard point and click built in dash keyboard. You can customize the character layout, and could possibly also use it to map touch input to use the touch controllers to play games as if you were using a keyboard/keybound controller (haven't tried that tho, and wasn't the primary focus for when I set out to create TouchType). Hopefully this will be useful for someone, and make typing in VR a little less of a challenge! 
  • kojackkojack Posts: 6,756 Volunteer Moderator
    Another version is out.
    v0.1.5 adds vJoy support, so you can send axis and button values from Touch/Remote to any game that understands DirectInput joysticks.
    Want to use Touch in flight sims that don't have Touch support? Shouldn't be a problem.

    At the moment it doesn't emulate xbox controllers fully, which means any game that uses XInput won't see the vJoy device. Only games that use DirectInput (and support things like hotas / wheels / non xbox gamepads) will work.
    I might be able to fix this later.

    I was hoping this would let the touch thumbsticks control doom's gamepad smooth turn, but it seems they might be using XInput. :(



    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • DarkTenkaDarkTenka Posts: 1,078
    Wintermute
    kojack said:
    Another version is out.
    v0.1.5 adds vJoy support, so you can send axis and button values from Touch/Remote to any game that understands DirectInput joysticks.
    Want to use Touch in flight sims that don't have Touch support? Shouldn't be a problem.

    At the moment it doesn't emulate xbox controllers fully, which means any game that uses XInput won't see the vJoy device. Only games that use DirectInput (and support things like hotas / wheels / non xbox gamepads) will work.
    I might be able to fix this later.

    I was hoping this would let the touch thumbsticks control doom's gamepad smooth turn, but it seems they might be using XInput. :(



    You can currently do this by binding 2 keys to turn_left and turn_right in doom's console (~) and then redirecting those inputs. Though getting control of the actual analog sticks would have been nice (probably would translate a lot better than the key-press).
  • kojackkojack Posts: 6,756 Volunteer Moderator
    Yep, that's what I was hoping for, analog turning.
    Then again, I couldn't get turning working at all with an xbox one controller. Movement was fine, but no turning, and that was supposed to work.

    But I don't have much experience with Doom VFR, I only bought it 2 days ago to test the latest Auto Oculus Touch. I'm really not impressed by it.
    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • DarkTenkaDarkTenka Posts: 1,078
    Wintermute
    edited September 2018
    kojack said:
    Yep, that's what I was hoping for, analog turning.
    Then again, I couldn't get turning working at all with an xbox one controller. Movement was fine, but no turning, and that was supposed to work.

    But I don't have much experience with Doom VFR, I only bought it 2 days ago to test the latest Auto Oculus Touch. I'm really not impressed by it.
    Smooth Turning on Gamepad is defaulted to off.. you need to find it in the options to turn it on.. AFTER turning on game-pad, despite the fact that you can interchange between the two mid-game (it's really wierdly set up).

    I'm fairly sure that development behind DVFR was a mess of disagreement, misunderstandings about VR gaming and general fear. There is evidence of many features not being implemented correctly .. if you examine the trailers there is evidence of features being cut (aparently at one point we had robot hands?).

    I personally enjoyed it once using your script to get smooth turning working ... if they just made it the same stock DooM 2016 and added proper controls the game would have been great. For whatever reason they decided it needed "interaction sequences" where you get a fire hydrant and put out a fire, find some part to fix a teleporter, move holograms around to activate wierd locks ... none of it was needed .. but someone over there must have thought "If we don't have this, it doesnt demonstrate VR" or something like that.

    Couple that with all of the general fears of VR "motion sickness" .. (no smooth locomotion on motion controls on launch, no smooth turning on motion controls ... still). But for some reason, all of those features were included for game-pad on launch!

    It almost feels like the guys that were working on the Game-pad version knew what it should have been and "snuck in" proper movement options while the guys working on Motion Controls were stuck fighting upper management or something. I can only imagine that half the development time was spent arguing over what to include in the game, which would explain why it released in such a messy state.

    Just my speculation. I do think there is a cool VR game in here .. but it's kinda "buried in the mess".
  • vash2695vash2695 Posts: 2
    NerveGear
    Just want to say that I love your work here!

    I got the idea to look for this when using the new dashboard desktop function. Using the touch as an air mouse in there is quite good, and I wanted to use the touch controller for this purpose outside of VR.

    I was wondering if it's possible to change the settings for this in a way that makes the motion sensing more like that air mouse (basically instantly responsive with minimal smoothing). My thought would be something like having the mouse respond based on current motion rather than absolute position, more like a laser pointer than a virtual joystick. The best comparison I could make would be like the pointer on newer LG tvs.
  • kojackkojack Posts: 6,756 Volunteer Moderator
    I have an LG OLED tv with that remote... I'll see what I can do. :)

    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • wanyferwanyfer Posts: 4
    NerveGear
    I've been using this for discord push-to-talk and its been working great but now I'm trying to use the mouse function with the thumbsticks in-game but I can't get it to work.. it moves the mouse when the game window isn't focused but not when it is... 
    I need this because I'm trying "Pulsar: Lost Colony" and their turn rate in the game is ridiculously slow and I'm trying to use this to tap in the mouse turn rate which is active while in-game but using the mouse and then swapping over to the touch is a pain but this doesn't seem to be able to move the mouse in-game 
  • kojackkojack Posts: 6,756 Volunteer Moderator
    There's a few different levels of access to reading mouse movements:
    - usb
    - hid
    - rawinput
    - directinput
    - windows
    Usb pipes into hid, which pipes into rawinput, which then is used by both directinput and windows mouse functions.
    AutoHotKey injects mouse movement (such as from your script) into the windows level only, which is at the top of the chain. But games can read from any level. Many do use the windows functions too, so they work, but there are advantages to dropping down to a lower level (rawinput and below give higher precision mouse movement and allow multiple mice at once, but they are harder to use than the windows level).

    Unfortunately there isn't an easy way that I know of to get AutoHotKey to inject rawinput or lower mouse events. There's a bunch of addons for AutoHotKey that let you read those lower levels, but not send them.

    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • stateofstaticstateofstatic Posts: 13
    NerveGear
    Is there a way to make the leftIndexTrigger run on a loop? So if I hold the trigger it will act as though I am pressing the trigger/releasing/pressing/releasing...
  • kojackkojack Posts: 6,756 Volunteer Moderator
    You can output keyboard/mouse/joystick events doing that (so holding a trigger does press/release looping of a key), but outputting touch events like a trigger press isn't possible using the method Auto Oculus Touch uses.

    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • m5677m5677 Posts: 4
    NerveGear
    See my post on https://forums.oculusvr.com/community/discussion/61660/doom-vfr-smooth-locomotion-patch if you'd like smooth turning on right controller for DOOM VFR.
  • MAC_MAN86MAC_MAN86 Posts: 2,262
    Wintermute
    Not sure this is actually possible but could we map Touch Controllers in EchoVR to actually be ANALOGUE thus gain smooth dynamic "Joystick" motion with ability to mix axis? Frankly I am gobsmacked they turned the Touch into a crap switching mechanic. They seriously thought users would not overcome sickness yet they obviously do!
  • kojackkojack Posts: 6,756 Volunteer Moderator
    I haven't tried echovr so I don't know what it exposes. If they support things like gamepads with analog then we could redirect to that (auto oculus touch can work with vjoy to emulate gamepads). But if they don't, there's nothing that can be done without hacking the game.

    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • XogueXogue Posts: 3
    NerveGear
    Just curious about your Oculus Injector. Working on a script for a program that doesnt provide an option to change a particular keybinding.

    It is a chat window with keyboard, but you select letters with a click of the right joystick. such a pain. wanted to switch it for another key on the touch.  if your injector is dead, can you think of a way (hacks/workarounds are acceptable) to do this?
  • kojackkojack Posts: 6,756 Volunteer Moderator
    I'm hoping to get back to the injector at some point (been busy with work and stuff). It could definitely swap a thumbstick button with another button.

    Reading touch buttons is pretty easy, but sending fake ones is a lot harder. I don't know any other way to do that at the moment besides inserting a bypass into the oculus runtime (what the injector does).

    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • XogueXogue Posts: 3
    NerveGear
    edited March 2019
    The entirety of my last post was just randomly deleted....  anyway, let me try this again...

    Thank for the response, and so quickly too. :wink:
    Life takes precedence, especially when our hobbies cant pay us. I understand.

    I do code, but I feel it would take a lot of work to understand this particular environment, and to learn the language necessary to create a tool for myself (Though I think you mentioned Lua, which I do have minimal experience in). To do all of that for such a small task. I think I will wait patiently for the professional.

    Thank you for the work you have put in so far, this library is very powerful and has allowed me to basically rewrite the controls for the game I am working with.

    EDIT: I am curious now though. Would it be possible to swap the headset motion/view with one of the controllers? I am thinking specifically for certain disabled persons. Can't bend over to look under a table? Press this keybind and your view will follow your controller.
  • kojackkojack Posts: 6,756 Volunteer Moderator
    Yep, the view swap thing would be fairly simple.

    There's a few use cases for people with various conditions that I want to support. One was a person on here a while ago that wanted to use Medium but only had one arm. I could make a toggle that lets one touch controller act as two.
    Or tilt the world and magnify rotations so somebody lying in bed can play as if they are standing up.

    Xogue said:

    I do code, but I feel it would take a lot of work to understand this particular environment, and to learn the language necessary to create a tool for myself (Though I think you mentioned Lua, which I do have minimal experience in). To do all of that for such a small task. I think I will wait patiently for the professional.
    The injector is two languages and several parts. There's a front end GUI system for configuring and launching, it's C++ using ImGui. There's a payload library that gets injected into games, it's C++ too. Then there's the scripts that control the game, that's Lua. The scripts can intercept various Oculus functions (like reading tracking, reading buttons) and modify the values then pass the modified results to the game. I'm using EasyHook (a C++ and C# library) to do the injecting stuff.

    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • XogueXogue Posts: 3
    NerveGear
    I may do a bit of research with those. I have done some C++ a few years back. (not much C# though), and i mentioned Lua. I wont be able to make anything with the scope of your project (unless I spend a very long time with it :P)

    but a patch job might be possible just for my purposes.  thanks ;)
  • kojackkojack Posts: 6,756 Volunteer Moderator
    Some potential bad news.
    The Rift-S has changed some behavior. It looks like it won't be possible for Rift-S users to get rotation tracking in Auto Oculus Touch when not wearing the headset.

    On the Rift, when the headset turns off, Touch tracking switches to 3DOF inertial tracking. This gives rotations, but no positions.
    On the Rift-S, when the headset turns off, Touch tracking is fully disabled, no position or rotation. Buttons/thumbsticks/capacitive sensors and triggers still work fine, but rotation is stopped.

    Tripping the proximity sensor in the headset allows it to continue tracking rotation, but that will result in screen burn-in after a while, so isn't a good idea.

    At least most of it works (I haven't tested all features yet), but if you rely of rotations when not in VR, that's not going to work on a Rift-S.

    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • TheBaymonsterTheBaymonster Posts: 3
    NerveGear
    edited July 2019
    EDIT: Has question, figured it out on my own. Can delete.
  • Mysterious2k9Mysterious2k9 Posts: 7
    NerveGear
    Is it possible for you to provide positional tracking information with this? I understand it'll only work with the headset on, but that is actually fine for my purposes.
  • kojackkojack Posts: 6,756 Volunteer Moderator
    I've been thinking of adding positions, but nobody's needed it so far. :)
    I'll chuck it in, maybe on the week end.

    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • Mysterious2k9Mysterious2k9 Posts: 7
    NerveGear
    That would be very kind of you :)

    I am planning to (foolishly) attempt to mimic steering with the touch controllers. Right now the only option for scripting something like that seems to be Unity, which may have better end results but I am totally overwhelmed by it currently lol
  • Mysterious2k9Mysterious2k9 Posts: 7
    NerveGear
    I decided to have a poke around in the source files you provided. Managed to use it as an example to write my own visual studio solution. It's all working and I have the positional data... yay!

    The plan with unity was to overlay visual cues so you could see what your hands were doing in-game (like ED Cockpit Master, for example). Do you think it would be possible to overlay stuff by rendering to the headset with the Oculus SDK?

    It's probably far beyond my capabilities but I am curious...
  • kojackkojack Posts: 6,756 Volunteer Moderator
    Possibly possible.
    If you want to do overlays, you could add another layer (the oculus sdk lets you have multiple overlapped layers of different resolutions). But to do that you need to intercept the Submit call made by the game to modify the layer data. That means you'll be doing injection of code into running programs, which is beyond what AutoOculusTouch can do (only one VR program can have render access, AutoOculusTouch is a debug mode program which only sees input).


    I have resumed work on Oculus Injector. Progress! (I'm procrastinating on vital stuff I REALLY should be doing, so its 5am and I'm VR coding instead)

    I'm changing it around a little. I'm still going to have user Lua scripts, but for now I'm focusing on smaller binary addons that can be injected with less performance hit.
    I've got two addons working at the moment:
    - Stop Vibration. It blocks all vibration on the Touch controllers. People have been asking about that for saving battery life, or just because it is annoying to them.
    - Playstation DualShock 4 Touch emulation. Mostly emulate a pair of Touch controllers using a DS4 controller. Buttons and triggers are mapped, thumbsticks work and I'm using the DS4 IMU to do pitch/roll tracking (maybe yaw soon, it's harder with an IMU)

    Here's a video. The first 23sec are normal Google Earth with Touch controllers. Then I run the Injector. From then on I'm purely using a DS4. The addon locks the Touch controllers to 30cm in front, 10cm either side and 10cm down from the front of your view.

    I should make a thread for this instead of hijacking AutoOculusTouch, but I'm still far from releasing this, and it might replace AOT in the future.


    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • kojackkojack Posts: 6,756 Volunteer Moderator
    edited November 2019
    Wow, it's been 14 months since my last release.

    v0.1.6 is now out. There's been some issues with vJoy. The latest vJoy installer uses a version (2.1.9) that is incompatible with the version of the vJoy sdk I built against (2.1.8), which makes all vJoy input fail. I've updated the libs.
    I've also built against Oculus SDK 1.41.

    I had a look at the stats in the Github API. Auto Oculus Touch binary releases have been downloaded a total of 5426 times!
    Version 0.1.3 was the most popular with 2019 downloads. Version 0.1.4 was the least popular at 69 downloads.
    Thanks everyone.

    (Maybe I should put the binary release on itch.io as a  "Name your price" download, I could have earned... umm... $5?)

    A new Oculus Monitor is on the way too (but not today).
    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • kojackkojack Posts: 6,756 Volunteer Moderator
    There might be a 0.1.7 soon. I read on a forum that AOT isn't working with Unity based games for mouse input.
    This is because Unity uses Raw Input, which AutoHotKey doesn't support.

    I've added some experimental functions to AOT that allow Raw Input mouse events to be sent manually. I've got mouse working in Unity now. But I want some more testing before releasing.
    I haven't tested yet if keyboard needs to be raw too.

    Author: Oculus Monitor,  Auto Oculus Touch,  Oculus Forum Tool,  Phantom Touch Remover,  Forum Dark Mode,  X-Plane Fixer
    Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
    Headsets: DK1, DK2, CV1, Rift-S, GearVR, Go, Quest
  • Toni318Toni318 Posts: 6
    NerveGear
    This look very cool, but i'cant figure how make it work.
    We need run a single of the six ahk include in the package then edit it with right click on the H icon in the taskbar or create a new script file from scratch and add it in the same folder?
    I need it for very basic tasks like right trigger > press A on keyboard, left trigger > press B key for exemple
    What would be the easier way to do this?
    Sorry if this is the wrong place to ask, i can open a new post.



  • Mysterious2k9Mysterious2k9 Posts: 7
    NerveGear
    Toni318 said:
    This look very cool, but i'cant figure how make it work.
    We need run a single of the six ahk include in the package then edit it with right click on the H icon in the taskbar or create a new script file from scratch and add it in the same folder?
    I need it for very basic tasks like right trigger > press A on keyboard, left trigger > press B key for exemple
    What would be the easier way to do this?
    Sorry if this is the wrong place to ask, i can open a new post.




    You need to create a new .ahk script, then copy auto_oculus_touch.ahk and auto_oculus_touch.dll into the same folder, and include auto_oculus_touch.ahk in your script.

    The other files are examples, read them to learn how to use it.

Sign In or Register to comment.