場所には階層がある:一室の停電を、関係する機器だけに反映するには?
部屋・建物・地域の電力供給条件を別々に記録し、各機器が実際に依存する条件から結果を判断します。範囲カードと段階的な検討で、局所的な停電、地域全体の停電、独立電源、復旧順序を整理します。

まず、故障が起きた場所と影響を受ける対象を分ける
一室で停電が起きたら、変更するのはその部屋の局所的な電力供給条件だけです。建物と地域の電力供給については、それぞれの記録を保持します。機器が最終的に動作するかどうかは、その機器が実際に依存する給電経路をたどって判断します。全場面で「電気がある/ない」という一つのスイッチを共有してはいけません。また、「部屋の配線に問題がない」ことを、そのまま「部屋の照明が点いている」ことと同一視しないでください。
以下の『東岸文書館への夜の訪問』は、説明のための架空の事例です。実際のユーザー事例でも、検証済みの結果でも、製品機能の説明でもありません。電力供給の関係はすべて、物語の展開を検討するために設定した単純化されたルールであり、実際の機器の操作には使いません。
この物語では、プレイヤーは閲覧室で目録を調べる必要があります。場所は、東岸地域、文書館、二〇三閲覧室の三階層に分かれています。同じ文書館には廊下があり、東岸地域には駅もあります。冒頭では閲覧室への局所的な給電が止まっていますが、廊下の照明と駅の画面は点いたままで、閲覧室内の電池式読書灯も点いています。
この四つの観察結果は同時に成立します。そのためには、作者は二つの別の問いに答える必要があります。対象はどこにあるのか、そして何によって動作するのか。場所の階層は範囲を定め、依存関係は影響を説明します。両者は互いの代わりにはなりません。
範囲カードには結果を複製せず、条件を保存する
次の記録形式はそのまま再利用できます。ここでの「正常」は、その階層自体の条件に不具合がないことだけを意味し、上流から給電されていることまでは保証しません。
| 対象 | 所属する場所 | この階層の条件 | 参照する依存先 | 有効期限 |
|---|---|---|---|---|
| 東岸地域 | 都市 | 地域の電力供給は正常 | 本例ではこれ以上扱わない | 地域のイベントで変更されるまで |
| 文書館 | 東岸地域 | 館内の電力供給は正常 | 東岸の電力供給 | 建物のイベントで変更されるまで |
| 二〇三閲覧室 | 文書館 | 局所的な電力供給が停止 | 文書館の電力供給 | 部屋の復旧イベントまで |
| 電池式読書灯 | 二〇三閲覧室 | 電池が使用可能、スイッチが入っている | 自前の電池 | 電池切れ、またはスイッチを切るまで |
変更のたびに、「イベント名|発生場所|変更項目|新しい値|原因|解除条件」というイベントカードを別に記録します。たとえば、「閲覧室への給電停止|二〇三|局所的な電力供給|停止|本章であらかじめ設定した故障|部屋の復旧イベント」です。このカードで変更するのは一つの対象だけで、文書館や東岸まで一緒に変更しません。
場所は固定の識別番号で区別し、名称は表示だけに使います。別の建物にも二〇三号室があるからといって、同じ故障記録を参照してはいけません。
範囲カードでは「正常」「停止」「不明」も区別します。文書館の状況をまだ調べていない段階で、部屋が暗いというだけで「全館で供給停止」と記入してはいけません。登場人物が知っている範囲も、作者が記録している範囲と一致する必要はありません。
影響は依存関係に沿って伝わり、例外には明確な理由が必要
本例では、通常の天井照明が点くには、地域・建物・部屋の局所的な電力供給がすべて正常で、なおかつ照明のスイッチが入っている必要があると定めます。一つでも条件を満たさなければ点きません。複数の条件の組み合わせで結果が決まるのであり、「小さい場所ほど優先される」という仕組みではありません。
したがって、部屋に「局所的な供給は正常」と記録されていても、地域の供給停止を上書きすることはできません。その記録が示すのは、部屋自体に追加の故障がないということだけです。逆に、部屋の供給停止が上位の地域の記録を書き換えたり、隣の部屋の記録にも書き込まれたりすることもありません。
電池式読書灯が参照するのは、自分の電池とスイッチであり、上記の給電経路ではありません。これは明確な依存関係に基づく例外です。作者が一つだけ灯りを残したいから、その場で「ここは影響を受けない」と宣言するのとは違います。電池が使えなくなれば、この例外も終わります。
再利用できる判定手順は、対象機器を決め、依存経路を列挙し、現在の条件を一つずつ読み取り、最後に機器の振る舞いを決める、という順序です。記録が変わったら、影響を受ける対象を判定し直せば十分です。「地域の供給停止」を各部屋の局所的な故障として書き写す必要はありません。
また、場所の状態一式がまとめて伝わるわけでもありません。地域の供給停止は、その給電経路につながる機器には影響しえますが、扉が施錠されているか、目録が持ち去られたか、登場人物が事情を知っているかを自動的に変更しません。停電で入退室管理の状態が変化するなら、その依存ルールを別に書く必要があります。
四つの時点を追い、復旧で局所的な状態が消えないか確かめる
ここで、プレイヤーを閲覧室から廊下へ移動させ、再び戻らせます。場面に入るたびに状態を推測し直すのではなく、どの段階でも同じ範囲カードを使います。
第一の時点では、閲覧室への局所的な給電だけが止まっています。閲覧室の天井照明は消え、廊下の照明、電池式読書灯、駅の画面は点いています。プレイヤーは読書灯で目録を調べることも、廊下で新しい情報を探すこともできます。この二つの行動の違いは、現在の条件から生まれます。
第二の時点では、物語上のイベントによって東岸地域への電力供給が止まります。変更するのは地域の電力供給だけで、値を「停止」にします。廊下の照明と駅の画面は消え、閲覧室の天井照明は消えたまま、電池式読書灯は点いたままです。部屋に元からあった故障は、その部屋自身の記録に残ります。
第三の時点では、東岸への電力供給が復旧します。廊下の照明と駅の画面は再び点きますが、閲覧室の天井照明は消えたままです。局所的な故障がまだ解消されていないからです。ここは特に間違えやすい箇所です。すべての機器を一括でオンにすると、第一の時点で残した物語上の条件を消してしまいます。
第四の時点では、部屋の復旧イベントが起き、局所的な電力供給が「正常」に変わります。天井照明は、スイッチが入ったままであれば点灯します。電池式読書灯を消すかどうかは、その読書灯自身のスイッチの記録で決めるべきで、部屋の復旧に伴って勝手にリセットしてはいけません。
第三の時点は、たとえばこう書けます。「扉の下の隙間から、再び廊下の光が差し込んだ。だが、頭上の照明は反応しない。机の読書灯は、相変わらず目録の半ページを照らしている。」この描写が示すのは目に見える違いだけです。登場人物は局所的な故障が残っていると推測できますが、地の文は街全体の状態を勝手に断定していません。
反例で確認してから、より複雑なモデルが必要か判断する
次の四項目は、作者が机上で確認する際の期待結果として扱ってください。すでに得られたテスト結果ではありません。部屋への給電停止は廊下を変えないこと。地域への給電停止は独立した電池式照明を消さないこと。地域の復旧は部屋の故障を解消しないこと。部屋を出て入り直しても、解除されていない条件は一切リセットされないことです。
イベントの順序も入れ替えてみます。先に地域への給電が止まり、その後で部屋の局所的な供給を復旧させた場合、天井照明はまだ消えているはずです。その後に地域の供給が復旧して初めて、点灯条件がそろいます。同じ現在条件から異なる結果が出るなら、前回の「照明は消えている」という結論を誤って保存していないか、スイッチの状態を見落としていないかを確認します。
場面が二つしかない短編なら、完全な階層を作らず、機器を一台ずつ列挙する方法でも構いません。その代わり、機器を追加するたびに範囲を個別に確認する必要があります。複数の部屋が独立した一つの回路を共有する場合、場所のツリーだけでは不十分です。「給電グループ」の記録を追加し、各機器から明示的に参照させます。三階層の構造に収めるために、存在しない空間的な関係を作らないでください。
音、たまった水、視線も、場所の包含関係に沿って伝わるとは限りません。それぞれ固有の接続条件が必要です。この記事の三階層の方式が扱うのは、この事例における電力供給の範囲だけであり、あらゆる場所の状態に通用する物理法則ではありません。
完成したら、範囲カード一枚、機器の依存関係一式、四つの時点の期待結果を残します。「建物全体が暗くなった」という一文を書くなら、建物全体に影響しうる条件の変化までさかのぼれるようにします。一室のイベントしか見つからないなら、描写もその部屋の中にとどめてください。


