25.

UE5のWorld Compositionとは|サブレベルによる大規模ワールドと非推奨化

編集

World Compositionとは、複数のサブレベルをタイル状に配置して大規模なワールドを構成する、UE4以来の従来手法です。1つのPersistent Level(永続レベル)の下に多数のサブレベルを座標で並べ、プレイヤーとの距離に応じて各レベルを自動的にロード・アンロードすることで、メモリに収まらないほど広いマップを扱えるようにします。Unreal Engine 5では後継のWorld Partitionが推奨されており、World Compositionは旧来の機能として位置づけられています。

この記事の要点
  • World Compositionは、複数のサブレベルをタイル状に並べて大規模ワールドを構成するUE4由来の手法。
  • 仕組みは「Persistent Level+多数のサブレベルを座標配置し、距離ベースでストリーミング」。ワールド原点シフト機能と組み合わせ、エンジン既定の座標上限を超える広さを実現する。
  • 有効化は[World Settings]のEnable World Composition、レベルの配置・確認はLevelsウィンドウ(World Compositionビュー)で行う。
  • Layer(レイヤー)にストリーミング距離を設定し、レベルはそのレイヤーの距離を継承する。距離ストリーミングを無効にしたレイヤーはBlueprintで制御する。
  • UE5ではWorld Partitionが推奨で、World Compositionは非推奨・旧来扱い。新規プロジェクトはWorld Partitionを選ぶのが基本。
  • 両者の詳細な相違はWorld PartitionとWorld Compositionの違いを参照。

World Compositionとは

World Composition(ワールドコンポジション)は、広大なマップを1つの巨大なレベルとして作るのではなく、エリアごとに分割した多数のサブレベルタイル状に配置して、全体で1つの大規模ワールドを構成する仕組みです。Unreal Engine 4から提供されてきた従来のオープンワールド向け手法で、UE4世代の大規模マップ制作で広く使われてきました。

基本的な考え方は、空間を格子状の区画に分け、それぞれを独立したレベルファイルとして持つことにあります。プレイヤーが移動すると、近くの区画だけがロードされ、遠くの区画はアンロードされるため、マップ全体をメモリに載せることなく、見かけ上は途切れのない(シームレスな)広大な世界を表現できます。これは、後述するレベルストリーミングの仕組みを大規模ワールド向けに体系化したものと言えます。

UE5以降は後継のWorld Partitionが用意されているため、World Compositionは「UE4から引き継がれた旧来の方式」という位置づけになっています。既存のUE4プロジェクトを移行・保守する場面では今も登場しますが、新規に大規模ワールドを作るうえでの第一候補ではない点を、はじめに押さえておくとよいでしょう。

World Compositionの仕組み

World Compositionは、おおまかに「レベルの構成」と「ストリーミングの制御」という2つの要素で成り立っています。

Persistent Levelと多数のサブレベル

World Compositionでは、起点となるPersistent Level(永続レベル)が1つあり、その下に多数のサブレベルがぶら下がる構成になります。World Compositionを有効にすると、Persistent Levelと同じフォルダ内のレベルが走査され、見つかったレベルがサブレベル(ストリーミング対象)として扱われます。各レベルの位置情報などはレベルファイルのヘッダーに保持されるため、World Compositionはレベル本体をメモリに読み込まなくても全体の配置を把握できます。

各サブレベルには座標(オフセット)が割り当てられ、ワールド内のどの位置に置かれるかが決まります。これによって、サブレベルがタイルのように並び、全体として1枚の広いマップが組み上がります。エディタ上ではこれらのタイルを俯瞰しながら配置を確認・編集できるため、複数人での分担作業もしやすいのが特徴です。

距離ベースのストリーミングとワールド原点シフト

サブレベルのロード・アンロードは、基本的にプレイヤー(ストリーミングの基準となる視点)からの距離に基づいて自動的に行われます。設定した距離より近いタイルがロードされ、遠ざかったタイルはアンロードされる、という距離ベースのストリーミングです。

World Compositionはワールド原点シフト(World Origin Shifting)という機能と組み合わさって動作します。これは、プレイヤーの移動に合わせてワールドの原点をずらすことで、座標値が極端に大きくならないようにする仕組みです。これにより、エンジンに既定として設定されている座標上限の制約を実質的に回避し、それを超える広さのワールドを成立させられます。大規模マップで遠方になるほど座標精度(浮動小数点の精度)が落ちる問題を緩和する役割も担います。

World Compositionの有効化とLevelsウィンドウ

World Compositionを使うには、まず機能を有効にし、続いてレベルを配置・管理するためのウィンドウを使います。具体的な手順や項目名はバージョンによって異なる場合があるため、最終的には使用中のバージョンの公式ドキュメントで確認することをおすすめします。

World Settingsで有効化する

有効化は、メニューの[Window]から[World Settings]を開き、Worldカテゴリ内のEnable World Compositionにチェックを入れて行います。有効にすると、Persistent Levelと同じフォルダ内のサブレベルが走査され、いくつのサブレベルが見つかったかが通知される挙動になっています。

Levelsウィンドウ(World Compositionビュー)

レベルの追加や配置の確認はLevelsウィンドウで行います。World Compositionが有効なときは、Levelsウィンドウ上部のボタンからWorld Composition(ワールドの俯瞰ビュー)を開けるようになっており、ここでタイル状に並んだレベルのレイアウトを視覚的に確認しながら編集できます。タイル状の地形を一括で取り込む[Import Tiled Landscape]や、既存レベルの追加なども、このウィンドウまわりの操作から行います。

Layer(レイヤー)と距離設定

各サブレベルのストリーミング距離は、Layer(レイヤー)という単位でまとめて管理します。レイヤーはストリーミング距離の情報を保持しており、あるレイヤーに割り当てられたレベルは、そのレイヤーのストリーミング距離を継承します。距離を変えたい場合は、目的の距離を持つ新しいレイヤーを作り、対象レベルをそのレイヤーへ割り当てる、という流れが基本になります。

レイヤーは既存のレイヤー名の横にある追加(+)ボタンから新規作成できます。距離ストリーミングを無効にしたレイヤーに割り当てたレベルは、距離による自動ストリーミングの対象から外れ、代わりにBlueprintで明示的にロード・アンロードを制御する形になります。距離で自動制御したいタイルと、イベントやスクリプトのタイミングで制御したいタイルを、レイヤー単位で整理できるイメージです。

設定の対象場所・単位主な役割
機能の有効化[World Settings] の Enable World CompositionPersistent Level配下のサブレベルをWorld Compositionの管理下に置く。
レベルの配置・確認Levels ウィンドウ(World Compositionビュー)タイル状のレイアウトを俯瞰し、追加・配置・編集を行う。
ストリーミング距離Layer(レイヤー)距離を保持し、割り当てたレベルが継承する。
個別制御距離無効レイヤー + Blueprint距離による自動制御をやめ、スクリプトでロード/アンロード。

UE5ではWorld Partitionが推奨

ここが最も重要な注意点です。Unreal Engine 5では、大規模ワールドの構築手法としてWorld Partitionが推奨されており、World Compositionは非推奨・旧来扱いとなっています。

World Partitionは、ワールドを一様なグリッドに自動分割し、グリッドセル単位でのロード・アンロードを自動で管理する、UE5に組み込まれたストリーミング管理システムです。World Compositionのように手動でサブレベルを切り出して座標配置する必要がなく、1つのレベル上でそのまま広大なワールドを編集できる点が大きく異なります。なお、World CompositionとWorld Partitionは同時に有効化できない関係にあります。

World Compositionは、UE5でも引き続きドキュメントに記載され、既存プロジェクトの保守などのために利用できる状態にありますが、長期的には縮小・置き換えが進む方向とされています。したがって、新規にUE5で大規模ワールドを始めるなら、まずWorld Partitionを検討するのが基本方針です。UE4で作られたWorld CompositionのプロジェクトをUE5へ持ち込む場合は、World Partitionへ移行するための仕組みも用意されていますが、サブレベルの統合・再編成といった手作業を伴うことが多い点には留意してください。

World Partitionとの違い

「手動でタイルを並べるWorld Composition」と「グリッドを自動管理するWorld Partition」は、考え方も運用も大きく異なります。どちらを選ぶべきか、移行はどう進めるべきか、編集ワークフローやチーム作業の違いなど、両者の比較は次の関連記事で詳しく解説しています。

関連記事: World PartitionとWorld Compositionの違い

World Compositionの落とし穴

World Compositionを扱う際、または採用を検討する際に注意したいポイントを整理します。

注意したいポイント
  • 手動配置の手間が大きい:サブレベルを自分で切り出し、座標を割り当てて並べる作業が必要で、初期設定や構成変更に手間がかかります。
  • UE5では非推奨・旧来扱い:機能としては残っていても第一候補ではありません。新規開発で安易に選ぶと、後から移行コストを抱えやすくなります。
  • 新規はWorld Partitionが基本:UE5で大規模ワールドを始めるなら、まずWorld Partitionを検討するのが妥当です。
  • 両方は同時に使えない:World CompositionとWorld Partitionは同時に有効化できないため、プロジェクトの方針を早めに決めておく必要があります。
  • 項目名はバージョン依存:UIの名称や手順はバージョンで変わり得ます。確証が持てない点は、使用中のバージョンの公式ドキュメントで確認するのが安全です。

よくある質問(FAQ)

Q. UE5でWorld Compositionはもう使えないのですか?
A. 完全に使えなくなったわけではなく、UE5でも引き続きドキュメントに記載され、利用できる状態にあります。ただし推奨されるのはWorld Partitionで、World Compositionは旧来の機能として扱われています。新規プロジェクトではWorld Partitionを選ぶのが基本です。

Q. World CompositionとWorld Partitionは併用できますか?
A. 同時に有効化することはできません。1つのワールドに対してどちらの方式を使うかを選ぶ形になります。両者の考え方の違いはWorld PartitionとWorld Compositionの違いで解説しています。

Q. World Compositionで距離ではなく任意のタイミングでレベルを出し入れしたい場合は?
A. 距離ストリーミングを無効にしたレイヤーにレベルを割り当て、Blueprintからロード・アンロードを制御します。距離で自動制御するタイルと、スクリプトで制御するタイルをレイヤー単位で分けて管理できます。

Q. UE4で作ったWorld CompositionのマップをUE5でどう扱えばよいですか?
A. そのままWorld Compositionとして保守し続けることもできますが、将来を見据えるならWorld Partitionへの移行を検討するのが一般的です。移行にはサブレベルの統合・再編成などの手作業を伴うことが多いため、規模やスケジュールに応じて計画的に進めるとよいでしょう。具体的な手順は使用中のバージョンの公式ドキュメントで確認してください。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ノード・コンポーネント・関数・クラス一覧
  2. Tips
  3. エラー一覧
  4. ブループリント (Blueprint)
  5. プロジェクト (Project)
  6. レベル (Level)
  7. ウィジェット (Widget)
  8. データテーブル (DataTable)
  9. アセット
  10. アウトライナー
  11. ビュー
  12. レイヤー
  13. レイアウト
  14. ビルド
  15. ライティング
  16. ジオメトリ
  17. アクタ
  18. トランスフォーム
  19. スナップ
  20. ピボット
  21. コンテンツドロワー
  22. コンポーネント
  23. メッシュ
  24. マテリアル
  25. World Composition
  26. World Partition
  27. Unreal Insights
  28. セーブ&ロード

最近更新/作成されたページ