NarraLeaf

実行時のインターフェース

ゲームの実行中に画面に重なっているもの。ページ、ゲーム UI、レイヤーがそれぞれどこに現れ、ゲームの開始、ページを開いたとき、ゲームの終了で画面がどう変わるか

ゲームの実行中、画面の内容は層になって重なっています。下から順に舞台、ゲーム UI、ページ、レイヤーで、上の層が下の層を覆います。

画面上(上から順に)
  1. 確認、通知ダイアログ
    現在の画面の上に重なり、すべてのページより上にある
    レイヤー
  2. タイトル、設定、セーブ、ログ
    一度に 1 つだけ表示される
    ページ
  3. 会話、選択、通知、クイックメニュー
    ゲームの開始時に自動で表示される
    ゲーム UI
  4. 背景とキャラクター
    ゲームの開始時に表示され、ストーリーが制御する
    舞台
重なる順序は常に同じです。舞台とゲーム UI はゲームの進行中にだけ存在します
層UI パネルでは現れ方存在する時期
レイヤー任意のページShow Layer(レイヤーを表示)または Show Confirm(確認を求める)で開くいつでも
ページInterface Type(インターフェースの種類)が Page(ページ)入口ページはゲームの起動時に開き、ほかは Go Page(ページへ移動)で開くいつでも
ゲーム UIInterface Type が Game UI(ゲーム UI)ゲームの開始時に自動で表示され、開く操作はいらないゲームの進行中
舞台UI パネルにはないStart Game(ゲームを始める)または Load Save(セーブを読み込む)で表示されるゲームの進行中

UI パネルにレイヤー専用の種類はありません。どのページも、Go Page で開くことも、Show Layer で画面の上に重ねて表示することもできます。

1 回のプレイで画面がどう変わるか

ここでは Skeleton(スケルトン)テンプレートから作成したプロジェクトを例に、1 回のプレイを追います。

ゲームの起動

画面上(上から順に)
  1. タイトル
    入口ページのスプラッシュと入れ替わった
    ページ

ゲームは入口ページのスプラッシュから始まります。UI パネルではこのページに Entry page(入口ページ)と表示され、削除できません。Set as Entry Page(入口ページに設定)で、どのページでも入口ページにできます。この時点では舞台もゲーム UI もありません。

スプラッシュはロゴと注意書きを表示した後、タイトルを指定して Replace Page を実行します。タイトルがスプラッシュに代わってスタックの一番下に入るため、その後スプラッシュに戻ることはありません。

別のページを開く

画面上(上から順に)
  1. 設定
    ページ
画面にないもの
  1. タイトル
    Go back でここに戻る
    非表示ページ

Go Page で設定を開くと、タイトルに代わって画面に表示されます。タイトルは描画されなくなりますが、記憶されています。Go back(前のページに戻る)で設定を閉じると、タイトルが入場アニメーションを再生し、Surface Init(サーフェスの初期化)がもう一度発生します。

Go Page を使うたびにページが 1 つずつ積み重なり、Go back は一番上のページを 1 つ閉じます。一番下のページで Go back を使っても何も起きません。ページを None にした Go Page は、一番下のページより上のページをすべて閉じます。

ゲームの開始

画面上(上から順に)
  1. クイックメニュー
    On Stage(舞台上)スロット
    ゲーム UI
  2. 会話、選択、通知
    Dialog、Choice、Notification スロット
    ゲーム UI
  3. 背景とキャラクター
    舞台
画面にないもの
  1. タイトル
    非表示ページ

タイトルのボタンが Start Game を実行します。すべてのページが非表示になり、舞台が現れ、その上にゲーム UI が描画されます。このとき画面にページはなく、プレイヤーが見ているのはストーリーとゲーム UI です。

ゲーム UI を開く必要はありません。ゲームが始まると、プロジェクト内の各ゲーム UI がそれぞれのスロットに表示され、ゲームが終わるとまとめて取り除かれます。ゲーム UI のないスロットでは、組み込みのダイアログボックス、選択肢メニュー、通知が使われます。

ゲーム中にページを開く

画面上(上から順に)
  1. ログ
    背景がわずかに透け、下の場面が見える
    ページ
  2. クイックメニュー
    一時的に非表示ゲーム UI
  3. 会話、選択
    一時的に非表示ゲーム UI
  4. 通知
    Notification スロットは表示されたまま
    ゲーム UI
  5. 背景とキャラクター
    舞台
画面にないもの
  1. タイトル
    非表示ページ

クイックメニューのログボタンが Go Page を実行します。ゲームの進行中に開いたページは舞台の上に描画され、ページ自身の背景はわずかに透けます。ページが表示されている間は次のようになります。

  • ストーリーは現在の行で止まります。クリック、送りキー、オートモードのいずれでも先に進みません。
  • Dialog、Choice、NVL、On Stage スロットのゲーム UI は一時的にフェードアウトし、ページを閉じると戻ります。Notification スロットのゲーム UI は表示されたままです。
  • クリックとキー入力はページが受け取ります。

Go back でログを閉じるとゲームに戻ります。ゲーム中に開いたページからさらに Go Page を使うと、ゲーム開始前と同じようにページが積み重なります。Clear Page(ページをすべて閉じる)は、ゲーム中に開いたページをまとめて閉じます。

レイヤーを重ねる

画面上(上から順に)
  1. 確認
    モーダル
    レイヤー
  2. ログ
    表示されたまま、クリックは受け取らない
    ページ
  3. クイックメニュー
    一時的に非表示ゲーム UI
  4. 会話、選択
    一時的に非表示ゲーム UI
  5. 通知
    ゲーム UI
  6. 背景とキャラクター
    舞台
画面にないもの
  1. タイトル
    非表示ページ

ログのタイトルボタンが Show Confirm を実行し、タイトルに戻るかどうかを尋ねます。確認はログの上に重なり、ログはその下に表示されたままです。Escape を押すと、キャンセルボタンと同じく答えを返さずに確認が閉じ、ログは開いたままです。

ゲームの終了

画面上(上から順に)
  1. タイトル
    ページ

プレイヤーが確認すると、ページにタイトルを選んだ Quit Game(ゲームを終了)が実行されます。舞台とゲーム UI が取り除かれ、ゲーム開始前に開いていたページとすべてのレイヤーが閉じられ、タイトルが唯一のページになります。

ページ

  • 画面に表示されるページは一度に 1 つです。別のページに置き換えられたページは描画されず、Go back で再び入場します。
  • Go back、Go Page、Clear Page は一番下のページを閉じません。ゲームの起動時は入口ページ、Quit Game の後は Quit Game が開いたページです。
  • Replace Page はページを開き、置き換えたページを閉じます。一番下のページで実行すると新しいページがその位置に入り、スプラッシュページはこの方法でタイトルページに引き継ぎます。
  • ゲームの開始前、ページの下には何も描画されません。ゲームの進行中に開いたページは背景がわずかに透けた状態で舞台の上に描画され、ストーリーは現在の行で止まります。
  • Start Game と Load Save はすべてのページを非表示にします。ゲームの進行中、Go back と Clear Page でこれらのページが再び表示されることはなく、ゲームの終了時に Quit Game によって閉じられます。
  • ページは Page(ページ)コンポーネントを使って別のページの中に表示することもできます。埋め込まれたページは外側のページの一部であり、上で説明した重なりには加わりません。

ゲーム UI

  • ゲーム UI はスロットに作成します。スロットは Dialog(ダイアログ)、Choice(選択肢)、Notification(通知)、NVL、On Stage(舞台上)の 5 つで、各スロットにゲーム UI は 1 つだけです。
  • ゲーム UI はゲームの進行中にだけ存在します。ゲームの開始時に表示され、終了時に取り除かれます。Go Page で開くものではありません。
  • 最初の 4 つのスロットは、ゲームに組み込まれた対応するインターフェースを置き換えます。ゲーム UI のないスロットでは組み込みのものが使われるため、Dialog スロットのゲーム UI を削除してもダイアログボックスはなくなりません。
  • On Stage スロットは何も置き換えません。クイックメニューや HUD のように舞台の上に常に置いておくものに使います。空いている部分はクリックを受け止めないため、そこをクリックすると舞台に届き、ストーリーが進みます。
  • Notification スロットは表示専用で、クリックもキー入力も受け取りません。
  • ゲームの進行中にページを開くと、Notification 以外のスロットは一時的にフェードアウトします。

レイヤー

Show Layer はページを現在の画面の上に重ねて表示し、それまで表示されていたものはそのまま残します。

  • レイヤーは、後から開いたページも含め、すべてのページより上に表示されます。
  • レイヤーは Modal(モーダル)として開くことができます。その場合、下にあるものはクリックを受け取らず、キー入力はレイヤーが受け取ります。モーダルでないレイヤーは、下のページの操作を妨げません。
  • モーダルのレイヤーが表示されている間、ストーリーは現在の行で止まります。レイヤーがゲーム UI をフェードアウトさせることはありません。
  • ゲーム中に表示したレイヤーは、ゲーム中に開いたページと同じく、背景がわずかに透明になります。
  • レイヤーは、それを開いたページが閉じると一緒に閉じます。
  • Go back は一番上の Dismissible(閉じられる)レイヤーを先に閉じ、そのようなレイヤーがないときにだけページを閉じます。Hide Layer(レイヤーを隠す)は指定したレイヤーを、Close This Layer(このレイヤーを閉じる)は自分が属するレイヤーを閉じます。
  • 同じグループのレイヤーは順番に表示され、前のレイヤーが閉じてから次のレイヤーが現れます。
  • Show Confirm が開く確認は、モーダルで閉じられるレイヤーです。
  • ゲームの開始、セーブの読み込み、ゲームの終了では、すべてのレイヤーが閉じます。

クリックとキー入力

クリックは複数の場所が同時に受け取れますが、キー入力を受け取るのは常に 1 か所です。表を上から読み、最初に当てはまる行が適用されます。

画面の状態クリックを受け取るものキー入力を受け取るもの
モーダルのレイヤーがある一番上のモーダルのレイヤーと、それより上のレイヤー一番上のモーダルのレイヤー
ページがある現在のページとすべてのレイヤー現在のページ
ゲームの進行中で、ページがないゲーム UI、レイヤー、舞台ゲーム UI

キー入力はまず App logic(アプリロジック)に届き、その後で表の 1 か所に届きます。

Dev Mode のレイヤーパネル

Dev Mode の Layers(レイヤー)パネルは、その時点で画面にあるものを下から順に、舞台、ゲーム UI、ページ、レイヤーの順で一覧にし、クリックを受け取るものとキー入力の行き先を示します。一時的に非表示になっているゲーム UI と、画面に出ていないページも区別して表示し、プレイヤーがダイアログボックスを隠している間はそれに Hidden(隠れている)と表示します。Dev Mode のデバッグツールのメニューから Layers を選ぶと開きます。

ストーリーが終わったとき

ストーリーが最後の行まで進むと、ビルドバリアントの Page shown when the story ends(ストーリーが終わったときに出すページ)で選んだページが、Quit Game と同じように表示されます。Show nothing(何も出さない)を選んだ場合は、最後のフレームが画面に残ります。

関連項目

  • UI:ページとゲーム UI の作成
  • Surface:ページのライフサイクルとブループリントのイベント
  • App ノード:Go Page、Go back、Show Layer などのピン

このページの目次