ビジュアルノベルで会話ウィンドウを隠しても、再表示後に一文を読み飛ばさないために
会話ウィンドウを隠す前に、現在のセリフと文字の表示位置を固定し、音声・演出・オートモードの扱いを個別に決めます。記入済みの復帰仕様カードと天文台での操作例を通じて、画像鑑賞中に何を動かしてよいか、なぜ再表示のクリックで物語まで進めてはいけないかを整理します。

はじめに
会話ウィンドウを隠して絵を眺めるときは、一文ずつの読み進めも同時に止めることを勧めます。現在のセリフと表示済みの文字を保ち、自動送りを停止し、再表示の操作にはウィンドウを戻す役割だけを持たせます。音声と背景演出には別途ルールを設け、文字が見えなくなったからといって、そのまま進行させてはいけません。再表示後は、まず読者が元のセリフを確認できるようにし、オートモードを再開するかどうかは読者が明示的に選びます。
以下の天文台の場面は、解説用に創作した架空の例です。実際のユーザー事例、実測結果、DramaForkの製品機能を示すものではありません。登場するボタン、状態、処理は、いずれも実装前の設計上の取り決めです。
1. 非表示、一時停止、再表示を別々に決める
非表示は絵を遮るものを取り除き、一時停止は読む位置を守り、再表示の入力は次に何をするかを決めます。「余白をクリックすると隠れ、もう一度クリックすると戻る」だけでは、物語がその間も進むのか分かりません。
この例では、登場人物が「雲が晴れたら、望遠鏡のそばにある、いちばん明るい星が見えるよ」と話しています。文字が「雲が晴れたら、」まで表示されたところで、読者は夜空全体を見たくなりました。非表示にする直前はオートモードがオンで、音声が再生され、薄雲がゆっくり流れています。人物はまだ手を上げて星を指していません。
ここで最低限の条件を定めます。画像鑑賞中は次のセリフに進まず、現在のセリフに含まれる、まだ提示されていない物語上の重要な動作を通り越して進行することも認めません。同じ文字に戻せたとしても、人物が星を指し終え、カメラが別の場所へ移っていたら、読者はそのセリフを理解する手がかりを見逃してしまうからです。
画像鑑賞モードに入る際は、まず進行を止め、セリフ位置・文字の表示位置・再生状態をまとめて記録し、最後に会話ウィンドウを隠します。自動送りと非表示の要求が同時に来た場合、この設計では非表示を優先します。すでに次のセリフへの切り替えが完了してから要求を受けた場合は、新しいセリフを記録します。記録した位置と画面の文字が別々のセリフを指す状態は避けてください。
2. 会話ウィンドウの非表示・復帰仕様カードを記入する
セリフ位置は、章、分岐、個々のセリフを区別できる必要があります。同じ言葉が別の場所にも出てくるため、セリフの文字列だけを保存しても不十分です。文字の表示位置はどこまで表示されたかを記録し、「一文を読み終えたか」とは別に扱います。
| カードの項目 | 天文台の記入例 |
|---|---|
| 非表示前のセリフ位置 | 天文台で初めて観測する場面の、星を指すセリフ。再表示時は必ずここに戻る |
| 文字の表示位置 | 「雲が晴れたら、」まで表示済み。非表示中は文字の表示を進めず、再表示直後もこの位置を保つ |
| オートモード | 直前にオンだったことを記録。非表示時に一時停止し、このセリフの既存の自動送りタイマーを無効にする |
| 音声の扱い | 非表示時に一時停止して再生位置を記録。再表示後も一時停止したまま、再開の指示を待つ |
| 演出の扱い | 物語上の情報を持たない星のまたたきは継続。薄雲の移動と手を上げて星を指す動作は一時停止 |
| 再表示の入力 | 今回の押下、解放、長押しによるリピート入力では進めない。解放後に新たな入力を受け付ける |
| 再表示後の選択 | 「このセリフを続ける」は手動のまま。「オートモードを再開」は自動送りを明示的に再有効化する |
薄雲の移動を物語に関わる演出としたのは、雲が晴れたかどうかがセリフの内容に関係するためです。「背景だから」という理由だけで継続を認めることはできません。別の場面で、雲が筋書きと無関係なループ装飾にすぎないなら、異なるルールを適用できます。
このカードを流用する際は、各項目に、非表示前に何を記録するか、非表示中に変化してよいか、再表示後いつ再開するかを明記します。表にない時間制限付きの選択、カメラの切り替え、新しいセリフの発生も分類が必要です。この設計では未分類のイベントをいったん止め、ルールを補ってから扱いを決めます。
3. 音声と演出は、伝える情報に応じて扱う
音声を一時停止すれば聞いていた位置は保てますが、単語の途中から再開すると不自然に聞こえる場合があります。元の位置から確実に再開できないプロジェクトでは、音声を停止し、再表示後に「このセリフを聞き直す」を用意する方法もあります。その場合も文字の表示位置は保ちます。前半をもう一度聞くことになるため、その点は再表示時の案内で説明します。
現在のセリフの音声は最後まで流し、セリフ位置は固定する案もあります。絵を見ながら聞くことを明示的に認めるモードに向いています。ただし、非表示前の音声位置にとどまる保証はなくなります。再表示時には、このセリフの音声が終了したことを示し、聞き直せるようにします。非表示中に音声が終わっても、次のセリフへ進んでよい条件にはしません。
BGMや、新しい情報を伝えない星のまたたきのループは、鑑賞の雰囲気を保つために続けても構いません。一方、人物の退場、小道具の出現、表情の変化、手がかりへ視線を誘導するカメラ移動は止めるべきです。判断の基準は、読者が後から最終状態だけを見ても、直前に何が起きたか理解できるかどうかです。
音声、口の動き、カメラを同じ時間軸に沿って再生する必要があるなら、一緒に止めるか、一緒に再生し直します。別々に止めると、声だけが続き、人物は静止したままになりかねません。分離できない一連の演出では、終了まで画像鑑賞モードを利用不可にする方法もあります。ただし、その入口で演出が終わるまで待つ必要があることを説明します。
4. 一連の操作で読み飛ばしがないか確認する
第一段階では、「雲が晴れたら、」が表示されたところで読者がウィンドウを隠します。カードどおりに星を指すセリフを固定し、文字の表示、音声、薄雲を一時停止し、星のまたたきは続けます。直前までオートモードがオンだった事実は記録されていますが、今は進行を許可しません。
第二段階では、読者が絵を眺めます。どれだけ長く滞在しても、再表示と同時に実行されるセリフ送り処理をため込んではいけません。隠れている間の進行を後からまとめて実行するなら、一時停止は見かけだけになってしまいます。
第三段階では、読者が夜空をクリックします。会話ウィンドウに元の「雲が晴れたら、」が表示され、「読み進めを一時停止中」という案内が出ます。このクリックで文字を全文表示したり、音声を開始したり、次のセリフへ移ったりはしません。押し続けていても、後続のリピート入力が再表示の処理を越えて作用しないようにします。
第四段階では、ボタンや画面からいったん指を離した後、読者が「このセリフを続ける」を選びます。文字は元の位置から表示を再開し、音声と薄雲もこの例の取り決めに従って再開します。手を上げる動作は、予定されていた時点に達してから起こります。オートモードはオフのままです。一文がすべて表示された後、新たな送り操作で次のセリフへ進みます。
第四段階で「オートモードを再開」を選んだ場合も、まず現在のセリフを続けます。元の読み終わり条件を満たしてから、待ち時間を最初から計り直します。非表示前に残りわずかだったタイマーは使い回しません。明示的な選択は一つ増えますが、その分、読者はいつ進行の制御をシステムへ戻すか確認できます。
5. 失敗例を使って受け入れ確認を行い、適用範囲を定める
受け入れ確認では、少なくとも「文字の表示途中」「全文表示済みだが音声は再生中」「オートモードが次へ進む直前」の三つのタイミングで隠します。その都度、再表示後のセリフ位置、文字の表示位置、音声状態、最初の新たな入力の作用を確認します。これらは机上の期待動作であり、実装後の検証が必要です。テスト済みとして扱ってはいけません。
さらに、非表示と再表示を続けて二回行います。二回目はその時点の新しい進捗を記録し、一回目の古い記録を使わないことを確認します。クリック、ショートカットキー、タッチ操作でもそれぞれ試し、再表示が全文表示や背後の選択肢の誤操作につながらないか確認します。マウスでしか安全に戻れないなら、入力ルールはまだすべての操作方法をカバーできていません。
よくある失敗は三つです。見た目だけ隠れてセリフは進み続ける、再表示直後にタイマーの遅れを取り戻す、一度のクリックで再表示と送りの両方が起きる。それぞれ、セリフ位置の固定、一時停止中の処理の扱い、再表示入力の分離で対処する必要があり、案内文を一つ増やすだけでは解決しません。
このカードは、一文ずつ読むことを中心とし、絵を見るために一時停止できる場面に適しています。リアルタイムの時間制限付き展開や、停止できない連続映像では、時間を進め続けるかどうかを別途決める必要があります。元の進捗へ戻れると、そのまま約束することはできません。記入済みカードと上記の期待動作を一緒に引き渡せば、企画担当と実装担当が「元のセリフの続きを読める」に含まれる動作を一つずつ照合できます。






