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

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

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

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

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

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

フィードバックを送信