Splash Screens

We strongly recommend adding a loading splash screen to your Rift or mobile application. Loading splash screens are required by the Oculus Store.

A simple loading splash screen, e.g. presenting the user with a rotating texture, can be easily added to your game. You will need to specify a texture for display, either with a provided Blueprint or by using the Unreal Editor user interface. In both methods, the loading splash screen is drawn to a VR Compositor Layer, and is guaranteed to render consistently at the required minimum frame rate.

Note that a splash screen is different from a HUD that appears within a layer. A HUD can be displayed while the rest of your level is also displayed. A splash screen has a different purpose, and is displayed by itself on a black background.

A splash screen is intended to be used when your app is currently unable to render frames. This is generally because your app is loading or switching levels, or it is busy doing other things.

Splash screen is equivalent to a “loading screen” or a “loading icon”.

Initial Splash Screen – Don’t Use Blueprints

For the initial splash screen – which displays while the first level is loading – we strongly recommend using an auto-loading splash screen, created by using the Unreal Editor user interface. Do not rely on a Blueprints function to load the initial splash screen. The reason is, Blueprints functions cannot be used to display a splash screen until the the initial level is loaded sufficiently to begin processing (i.e. Event BeginPlay is fired). In fact, when the app is first loading, it is also necessary to load the entire engine and renderer. In the interim, the user will have a completely dark experience. This may even prevent your app from being accepted for publication on the Oculus Store.

There is no default loading splash screen.

Creating Splash Screens with the UE4 Editor

The UE4 Editor provides a mechansim for setting up an auto-loading splash screen.

Previous versions of the Oculus UE4 integration used a configuration file to setup an auto-loading splash screen. This method is no longer supported.

Previous versions of the Oculus UE4 integration used a splash screen implementation that was distinct from Epic’s splash screen system. This is no longer the case. The Oculus UE4 splash screen solution works in conjunction with the Epic splash screen system.

Note: An auto-loading splash screen created in the UE4 Editor will not appear when you preview the app from within the UE4 Editor. This is because the initial layer is already loaded when the app is started.

  1. Select Edit > Project Settings. Scroll down to Plugins, and select OculusVR. The Splash Screens section appears:

    The Auto Enabled checkbox enables/disables splash screen auto-loading. When auto-loading is enabled, the splash screen(s) will automatically be loaded whenever the user transitions from one level to another. When auto-loading is disabled, the splash screen(s) are never automatically loaded.

    You can add multiple splash screens by calling Add Loading Splash Screen. If you enable splash screen auto-loading, all of the splash screens that you have added will be auto-loaded whenever the user transitions from one level to another. Thus, you can think of the individual splash screens as components of the actual splash screen that will be visible to the user.

    For more information, see Add Loading Splash Screen. When you check the Auto Enabled checkbox, it will enable/disable the auto-loading of all splash screens that have previously been added.

  2. Add an element under Splash Descs by clicking on ‘+’:
  3. Expand the new Splash Desc:
  4. Select a Texture Path, in this case a custom-made image that resides on the local hard drive:
  5. Fill in the desired transform values to transform the center of the splash screen’s quad, in meters. The following are the default values:
  6. Fill in the desired quad size values, for the quad that will hold the splash screen. The following are the default values:
  7. If you want the splash screen to rotate, enter the delta rotation values that will be added for each rendering frame (i.e. at half of the full VSync rate):
  8. If you want to place the texture at an offset from the top left corner of the splash screen, enter the offset values in meters:
  9. If you want to scale the texture, enter the scale values as floating point multiples of the actual size:
  10. Specify whether or not the splash layer uses its alpha channel. By default, the alpha channel is used:

Creating Splash Screens with Blueprints

To display splash screens, use the Oculus-specific Blueprints function Add Loading Splash Screen followed by the UE4-standard Show Splash Screen function. The following examples show how this process works.

Displaying and Hiding an Oculus Splash Screen

In the sample below, a splash screen is displayed for 3 seconds, and then hidden. Assuming the level is loaded, it will be displayed as soon as the splash screen is hidden:

In the above example, The Oculus-specific Blueprints function Add Loading Splash Screen is used. It provides a number of features that you can use to give the splash screen more interesting.

The splash screen is hidden by using the UE4-standard Hide Splash Screen Blueprints function. Now consider how this compares with the Oculus-specific Clear Loading Splash Screen function:

The Clear Loading Splash Screens function doesn’t hide the splash screen. The Oculus-specific functions Add/Clear Loading Splash Screens add and remove the splash screens to and from memory. But clearing a splash screen from memory doesn’t stop showing the currently displayed copy of it.

However, if you attempt to show a splash screen after calling Clear Loading Splash Screens, the experience goes completely dark. This because there is no splash screen in memory to display:

Using Multiple Splash Screens for Cool Effects

One of the cool things you can do with the Oculus-specific Add/Clear Loading Splash Screen functions is to create multiple splash screen effects as desired, perhaps using varying position, scale, and rotational properties, along with multiple splash screen textures. To do this, simply uncheck Clear Before Add in the Add Loading Splash Screen function, and chain as many of these calls together as desired. Then, when you call the UE4-standard Show Splash Screen function, all of the splash screens you have loaded will be displayed: