List of assets and their size from a cooked World Partition umap package

When investigating how much space the assets take after packaging, we are able to run (Example):

UnrealPak.exe -AuditFiles pakchunk1.pak -csv=list.csvand get a list of what each pakchunk contains.

This works great for individual assets, but lacks any detail of what goes into the level packages. We can assume that it is a mix of actor, landscape and HLOD data but not much more than that. We are using World Partition. An example of packages associated with a level:

`../../../Project/Content/Game/Level/Level.ubulk
../../../Project/Content/Game/Level/Level.umap
../../../Project/Content/Game/Level/Level/Generated/0QNKERBI5KR105N759FQR4WA2.ubulk
../../../Project/Content/Game/Level/Level/Generated/0QNKERBI5KR105N759FQR4WA2.umap

  • A lot more Generated .umap and .ubulk packages`The size of those vary between 0.01 MB and 800 MB

We have been able get a '_Generated_ ’ package that was cooked for a build and load it in the editor using

LoadPackage command after we disabled uasset version verification and allowed the editor to load cooked content. This didn’t get very far, only to the point where it could list all the asset names and classes but not what was actually in them due to mismatch of asset sizes between editor and non-editor builds.

Is there a proper workflow to get a list of asset names and their sizes from a cooked .umap package (in particular a world partition generated umap)? If not do you have any insight as to how to go about creating one? Additionally, is there a way of seeing the disk size of a world partition map in editor and see the size of things like the landscape and HLOD sizes without clicking individual landscape components and HLOD’s in the editor?

Steps to Reproduce

Hello!

There is currently no tool that provide the information that you are looking for. The data is a bit spread out between multiple locations. We are currently looking at adding a World Partition plugin to Insights in a future release. The data would be sourced from the running game so you can know how much RAM each cell is using and get some details on its content.

I’ll try to list some of the possible ways to gather some of the information you are looking for.

  • Asset Audit tool in the editor. This tool can inspect the previously cooked data by selecting the target platform. You need to ‘Add Chunks’ and then you can use the Reference Viewer or the Size map to get extra details These tools will not show the dependencies for Worlds (umap)
  • PKGINFO commandlet: This commandlet allow to dump some information about a package (uasset\umap) and its content. I recommend that you check the different arguments at the top of UPkgInfoCommandlet::Main
    • Get all imports (what the package references): Engine\Binaries\Win64\UnrealEditor-Cmd.exe ProjectName -run=pkginfo -imports <FULL_PATH>\NewMap.umap
  • memreport: This console command is an aggregation of multiple reports as defined by MemReportCommands and MemReportFullCommands in BaseEngine.ini. Those reports are also console commands that dump difference types of information, You can know which assets are loaded at the time of the report but not the reason they are loaded (who references them)
  • OBJ console command: The OBJ console command is a meta command to a bunch of sub commands (see StaticExec() in Obj.cpp)
    • OBJ REFS NAME=XXX : This command dumps all the reference chains to the requested assets.
    • OBJ LIST CLASS=XXX: Dumps all the asset of the specifed types.

You should be able to generate some of the information you are looking for until our WP plugin for Insights is ready.

Regards,

Martin