VR Controller support is missing. Please add in addition to 3D mouse

When I first used the vr controllers in x plane I was blown away by the immersion. Reaching up in an airliner to the overhead panel and clicking and turning switches, reaching over to raise the gear or change the flap setting, I felt like I was actually sitting in the cockpit. No more fiddling with a mouse trying to get the right spot etc. I admit that using with a yoke was a bit clunky, banging into it when trying to reach some switches. I ended up ditching the yoke, joystick and throttle when flying airliners and only used rudder pedals. I only started using them again when I got msfs. I do miss vr controller support and hope one day to get it. Each to their own tho, I understand some prefer the mouse but I don’t see a problem with both options being implemented.

1 Like

I started my VR journey when X-Plane brought native VR support 3.5 years ago now. From the beginning they provided VR controller support and my first experience was with just the VR controllers.

Since the release of the Index controllers I have been using them with a physical yoke and rudder pedals with any headset I use.

My hope is for MSFS to provide me with that same choice that I currently have on X-Plane. Please don’t tell me what is best for me let me choose.

5 Likes

I bought FS2020 because of VR. But it turned out to be a joke so I want my money back.

1 Like

Not supported vr controls doesn’t make vr mode a joke.
It may not meet someone’s requirements, but for others it is pretty useable and even enjoyable.

@DarkNick1, I believe that it works for people enriching their MSFS experience with VR, but it is a joke for many people coming to MSFS from other VR games.

I am, too, waiting for full VR controllers support to purchase the game.

3 Likes

how is it not a joke when “doing VR right” took asobo 1 year, and you cant even use VR controllers. so it will take them another year to “do VR right again”, and implement controllers, and there will be another major issue with it, and it will take another year to “do it even better” and fix that

i have a problem with a MOUSE being implemented first in VR

@MrJewb Your claims are not right. VR was playable (with bit stuttering sometimes, in bigger cities ~20-25 fps, but still - nothing terrible) since it was released - I played since beginning of January. Now it is 8 months since launch and it is hugely improved. Didn’t you thought that maybe they are not hurrying up with VR controllers, because they are working to make it good? And btw. do you have any idea how software development process works? Having some resources / people available, having to make priorities? Complexity of software, different hardware, etc.? :slight_smile:

And mouse was implemented before VR, first MSFS “flat” was made and released. It had mouse in cockpit. So not much if any changes were needed to bring it to VR vs implementing VR controllers from scratch. :slight_smile:

All in all, nobody forces anyone to buy before all features buyer require are implemented :slight_smile: Creators didn’t lied claiming that something is already implemented, but it weren’t :slight_smile:

1 Like

Well you just made my point for me. Their definition of “doing VR right” is to take a 2D mouse and slap it into 3D with 3 lines of code. I bought the game to support the developers when they said they were going to implement VR and took them a year to “do it right”. I’m just pointing out that it wasn’t really done as right as it could’ve been. How on earth do you release “VR” without VR controllers? Is this a joke?

1 Like

I think the main benefit of adding VR controller support to this is that the sim can be run in a different room to where the computer is located - and not to replace a mouse or joystick, but because there is no mouse or joystick within reach. Obviously a joystick and mouse is better, but that presumes you can reach them, as for VR that uses airlink’s this allows VR to be done in any room of the house regardless of where ones computer is setup.

If you have a wireless headset, that is.

1 Like

What nearly all posts in this topic are about is:
→ controlling the switches, knobs, levers, etc… as if you’d action them directly with you hand.

I’ve no doubt some/many/nearly everyone? are wanting the VR controller to replace the need for physical controllers, allowing to “play” flightsim in the living room for example like you’d play HLA, but I believe the video in the 1st message of this topic is clearly showing the need has nothing to do whatsoever to that at all.

I’m upvoting the subject for ‘VR controller support’ more than a desire to ‘feel clicks of knobs’, for if hand controller support is added that is useful as well, but walking before running would be actually getting controller support which does not require mouse or joysticks. Consider the original post and mine as mutually exclusive in the context of voting for development and introduction seems… unnecessary?
I’d love it if they shipped haptic feedback gloves (so long as they are nomex flight gloves!) for the deep immersion but it’s a bit of an overreach I think.

2 Likes

Well according to the updated roadmap it seems we can finally expect to get VR controller support by sim update 7 so excited to fly this simulator with VR controllers as I find it disturbing to use a 3d mouse.

Yes indeed. Good news :slight_smile:

By the way, VR controller input mapping is in the game deliverables since at least v1.16.2.

The files are located in the app “Input” subfolder (not in the “Official” folder). For example:

HP_Mixed_Reality_Controller_Left.xml
<?xml version="1.0" encoding="utf-8"?>
<DefaulftInput Primary="1">
  <Version Num="1787" />
  <Device DeviceName="HP Mixed Reality Controller Left" GUID="43b7baed-76bb-4266-b745-be5671c8b073" ProductID="2706">
    <Axes>
      <Axis AxisName="X" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="Y" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="SliderX" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="SliderY" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="Z" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rX" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rY" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rZ" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
    </Axes>
    <Context ContextName="ALWAYS">
      <Action ActionName="KEY_VR_MENU" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="Y_CLICK">27</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_RESET_VIEW" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="X_CLICK">25</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_SELECT" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="TRIGGER_VALUE">24</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_SWITCH_PROXIMITY_RAYCAST" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="SQUEEZE_VALUE">9</KEY>
        </Primary>
      </Action>
    </Context>
  </Device>
</DefaulftInput>
HTC_Vive_Controller_Left.xml
<?xml version="1.0" encoding="utf-8"?>
<DefaulftInput Primary="1">
  <Version Num="1787" />
  <Device DeviceName="HTC Vive Controller Left" GUID="43b7baed-76bb-4266-b745-be5671c8b073" ProductID="2706">
    <Axes>
      <Axis AxisName="X" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="Y" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="SliderX" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="SliderY" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="Z" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rX" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rY" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rZ" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
    </Axes>
    <Context ContextName="ALWAYS">
      <Action ActionName="KEY_VR_DISPLAY_TOOLTIP" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="TRACKPAD_UP_CLICK">32</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_MENU" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="MENU_CLICK">5</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_RESET_VIEW" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="TRACKPAD_DOWN_CLICK">31</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_SELECT" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="TRIGGER_CLICK">22</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_SWITCH_PROXIMITY_RAYCAST" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="SQUEEZE_CLICK">7</KEY>
        </Primary>
      </Action>
    </Context>
  </Device>
</DefaulftInput>
Oculus_touch_Controller_Left.xml
<?xml version="1.0" encoding="utf-8"?>
<DefaulftInput Primary="1">
  <Version Num="1787" />
  <Device DeviceName="Oculus touch Controller Left" GUID="43b7baed-76bb-4266-b745-be5671c8b073" ProductID="2706">
    <Axes>
      <Axis AxisName="X" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="Y" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="SliderX" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="SliderY" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="Z" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rX" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rY" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rZ" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
    </Axes>
    <Context ContextName="ALWAYS">
      <Action ActionName="KEY_VR_RESET_VIEW" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="X_CLICK">25</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_SELECT" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="TRIGGER_VALUE">24</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_SWITCH_PROXIMITY_RAYCAST" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="SQUEEZE_VALUE">9</KEY>
        </Primary>
      </Action>
    </Context>
    <Context ContextName="MODE_PAUSE">
      <Action ActionName="KEY_PAUSE_TOGGLE" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="Y_CLICK">27</KEY>
        </Primary>
      </Action>
    </Context>
  </Device>
</DefaulftInput>
Valve_Index_Controller_Left.xml
<?xml version="1.0" encoding="utf-8"?>
<DefaulftInput Primary="1">
  <Version Num="1787" />
  <Device DeviceName="Valve Index Controller Left" GUID="43b7baed-76bb-4266-b745-be5671c8b073" ProductID="2706">
    <Axes>
      <Axis AxisName="X" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="Y" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="SliderX" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="SliderY" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="Z" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rX" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rY" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rZ" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
    </Axes>
    <Context ContextName="ALWAYS">
      <Action ActionName="KEY_VR_MENU" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="B_CLICK">2</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_RESET_VIEW" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="A_CLICK">0</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_SELECT" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="TRIGGER_CLICK">22</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_SWITCH_PROXIMITY_RAYCAST" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="SQUEEZE_FORCE">8</KEY>
        </Primary>
      </Action>
    </Context>
  </Device>
</DefaulftInput>
WMR_Controller_Left.xml
<?xml version="1.0" encoding="utf-8"?>
<DefaulftInput Primary="1">
  <Version Num="1787" />
  <Device DeviceName="WMR Controller Left" GUID="43b7baed-76bb-4266-b745-be5671c8b073" ProductID="2706">
    <Axes>
      <Axis AxisName="X" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="Y" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="SliderX" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="SliderY" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="Z" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rX" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rY" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
      <Axis AxisName="rZ" AxisSensitivy="0" AxisSensitivyMinus="0" AxisDeadZone="0" AxisOutDeadZone="0" AxisNeutral="0" AxisResponseRate="-1" />
    </Axes>
    <Context ContextName="ALWAYS">
      <Action ActionName="KEY_VR_DISPLAY_TOOLTIP" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="TRACKPAD_UP_CLICK">32</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_MENU" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="MENU_CLICK">5</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_RESET_VIEW" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="TRACKPAD_DOWN_CLICK">31</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_SELECT" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="TRIGGER_VALUE">24</KEY>
        </Primary>
      </Action>
      <Action ActionName="KEY_VR_SWITCH_PROXIMITY_RAYCAST" Flag="2" ValueEvent="0">
        <Primary>
          <KEY Information="SQUEEZE_CLICK">7</KEY>
        </Primary>
      </Action>
    </Context>
  </Device>
</DefaulftInput>

I’ll let you see the “right” variants!

I like the look of the “raycast” binding. That suggests similar to XP in terms of being able to “point” at the control you wish to manipulate.

Can anyone tell me (as I haven’t tried and don’t have a chance right now) - can you use the mouse to control the yoke by manual means? What I mean by that is not e.g. binding ailerons to mouse x-axis in the settings but by click-and-drag on the yoke when in the cockpit?

Please tell me there is hand tracking mention in the Oculus file :drooling_face:

Pimax headsets also have hand tracking so I hope they will consider this option as well. Perfect scenario for me is using a yoke and throttle along side using hand tracking for knobs and buttons in the flight deck.

It looks like the top post is due for another update. If what internet says is true, we should see hand tracking released mid-November!

1 Like