ブループリントを使ってレベルをロード / アンロードする

ブループリントで作成したカスタム ストリーミング アクタでレベルをストリームする方法

Windows
MacOS
Linux

レベル ストリーミングのシナリオ

Sun Temple プロジェクトのメイン レベルから始めます。レベルを室内空間と、海が見える柱つきの中庭に分割します。 以下のワイヤーフレーム ビューでは、ティール色のワイヤーフレームがパーシスタント室内レベルを示し、黄色のワイヤーフレームがストリーミングされる中庭レベルを示します。 空と屋外が見えるように寺院の主要部にはいくつか窓があるので、空と海はパーシスタント レベルです。

LevelSplit.png

寺院の内装には、中庭を視界から隠す廊下を混ぜます。

StartLoading.png

プレイヤーが角を曲がって中庭に近づいてくる時にはストリーミング レベルがロードされて表示できるように、 ここで中庭レベルにストリーミングを開始します。

StreamingLevelVisible.png

設定対象は SunTemple_PersistentSunTemple_Streaming です。Player StartSunTemple_Persistent にあります。 そしてゲームのプレイヤーは Character で表現されます。

  1. コンテンツ ブラウザ から SunTemple_Persistent を開きます。

  2. Player Start を寺院の一番手前に移動します。

    PlayerStart.png

  3. ウィンドウ 上をクリックして、レベル を選択します。

    WindowLevels.png

  4. [Levels] のドロップダウン メニューをクリックし、[Add Existing... (既存の...を追加)] を選択して新規サブレベルを追加します。

    AddExisting.png

  5. 追加する SunTemple_Streaming[Open Level] ダイアログで選択してから、[Open] をクリックします。

    SunTempleStreaming_Select.png

  6. パーシスタント レベル 上で 右クリック して、ドロップダウン メニューから [Make Current] を選択します。

ブループリントを使ってレベルをストリーミングする

  1. コンテンツ ブラウザ を開いて、[Blueprint Class] を新規作成します。このクラスは アクタ に基づきます。

  2. 作成された Blueprint Class に「LevelStreamer」と名前をつけて保存します。

  3. ブループリント エディタLevelStreamer を開きます。

このシナリオの場合、Character がBox コンポーネントをオーバーラップしたら、2 つ目のレベルをストリーミングします。

  1. [Components] タブの [Add Component (コンポーネントを追加する)] ボタンを使って Box Collision コンポーネントを追加します。

  2. ブループリントの イベント グラフ を開きます。[Components] タブで Box コンポーネントを選択して、グラフを 右クリックして コンテキスト メニューを呼び出します。

  3. 「begin overlap」と打ち込んで、[On Component Begin Overlap (コンポーネント上でオーバーラップを開始)] を選択してイベントを追加します。

  4. Other Actor ピンをクリックして引き出して、コンテキスト メニューで「=」を検索します。Equal (Object) エントリを選択してノードを追加します。

  5. == ノードの 2 つ目の Object ピンをクリックして引き出し、コンテキスト メニューで「character」を検索します。Get Player Character エントリを選択してノードを追加します。

  6. B キーを押したままグラフ内をクリックして Branch ノードを追加して、== ノードの boolean ピンを Branch ノードの入力に接続します。

  7. OnComponentBeginOverlap ノードの出力ピンを Branch ノードの実行入力ピンに接続します。

  8. グラフ エリアで 右クリック して、コンテキスト メニューで「level」を検索します。メニューから [Load Stream Level (ストリーム レベルをロード)] を選択します。

  9. Level Name ピンを 右クリック して変数に昇格し、その変数に「LevelToStream」と名前を付け、[Details (詳細)] パネルで [Editable (編集可能)] にします。

    LevelToStreamVar.png

  10. [Make Visible After Load (ロード後に表示)][Should Block on Load (ロード時にブロック)] を切り替えて Load Stream Level ノードを有効にします。

    この例では、このブループリントを使うとすべてのレベルはデフォルトのロード処理ビヘイビアが同じになりますが、これらを 編集可能な 変数にすることもできます。

  11. Branch ノードの True の実行出力ピンを Load Stream Level ノードの入力実行ピンに接続します。

    FinalLoadBP.png

  12. LevelStreamer ブループリントをレベル内に配置して、 およびストリーミング レベルとなる歩行可能なボリューム全体を囲むように配置とスケールを調節します。

  13. Level to Stream として 「SunTemple_Streaming」 と入力します。

  14. ストリーミング レベルをテストするには、Play In Editor を使います。

ブループリントでレベルをアンロードする

CharacterBox コンポーネントを出る時にレベルをアンロードするには、グラフは以下のロジックと非常によく似ていますが、Unload Stream Level ノードで終わります。

UnloadLevel.png

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