Half Life: Alyx Style Locomotion for Oculus Rift S and Quest Touch Controllers

I find the two VR Blueprint templates sorely lacking in any detail to help beginners out. I am wanting to achieve some simple and straightforward locomotion for the Oculus Touch controllers for use on both the Rift S and Quest. I’d love to employ the excellent locomotion found in Valve’s Half-Life: Alyx. The settings I found that work the best for me are Dual Controllers with Movement on Off hand. Movement is set to Continuous, and based on head orientation. The Left controller thumbstick controls forward/backwards and left/right movement. The Right controller thumbstick is set to snap rotate (45 degrees is the sweet spot for me) left and right - and here’s where it is very useful - pushing backwards on the thumbstick enables the teleport arrow. Both controllers working in tandem this way makes for extremely intuitive movement and locomotion.

Now, I would just like to setup something similar so that when I’m in VR Preview, I can use this exact same type of functionality when moving inside my scene on the Rift S. I would also like to enable this for when I deploy to the Quest.

I found this Thumbstick Locomotion tutorial useful: Unreal4 VRPawn Thumbstick Locomotion Tutorial - YouTube

I know need to learn how to set the Right thumbstick controller to snap rotation, while being able to travel in that direction VS having to awkwardly turn my head around and look behind me just to move in the desired location. Being totally new to Blueprints, i’m open to learning the correct way to do this, however, my artist brain starts to nod off quickly when i see a plethora of endless nodes.

It would be great if Epic could address this on the Learning portal by provided updated, step-by-step “How To” tutorials that cover this with specific headsets and controllers. Perhaps updating, or more preferably adding some new VR Blueprint templates would be a great help as well.

Any pointers to updated tutorials is greatly appreciated!

I have a very basic step-by-step tutorial for the VRExpansion plugin with locomotion and object gripping. Check it out here:
https://www.digital-messiah.com/blog

Have you looked at the VRExpansion plugin and its example project? This has the movement modes already built in. Take this as a start and look for the Character blueprint in there and modify the way the movement modes cycles through and defaults to get your preferred configuration when the level starts.

This plugin and example project is very well documented.

@Eanir @MaSe87 Thanks for the replies! I will check them both out.

I also found this Valve deep-dive video extremely informative and inspiring: Half-Life: Alyx - Locomotion Deep Dive - YouTube

Snap turning is not part of the VrExpansionPlugin, but can be hacked together this way: Imgur: The magic of the Internet

About getting the touch in the down area of the trackpad is built in and you can detect that yourself from the Thumbpad_Axis values and a threshold. I wasn’t able to quickly figure out how to add the built in ActionMappings to not interfere with the continuous axis event driving the dpad pressed part. Thats why I also had to add this DoOnce to do this simple button press logic that otherwise would be just hooked to the pressed event of an ActionMapping.

That is not true, PerformMoveAction_SnapTurn exists.

Snap turn just isn’t bound to anything in the example template is all. You can also pass in a delta and run it on tick or timer for smooth rotation.

https://vreue4.com/GeneratedDocs/VRE…_SnapTurn.html

Oh sorry about that! Thanks for clarification.

Here is a solution which i managed to get working for the VrExpansion Plugin. Thank you.