コンテンツへスキップ

はじめに / エンジンの基礎

メモリーバンク

エピソードを通してプレイヤーの行動を記録します。

メモリーバンクの使い方

メモリーバンクには、ゲーム全体で使うすべてのメモリー、つまり変数が保存されます。どのエピソードでも新しいメモリーを追加でき、その後のゲーム内で参照できます。変数は、プレイヤーの行動を保存して後から参照するための仕組みです。数値を増やして関係値の上昇を表したり、起きた出来事を記憶したり(「第1話で彼にスムージーを投げつけた!」)、テキストを記憶して代名詞システムを設定したりできます。

メモリーを追加する

メモリーバンク内に新しいスロットを作成し、メモリーに名前を付けます。名前には、そのメモリーが最初に登場するエピソードを示す情報を入れると便利です。(例:Ep1_ChooseEvil

各メモリーには「デフォルト値」が必要です。これは、プレイヤーがゲームを開始した時点で持つ値だと考えてください。

次に、メモリーの種類を設定しましょう:

キャラクタースプライト:退屈そうな表情をした茶色い髪のキャラクター。背景は透明。

はい/いいえ、一番よく使うタイプです!

プレイヤーが何かをしたか、しなかったかだけを確認したい場合に使うメモリーです。

質問例:恋愛対象キャラとキスした?ボブは生きている?殺人事件を目撃した?

どのような仕組みですか?

例:恋愛対象キャラにキスする選択肢があり、次のエピソードで相手にそのことを話してほしいとします。次のようにチェックします:

  • 恋愛対象キャラとキスした? 👉 第1ルート
  • それ以外 👉 第2ルート

デフォルトが「いいえ」なのはなぜですか?

デフォルト値は、プレイヤーがゲームを開始した時点の状態を表します。まだ恋愛対象キャラとキスしていないため、デフォルトは「いいえ」です。

テキスト

名前やラベルを参照するメモリーに使います。

質問例:プレイヤーはどのニックネームを選んだ?主人公はどの町の出身?

どのような仕組みですか?

例:ニックネームを設定します。ファンがパンパーニッケル、スカウト、ジェリービーンという3つのニックネームから選べるようにするとします。この場合、2つのニックネーム用メモリーを作成する必要があります。これにより、後から次のようにチェックできます:

  • ニックネームはパンパーニッケル? 👉 第1ルート
  • ニックネームはスカウト? 👉 第2ルート
  • それ以外 👉 第3ルート

3つ目の選択肢が「ニックネームはジェリービーン?」ではないのはなぜですか?

選択肢メモリーを設計するときは、必ず条件のない選択肢を1つ残す必要があります。これにより、プレイヤーがゲームの途中で進めなくなるのを防げます。上の例では、ジェリービーンを選んだ場合にのみ第3ルートへ進むため、条件を追加する必要はありません。

ゲーム内のスクリーンショット:プレイ中、キャラクターが会話吹き出しの中で話している。

数値

数を増減するメモリーに使います。

質問例:プレイヤーはゴールドをどれくらい持っている?プレイヤーのレベルはいくつ?

どのような仕組みですか?

例:ゴールドを集めます。ファンがゲーム内でゴールドを獲得できるようにするとします。その後、所持しているゴールドに応じて特定のアイテムを購入できるようにします。これにより、次のような順序でチェックできます:

  • プレイヤーは20ゴールド以上持っている? 👉 第1ルート
  • それ以外 👉 第2ルート

「Remember」(記憶)と「Check」(チェック)でメモリーを使う

スーパーヒーローとなり、悪役を攻撃する際に「炎」か「氷」の力を選べるシナリオを設定しましょう。その後、悪役は炎が本当の弱点だと明かします。最初の選択を記憶しておき、序盤で「炎」を選んだプレイヤーに追加の選択肢を表示します。

選択をゲームに記憶させる。

まず、このメモリーを保存するようメモリーバンクに設定します。これにより、ゲーム内の以降のどのエピソードからでも参照できます。

メモリーバンク内に新しいスロットを追加し、メモリーに名前を付けます。今回は「used_fire」と名付けます。後で確認したい「質問」は「プレイヤーは炎を使うことを選んだ?」です。答えは「はい」か「いいえ」のどちらかなので、はい/いいえタイプを使います。

エディターのスクリーンショット:used_fireという名前のメモリーバンクスロットが、はい/いいえタイプ、デフォルト値「いいえ」に設定されている。
🚨 メモリー名に使用できるのは英字と数字のみです。アンダースコアを除き、特殊文字やスペースは使用できません。
キャラクタースプライト:得意げな表情をした長い髪のキャラクター。背景は透明。
ゲーム内のスクリーンショット:プレイ中に「炎を使う」または「氷を使う」という選択肢が表示されている。

選択肢にメモリーを関連付ける。

各選択肢には結果があります。これははい/いいえの選択なので、状態が変わる分岐にだけメモリーを設定すれば十分です。プレイヤーが炎を選んだ場合、「used_fire」の状態を「いいえ」から「はい」に変更します。メモリーの値は「Remember」(記憶)ステップを使って変更します。

エディターのスクリーンショット:炎の分岐ノードで、used_fireを「はい」に設定する「Remember」(記憶)ステップ。

後でメモリーをチェックする。

ゲームが進み、炎を使ったかどうかを悪役に話してほしいとします。この場合、「Check」(チェック)ステップを使ってメモリーを確認する必要があります。

「Check」(チェック)ステップを作成し、メモリーを設定します。今回はused_fire(はい)が真かどうかをチェックし、真なら一方の分岐へ進ませます。真でなければ、もう一方の分岐へ進みます。

🚨 現在は、チェックを設定する前に移動先ノードを作成する必要があります。このステップ内からノードを作成することはできません。
エディターのスクリーンショット:used_fireが「はい」と完全に一致するかをテストし、真と偽の移動先に分岐する「Check」(チェック)ステップ。

これで、メモリーの基本、「Remember」(記憶)ステップで値を変更する方法、「Check」(チェック)ステップで値に応じた分岐を作る方法が分かりました。次は、メモリーを使った関係性システムの設定方法を確認しましょう!

よくある質問

プレイヤーが戻って複数の選択肢を選べるループがあります。そのうちのあるルートでは関係値を獲得できるため、ポイントを獲得し続ける無限ループを作れることにプレイヤーが気付きました。そのポイントを一度しか獲得できないようにする方法はありますか?

  1. プレイヤーがポイントを獲得できるルートの名前に関連した、はい/いいえ変数を追加します。たとえば、第3話でLIから羽根を受け取るルートなら、Ep3LIFeatherと名付けます。デフォルトは「いいえ」にします。
  2. プレイヤーにポイントを付与するステップの直後に、「Remember」(記憶)ステップEp3LIFeather = Yesを追加します。
  3. 選択肢から関係値が付与されるノードへ直接進ませる代わりに、まず新しい「Check」(チェック)ノードへ進ませ、Ep3LIFeatherを確認します。「はい」なら、すでにポイントを獲得済みなので、関係値を増やすステップがないバージョンのノードへ進ませます。(ゲームによっては「このシーンのポイントはすでに獲得済みです!」というステップを追加します)。「いいえ」なら、初めてこのシーンを見ているため、関係値が増えるルートへ進ませます!

代名詞システムはどう設定しますか?

詳しい説明は「代名詞システム」をご覧ください!