- FEditorLoadedActorCache was reporting unregistered loaded actors and the code that was using it was expecting registered actors.
- Replaced FEditorLoadedActorCache by FWorldPartitionHelpers::GetLoadedActorGuidsForLevel that gathers registered actors GUIDs and updated callers.
- UWorldPartition::Tick is now private to avoid code like LandscapeEditorUtils::SaveLandscapeProxies doing manual ticks to get around unwanted internal behaviors.
- TExternalDirtyActorsTracker can now filter out tracked actors depending on the parent class wanted behavior.
- Don't track dirty actors coming from non transactional operations.
#rb chris.tchou
[CL 32133372 by jeanfrancois dube in ue5-main branch]
- Allows for plugins to inject/remove content (actors) in a partitioned world
- Serves as a replacement for the experimental 'Content Bundle' feature
- Added new External Data Layer (EDL) Asset
- Added new Game Feature Action 'AddWorldPartitionContent' to control activation of an EDL asset
- Supports Data Layers inside a plugin (child of an EDL)
- Added builder to convert content bundles to EDL (UGameFeatureActionConvertContentBundleWorldPartitionBuilder)
- Feature is temporarily disabled by default and can be turned on using Editor Experimental Settings 'Enable World Partition External Data Layers' flag
#jira UE-204248
#rb JeanFrancois.Dube, Patrick.Enfedaque, Sebastien.Lussier
#tests QAGame PIE/-game/cooked, Regression test PIE/cook of latest game map, Tested PIE/cook of latest game map converted to EDL
[CL 31015614 by richard malo in ue5-main branch]
12 calls to FActorHierarchy::CreateWorldChildren in a 55k actor map with 15k loaded actors goes from 5.1 seconds to 2.7 seconds
#rb richard.malo, jeanfrancois.dube
#rnx
[CL 27373897 by patrick enfedaque in ue5-main branch]
- This can be used for data layers adding details on high end platforms.
- This can be used in content bundles with server-only data layers.
This is CL26804958 brought back with fixes.
#jira UE-176165, FORT-542185
#rb sebastien.lussier
[CL 27029196 by jeanfrancois dube in ue5-main branch]
- When editing level instance, only show loaded/unloaded actors of this level
- When editing level instance, don't prefix actor label with parent level instance(s)
- Replaced import data layer menu option by drag and dropping level instance data layers into main world AWorldDataLayers
- Removed menu option "Create Data Layer under <other> DataLayer" as it will never be allowed for DataLayerInstanceWithAsset since created without any valid DataLayerAsset.
- Disabled changing visibility and editor loading of DataLayerInstances of editing level instance
- Allow editing data layer of level instance when editing the level instance even when main world is not partitioned
- Changed font from bold to bold+italic on DataLayerInstances containing actors part of editor selection
- Removed suffix "- WorldDataLayers" on parent node of DataLayerInstances in the DataLayer Outliner
- Colorize and append "(Current)" to WorldDataLayer of editing Level Instance in the DataLayer Outliner
- Support Make Current on Level instance DataLayerInstances when editing level instance
#rb patrick.enfedaque
#jira UE-178410
#jira UE-177386
#preflight 63f8f0f19009dd70d7b87224
[CL 24441128 by richard malo in ue5-main branch]
Provide GetWorldDataLayer to Replace GetAWorldDataLayers
UObject might not have a level in its outerchain.
UDataLayerInstance::GetTypedOuter overloaded so compilation fails if done on UWorld, ULevel or AWorldDataLayer
#rb richard.malo
[CL 24344188 by philippe deseve in ue5-main branch]
- This will allow instanced world partition maps to maintain their own Data Layer runtime states.
- Deprecated DataLayerSubsystem since DataLayerManager superseeds its functionality.
- Added helpers like UWorld::GetDataLayerManager and UWorldPartitionBlueprintLibrary::GetDataLayerManager which will automatically find the associated DataLayerManager for the object it's running the BP.
#rb jeanfrancois.dube, patrick.enfedaque, philippe.deseve
[CL 23938773 by richard malo in ue5-main branch]
- Make FSceneOutlinerTreeItemID taking FGuid constructor explicit to find issues where wrong ID was passed in
- Convert DataLayer tree items to use the FArchiveMD5
#rb richard.malo, jeanfrancois.dube
#preflight 63d2d10f3656ea96dc9131da
[CL 23873707 by Patrick Enfedaque in ue5-main branch]
Allows to add DataLayerInstances by right-click on WorldDataLayers when they are not a "main worldpartiton" world data layer
Fix IsSubWorldDataLayers working in pie/cooked build for non-"main world partitition data layers"
#rb richard.malo
[CL 21696488 by philippe deseve in ue5-main branch]
Added FActorDescContainerCollection which can contains multiple UActorDescContainer
ActorDescContainer can be created to load ExternalFolder in various places for a world partition
WorldPartition no longer inherits UActorDescContainer and now inherits FActorDescContainerCollection
ActorsDesc are added to the right container on save based on their packagepath
HLODs generation only occurs on the Main WorldPartition Actors for the moment
Some WorldPartitionBuilders commandlets do not support having WorldPartitions with multiple ACtorDescContainer. In that case, the commandlet fails and outputs an error message.
#test cook AncientGame, cook city_sample, cook asteria_terrain, HLods generation on AncientGame, Level Instances workflow
#rb jeanfrancois.dube
#preflight 630ce860a416f6df25b74655
[CL 21691284 by philippe deseve in ue5-main branch]
Calls to retrieve data layers from the subsystem are now forwarded to a collection of WorldDataLayers
The collection forwards the call to the relevent WorldDataLayers
#rb richard.malo
#preflight 62bd9255b024a2608c311344
#test AncientGame, CitySample, Cook, PIE, -Game, Hlods
#ROBOMERGE-AUTHOR: philippe.deseve
#ROBOMERGE-SOURCE: CL 20894852 via CL 20894903 via CL 20894926
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)
[CL 20898599 by philippe deseve in ue5-main branch]