6.

UE5のレベル(Level)とは|基本・切替・ブループリント連携まとめ

編集
この記事の要点
  • レベル(Level)は、Unreal Engine 5(以下UE5)でゲームやシミュレーションの「舞台(マップ)」を構成する単位で、ディスク上では拡張子.umapのアセットとして保存されます。
  • 1つのワールドは、常に読み込まれるPersistent Level(永続レベル)と、必要に応じて読み込まれる複数のSub Level(サブレベル)で構成できます。
  • 広大なマップを扱う場合は、領域ごとに自動でロード/アンロードを管理するWorld Partitionを利用する設計が一般的です。
  • この記事はレベルの入口(目次)です。テンプレート選択・レベルの切替や移動・ブループリント連携といった具体的な操作は、下記の各カテゴリから個別記事へ進めます。

レベル(Level)とは

UE5におけるレベルとは、地形やアクター(配置オブジェクト)、ライティング、サウンド、各種設定などをひとまとめにした「ゲームの舞台(マップ)」のことです。プレイヤーが実際に動き回る空間そのものであり、ゲームのシーンを構成する基本的な単位として扱われます。

レベルはプロジェクト内でアセットとして管理され、ディスク上では拡張子.umapのファイルとして保存されます。エディタでは、コンテンツブラウザに表示されるこのアセットを開くことで、対象のレベルを編集できます。

Persistent Level と Sub Level

UE5では、実行時に展開されるゲーム空間全体をワールド(World)と呼びます。1つのワールドは、複数のレベルを組み合わせて構成することができ、その役割は大きく次の2種類に分かれます。

種類役割の概要
Persistent Level(永続レベル)ワールドの土台となる、常に読み込まれているレベル。サブレベルの読み込み・管理の起点になります。
Sub Level(サブレベル)永続レベルにひもづく形で配置される追加のレベル。エリアや要素ごとに分割し、必要なタイミングで読み込み・解放する運用が可能です。

レベルを分割しておくと、シーンの一部分だけを動的に読み込めるようになり、メモリ使用量の管理や、複数人での分担作業がしやすくなる場合があります。必要なサブレベルだけを読み込む仕組みは、一般にレベルストリーミングと呼ばれます。

World Partition

広大なマップを扱う場合は、ワールドを格子状の領域に分割し、プレイヤーの位置などに応じて各領域を自動的に読み込み・解放するWorld Partitionという仕組みを利用できます。手作業でサブレベルを切り分ける従来の方式に対し、World Partitionは大規模な空間の管理を自動化する目的で用意されています。オープンワールド向けのテンプレートでは、この仕組みが初期状態で有効になっていることがあります。

どの方式が適しているかは、扱うマップの規模やプロジェクトの方針によって異なります。小規模な単一シーンであれば単一のレベルで十分な場合もあり、必ずしも分割が必要とは限りません。

レベルの基本操作

レベルを扱ううえで土台となる、作成・表示・保存といった基本操作の考え方は次のとおりです。具体的な手順や設定は、扱うUE5のバージョンや環境によって異なる場合があります。

操作概要
レベルを作成する新規レベルを作成する際は、空のレベルや既定のテンプレートから選んで作成します。テンプレートによって初期状態に含まれる要素が異なります。
レベルを開くコンテンツブラウザから対象の.umapアセットを開くことで、そのレベルを編集対象として読み込みます。
レベルを保存する編集した内容は、対象のレベルアセットとして保存します。複数のレベルを組み合わせている場合は、関連するレベルをまとめて保存できます。

これらの操作を起点として、テンプレートの使い分けやレベルの切り替え、ブループリントとの連携といった応用へと広げていけます。以降のカテゴリでは、目的別に個別記事へリンクします。

レベルの基本・テンプレート

新規レベルを作成するときに選ぶテンプレートは、初期状態に含まれる要素や前提となる構成が異なります。プロジェクトの規模や方針に応じた選び方を、次の記事で確認できます。

レベルの切替・移動

ゲームの進行に合わせて表示するレベルを切り替えたり、アクターが属するレベルを変更したりする操作は、シーン構成やストリーミングの設計に関わります。エディタ上での編集と、実行時の動的な変更の両面を扱う記事をまとめました。

記事扱う内容の概要
レベルを移動する方法表示するレベルを別のレベルへ切り替える操作の考え方。
エディタ上でインスタンスが属するサブレベルを変更する方法エディタ作業時に、配置済みインスタンスの所属サブレベルを変更する操作。
動的にインスタンスが属するレベルを変更する方法実行時に、インスタンスが属するレベルを動的に変更する操作。

レベルとブループリント連携

ブループリントから現在のレベルを判定したり、レベル側の変数へアクセスしたり、レベルごとに設定を切り替えたりする操作は、ゲームロジックとレベル構成を結びつけるうえで役立ちます。目的別に次の記事へ進めます。

記事扱う内容の概要
Blueprintで現在開いているレベルが特定のレベルであるか調べる方法いま開いているレベルが目的のレベルかどうかを判定する考え方。
とあるアクタから現在開いているレベルの変数にアクセスする方法アクタ側から、現在のレベルが持つ変数へアクセスする操作。
レベルごとにゲームモードを変更する方法レベル単位で適用するゲームモードを切り替える設定。

プロジェクト・起動設定

レベルそのものの編集だけでなく、プロジェクトを開いた直後やゲーム起動時に最初に表示されるレベルを指定する設定もあります。プロジェクト全体に関わる入口の設定を扱う記事です。

よくある質問(FAQ)

Q. Persistent Level と Sub Level は何が違いますか。

A. Persistent Level(永続レベル)はワールドの土台として常に読み込まれているレベルで、サブレベルの管理の起点になります。一方のSub Level(サブレベル)は、その永続レベルにひもづけて追加されるレベルで、エリアや要素ごとに分割し、必要に応じて読み込み・解放する運用ができます。詳しい切り替えや所属変更の操作は、本記事の「レベルの切替・移動」カテゴリの各記事を参照してください。

Q. レベルを分割すると、必ずパフォーマンスが良くなりますか。

A. 一概には言えません。レベルやサブレベルの分割は、必要な範囲だけを読み込むことでメモリ使用量を管理しやすくする手段ですが、効果はマップの規模や読み込みの設計、対象環境などの条件によって変わります。小規模なシーンでは単一のレベルで十分な場合もあります。プロジェクトの要件に合わせて、分割の要否やWorld Partitionの利用を検討するとよいでしょう。

編集
Post Share
子ページ
  1. レベルを移動する方法
  2. レベルの「基本」テンプレートと「オープンワールド」テンプレートの違い
  3. Blueprintで現在開いているレベルが特定のレベルであるか調べる方法
  4. レベルごとにゲームモードを変更する方法
  5. 動的にインスタンスが属するレベルを変更する方法
  6. エディタ上でインスタンスが属するサブレベルを変更する方法
  7. とあるアクタから現在開いているレベルの変数にアクセスする方法
  8. プロジェクトを開いたときの最初のレベルを変更する方法
同階層のページ
  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. セーブ&ロード

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