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

ストリーミング レベルは、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

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信