Cesium for Unreal

HI, currently experimenting with Cesium for a large scale music based project of ours that allows the user to visit various live music events across the globe. We have built the various georeferenced sites in Unreal and the plugin is working well. We plan to deploy to various platforms but one options is giving us some issues - We would really love to deploy to VR/Oculus Quest but this is throwing up some errors when attempting a build. See below for errors. Is there a way round this for VR?

PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libasync++.a(scheduler.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesium3DTiles.a(BingMapsRasterOverlay.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesium3DTiles.a(BoundingVolume.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesium3DTiles.a(CreditSystem.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesium3DTiles.a(IonRasterOverlay.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesium3DTiles.a(RasterOverlayCollection.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesium3DTiles.a(TileID.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesium3DTiles.a(TileMapServiceRasterOverlay.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesium3DTiles.a(Tileset.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesium3DTiles.a(ViewState.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesium3DTiles.a(registerAllTileContentTypes.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesiumAsync.a(AsyncSystem.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesiumAsync.a(CachingAssetAccessor.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesiumAsync.a(HttpHeaders.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesiumAsync.a(SqliteCache.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesiumGeometry.a(AxisTransforms.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesiumGeospatial.a(Ellipsoid.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesiumGeospatial.a(GlobeRectangle.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesiumGeospatial.a(Transforms.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: C:/Program Files/Epic Games/UE_4.26/Engine/Plugins/Marketplace/CesiumForUnreal/Source/ThirdParty/lib/Android-xaarch64\libCesiumGltf.a(Accessor.cpp.o) is incompatible with armelf_linux_eabi
PackagingResults: Error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
PackagingResults: Error: linker command failed with exit code 1 (use -v to see invocation)
PackagingResults: Error: Unknown Error

Hello, here are some steps you can try:

  1. Make sure you have the latest version of Cesium for Unreal. To find the updater, open the Epic Games Launcher and go to the Library tab. Below the version of Unreal that you are using for this tutorial, click Installed Plugins.
  2. Follow these instructions to set up Unreal for Oculus development. Since you already have Unreal installed, start at the section named, “Setup Unreal Engine for Android Development.”
  3. In Project Settings, go to Platforms - Android —> Build. Check Support arm64 and uncheck Support armv7.

Thanks ill try that!

blocked.gif

So I managed to successfully package an APK and get it onto the HMD. The build loads but only to a black screen. I tried to deploy the build directly to HMD from Unreal so I could check the error log but the only error that appears is this -

LogPlayLevel: Error: 07-28 22:49:16.604 10439 10468 D UE4 : [2021.07.28-21.49.16:604][132]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().WaitToBeginFrame 1137 failed (-1003)

blocked.gif

@ConduitXR Here’s one more thing you can try:

In the Unreal Editor, click on your tileset in the World Outliner on the right.

In the Details panel below the World Outliner, find Cesium —> Level of Detail and expand it. Set Maximum Screen Space Error to a high number, such as 256 (or even higher to start, like 1024). This will make rendering the tileset more manageable for the mobile device.

Also, if you’re able to use Oculus Link, make sure the application works in tethered mode (VR Preview) before trying to deploy it as a standalone application. (Try playing it in the Editor too, if you haven’t already.)

We’ll have a tutorial on creating and deploying VR applications up on our website soon, and I’ll let you know when we do. It may help you troubleshoot the problem.

1 Like