テキストアドベンチャーで一文を一字ずつ表示するとき、途中までの否定でプレイヤーを誤判断させないには
文字を一字ずつ表示する場合、行動を選べるようにするのは、否定・逆接・制約が最後まで伝わってからです。意味のつながりに沿って表示テキストを分割した原稿に、情報がそろう時点と行動を実行できる時点を別々に記録するとともに、表示演出をスキップしても残すべき情報を定めます。

はじめに
本文を一字ずつ表示する場合は、まず行動の判断を左右する否定、逆接、制約を探します。それらを、制約のかかる前の部分と合わせて一つのまとまりとして扱い、そのうえで操作を解禁するタイミングを決めます。一定の文字数、読点の位置、あるいは「できる」という表現が出た時点を基準にしてはいけません。後続の文によって「実行できるか」「何を先にすべきか」「誰や何を対象にするか」が変わりうるなら、まだ安心して判断できる段階ではありません。
情報がそろうことと、条件が満たされることを分ける
「この手紙は持ち出せるが、先に外す必要があるのは展示用クリップだ。」これが「この手紙は持ち出せる」まで表示された時点では、読み手には無条件の許可として伝わります。後半が現れて初めて、手順を伴う許可になります。全文には矛盾がなくても、表示途中の状態では誤った行動が妥当に見える場合があります。
そのため、制約が最後まで表示されたかどうかと、その制約が求める条件が物語の中で満たされたかどうかを、別々に記録します。前者は、いつプレイヤーに行動の判断を委ねられるかを決め、後者は、その行動を実行できるかを決めます。「先に外す必要があるのは展示用クリップだ」と読み終えたからといって、クリップが外れたわけではありません。
以下では、架空の教材例「展示ケースから手紙を取る」を使います。テキスト、状態、操作の取り決めはすべて説明のために作ったものであり、実際のユーザー体験、実測結果、DramaFork の製品機能ではありません。特定のエンジンにも依存しません。初期状態では展示用クリップは外れておらず、プレイヤーはまだ直接手紙を取れません。
句読点ではなく、意味の依存関係で区切る
まず全文を書き、その後、後ろから順に、それぞれの制約表現がどの部分にかかるかを確認します。本例の原稿は次のとおりです。「この手紙は持ち出せるが、先に外す必要があるのは展示用クリップだ。展示用クリップを外しても便箋は傷まないが、引っ張ってはいけないのは封筒だ。ガラスの縁に光が落ち、青白い潮の跡のような線を描いている。」
一文目の「が」は、手紙を持ち出す許可に条件を付けています。その前の部分だけを表示して、手紙を取れるようにしてはいけません。二文目の「が、引っ張ってはいけない」は操作方法の禁止事項を補うもので、クリップを外す操作が確定した後に出してはいけません。三文目は雰囲気を伝えるだけで、現在の行動の判断材料を変えないため、別の単位にできます。
ここでいう「単位」は、意味を一まとまりとして最後まで伝える必要がある範囲を指し、文字を一度にすべて表示するという意味ではありません。単位の内部では一字ずつ表示しても構いませんが、関連する行動は、必要な単位がすべて表示されるまで待たせます。依存関係は文をまたぐこともあります。一文目を表示し終えても、二文目でクリップの外し方の制約を補っているなら、クリップを外す操作はまだ解禁できません。
「〜でない限り」「〜の場合に限り」「〜ではない」といった構文も確認します。「引き出しを調べられるが、中に手紙はない」は探索への期待を変え、「引き出しを開けられるが、書類を持ち出してはいけない」は行動の範囲を変えます。キーワードを列挙するだけでなく、後半が具体的に何を取り消し、何を狭めているのかを書き出してください。
表示テキストを引き継げる表にする
本例では、操作の判断材料となる二文を最後まで伝えてから、クリップを外せるようにします。原文の逆接による流れを残せますが、その分、プレイヤーは長めの説明を待つことになります。テンポが悪ければ条件を先に置く書き方に変えられますが、その場合は元の意味を保てているか、改めて確認する必要があります。
表の「スキップ」は、現在表示中の単位の残りを即座に表示することだけを指します。内容を省いたり、次の段落へ進んだりする意味ではありません。すでに表示された原文は残し、制約を要約文に置き換えないでください。
| 表示単位 | まだ伝わりきっていない意味 | 完了条件 | 表示演出をスキップした結果 | 操作を解禁するタイミング |
|---|---|---|---|---|
| 1:この手紙は持ち出せるが、先に外す必要があるのは展示用クリップだ。 | 持ち出しの許可に前提条件があるか | 「先に外す必要があるのは展示用クリップだ」がすべて表示される | 一文目を最後まで表示し、その文に留まる | まだ操作は解禁しない。二文目にも行動の制約がある |
| 2:展示用クリップを外しても便箋は傷まないが、引っ張ってはいけないのは封筒だ。 | クリップを外す際に禁止される方法があるか | 「引っ張ってはいけないのは封筒だ」がすべて表示される | 二文目を最後まで表示し、一文目も残す | 「展示用クリップを外す」を解禁。手紙はまだ取れない |
| 3:ガラスの縁に光が落ち、青白い潮の跡のような線を描いている。 | 新たな行動条件はない | 操作を待たせる条件にはしない | 雰囲気の描写を最後まで表示し、操作の判断材料を残す | すでに解禁されている操作は変えない |
| 4:展示用クリップを外した。封筒はもう固定されていない。 | クリップを外し終えたか | 結果が最後まで表示され、物語の状態も更新されている | 結果を最後まで表示する。手紙を自動で取ることはしない | 「手紙を取る」を解禁 |
単位4は、プレイヤーがクリップを外すことを選んだ後にだけ表示します。単位3の文字送り中にその操作を確定した場合、本例では先に雰囲気の描写を終え、その後で単位4を表示します。前の操作説明も確認用に残します。まだ更新中の古い雰囲気描写が、クリップを外した結果を上書きしないようにしてください。
この表を流用する場合は、各行がどの前文に依存しているかを明記します。「完了条件」を単に「表示終了」とせず、必ず現れるべき具体的な意味を書いてください。そうすれば改稿時にも、どの言葉が操作の解禁を左右するかを判断できます。
表示途中の状態で、解禁のたびに確認する
紙面で確認するときは、まだ表示されていない文字を紙で隠し、見えている部分だけで、その時点のボタンが妥当か判断します。まず「この手紙は持ち出せる」で止めます。ここで「手紙を取る」を実行できるなら、失敗と記録します。プレイヤーには前提条件が伝わっていないのに、操作はすでに受け付けられているからです。
次に「が、先に外す必要があるのは」で止めます。読み手には前提条件があることは伝わっていますが、その対象がまだ示されていないため、解禁できません。一文目がすべて表示されたら、二文目にも必要な制約がないか確認します。本例では「引っ張ってはいけないのは封筒だ」が続くので、クリップを外す操作も、それが最後まで現れるのを待つ必要があります。
続いて「展示用クリップを外しても便箋は傷まないが、引っ張ってはいけないのは」という状態を確認します。否定が表示されたからといって、その適用範囲まで伝わったわけではありません。対象の「封筒」が現れて初めて、プレイヤーに禁止事項が完全に伝わります。最後に、二文がすべて表示された状態で、クリップは外せるが、直接手紙は取れないことを確認します。
表示演出のスキップも、同じ停止位置で一つずつ確認します。どこからスキップしても、現在の単位の全文が表示され、依存関係に基づいて操作の可否が再判定される必要があります。「アニメーションをスキップした」を「条件を満たした」と扱ってはいけません。残りの文字を表示する入力は、それだけに使います。その入力で、現れたばかりの行動まで選択させず、一つの操作に二つの異なる意図を担わせないようにします。
これらはあらかじめ定めた紙面上の判定基準であり、テストに合格した記録ではありません。実際の作品に組み込んだ後も、マウス、キーボード、その他の実際の入力手段が、同じ解禁ルールに従っているか確認が必要です。
雰囲気の描写は続けられるが、新たな制約は後出しにしない
必要な判断材料がそろい、後続の文が光、音、登場人物の姿勢を描写するだけなら、段落全体の表示を待たずに行動させても構いません。基準は、その後の文が現在の選択の対象、許可、順序、代償を変えるかどうかです。描写らしく聞こえるかどうかではありません。
たとえば雰囲気の文を「ガラスの縁で音がした。展示用クリップはまだ完全には緩んでいない」に変えると、それは状態を伝える情報になります。元の解禁タイミングは使えません。末尾の文を書き足すたびに、新しい行動の依存関係が生まれていないか、さかのぼって確認してください。
条件を先に置くのも修正方法の一つです。「先に展示用クリップを外して初めて、この手紙を持ち出せる。」冒頭を直接の許可と受け取られる可能性は減りますが、語りのリズムは変わります。あえて否定を後ろに置いて緊張感を作るなら、文字送りの演出を残しつつ、関連する行動の解禁を遅らせられます。まだ伝えていない情報による不利益を、プレイヤーに負わせないでください。
この原稿で扱うのは、時間とともに文字が現れる際の情報の提示順序だけです。プレイヤーが理解したことを証明するものではなく、幅の狭い画面での見やすさや、翻訳文の意味の確認に代わるものでもありません。引き継ぎ時には全文原稿、分割表、失敗となる停止位置を残します。否定、例外、雰囲気を描く末尾の文を変更したら、影響を受ける操作の解禁タイミングを改めて記録してください。






