HTC VIVE controller bindings for basic movement setup

I’m trying to bind axis ForwardVector/RightVector movement to my VIVE trackpad on touch

  • additional one for running when trackpad is pressed UP.

First of all, as said in Setting up SteamVR input system under,
I’ve already added the
vr.SteamVR.EnableVRInput=1 to [FONT=courier new]Engine/Config/ConsoleVariables.ini and it indeed started to recognize my controllers. Now to the point.

When I bind just one axis to my [FONT=courier new]MoveForward movement, it works just fine. I can move forward only. Here’s how it looks in my Input settings:
Now I want to be able to move backwards as well, so I add another binding:
Right now, no matter what I touch on my Y axis on my trackpad - I always go backwards. Analogous situation happens to [FONT=courier new]MoveRight bindings.

Code I’m using for this movement:

 void AVRCharacter::MoveForward(const float Value) {     AddMovementInput(PlayerCamera->GetForwardVector(), Value); } 

To sum up my questions:

  1. Why is this happening?
  2. Is this even a good way to bind axis? My goal is to make the scale dynamic, the further I touch the trackpad the faster the movement should be. As far as I know, I should be using the “Trackpad Y / Trackpad X” mappings, but they do not seem to work at all. Also, there is no “touch” options for them. Then I’d like to implement running by clicking North.

If this makes a difference, I’ve just updated all my SteamVR devices just to make sure. Also, I’m not using “normal” VIVE controllers but VIVE Pro. Don’t think it should differ in behavior but maybe I’m missing something?

I know this is really old, but in case you’re still wondering or anyone else sees this, I’ve had good luck using the ‘MotionController (R/L) Thumbstick Y/X’ bindings and the FaceButtons. Those all work fine for me. I have however had the trackpad detect upwards Y movement (touch, not press) as the opposite of what you’d expect, e.g, a negative value.