Select to view content in your preferred language

Offline ArcGIS Unreal Plugin

567
2
2 weeks ago
InfoOR3D
New Contributor

Hi,

I've been using Unreal Engine 5.4.4 alongside ArcGIS Pro 3.5 to try and produce a globe viewer that can be accessed while offline.

To achieve this I've been downloading Maps as .tpkx and .vtpk tiles respectively and loading them into Unreal by assigning their filepath to the Basemap parameter on my ArcGISMapActor.

So far this has been working fine in editor but I've been having issues with it where it will immediately crash when trying to load in the files in a packaged version of the application. This is the error I get:

LowLevelFatalError [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Private\Containers\ContainerHelpers.cpp] [Line: 8]
Trying to resize TArray to an invalid size of 4237727105

The size is never the same, but I'm assuming that it's to do with the size of the mesh coming in for the entire globe. I've tried setting the Memory Quotas to -1 for both System Memory and Video Memory, so it should automatically allocate an appropriate amount if I'm understanding correctly. This helped it somewhat, but it still happens a lot when running the packaged executable.

If there are any other options for lowering the fidelity of the mesh for the entire globe so it's better optimised that would also be useful.

Besides that, I also want to be able to display terrain information on the global viewer, so I've been trying to go through a similar process where I can export elevation data from ArcGIS Pro and add it as an Elevation Source on my Map Actor. To do this I followed the steps laid out in this forum post:

https://community.esri.com/t5/arcgis-maps-sdk-for-unity-questions/offline-map-can-not-load-elevation...

However, when I tried to export it, even at a low resolution, it would run forever and never progress through the exporting process. The longest I left it on for was over a week to run and it just got stuck.

I then tried rasterizing some heightmap information and exporting that as a Tile Layer, which I could then edit the shaders in Unreal to use as elevation data. I was trying to export this rasterized layer using the Export Tile Cache function, but then I ran into an ERROR 999999 error code. I've been told that this could be a formatting issue with my input names or filepaths, so I've tried many different options, including just exporting directly into the C: drive and they all ended with the same error.

InfoOR3D_0-1755792934077.png

Is it possible to export elevation data and bring it into Unreal for offline using either of these methods, and if so, how should I proceed?

Thank you

 

 

0 Kudos
2 Replies
MichaelBranscomb
Esri Frequent Contributor

Hi,

What size are the tile packages you're trying to load? We've packaged apps that reference city-scale 3D scene layer packages that are often more than 20GB and they work well because the SDK dynamically loads and unloads data as-needed, based on the viewpoint camera). 

You can export elevation data and bring it into Unreal for offline use. In ArcGIS Pro the elevation data needs to be part of the elevation category so that it is generated with LERC encoding. Fr more info see Share a tile package—ArcGIS Pro | Documentation.

 

Thanks  

0 Kudos
InfoOR3D
New Contributor

Thanks for your help.

I've managed to get the elevation data exported and going into Unreal offline.

The two test packages I'm using for the basemap are 482MB and 117MB, then the elevation data I've now got in is only 8GB, but I'm going to export a more detailed elevation data set with more layers soon.

I don't think the LowLevelFatalError I'm getting is to do with the maps, because it still happens if there is no Basemap on the ArcGISMapActor. However, if I remove the ArcGISMapActor entirely it loads perfectly fine when I start the packaged version.

If there's any more information that would be useful with solving this issue, please let me know.

0 Kudos