Sunday, September 5, 2021
One of the greatest things about PC gaming in general is the freedom to play how you want to play, and one of the key points to that is custom controls. A lot of people don't take the time to look, but customising your controls can drastically improve your in-game performance and overall game enjoyment.
SteamVR is conceptually different to regular PC gaming in that when it comes to bindings, it is not the game's responsibility. Whereas you customise your pancake keybinds in-game, when it comes to SteamVR content, you do it through SteamVR itself, and not through the game. This applies not only to your native SteamVR games like Half Life Alyx, but also to anything you play through ReVive.
If you've had a look at the controller bindings interface, known as SteamVR Input, there's a good chance you've struggled to work with it. That's where this guide comes in - I'm going to walk you through the most useful bindings that I use, so that you can get more out of your VR experience, and we're going to go through things step-by-step.
The Sprint Binding
So, let's start with the Sprint binding. This applies to all controllers.
In VR, we have a carry-over from console gaming, and that is the click-the-stick-to-sprint binding. In my opinion, this is not a great binding, and has never felt particularly intuitive. Additionally, clicking your sticks will accelerate their degradation, and is something you generally want to avoid.
What I like to do is have my analog stick move me around as usual. As you push the stick further and further, increasing its deflection, you want to move faster and faster; and then at the very end, start sprinting. This is suitable for games where you are primarily sprinting.
For this example, I will am using The Walking Dead: Saints and Sinners.
Open the SteamVR overlay - To do this, click either System button on a native SteamVR controller. For Oculus Touch controllers, the System button on the Left controller should work. For other controllers, I'm not sure.
From here, click the Settings cog to the right side of the Dashboard, and then the Controllers tab, Manage Controller Bindings, Custom, and Edit this binding. This is how we edit bindings for any game.
We need to add a Button item to our Left Thumbstick. We do this by clicking the + icon in the top-right corner of the Left Thumbstick, and then by selecting a Button.
From here, we click onto the Click action, and select sprinttoggle. We then click the Settings cog to the bottom-right corner of our Button, and set it to Generate Click From: Position, and set the activation threshold to 95. Now when the stick moves 95% toward its outer limit, this Click action will activate, and we will sprint.
Now close the overlay the same way you opened it, push your stick all the way forwards, and you will sprint immediately.
This is great for games where you sprint a lot - however in Saints and Sinners, we have a stamina bar, so will be spending most of our time walking. For these types of games, it's helpful to be able to push the thumbstick all the way forwards without sprinting; instead, we can require a "double click" of this action to sprint. This is easy to set up.
Return to the bindings screen, and where we added a Button with a Click action; click on the pencil icon, click More Options, and now you will see the Double Press option. Click into this and bind it to sprinttoggle. For the single click action, click into it and bind it to None, which removes the binding. Now return to the game.
We can now move the stick all the way forwards without sprinting, but if we move the stick all the way forwards two times in a short period, we will now sprint.
This one is Index-specific. One of the strong points about the Index controllers is the ability to naturally grab and release things - there's no button involved, so it feels great, so long as the game has been set up appropriately. In my opinion, many games get it wrong - but games like Boneworks and Into the Radius, they do a good job. For a lot of other games, I recommend some tweaks.
The main issue I encounter is unsuitable thresholds for grabbing and releasing. The Index controllers have many capacitive sensors along the handles - to grab something, there is an activation threshold where some percentage of these sensors have been activated. When you wrap your fingers fully around the controller, the capacitive sensors are effectively at 100%.
In addition to the capacitive sensors, there is a force sensor on the handle, which works as a second grab stage. Once you are fully gripping the handle, you can enter this second stage by squeezing the controller with some force. Some games require an amount of force prior to grabbing, as we see in Saints and Sinners.
If we look at the bindings, and look at the Grip, we can see that a Grab binding is attached. Click the pencil icon, then the settings cog, to reveal the thresholds. We can see that force is required for grabbing. As described above, it's a two-stage system. We have the capacitive stage in blue, and the force stage in orange. Drag the activation slider back to the blue region - I use 100%. Drag the release slider down to a low value - I am using 10%.
Now if we go back in game, you will be able to pick things up simply by grabbing the controller handle, without requiring any force. As we selected a low release threshold, we can let go of the handle quite a bit before we actually drop the item. To drop sooner, or to help account for sweaty hands, we could increase the release threshold.
With this binding, it feels quite natural to throw things between two hands.
This one is for the Valve-designed controllers only - the Index Controllers and Vive Wands. This is because they uniquely feature dual-stage triggers, and this is very helpful when you want to make precise shots with a firearm.
If you have a regular trigger, such as the trigger on a Touch controller or a DualShock 4; you squeeze it gradually, and you keep squeezing it, and you never quite know when it will fire. Depending on the game, it could fire at the very end, or somewhere before then, but you cannot feel this point out. You cannot reliably hold the trigger on the very edge of firing. This can be problematic.
All of the Valve-designed controllers (even the Steam controller) feature dual-stage triggers. This means we have the same kind of trigger as on other controllers, but at the end of the trigger we hit a wall. We feel some resistance. We now know precisely where we are - we know that once we perform the final click, the weapon will fire. This is very helpful, particularly for lining up long-range shots in Into the Radius.
Into the Radius has great bindings out of the box, and actually makes use of the dual-stage triggers, but many games do not; Pavlov included. Fear not, as we can rectify that.
To fix this, we go into the bindings. In this game (Pavlov), TriggerRight is used to fire. By default, it is bound to a button. Change this to a Trigger, and the Click binding should remain as TriggerRight. With no further changes, we have fixed it.
Rather than firing at some random point as the game has configured it, it will now fire as the trigger clicks.
When using dual stage triggers, we pull the trigger, we know it won't fire at any point in the standard range, until you reach the very end. You can feel when you are at the very end, so you know you are on the edge of firing. You can line up your shot, pull the trigger to that point, and fire with confidence. At the very end, you just click in the trigger, and it fires.
The dual stage triggers are another great feature of the Valve-designed controllers.
Precision Shooting - Example 2
Here's an example for Boneworks, one of my favourites. It tracks the finger all the way as it approaches the trigger, but when I depress the trigger, it just fires at some point in the middle, like Pavlov does.
So, let's go to the bindings. What you need to do is figure out which Action is responsible for firing the weapon, so you have to experiment a bit. I've found that for Boneworks, it is TriggerPosition. So what I'm going to do is unbind that by replacing it with None.
If we go back in-game, the weapon no longer fires - and that's good, that means we have found what is responsible for firing.
Let's go back to the bindings, and add a second Trigger binding, and set the click to TriggerPosition, which we found to fire the weapon. If you have multiple trigger bindings, they function simultaneously - they do not write over each other.
Now when we pull the gun out, we can move the trigger all the way, and it won't fire until we click it in at the very end. This is also helpful for rapid firing the weapon, as we know exactly where the actuation point is.
The Ketchup Bottle
This guide is for the most useful bindings, but I want to throw this one out there as another example of things you can set up. This one applies only to Index controllers.
Cook-Out has ketchup and mustard squeezy bottles, and in-game, you grab them as expected and then pull the trigger to squeeze... but Index controllers can do better than that.
Rather than grab the item and then pull the trigger, what if we grab the item, and whilst holding it, simply squeeze the controller and have the sauce come out? It can be done.
First, find out which action is responsible for squeezing the bottle. We know the trigger click is what causes it, and we can see an aptly-named "squeeze" action bound to the trigger click.
Let's go to the Grip, add a new Grab binding, and set it to squeeze. In the Settings, set it to activate on 95 force, and release on 70 force. In the advanced settings, there are two similar force options, and I'm not sure on the difference between the two sets. To be safe, I set the advanced force options to match the basic ones.
Now if you go back in-game and pick up the ketchup, you can literally squeeze the controller handle to squirt out the ketchup, and this is much more fun.
Ever want to have a crouch button but the game doesn't support one? We can bind one ourselves, regardless of whether the game wants us to, and it will work in every single app that runs in SteamVR.
This is a great accessibility binding that applies to everyone, however it is most practical with Index controllers due to their additional binding surface. I use this all the time.
For this one, we will need some additional software - so go to Steam and download OVR Advanced Settings. It's free!
This tool supports space offsets, which we will use to implement a crouch button. We will press a button, and it will shift our playspace down vertically to simulate a crouch.
Open the Steam Overlay, click the Advanced Settings icon toward the left side of the dashboard, and click the Motion tab. We're going to use the Height Toggle. I use a value of 0.5, which will shift me down vertically by 0.5 meters. We can test this now by clicking the "On" checkbox. Use a value that gives you a suitable crouch, and then leave this box unchecked (not essential).
Once we have a suitable value, we need to bind it. Go back to the main Advanced Settings page, and click Bindings. This opens the bindings for the Advanced Settings app. Ensure the Motion tab is active, and now we can bind our crouch button. I put mine onto the North side of the Right touchpad. Do this by adding a DPAD to the Right touchpad. The default Mode should be Click, and you bind North to Height Toggle.
If you click into North and do not see Height Toggle as an option, ensure you are on the Motion tab.
When you close the overlay and click Right touchpad North, you will now crouch. Click it again to uncrouch, and repeat to your heart's desire. You can go back to the Height Toggle setting and change the offset at any time without having to rebind it.
Feel free to play about with your bindings - if you end up in an unplayable state, you can always go back to the page where you Edit the active config, and instead of Editing, just Activate the default config at the top, and you are back to square one.
The bindings interface is a great tool, however in my experience it locks up a lot. I will try to edit bindings and it won't open the interface, or changes won't apply, or it will say it is loading bindings but never get there... there are a bunch of issues with it. I find that these appear with use. If I'm an hour into a session, the bindings interface will not open for me, but any existing bindings will still function. In creating this guide, I had to restart SteamVR a lot, as the bindings interface was constantly failing. Restarting SteamVR always fixes it, temporarily.
If you can get it to work for long enough to make some changes, I hope it helps improve your VR experiences; and I hope this guide has given you some confidence in rebinding your controls.
If you've got anything to say, feel free to use the Contact form on this site, or leave a comment on the YouTube video.
Thanks for reading!