Labyrinth – Gameflowサブレベル

Gameflowサブレベルの役割

Gameflowサブレベルは、マップに一つだけ存在します。

マップ中のゲーム進行はGameflowサブレベルが管理し、進行度合いによって他のサブレベルにイベントを発行します。そのため、実質的にマップ中のゲームを管理する司令塔の役割を担っています。

Gameflowサブレベルが担う役割は以下の通りです。

  • PlayerStart
  • マップ開始時のセットアップ
  • ゲーム進行の制御
  • サブレベルのロード・アンロード
  • 進行に伴う各機能へのリモートイベント通知
  • イベント起動用ボリューム判定
  • オートセーブ
  • BGM変更
  • etc…

PlayerStart

ゲーム開始時のプレイヤーを生成するためのアクターを管理します。

LabyrinthではPlayerStartアクターは使用しません。PlayerStartアクターを使用するとGameModeで設定されているPawnを生成しますが、この方法で生成するとNavMeshで移動する際のAIControllerが機能しないためです。

したがって、プレイヤーキャラクター用のアクターを直接配置し、そのアクターをプレイヤーとして動作させるような実装を行います。

マップ開始時のセットアップ

マップ(パーシスタントレベル)のBeginPlayにて、Gameflowサブレベルは他のサブレベルより先に読み込まれます。

他のサブレベルのロードなど、必要なセットアップを行います。

マップ開始時のセットアップの詳細は以下の文書をご確認ください。

Labyrinth – マップ開始時の処理

2019年12月4日

ゲーム進行の制御

ゲームの進行はGameflowサブレベルが責任者となって管理します。

ゲーム進行に関する詳細は以下の文書をご確認ください。

Labyrinth – ゲーム進行管理

2019年12月4日

サブレベルのロード・アンロード

Gameflowサブレベルは他のサブレベルのロード・アンロードを管理します。

サブレベルのロード・アンロードが発生するシチュエーションは以下の通りです。

  • ゲーム開始時にセーブデータをもとに必要なサブレベルをロードするとき
  • ゲーム中にプレイヤーが移動して未ロードのエリアに近づいたとき
  • カットシーン再生など、何らかのトリガーによって突発的にイベントが発生したとき

サブレベルのロード・アンロードに関するAPIは以下の文書に記載されています。

進行に伴う各サブレベルへのイベント通知

ゲーム中の各サブレベルへのイベント通知はGameflowサブレベルが発行します。

ストーリーが進んだことによるカットシーンの開始など、Gameflowサブレベルからイベント通知を発行します。

GameFlow _ REvt _ Cutscene_01_Play

  • 赤字 … 発信元のレベル名
  • 青字 … リモートイベントだという目印
  • 緑字 … コマンド名

参考

ボリュームトリガー判定

ステージ上のイベント発生用のボリュームや、単に壁としてのコリジョンボリュームはGameflowサブレベルに配置します。

オートセーブ

ゲーム進行に合わせてオートセーブする際は、基本的にGameflowサブレベルからのみ、呼び出します。

BGM変更

ゲーム進行に合わせてBGMや環境音を変更する場合はGameflowサブレベルから操作します。