Using Motion Compensation with OVRMC and the YawVR tracker
As of today, motion compensation is possible in SteamVR using the OVRMC plugin. As far as I know, it seems to be the only existing solution available currently (except a proprietary solution for PiMax HMDs which I don't know much about). From summer 2022, a new solution is also being developped for OpenXR, a project logically named OXRMC.
WIth OVRMC, motion compensation is obtained by cancelling the movements incoming from a tracker source. There are three :
- A physical reference tracker, i.e. a Vive tracker or a hand controller that you firmly attach to your seat, preferably on the top of the headrest, place in good view from the lighthouse trackers. It is reported to work particularly well with lighthouse-based tracking, and is considered as the solution currently available. Theoretically it should work with inside-out tracking HMDs, in this case the controller must be attached in front of the HMD to remain visible, and some controllers go into sleep after short delay.
- A virtual tracker: currently there is only a FlyPT Mover tracker that can be connected, and also a new virtual tracker provided by SimRacing Studio that is probably not interesting for the YawVR users, so I put these virtual trackers aside in this post.
- The YawVR reference tracker: it is a tracker developed by Yaw allowing to get motion compensation directly from the seat, so without the need for an other physical tracker. This one is for now the best alternative you can have if you don't have a physical tracker. Being an owner of a Samsung Odyssey+ and later an HP Reverb G2, this is the solution I chose, and I am writing this post mainly based on my experience with this tracker.
Now let's get to the point: how to setup and use motion compensation with the YawVR tracker?
Hardware requirements: a SteamVR compatible HMD 😎, and a YawVR motion seat 😍. That's all.
- OVRMC installed in SteamVR
- YawVR Tracker driver installed in SteamVR
- Motion software: YawVR Game Engine, SimRacing Studio, FlyPT Mover or SimTools
From version 1.7, the YawVR Game Engine has a "Tracker" tab allowing to directly install OVRMC and place the YawVR Tracker. For me it didn't work because it placed the tracker at the wrong place (my SteamVR install isn't located in the C drive), so I had to move it manually to the right place. You can also follow the instructions and install OVRMC from here : https://ovrmc.dschadu.de/en/Download, but you still the tracker driver provided by YawVR if you don't use a physical tracker like a controller or a vive puck.
Enabling Motion compensation in games:
- Launch your favorite motion software:
- YawVR Game Manager: make sure you have ticked the check box "Write memory-mapped file for SteamVR" in the Tracker tab. The checkbox "6DOF Mode" works with the majority of the HMDs, you have to uncheck it if your HMD has no positional tracking (3DOF only).
- SimRacing Studio: under the YawVR configuration window (gear icon), make sure you have enabled the parameter "6DOF Mode MC" (last parameter in the list).
- SimTools: make sure that you have checked the box "Generate data for motion compensation" in the Interface Settings.
- Launch SteamVR
- Once in SteamVR :
- First verify that OVRMC is showing up in the dashboard (a gear button at the bottom line of the dashboard). To my experience, it regularly won't show, restarting SteamVR once or twice got it always back though. It happens also sometimes that OVRMC makes SteamVR crash, then it gets disabled by SteamVR and you have to re-enable it by going to the SteamVR parameters (available in the virtual dashboard and also on the desktop): under the section "start/stop" (not sure of the real labels, my SteamVR is not in English) you may see that some extensions have been blocked so you have to unblock them. You can also check in this section that you have enabled "VR Motion Compensation" as a startup overlay.
- Open the OVRMC overlay and select the "YawVR Tracker" as a tracker source for motion compensation. At this time, the checkbox "Enable motion compensation" must NOT be enabled.
- Launch your game.
- Once you are in your game (some game require that you are in your plane/car/ship and not only in the menu):
- Take place in your seat
- Recenter your seat (SimRacing Studio: "target" button if needed, normally the recenter is done earlier) (YawVR Game Engine: Recenter or use the config app) (SimTools: recenter button or use the config app).
- Enable motion (Start button on your motion software or config app).
- Without moving the seat, go back to the SteamVR overlay and click on the "reset position" button at the bottom right of the dashboard. This is an important step that you have to make each time.
- You should now see a tracker appearing right in front of your belly/stomach. This means that the YawVR tracker is actually receiving data and its center of rotation is correctly set. If not, don't go further and check the whole procedure again.
- Open the OVRMC overlay and check the box "Enable motion compensation".
- Return to your game and go!
Yes there is a number of steps, but once used to it, it takes seconds. And the tracker works really well. There is only one real issue left which is called "yaw drift": after a certain time (can be a minute or more, it depends on how much the seat moves) the yaw axis gets decentered. This is a hardware issue inherent to every imu, and which is almost impossible to overcome without an other external source of tracking. Yaw is working on a solution about this.
If you are not sure that the motion compensation is working, or is working poorly, I recommend testing it outside of a game, just in SteamVR's virtual space opening at launch:
- In YawVR Game Engine, go to the "xbox controller" plugin and start the plugin. If you don't have a gamepad install, the plugin will display an error. Let the error dialog box open! This is sufficient for the data to be sent to the tracker. Open your config app and use the "test mode" in the Diag tab to make the seat move. The virtual desktop must move along.
- In SRS, you can just use the "test mode" in the hardware setup. It provides motion compensation, so when you move the sliders the virtual desktop must move along
I hope that it will help you make the most of your seat.