メインコンテンツに移動

UE5まとめ(仮)

Level

Levelとは、Unreal Engine 5においてゲーム世界を構成するマップデータである。

ゲーム内の地形や建物、キャラクター、ライト、カメラなどは、すべてLevelの中へ配置される。Worldがゲーム世界全体を管理する最上位のシステムであるのに対し、Levelは実際のゲーム空間を構成する単位となる。

UE5では、一つのWorldの中に複数のLevelを配置できるため、大規模なゲームではマップを複数のLevelへ分割して管理することが一般的である。また、World PartitionやLevel Instanceなどの機能とも連携し、効率的なマップ制作やストリーミングを実現している。

Levelの構成要素

Persistent Level

Sub Level

Level Instance

Level Script

各機能

Persistent Level

Persistent Levelとは、World内で常に存在する中心となるLevelである。

Worldには必ず一つのPersistent Levelが存在し、ゲーム開始時に最初に読み込まれる。Persistent Levelにはゲーム全体で常に必要となるActorや設定を配置することが多く、他のLevelの管理も担当する。

また、Sub LevelやLevel Instanceの読み込み・解放もPersistent Levelを基準として行われるため、ゲーム世界全体の基盤となるLevelである。

主な役割は、Worldの中心となるLevel、常時読み込まれるマップ、他のLevelの管理、ゲーム全体の基盤である。

Sub Level

Sub Levelとは、Persistent Levelとは別に追加できる補助的なLevelである。

大規模なゲームでは、一つの巨大なLevelでマップ全体を管理すると編集や読み込みが困難になる。そのため、街、建物内部、ダンジョン、背景オブジェクトなどを個別のSub Levelとして分割し、必要に応じて読み込みや編集を行う。

UE5ではWorld Partitionが標準となったため利用頻度は以前より減少したが、現在でも建物内部やイベント専用エリアなどの管理に利用されることがある。

主な役割は、マップの分割、共同開発の効率化、Level単位での管理、ストリーミングへの対応である。

Level Instance

Level Instanceとは、一つのLevelを別のLevel内へ複数回配置できる機能である。

通常、一つのLevelは一度しか利用できないが、Level Instanceを利用することで、同じLevelを複数箇所へ配置できるようになる。

例えば、同じ住宅や部屋、ダンジョンの一部分などを一つのLevelとして作成し、それを複数回配置することで効率的にマップを構築できる。また、元となるLevelを編集すると、すべてのLevel Instanceへ変更が反映されるため、保守性の向上にもつながる。

Blueprintにおけるインスタンス化の考え方を、Level単位へ拡張した機能と考えることができる。

主な役割は、Levelの再利用、マップ制作の効率化、共通データの管理、保守性の向上である。

Level Script

Level Scriptとは、特定のLevelだけで実行されるBlueprintである。

各Levelには専用のLevel Blueprintが存在し、その内部でイベント処理やゲーム進行を記述できる。例えば、ゲーム開始時の演出やドアの開閉、イベントシーンの開始、特定エリアへの侵入判定など、そのLevel固有の処理を実装する際に利用される。

一方で、複数のLevelで共通して利用する処理は、Blueprint ClassやC++へ実装することが推奨される。Level Scriptは現在のLevelだけに適用されるため、共通機能の実装には適していない。

主な役割は、Level固有のイベント管理、Blueprintによる制御、演出の実装、ゲーム進行の制御である。

Level全体の役割

Levelは、Unreal Engine 5においてゲーム世界を構成する基本単位である。

Persistent Levelがゲーム世界の中心となり、必要に応じてSub Levelを追加することで、大規模なマップを効率的に管理できる。また、Level Instanceによって共通のマップデータを再利用でき、Level ScriptによってそのLevel固有のイベントやゲーム進行を制御することができる。

これらの機能は相互に連携しており、例えばPersistent Levelがゲーム世界全体を管理し、必要に応じてSub Levelを読み込み、その内部でLevel Scriptがイベントを実行する。また、同じ建物を複数配置する場合にはLevel Instanceが利用される。

このようにLevelは、ゲーム世界を構築・管理するための基盤となるシステムであり、Worldの中で実際のマップやステージを構成する役割を担っている。