UEVR (Universal Unreal Engine VR Mod)
repository·master·Indexed 26 days ago
https://github.com/praydog/uevrA Universal Unreal Engine VR Mod that enables full 6DOF and stereoscopic 3D support for games built on Unreal Engine 4 and 5. It allows users to play non-VR games in VR using an injection-based workflow and various rendering methods, including Native Stereo, Synchronized Sequential, and AFR. The project includes a frontend injector (UEVRInjector.exe), a Lua API via LuaVR, and integration with OpenVR and OpenXR runtimes.
What's inside UEVR
- OpenVR is an API and runtime that provides hardware-agnostic access to VR hardware from multiple vendors. This repository contains the SDK (API and samples), while the actual runtime is provided via SteamVR, which can be found under 'Tools' in the Steam library.
Configure compiler requirements for sol2
mastersol2 requires C++17 features. Ensure your compiler is configured with the appropriate standard flags (e.g.,
-std=c++17,-std=c++1z, or-std=c++2a).Supported Compilers:
- GCC 7.x.x+ (MinGW 7.x.x+)
- Clang 3.9.x+
- Visual Studio 2017 Community (Visual C++ 15.0)+
It is also compatible with Android (GCC) and iOS (Apple-clang) platforms.
Compile UEVR via VSCode
masterFollow these steps to use the CMake Tools extension in VSCode:
- Install the CMake Tools extension.
- Open the UEVR folder in VSCode.
- Press
Ctrl+Shift+Pand selectCMake: Configure. - When "Select a kit" appears, select
Visual Studio Community 2022 Release - amd64. - Select the desired build configuration (usually
ReleaseorRelWithDebInfo). - Compile by pressing
Ctrl+Shift+Pand selectingCMake: Buildor by pressingF7.
Create a single header for sol2
masterTo use sol2 as a single header, you can either download a pre-built single header from the releases tab or use the provided
single.pyscript to generate one from the current source.To generate it via script:
python3 single.pyInstall and Setup UEVR
masterTo use UEVR, you must first install the .NET 6.0 SDK (x64 version for Windows). After installation, follow these steps to inject the mod into a game:
- Download the latest release from the Releases page.
- Launch
UEVRInjector.exe. - Launch your target game.
- Select the game from the process dropdown list in the injector.
- Select your desired runtime (OpenVR or OpenXR).
- Toggle existing VR plugin nullification if required by the game.
- Configure your pre-injection settings.
- Click Inject.
https://dotnet.microsoft.com/en-us/download/dotnet/6.0Use the UEVR In-Game Menu
masterAccess the in-game menu by pressing the Insert key on a keyboard or L3+R3 on an XInput-based controller. The menu opens by default at startup.
While the menu is open, you can use the following shortcuts by holding RT:
Shortcut Action RT + Left Stick Move the camera left/right/forward/back RT + Right Stick Move the camera up/down RT + B Reset camera offset RT + Y Recenter view RT + X Reset standing origin Integrate sol2 into C++ projects
mastersol2 is a header-only C++ library for binding to Lua (supporting Lua 5.1+ including LuaJIT). You can integrate it by including the header files directly. For the simplest setup, you can use a single-header version for drag-and-drop integration.
#include <sol/sol.hpp>Install and use UEVR
masterTo use UEVR, extract
UEVR.zipto a folder of your choice and follow these steps:- Launch the frontend GUI (
UEVRInjector.exe). - Launch the target game.
- Select the game from the process dropdown list in the GUI.
- Select your desired runtime (OpenVR or OpenXR).
- Toggle existing VR plugin nullification if required by the game.
- Configure your pre-injection settings.
- Click Inject.
- Launch the frontend GUI (
Prepare your game for UEVR injection
masterTo ensure stability and visibility during injection, perform the following tasks before launching the injector:
- Disable HDR: HDR can cause the game to appear darker than usual when using UEVR.
- Run as Administrator: If the game does not appear in the
UEVRInjector.exeprocess list, restart the injector as an administrator. - Handle existing VR plugins: Pass
-nohmdto the game's command line arguments and/or manually delete any existing VR plugins from the game's directory. - Disable conflicting overlays: Turn off software like Rivatuner, ASUS software, Razer software, or Overwolf to prevent crashes.
- Disable specific graphical settings: Disable features like DLSS Frame Generation to avoid crashes.
- Windows Settings: Consider disabling
Hardware Accelerated GPU Schedulingin Windows Graphics settings.
Initialize UEVR submodules
masterAfter cloning, you must initialize the submodules (including the
UESDKsubmodule) to ensure all dependencies are present.git submodule update --init --recursiveCompile UEVR via Command Line
masterUse CMake to configure the build directory and then build theuevrtarget.Prerequisites for compiling UEVR
masterBefore compiling UEVR, ensure you meet the following requirements:
- EpicGames GitHub Access: You must have access to the EpicGames GitHub organization. This is required because the
UESDKsubmodule is a fork of theEpicGames/UnrealEnginerepository. - SSH Configuration: You must have an SSH key set up with your GitHub account and an SSH agent running to clone the
UESDKsubmodule. - Compiler: A C++23 compatible compiler is required. Visual Studio 2022 is recommended; other compilers (non-MSVC) are untested.
- Build Tools: CMake is required.
- EpicGames GitHub Access: You must have access to the EpicGames GitHub organization. This is required because the