ビジュアルノベルで目を閉じて泣く表情を守るには――まばたきと口パクの制御の引き継ぎ方
目を閉じて涙をこらえる演技を、まばたきで途切れさせてはいけません。唇をかむ動作も、台詞だけをきっかけに通常の口パクへ変えてはいけません。顔のアニメーション制御引き継ぎ表で、目と口それぞれの制御、停止、専用動作、解除条件を定め、ループを再開する起点まで明確にします。

はじめに
目を閉じて泣いている間は、特殊表情が目の制御を保持し、通常のまばたきを停止させます。唇をかんでいる間も、演出で明示的に「かんでいた唇を放す」と指定されるまで、通常の口パクを停止させます。発話の開始に伴って閉眼まで解除したり、発話の終了時に泣き始める前の口の形を自動で復元したりしてはいけません。競合を解消する鍵は、部位ごとに、誰が表示を書き換えられるのか、いつ制御を返すのかを定めることです。
以下では、成人の船員「岑舟」が船室で目を閉じて涙をこらえ、その後ふたたび口を開く場面を、架空の教材として使います。人物、台詞、演出はすべて説明のために創作したものであり、実際のユーザー事例、実測結果、DramaFork の製品機能ではありません。また、特定のエンジンが自動で処理できることを前提にしていません。
1. まず制御する範囲を分け、止める動作を決める
この例の表情は、閉じた目、寄せた眉、唇をかんだ状態、涙の跡から成ります。ただし、顔全体を固定する必要はありません。目では通常のまばたきによる目の形の置き換えを防ぎ、口では発話ループによる唇をかんだ状態の置き換えを防ぎます。眉と涙の跡は、それぞれ指定された状態を保ちます。制御の範囲は、実際に書き換えられる部品に合わせて決めるべきで、「泣き顔を優先する」という曖昧な指定だけでは不十分です。
ここでいう「制御元」とは、その部位に現在表示する絵を決める権限を持つルールです。同じ部位が同じ時点で受け付ける出力は、ひとつの制御元に限ります。その制御元の内部では、専用アニメーションを動かせます。たとえば、目を閉じて涙をこらえている間に、まぶたをわずかに引き締める動きです。これは、通常のまばたきにも同時に書き換えを許すという意味ではありません。
停止させる際は、表示と進行も区別する必要があります。まばたきのレイヤーを隠すだけで裏側では進行させていると、閉眼を解除した瞬間に、半目の途中フレームが現れる可能性があります。この例では通常ループの進行を止め、再開時に起点を設定し直します。元のリズムの連続性を手放す代わりに、表情の切り替えを明確にする方針です。
2. 制御引き継ぎ表で、すべての受け渡しを明記する
次の表は、この例の演出担当者にそのまま渡せる、顔のアニメーション制御引き継ぎ表です。同じ部位に複数の行があるのは、段階ごとに制御元が変わるためです。開始トリガーと解除条件は、識別できる演出上の合図にする必要があります。「感情が適切になったら」といった指定ではいけません。
| 部位 | 現在の制御元 | 開始トリガー | 停止するループ | 専用アニメーション | 解除条件 |
|---|---|---|---|---|---|
| 目 | 閉眼で涙をこらえる表情 | 「目を閉じてこらえる」の合図に到達 | 通常のまばたき | 閉眼を維持。必要に応じてまぶたを引き締める | 「目を開く準備」の合図を明示的に受け取る |
| 目 | 開眼への遷移 | 閉眼の維持が終了 | 通常のまばたき | 閉眼から指定された開眼状態へ移る | 遷移が完了し、通常の目のルールへ引き継ぐ |
| 口 | 唇をかむ表情 | 「下唇をかむ」の合図に到達 | 通常の口パク | 唇をかんだ状態を維持 | 「かんでいた唇を放す」の合図を明示的に受け取る |
| 口 | 唇を放す遷移 | 唇をかむ状態の維持が終了 | 通常の口パク | 唇を放し、涙をこらえるときの静止した口の形に落ち着く | 遷移が完了して初めて発話要求を受け付ける |
| 口 | 涙をこらえながら話すルール | 唇を放す動作が完了し、台詞が始まる | 通常の口パク | 現在の表情に合う発話ループ | 台詞が終わり、涙をこらえるときの静止した口の形へ戻す |
| 口 | 涙をこらえる静止表情 | 唇を放す動作が完了していて話していない、または台詞が終了 | 通常の口パク | 静止状態を維持 | 「落ち着きを取り戻す」の合図を明示的に受け取る |
再利用する際は、まず表情名と合図の名前を置き換え、各行の解除後に誰が引き継ぐかを確認します。「終了」としか書かず、次の制御元を決めていないと、その部位が任意のフレームで止まる可能性があります。目を通常のルールに戻すことと、口を落ち着いた状態に戻すことは別の処理であり、同時である必要はありません。
3. 涙をこらえてから話し始めるまでを通して確認する
最初、岑舟は目を開けて仲間の話を聞いており、口は静止しています。「目を閉じてこらえる、下唇をかむ」という演出の合図を受けたら、まず目と口の通常ループを止め、次にふたつの特殊表情へ制御を渡し、最後に対応する形を表示します。この順序なら、制御を渡した後に古いループが通常表情をもう一度書き込む事態を防げます。
その状態を保っている間に、仲間が「このまま夜の見張りを続けるのか?」と尋ねます。岑舟は話さず、閉眼と唇をかんだ状態を保ちます。台詞の進行上、彼の次の台詞がすでに用意されていても、「次の話者は岑舟」というだけで口パクを始めてはいけません。発話要求と、口が発話可能な状態にあるかどうかは、別々に判定する必要があります。
続いて、明示的に「かんでいた唇を放す」を実行します。口は遷移を終え、涙をこらえるときの静止した口の形に落ち着きます。目は引き続き、閉眼で涙をこらえる表情が制御します。その後で、岑舟に「この当直は最後まで務められる」と言わせます。口は専用の発話ループに入り、目は閉じたままです。これにより、観客には唇を放してから話す順序が見え、口パクに動作の因果関係を上書きされずに済みます。
台詞が終わったら、口は涙をこらえるときの静止した形へ戻します。再び唇をかんだり、冒頭の落ち着いた口の形へ戻したりはしません。唇をかむ動作はすでに明示的に解除され、一方で落ち着いた表情にはまだ戻っていないためです。次に「目を開く準備」を実行し、目の遷移が終わったら通常のルールへ戻します。最後に「落ち着きを取り戻す」の合図で、口の特殊状態を解除します。
手元の素材に、涙をこらえる専用の口パクがなければ、唇を放した後の静止した口の形のまま台詞を表現し、制作記録にその制約を記してもよいでしょう。局所的な動きは減りますが、感情を明らかに変えてしまう通常の口パクを使うより、この場面の演技意図を保ちやすくなります。この取捨選択を受け入れるかどうかは、そのショットで何を表現する必要があるかによって判断すべきです。
4. ループは現在の状態に合う起点から再開する
特殊表情を解除した後、停止前のループ位置からそのまま再生を続けることは勧めません。この例では、開眼の遷移でまず完全に目を開いた状態に到達し、そこからまばたきまでの待ち時間を始め直します。次のまばたきは、通常のルールが改めて決めます。これにより、目を開いた直後に、以前の閉眼動作の残りが続くのを避けられます。
口も、保存しておいた「以前の口の形」に戻すべきではありません。台詞が終わったら、現在の感情に対応する静止した形へ戻します。通常の発話ループは、次に条件を満たしたとき、取り決めた起点から開始します。以前の状態の保存は、まったく同じ状態へ戻す必要がある演出に向いています。しかし、この例では唇をかみ、放し、話すところまで進んでいます。そのまま以前の状態に戻すと、人物の動作が逆戻りしてしまいます。
同じ合図で制御の切り替えと発話の両方を求められた場合は、先に制御元を確定し、その後で許可された動作を処理します。この例で「まだ唇をかんでいるのに発話を要求された」場合は、台詞の開始を、唇を放し終えた後へ移すべきです。発話要求を、唇を放すための暗黙の合図にしてはいけません。台詞のタイミングを動かせないなら、唇を放す動作を前倒しするか、静止した口の形で表現する方針を明示する必要があります。
5. 競合だけでなく、ルールの適用範囲も確認する
確認は、開始、維持、終了の三段階に分けて行います。閉眼中にまばたきがトリガーされても目の形は維持されるか。唇をかんでいる間の発話要求に対し、口は通常ループを拒否するか。発話が終わると、涙をこらえるときの静止した口の形に落ち着くか。特殊状態を抜けた後の最初のまばたきは、途中段階ではない完全な形から始まるか。ここで挙げているのは確認方法であり、実施済みで合格したテストの記録ではありません。
演出のスキップや途中での表情変更も想定しておきます。スキップ先が「すでに話している」状態なら、閉眼、唇をかむ状態の解除、口が発話可能といった目標状態を直接設定します。スキップされた唇を放すアニメーションの完了通知には依存してはいけません。別の特殊表情へ切り替えるなら、新しいルールに制御を渡し、古い遷移から遅れて届く終了通知を無効にします。古い動作が通常ループへ制御を返してしまうのを防ぐためです。
この表は、目と口を別々に制御できる立ち絵に適しています。顔全体を差し替える素材では、必要な組み合わせが存在するかを先に確認しなければなりません。一連の動作をまとめて作ったアニメーションでは、顔全体を一括で制御するほうが適切な場合もあります。表で説明できるのは、動作がいつ制御を譲るかまでであり、足りない絵を補うことはできません。引き継ぎ時には各合図で目標とする形も添え、担当者が切り替えの完了を判断できるようにしましょう。






