HLOD及びLandscapeアクターをDataLayerに登録する方法について。

いつもお世話になっております。

表題の件について質問がございます。

WorldPartitionを使用したオープンワールドゲームを想定したレベルで、全く異なるマップへ切り替える仕組みを作成しようと思っています。

その際、プレイヤーアクターは維持したいため、パーシスタントレベルの切り替えではなく、DataLayerでの切り替えを検討しています。

切り替え前のマップのアクターを全てDataLayerに登録し、切り替え後は非アクティブにしようと考えているのですが、HLOD及びLandscapeアクターをDataLayerに登録することができないようになっているようです。

HLOD及びLandscapeアクターを、DataLayerに登録することは可能でしょうか?

またHLODやLandscapeを、DataLayerを使用して非アクティブにすることは運用として妥当でしょうか?

以上、よろしくお願いいたします。

お世話になっております。

DataLayerの利用制限ではありますが HLODActor, Landscape は登録することができないため、別のアプローチをとることをお勧めします。

一括での切替になってしまいますが、マップ全体をLevelInstanceとして配置してLevel単位でアクティブ・非アクティブを切り替えるような方法ではいかがでしょうか?

追加でご質問の件は、おそらく CL#36332129 で修正された問題でUE5.6で反映済みとなっています。

もしお急ぎの場合はこちらのCLも適用してみることをおすすめします。

https://github.com/EpicGames/UnrealEngine/commit/96a738fff014c269eabb96563f610a7bdcc37e33

ご返答頂きありがとうございます。

HLODActorやLandscapeをDataLayerに登録することはできない旨、承知いたしました。

マップ全体をLevelInstanceとして配置する方法の場合、レベルをプレイした際に以下のクラッシュログが出て落ちてしまうことがあるようです。

`LoginId:52936ff04dfada89851e47962eb3a32b
EpicAccountId:38461ed4c0d04d4f8a0168cc031dfd5d

Assertion failed: WorldActor [File:H:\GitProjects\mod-engine-2\Engine\Plugins\PCG\Source\PCG\Private\PCGActorAndComponentMapping.cpp] [Line: 610]

UnrealEditor_PCG!FPCGActorAndComponentMapping::RegisterPartitionActor() [H:\GitProjects\mod-engine-2\Engine\Plugins\PCG\Source\PCG\Private\PCGActorAndComponentMapping.cpp:610]
UnrealEditor_PCG!APCGPartitionActor::PostRegisterAllComponents() [H:\GitProjects\mod-engine-2\Engine\Plugins\PCG\Source\PCG\Private\Grid\PCGPartitionActor.cpp:187]
UnrealEditor_Engine!AActor::IncrementalRegisterComponents() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Engine\Private\Actor.cpp:5495]
UnrealEditor_Engine!ULevel::IncrementalRegisterComponents() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Engine\Private\Level.cpp:1755]
UnrealEditor_Engine!ULevel::IncrementalUpdateComponents() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Engine\Private\Level.cpp:1674]
UnrealEditor_Engine!UWorld::AddToWorld() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Engine\Private\World.cpp:3310]
UnrealEditor_Engine!ULevelStreaming::UpdateStreamingState() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Engine\Private\LevelStreaming.cpp:995]
UnrealEditor_Engine!UWorld::UpdateLevelStreaming() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Engine\Private\World.cpp:4327]
UnrealEditor_Engine!UWorld::BlockTillLevelStreamingCompleted() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Engine\Private\World.cpp:4193]
UnrealEditor_Engine!UEngine::BlockTillLevelStreamingCompleted() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Engine\Private\UnrealEngine.cpp:15611]
UnrealEditor_Engine!UGameInstance::StartPlayInEditorGameInstance() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Engine\Private\GameInstance.cpp:547]
UnrealEditor_UnrealEd!UEditorEngine::CreateInnerProcessPIEGameInstance() [H:\GitProjects\mod-engine-2\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:3141]
UnrealEditor_UnrealEd!UEditorEngine::OnLoginPIEComplete_Deferred() [H:\GitProjects\mod-engine-2\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:1590]
UnrealEditor_UnrealEd!UEditorEngine::CreateNewPlayInEditorInstance() [H:\GitProjects\mod-engine-2\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:1853]
UnrealEditor_UnrealEd!UEditorEngine::StartPlayInEditorSession() [H:\GitProjects\mod-engine-2\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:2872]
UnrealEditor_UnrealEd!UEditorEngine::StartQueuedPlaySessionRequestImpl() [H:\GitProjects\mod-engine-2\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:1167]
UnrealEditor_UnrealEd!UEditorEngine::StartQueuedPlaySessionRequest() [H:\GitProjects\mod-engine-2\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:1068]
UnrealEditor_UnrealEd!UEditorEngine::Tick() [H:\GitProjects\mod-engine-2\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:1902]
UnrealEditor_UnrealEd!UUnrealEdEngine::Tick() [H:\GitProjects\mod-engine-2\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:550]
UnrealEditor!FEngineLoop::Tick() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5921]
UnrealEditor!GuardedMain() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Launch\Private\Launch.cpp:180]
UnrealEditor!GuardedMainWrapper() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:118]
UnrealEditor!LaunchWindowsStartup() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:258]
UnrealEditor!WinMain() [H:\GitProjects\mod-engine-2\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:298]
UnrealEditor!__scrt_common_main_seh() [D:\a_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll`

マップでIs Partitionedが有効なPCGを使用している場合、マップ全体をLevelInstanceとして配置する方法を使用するのは難しいでしょうか?

またUE5.6にてこの問題が解決される予定などはございますでしょうか?

現在、バージョンは5.4を使用しています。

迅速にご回答頂きありがとうございます。

既に修正済みとのことですので、今後必要となった場合にはご紹介頂いた方法を検討できればと思います。

また問題などがあった際には別途質問させて頂ければと思いますので、本件に関してはクローズして頂ければと思います。

ご対応頂きありがとうございました。