After 3 frustrating days, I’ve determined that the Asset Manager requires the Primary Asset Type to exactly match the Asset Base Class.
The Unreal docs are silent on this requirement. Everywhere I read, and every AI prompt, says that the Primary Asset Type is developer-facing, and can be anything you want.
That’s not true. A World base class must be called Map. A PrimaryAssetLabel base class must be called exactly PrimaryAssetLabel.
In this example, I rename the “Map” rule to “Mapsss”. Those maps now don’t get chunked.
The question is what to make of this.
-
Is this actually documented, but haven’t been able to find that documentation in 3 days?
-
Is it a bug, and this requirement will change once it’s fixed?
While I finally have a solution that allows me to control my chunks, it’s unsatisfying to not know why it works.
OP here. I finally understand. But wow, the documentation is criminally bad in this area. I’m leaving this post, so that someone else may discover it before taking their own life.
Simply put, the Asset Manager can only discover “Primary Assets”, and these are classes that provide an override for GetPrimaryAssetId(). Assets like Maps and PrimaryAssetLabels define their primary asset ID.
This ID is self-declared by the class. If a Map defined its type as “MickeyMouse”, you’d have to put “MickeyMouse” into the Primary Asset Type field.
A “World” defines its type name as “Map”, so you must write “Map” into the Primary Asset Type field in the Asset Manager. A PrimaryAssetLabel defines its type name as “PrimaryAssetLabel”, so this must go into that field. It’s redundant, because Unreal could fish this information out of the base class you’ve already provided in the second field. But there you are.
In this example, we’re letting a DataAsset (our own derived PropDataAsset class) behave as a primary asset by overriding the GetPrimaryAssetId function:
And now we can get all our PropDataAssets cooked into Chunk 0, so that we can use them as a database of assets. We’re not applying it recursively, because this is just a catalog of assets. In reality, the asset are spread over a lot of chunks, and downloaded and loaded as needed. This works out of the box:
Man, that was hard to understand. I may be thick-headed, but I’ve had a miserable 3 days.
2 Likes