I believe this issue stems from the ContentBundleContainer not populating the
StreamingObjects of the UContentBundleDuplicateForPIEHelper.
PIE in the same level as the bundles works as the editor has populated
StreamingObjects.
Loading during PIE follows the following control flow:FContentBundleContainer::Initialize()
FContentBundleContainer::InitializeContentBundlesForegisteredClients()
FContentBundleContainer::InitializeContentBundle()
FContentBundleBase::Initialize()
FContentBundle::DoInitialize()
FContentBundle::InitializeForPIE()
UContentBundleDuplicateForPIEHelper::RetrieveContentBundleStreamingObject()
In InitializeForPIE, no assets are loaded, but the StreamingObjects map is checked.
In PIE after a level transition, this map is empty, which will notify that there are no
streaming objects for the bundles.
Streaming Objects is populated in editor (Not Cooked) via:
FContentBundle::Initialize()
FContentBundleContainer::OnPreGenerateStreaming()
FContentBundleEditor::GenerateStreaming()
UContentBundleDuplicateForPIEHelper::StoreContentBundleStreamingObect()
However, the delegate binding for PreGenerateStreaming is guarded by a call to:FContentBundleContainer::UseEditorContentBundle()
Which checks that the world is not GameWorld. This leads to PIE being unable to load
new bundles after a level transition.
In a project with a non-WP main menu and a WP level that has content injected into it
via Game Features, attempting to load from the menu level to the WP will in PIE will
result in the injected content not being visible.
1. Load Menu Level in PIE
2. Travel via OpenLevel to the WP level
3. WP level will not have content bundle assets loaded
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-200097 in the post.
0 |
Component | UE - World Creation - Worldbuilding Tools |
---|---|
Affects Versions | 5.3.2 |
Target Fix | 5.6 |
Created | Nov 9, 2023 |
---|---|
Updated | Oct 11, 2024 |