レベル ストリーミングの概要

ストリーミング レベルは、Level Streaming Volume あるいはブループリントまたは C++ でプログラム的にロードすることができます。

Windows
MacOS
Linux

レベル ストリーミング機能は、マップファイルをメモリへロードまたはアンロードすることに加え、その可視性をプレイ中にトグルします。この機能により、ワールドの関連性のある部分のみがリソースを利用したり、 どの時点でもレンダリング出来るように、ワールドを小さく分割することができます。適切な処理がされると、とても大きくシームレスなレベルが作成されて、 ワールド内でプレイするプレイヤーのサイズがとても小さく感じてしまうほどです。

パーシスタント レベル

レベルをシームレスにブレンドするために、まず パーシスタント レベルを作成します。これは、ストリームインおよびストリーム アウトするレベルを管理するために 主に使用するマスター レベルと考えることができます。

ストリーミング レベル

ストリーミング レベルは Levels ウィンドウ で管理します。パーシスタント レベルをオーバーラップしたり、オフセットしてより大きいワールドを作成することができます。参加する各エージェントは、 [Always Loaded (常にロード)] または [Blueprint (ブループリント)] に設定することができます。この設定は、サブレベルを右クリックして表示される [Levels (レベル)] ウィンドウで切り替えることができます。

ストリーミング レベルを [Always Loaded (常にロード)] に設定した場合、パーシスタント レベルも一緒にロードされます。同時にパーシスタント レベルとして表示もされます。 ブループリントまたは C++ から送られたロード / アンロード要求、および割り当てられたストリーミング ボリュームを無視します。このタイプのサブレベルは、アーティスト同士が邪魔することなく同時に共同作業ができるように、 通常はパーシスタント レベルで複数の「レイヤー」にするためにコンテンツの分割に使われることが多いです。このワークフローの詳細は、 サブレベルで連携して作業する をご覧ください。ゲームでは、ゲームがパーシスタント レベルを変更しない限り、Always Loaded サブレベルは決してストリーミングされません。

Persistent Level Alone

After Streaming In Levels

ダイナミック ストリーミング メソッド

Blueprint ストリーミング タイプのあるストリーミング レベルは実際、Level Streaming Volume、ブループリント、C++ コードで制御することができます。これらのレベルは、 動的にロード / アンロードすることができます。

Level Streaming Volume

Level Streaming Volume を使うと、レベル ストリーミングが非常に簡単にできるようになります。発想はシンプルです。視点がレベルと関連づいている LevelStreamingVolume ボリューム内にあるかどうかによって、 ストリーミング レベルに対するロード / アンロードのリクエストが発行されます。

具体的には、Level Streaming Volume は 2 通りの使い方があります。

  • ゲーム では、Level Streaming Volumes を使って、レベルがプレイヤーの視点がボリューム内にあればロードし、プレイヤーの視点がボリューム外にあればアンロードします。

  • エディタ では、パースペクティブ ビューポート カメラの位置に合わせてレベルを自動的に表示 / 非表示にして、Level Streaming Volumes を使ってレベル ストリーミングをプレビューすることができます。

ボリューム ベースのレベル ストリーミングは使い方が簡単な上にスクリプト処理が必要ないので、レベル ストリーミングの制御には理想的です。さらに、ボリューム ベースはスクリプト処理に比べてはるかに管理が容易です。 システムのロード要求が変化しても、ストリーミング ボリュームの大きさを変更すればレベルのロード / アンロード ビヘイビアを修正できます。

スクリプト レベル ストリーミング

レベルのロード / アンロードをより複雑な設定にしたい場合は、ドアを解除する上記の例と同様に、 レベルのロード / アンロードに対してブループリントあるいは C++ ロジックを設定することができます。主要な機能は Load Stream LevelUnload Stream Level です。ロードするレベルを名前で使用します。

Load Stream LevelUnload Stream Level の他に、Get Streaming Level 関数を使うと、ストリーミングのビヘイビアをさらに動的にすることができます。実際のレベル ストリーミング オブジェクトへのアクセスが可能になるので、 そのステートの修正とクエリが可能になります。Create Instance と一緒に使えば、特定のサブレベルの作成とストリーミングが可能になります。 これらのコピーにトランスフォームを適用し、パラメータを送れば、プロシージャルなワールドを作成することができます。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback