Choose your operating system:
Windows
macOS
Linux
レベル ストリーミングのシナリオ
Sun Temple プロジェクトのメイン レベルから始めます。レベルを室内空間と、海が見える柱つきの中庭に分割します。 以下のワイヤーフレーム ビューでは、ティール色のワイヤーフレームがパーシスタント室内レベルを示し、黄色のワイヤーフレームがストリーミングされる中庭レベルを示します。 空と屋外が見えるように寺院の主要部にはいくつか窓があるので、空と海はパーシスタント レベルです。
寺院の内装には、中庭を視界から隠す廊下を混ぜます。
プレイヤーが角を曲がって中庭に近づいてくる時にはストリーミング レベルがロードされて表示できるように、 ここで中庭レベルにストリーミングを開始します。
設定対象は SunTemple_Persistent と SunTemple_Streaming です。 Player Start は SunTemple_Persistent にあります。 そしてゲームのプレイヤーは Character で表現されます。
-
コンテンツ ブラウザ から SunTemple_Persistent を開きます。
-
Player Start を寺院の一番手前に移動します。
-
[Window] をクリックして、 [Level] を選択します。
-
[Levels] のドロップダウン メニューをクリックし、 [Add Existing... (既存の...を追加)] を選択して新規サブレベルを追加します。
-
追加する SunTemple_Streaming を [Open Level] ダイアログで選択してから、 [Open] をクリックします。
-
パーシスタント レベル 上で 右クリック して、ドロップダウン メニューから [Make Current] を選択します。
ブループリントを使ってレベルをストリーミングする
-
コンテンツ ブラウザ を開いて、 ブループリント クラス を新規作成します。このクラスは アクタ に基づきます。
-
作成された ブループリント クラス に「LevelStreamer」と名前をつけて保存します。
-
ブループリント エディタ で LevelStreamer を開きます。
このシナリオでは、 キャラクター がBox コンポーネントをオーバーラップしたら、2 つ目のレベルをストリーミングします。
-
[Components] タブの [Add Component (コンポーネントを追加する)] ボタンを使って Box Collision コンポーネントを追加します。
-
ブループリントの イベント グラフ を開きます。 [Components] タブで Box コンポーネントを選択して、グラフを 右クリックして コンテキスト メニューを呼び出します。
-
「begin overlap」と打ち込んで、 [On Component Begin Overlap (コンポーネント上でオーバーラップを開始)] を選択してイベントを追加します。
-
Other Actor ピンをクリックして引き出して、コンテキスト メニューで「=」を検索します。 Equal (Object) エントリを選択してノードを追加します。
-
== ノードの 2 つ目の Object ピンをクリックして引き出し、コンテキスト メニューで「character」を検索します。 Get Player Character エントリを選択してノードを追加します。
-
B キーを押したままグラフ内をクリックして Branch ノードを追加して、 == ノードの boolean ピンを Branch ノードの入力に接続します。
-
OnComponentBeginOverlap ノードの出力ピンを Branch ノードの実行入力ピンに接続します。
-
グラフ エリアで 右クリック して、コンテキスト メニューで「level」を検索します。メニューから [Load Stream Level (ストリーム レベルをロード)] を選択します。
-
Level Name ピンを 右クリック して変数に昇格し、その変数に「LevelToStream」と名前を付け、 [Details (詳細)] パネルで [Editable (編集可能)] にします。
-
Make Visible After Load と Should Block on Load を切り替えて Load Stream Level ノードを有効にします。
この例では、このブループリントを使うとすべてのレベルはデフォルトのロード処理ビヘイビアが同じになりますが、これらを 編集可能な 変数にすることもできます。
-
Branch ノードの True の実行出力ピンを Load Stream Level ノードの入力実行ピンに接続します。
-
LevelStreamer ブループリントをレベル内に配置して、 およびストリーミング レベルとなる歩行可能なボリューム全体を囲むように配置とスケールを調節します。
-
Level to Stream として 「SunTemple_Streaming」 と入力します。
-
ストリーミング レベルをテストするには、Play In Editor を使います。
ブループリントでレベルをアンロードする
キャラクターが Box コンポーネントを出る時にレベルをアンロードするには、グラフは以下のロジックと非常によく似ていますが、 Unload Stream Level ノードで終わります。