Unreal Engine 4 Integration

| Published 2020-07-06

Unreal Engine 4 Integration - 18.0

These release notes describe changes to the Oculus Source Distribution for Unreal Engine available from the Oculus GitHub repository.

All versions of Unreal 4.10 and later include built-in support for Oculus Rift, including automatic stereoscopic rendering and tracking. Oculus Go support is included in Unreal 4.19 and later, and Oculus Quest support is included in version 4.22 or later.

For more information, see the Unreal Engine Developer Guide.

Oculus Source Distribution

The Oculus GitHub distribution of Unreal Engine source code includes the latest SDKs and provides the most recent features. Access requires a GitHub account subscribed to the private EpicGames/UnrealEngine repository (instructions here).

Note: To access the files on GitHub, you must be logged into a subscribed account, otherwise you will get a 404 error when accessing the following link.

New Features

  • Added an experimental feature for faster deployment: On mobile devices, you can shorten the deploy cycle by enabling Deploy compiled .so directly to device (Oculus) (bLaunchOnOculusDeploySo) setting if packaging for Oculus. For more information, see Reduce App Deploy Time. The following image shows the setting on the Launch menu.

  • Added a new build feature based on FASTBuild that uses distributed computers to reduce the compile time for Unreal Engine projects. For more information, see Improve App Compile Time.

  • Updated OVRPlugin to v18/1.50


  • Optimized the splash screen to display earlier in the loading cycle and work as expected.

  • Added an error that displays when Support Vulkan is checked in Android platform build settings and the Oculus target device is an Oculus Go.

  • For mobile, cleaned up XML tags in the manifest and fixed an issue with the focus-aware tag not being added for disabled situations.

  • Mobile : Saved ~100Mo (Vulkan), ~30Mo (OpenGL) of GPU RAM by removing a backbuffer allocation, merging MobileMultiviewSceneColor with SceneColor (same for depth), and not creating the non-MSAA shaderresource for depth buffers.

  • Mobile : Saved ~0.5s of startup time by enabling stereo on the first frame, initializing sRGB flag to true, and requiring MSAA to be set in project settings instead of auto-set. See the Quickstart for this setting.

  • For mobile, added MSAA to the list of performance widget checks. See Oculus Performance Settings for more information.

  • Correctly create foveation textures as multiview arrays.

  • Updated Oculus license for OVR_PlatformLoader.cpp.

  • Remove EngineAssociation from .uproject file.

  • When a specific map is built, the build process has changed to ignore additional maps. This prevents all packaged maps from being built when launching a specific map for testing unless a map is required as a dependency.

  • Updated to a new Oculus manifest tag for detecting if the engine should be in VR mode.

  • Added a third-person camera and sync support for camera pose time.

  • Removed the forced deploy when building an Android app.

  • Updated the Hand sample project to set the hand scale default to true.

  • For mobile, made the focus-aware setting for mobile default to true.

Bug Fixes

  • Provided a hotfix for 100% crash on app launch when Oculus Reverb was set as the current reverb plugin. The Oculus Reverb submix effect attempted to grab the current FAudioDevice before the current FAudioDevice was set.

  • For PC, fixed a build crash when shipping for PC - This involved removing the shortcut return in FSceneRenderTargets::AreShadingPathRenderTargetsAllocated(), and some warnings about initializer orders.

  • Fixed an issue where gradle was run when the APK was already up-to-date.

  • Fixed a race condition in FOculusAudioContextManager::GetOrCreateSerializationContext.

  • Fixed a deadlock issue in FSubmixEffectOculusReverbPlugin::OnProcessAudio on shutdown.

  • Update to correctly create textureArray instead of textures for non-MSAA cases.

Known Issues

  • If you are using the Oculus spatializer and try to create a new project or open an existing project with Unreal Engine 4.25, it may crash on opening.

  • The motion controller events do not work with Oculus devices in Unreal Engine 4.25. On 4.25, you must bind Oculus Touch events in their input mapping.

  • The Lipsync sample does not work with 4.25, and you should use an older version of Unreal Engine if you want to run this sample.

Additional Distributions

You can also obtain Unreal Engine as a binary from Unreal or from the GitHub repository for Epic Games. Note that these version of Unreal Engine contain older versions of the Oculus integration.

For more information on the differences between different Unreal options and how to access them, see the Version Compatibility Matrix in our Developer Guide.

Unreal Source Distribution

The standard Epic source distribution hosted on GitHub is typically about a month behind the Oculus branch in feature support. Access requires a GitHub account subscribed to the private EpicGames/UnrealEngine repository (instructions here).

Note: To access the files on GitHub, you must be logged into a subscribed account, otherwise you will get a 404 error when accessing the following link.

Unreal Engine Binary

For beginning or casual developers, we recommend the Unreal Engine binary available through Epic’s Launcher.