Ask Unreal Anything: World Building | August 23, 2022 at 12PM EDT

Using Runtime Data Layers, you can dynamically load/unload/activate(make visible) actors. You are right, Valley of the ancients does that by preloading a 2nd version of the world. In the demo, all actors part of the “dark world” are placed in a Runtime Data Layer. The initial runtime state of the Data Layer is set to Loaded to avoid waiting to data to be streamed-in when when switching to dark world. The inverse is applied on actors that we want to hide or unload.

1 Like

Another question: when parenting an HLOD layer to other one (like in the Matrix demo, a spatially loaded instancing layer, whose parent is a simplified mesh layer), my HLOD generation is a bit clunky: some things don’t appear correctly until I am too close and stuff like that.

What is the correct workflow to generate 2 layers of HLODs so that I can optimize properly my level?

Make sure you are using the “Approximate” generation method instead of the “Simplify” one, which uses far more resources. You can take a look at the City samples which can be used as a starting point to setup HLODs.

Not really, since you are most probably running out of VRAM, not main RAM.

On the Matrix demo, we used a multi-machines setup for building HLODs, but it can be tricky to set up depending on how your “build farm” is configured. The HLODs documentation at World Partition - Hierarchical Level of Detail in Unreal Engine | Unreal Engine 5.0 Documentation doesn’t include that information but I’ll see to get it updated for the next release with that information.

This is a great question! Landscapes are currently handled by a separate team - try asking this question in a separate forum post to get an answer for now, and I’ll make note that there’s a potential for another landscape focused AMA in the future!

2 Likes

Earlier question I really need to know:

1: Is it better to import one whole terrain map or split a large terrain map into tiles before importing into UE5 World Partition and why?
2: Are they the same tile sizes as used in the old world composition? if different what are they?

World Partition already support landscape (partial authoring in the Editor and HLOD generation and streaming at runtime). For 5.1, we added the HLOD gen and streaming for water. Still missing authoring water partially in the editor.

First, make sure your settings are similar to the Small City Sample. Then, if you have objects that don’t appear in HLODs but only when very near, they could be excluded from HLODs, make sure they don’t have an HLODLayer set. If you still have problems, I’d suggest creating a sample project and getting to us through UDN for official support.

That would require changing the current 2d spatial hash logic to loop in the world’s borders and stream cells using a world offset. Not a difficult task, but not trivial either.

1 Like

With Large World Coordinates, the engine now works in double floating points, which should properly handle coordinates for the planet earth. So having everything converted to world coordinates before importing should work out of the box with LWC enabled.

The Matrix demo made a quite impressive use of procedural world building for sure! To answer your question, I think it would be quite interesting and exciting to see player input driven and runtime modification of such worlds.

The landscape “Import from file” tool has been updated to support partitioned worlds. There’s a new parameter “world partition grid size” combined with that will be used to split the provided landscape data into multiple tiles of Landscape Proxy actors. The import basically reads all the provided landspace files, merges, then splits based on the import parameters.

2 Likes

Your are not wrong, we will need to improve there. Challenge for us is balancing this with our ambitious internal projects. More the tech advance, in better position we are to give you this or make the features more intuitive for all.

1 Like

Breaking everything requires persistence, so when you unload parts of the world and relaod them, you’d want to keep broken stuff.

1 Like

Short term:
We want to see the HLOD in the Editor using World Partition.
For Navigation, we want a new bookmark system and also camera streaming (best of both worlds - supporting big project but also nice for individual)

2 Likes

Q: just to confirm that it is possible to swap PAINTED foliage actors using runtime data layers?!
I can’t see anything on the Docs that says I can add painted foliage there. The example hints that the tree is instanced… doesn’t say how that tree is instanced and why IT can be added to the data layer.

Thanks for your time answering all my questions, very much appreciated!

Q. Will it be possible to create a 1000km x 1000km world partition-based landscape in UE5.1 with a computer that has 32GB RAM and an RTX 3060?

2 Likes

Always depend on the density of those world. For a “normal” density, this is unlikely.

Does density == heightmap resolution? i.e. 1 vertex per metre is the highest resolution and 1 vertex per 10 metres is a low resolution

I was referring on Content. Number of actors in your world.
Bigger your world is, longer is everything. HLOD process, other offline process, more files, cook time, etc.
Matrix demo was 4km x 5 km with ~120k actors. Building HLOD takes many hours on a single cpu) so 1000x1000km is pretty challenging.

2 Likes

Thanks, it gives me some ideas on how to setup things. Thanks for that!