GearVR loading Splash screen no longer working in 4.16P1

I just tried the Epic 4.16P1 binary and the splash screen no longer shows

My DefaultEngine.ini config:

[Oculus.Splash.Settings]
bAutoEnabled=True
TexturePath=/Game/Textures/loadingScreen_gearvr.loadingScreen_gearvr
DistanceInMeters==(X=1.0, Y=0.0, Z=0.0)
SizeInMeters=(X=0.2, Y=0.2)

what I see in the log:

04-27 21:20:06.563: D/UE4(22846): [2017.04.27-19.20.06:580][  0]LogInit:Display: Starting Game.
04-27 21:20:06.563: D/UE4(22846): [2017.04.27-19.20.06:580][  0]LogNet: Browse: /Game/FirstPersonBP/Maps/GameMap?Name=Player
04-27 21:20:06.563: D/UE4(22846): [2017.04.27-19.20.06:580][  0]LogLoadingSplash: Loading begins
04-27 21:20:06.563: D/UE4(22846): [2017.04.27-19.20.06:581][  0]LogHMD: FGearVRSplash::Hide
04-27 21:20:06.563: D/UE4(22846): [2017.04.27-19.20.06:581][  0]LogLoadingSplash: Loading texture for splash /Game/Textures/loadingScreen_gearvr.loadingScreen_gearvr...
04-27 21:20:06.563: D/UE4(22846): LogStreaming:Error: Couldn't find file for package /Game/Textures/loadingScreen_gearvr requested by async loading code. NameToLoad: /Game/Textures/loadingScreen_gearvr
04-27 21:20:06.563: D/UE4(22846): [2017.04.27-19.20.06:581][  0]LogStreaming:Error: Couldn't find file for package /Game/Textures/loadingScreen_gearvr requested by async loading code. NameToLoad: /Game/Textures/loadingScreen_gearvr
04-27 21:20:06.563: D/UE4(22846): LogUObjectBase:Warning: NULL object
04-27 21:20:06.573: D/UE4(22846): [2017.04.27-19.20.06:583][  0]LogUObjectBase:Warning: NULL object
04-27 21:20:06.573: D/UE4(22846): LogUObjectBase:Warning: NULL object
04-27 21:20:06.573: D/UE4(22846): [2017.04.27-19.20.06:583][  0]LogUObjectBase:Warning: NULL object
04-27 21:20:06.663: D/UE4(22846): +++++++ PushBlack() ++++++, On RT! tid = 22902, final = 
04-27 21:20:06.673: D/UE4(22846): ------- PushBlackFinal() ------
04-27 21:20:06.673: D/UE4(22846): [2017.04.27-19.20.06:689][  0]LogHMD: FGearVRSplash::PushBlackFrame
04-27 21:20:06.673: D/UE4(22846): [2017.04.27-19.20.06:689][  0]LogHMD: FGearVRSplash::Show

It seems it can’t find the loadingscreen texture but it is definitely there. This worked in 4.15 and nothing was changed in my project.

Is this an Epic or Oculus issue?

The log is saying that it can’t find the file, which makes it unlikely to be oculus code. The filename loadingScreen_gearvr.loadingScreen_gearvr is unusual, where did that extension come from? I expect the extension to be .uasset. It is possible that the problem originated in cooking. Does the cook log contain any errors or warnings that seem relevant?

Hello aussieburger,

Thank you for reporting this issue. I was able to reproduce this issue on the 4.16 Preview and have put in a bug report due to that. You can find the bug report and track its progress here: UE-44520.

I’m told the unusual file name comes from using “copy reference” in the editor. There might be some kind of packaging problem with that, I would try using a fresh texture asset, that has a .uasset extension, and see if that works.

This would be a workaround, of course, the jira would track an engine fix.

I tried with a uasset extension and unfortunately the same result. I can wait for the fix in the meantime as I wanted to bundle the game update with the new spatialized audio for android which still needs fixing anyway :wink:

I think it is a cooking problem. The issue is that the texture asset is not referenced by a uproperty, and we do not have custom serialization code that causes it to be cooked by name. Therefore the texture does not exist in the packaged build.

Two workarounds: A) Put the texture into a directory and then in File->Package Project->Packaging Settings->Project->Packaging->Packaging->expand Advanced->Additional Asset Directories to Cook: add the directory there. That will make the cooker cook that texture even though it is not referenced anywhere. B) Reference it somewhere so that it is cooked.

We will change that oculus splash setting (and the others) to UProperty so that they cook correctly and can be modified in the editor, etc.

I also found that having a file extension on the ini setting seemed to break the loading.

You would want it to be:

TexturePath=/Game/Textures/loadingScreen_gearvr

No .loadingScreen_gearvr, no .uasset.

To be clear: i had to both remove the file extension, and make sure the asset was cooked.

Making this a UProperty should fix both of these pitfalls.

great thanks for the info! :slight_smile: