テキストアドベンチャーで一手戻した後、古い応答文を現在の事実と混同させないために
行動を取り消したら、その結果を描く文章も現在の本文から外す必要があります。「取り消し時の本文整理シート」で無効になった結果、有効な前提、現在の事実を一文ずつ分け、プレイヤーが行動を選び直せる位置へ読者を戻しましょう。

はじめに
一手戻した後は、取り消した行動に依存する応答文を現在の物語から明確に切り離し、行動前から引き続き成り立つ状況を残したうえで、現在の事実と入力し直す位置を示します。「取り消しました」と表示するだけで、「あなたは鍵を渡した」という文が通常の本文と同じように並んでいれば、読者は現在のルートで起きた出来事だと受け取るかもしれません。
以下では、架空の教材用事例を使って「取り消し時の本文整理シート」をひととおり埋めます。登場人物、展開、編集案はいずれも独自に作成した例であり、実際のユーザー事例や検証結果、DramaFork の製品機能ではありません。特定のエンジンも前提にしていません。
1. どの文の手前まで戻すのかを先に決める
舞台は資料室の扉の前です。有効な直前の本文は、次のとおりです。「あなたは銅の鍵を握り、扉の前に立っている。門番が手を差し出して言う。『鍵を渡してくれ。扉を開けてやろう』」プレイヤーが「鍵を渡す」と入力すると、こう返ってきます。「あなたは彼の手のひらに鍵を置いた。彼は鍵をしまい、脇へよけた。あなたは資料室に入り、机の上の赤い封筒を見つけた。」
ここでプレイヤーが直前の行動を取り消します。この例では、鍵を渡す行為と、それによって生じた一連の結果を一手に含めます。取り消した後は、門番が鍵を要求し、プレイヤーがまだ応じていない時点に戻ります。鍵は主人公の手元にあり、主人公はまだ扉の外にいて、赤い封筒もまだ目にしていません。
どの文を取り消すか決めるには、作者がまずこの境界を明示しなければなりません。「鍵を渡す」と「部屋に入る」を別々の独立した行動として扱う作品では、「一手戻す」の範囲が異なる場合があり、この例をそのまま当てはめることはできません。境界が決まっていないなら、先に戻り先の地点を確定します。曖昧な「前に戻る」という言葉で、その判断を済ませないでください。
取り消しと、物語の中での取り戻しも区別します。「あなたは門番から鍵を取り返した」と書くと、取り返すという新しい出来事が加わり、実際に鍵を渡したことも示唆します。この例で伝えたいのは、現在のルートではまだ渡していないということなので、「鍵はまだあなたの手の中にある」と書きます。
2. 行動への依存関係をたどり、一文ずつ位置づける
文が無効になるかどうかは、「鍵を渡していなくても、この文には独立した根拠があるか」と問い直すと判断できます。展開として自然に見えるというだけでは足りません。取り消しの境界より前に、すでに成立していた内容を根拠にする必要があります。
「あなたは彼の手のひらに鍵を置いた」は、取り消した行動そのものなので無効です。「彼は鍵をしまい」も受け渡しに依存するため無効です。この例の「脇へよけた」も鍵を渡されたことへの反応なので、同じく無効になります。「資料室に入り」「赤い封筒を見つけた」は、その前に通行を許されたことに依存しています。鍵に再び言及していないからといって、残すことはできません。
扉の前という位置、鍵を持っていること、門番の要求は、行動前から成立しているため有効です。門番が手を差し出している描写も残せます。鍵を受け取った後の反応ではなく、要求の一部だからです。区別の基準は因果関係であり、段落の長さや画面上で前後にどれほど離れているかではありません。
有効な内容と無効な内容が混在する文は分けます。たとえば「扉の外では雨が降っていて、彼はあなたから渡された鍵をしまった」なら、独立して成立しうるのは前半だけです。雨が降っていることを以前に示していれば、その環境描写は残し、後半を現在の本文から外せます。雨が今回の応答文で初めて加わった情報なら、別途根拠を確認する必要があり、安易に有効だと決めつけてはいけません。
読者が封筒について読んだことと、現在のキャラクターが封筒を見たことは別です。続く本文に「あなたは先ほど見た赤い封筒を思い出す」とは書けません。文章を取り消しても読者の記憶は消せません。作者が整理できるのは、キャラクターが何を経験したかと、どの記述が現在の物語に属するかです。
3. 取り消し時の本文整理シートを埋める
このシートは判断を記録すると同時に、そのまま原稿に使える取り消し表示の文面を用意するものです。別の場面に使うときは項目を残し、内容を一つずつ置き換えてください。「取り消し成功」だけで済ませないようにします。
| 項目 | この例での記入内容 |
|---|---|
| 取り消しの境界 | 門番が鍵を要求した後、プレイヤーが応じる前に戻す。受け渡しと、それに続く一連の結果をまとめて取り消す |
| 無効になる応答文 | 鍵を渡す、相手が鍵をしまう、脇へよけて通す、資料室に入る、赤い封筒を見る |
| 残す前提 | 主人公は扉の外で銅の鍵を持っている。門番は手を差し出し、鍵を要求している |
| 現在の事実 | 鍵はまだ主人公の手元にある。主人公は資料室に入っていない。現在のルートでは受け渡しは起きていない |
| 行動を選び直す案内 | 門番の要求にあらためて返答する。鍵を渡す、用途を尋ねる、今は渡さない、といった行動を選べる |
この例では古い記録を残し、独立した取り消し済みの領域に置きます。読者に見せる文面は、次のようにひと続きで書けます。
取り消しました:鍵を渡す。
以下は取り消した試行の応答文であり、現在のルートには含まれません。あなたは彼の手のひらに鍵を置いた。彼は鍵をしまい、脇へよけた。あなたは資料室に入り、机の上の赤い封筒を見つけた。
取り消し済みの記録はここまでです。
現在:あなたはまだ資料室の扉の外に立ち、銅の鍵を握っている。門番は手を差し出したまま、先ほどの要求への返事を待っている。
ここから行動を選び直してください。鍵を渡す、鍵の用途を尋ねる、または今は渡さない。
三つの案内は、この例で続きの執筆に向けて想定している方向に対応しています。自分の原稿に使う場合は、実際に続きがある行動だけを並べてください。自由入力方式なら、「この要求にどう応じるか、下に入力してください」と書くこともできます。ただし、案内は新しい入力欄のすぐそばに置き、読者が古い結果の続きとして書き進めないようにします。
4. 削除・折りたたみ・残して注記する方法の選び方
無効な段落をそのまま削除する方法は、試行の過程を読み返す必要がない本文に向いています。読む道筋は最短になりますが、古い段落が消えると、どこまで戻ったのか分からなくなることがあります。そのため、短い取り消しの説明と現在の事実は必要です。空白だけを残してはいけません。
折りたたみは、参照する入口を残しつつ、古いルートが本文の流れを占めないようにしたい構成に向いています。折りたたみの見出しは「取り消し済みの試行:鍵を渡す」とし、「受け渡し成功」のままにはしません。展開後の最初の文でも、取り消し済みであることを再度示します。そうしないと、展開した内容から読み始めた読者が、有効な経験だと受け取るおそれがあります。
文章を残して無効であることを明記する方法は、試行を比較したいテキストに向いています。この例が採用している方法ですが、本文が長くなるため、無効な領域の始まりと終わりを明確にする必要があります。文字色を薄くする、取り消し線を引く、段落末に「取り消し済み」と添える、といった処理だけでは、その記述の位置づけを十分に伝えられません。特にプレーンテキストとしてコピーすると、肝心な区別が失われやすくなります。
どの方法でも、取り消しの説明の直後に現在の事実を置き、有効な本文の末尾で行動を選び直すよう案内します。具体的な表示は作品の構成上の条件によります。ここで比較しているのは編集案であり、いずれかのプラットフォームにこれらの操作が実装されていると主張するものではありません。
5. 再び鍵を渡す場合も、新たな本文として位置づける
プレイヤーがもう一度「鍵を渡す」と入力しても、古い記録から無効のラベルを外すだけで済ませてはいけません。同じ入力だからといって、二度の結果が同じだとは限りません。先に用途を尋ねていれば、門番が応答する前提はすでに変わっている可能性があります。元の応答文にあった通行の許可や入室も、あらためて確認する必要があります。
この例ですぐに同じ行動をやり直し、前提がまったく変わっていなくても、今回の応答文は新たな有効な記述として扱います。作者は表現を再利用できますが、古い記録はあくまで以前に取り消した試行のものです。そうしないと、次に取り消すとき、どちらの行動を取り消すのか説明しにくくなります。
原稿を渡す前に、三つの進め方で読み直します。取り消したところで止まり、現在の段落だけで誰が鍵を持っているか判断できるか。取り消した後に質問へ切り替え、入室や封筒を見た描写が残っていないか。取り消した後にもう一度鍵を渡し、新しい応答文だけが現在の事実を示しているか。矛盾が見つかったら整理シートに戻り、該当する文がどの行動に依存しているかを確認します。
この方法は、行動の状態が正しく巻き戻されており、本文の位置づけを明確にする必要がある場合に使えます。実際の状態ではまだ門番が鍵を持っていることになっているなら、文章の修正は状態の修正の代わりにはなりません。また、作品の意図としてキャラクターに取り消された経験を覚えさせる場合は、別途その物語のルールを説明する必要があり、この例の「まだ起きていない」をそのまま適用することはできません。






