第10話 0フレームの静寂
個体が、歩み寄ってくる。
25メートル。
春山は動かなかった。
警棒を右手に構えたまま、個体の動きを観察する。移動するたびに輪郭が揺れる。左半身の形が定まらない。しかしその「揺れ」自体には、周期がある。完全なランダムではない。揺れが最大になる瞬間と、収まる瞬間が、交互に来ている。
前職で、似た現象を見たことがあった。
古い配管設備が限界に近づいたとき、圧力の変動が周期的なパターンを示すことがある。不規則に見えて、よく見ると一定のリズムがある。そのリズムを掴めば、次に何が起きるかを予測できる。
「……リズムがある」
春山は目を細めた。
リズムがあるということは、予測できる。予測できるということは、対応できる。それが春山の思考の順序だった。感情が入る余地はない。あるのは観察と、そこから導かれる手順だけだ。
20メートル。
個体の右目が、ずっとこちらを向いている。左目は顔の側面にずれたまま、別の方向を向いていた。2つの目が別々の方向を向いている。注意が分散している。
格ゲーで言うなら、2つのキャラクターを同時に操作しようとしているような状態だ。注意が分散している個体は、単一の動作に集中する個体より、切り替えのコストが高い。レバーとボタンを同時に動かそうとして、どちらも中途半端になる。HALとして対戦していた頃、そういう相手を何度も見てきた。
「……注意が割れてる」
春山は息を整えた。
閉じる、突く、開く。
腱の奥でリズムが静かに回っている。
15メートル。
個体が止まった。
理由はわからない。ただ、止まった。輪郭の揺れが、少し収まっている。
春山も止まった。
薄暗い通路の中で、2つの存在が向き合っていた。
前方には、通行不能の空間が広がっている。後方にも戻れない。この数十メートルの通路が、今の春山の世界の全てだった。
ライカたちは出口の向こうにいる。管理局が来るまで、時間がかかる。
今この場所で、自分にできることをやる。それだけだ。
個体の口が、横に裂けたまま動いた。
音は出なかった。
出そうとして出せないのか、あるいは出す仕組みが最初から備わっていないのか、判断がつかなかった。ただ、口が動いていた。何かを言おうとしていた。
完成しなかった何か。なり損ない。
それでも動いている。それでもこちらへ向かってくる。
「……気の毒だな」
春山は思わず言った。
怒りではなかった。同情でもなかった。ただ、率直な感想だった。
本来は存在するはずのない形で、それでも存在してしまっているものへの、乾いた言葉だった。
個体が、また歩み寄ってきた。
10メートル。
春山は左手のウィンドウに意識を集めた。
練習では、開閉の速度と入力のタイミングを体に叩き込んだ。
しかし実戦では、タイミングを決める基準が違う。練習では自分のリズムで入力できた。
今は、個体の動きに合わせなければならない。
個体の攻撃が来る瞬間を見極めて、その直前にウィンドウを閉じる。
閉じた瞬間、存在の計算が止まる。攻撃が通り抜ける。
ウィンドウを開く。個体が次の動作へ移行する。その移行の瞬間の空白に、警棒を叩き込む。
理屈はそうだ。
しかし個体の動きには、通常の魔物のような明確な攻撃モーションがない。形が定まらないまま動いているこの個体が、攻撃に移行する瞬間をどう見極めるか。
観察を続ける。
輪郭の揺れ。左半身のぼやけ。足元の数の変化。それらが全て、一定のリズムの中にある。そしてそのリズムが、一瞬だけ「収まる」瞬間がある。
移動するたびに揺れていた輪郭が、直前に一度だけ固まる。揺れが収まって、形が一瞬だけ定まる。その固まりが、攻撃への移行準備と連動しているのではないか。
仮説だ。検証する時間はない。
しかし今、他に手がかりがない。
「……それで行く」
5メートル。
個体の左半身が、大きく揺れた。
足元の数が3本になり、4本になり、また3本になった。口が、また動いた。音は出ない。
右目が、春山を見ていた。
左目が、別の場所を向いていた。
春山は警棒を握り直した。右手の感触を確認する。重い。確かに重い。10年前にサーバールームで握っていたときと、同じ重さだ。あの頃は使う機会が来るとは思っていなかった。今は、使う。
閉じる、突く、開く。
腱の奥のリズムが、少し速くなった。
頭の中で、格ゲーの対戦台の映像が一瞬浮かんだ。アケコンの天板を指先で叩き続けた日々。1フレームの隙間に全てを詰め込んでいた頃。あの感覚が、今ここで別の形で蘇っている。
コントローラーが警棒になっただけだ。
フレームを刻む場所が、画面の外になっただけだ。
個体の輪郭が、揺れている。
揺れて。
揺れて。
一瞬、収まった。
今だ。
ウィンドウを閉じた。
世界の「視線」から、自分の体が零れ落ちた。
車内での練習とは比べ物にならない、はっきりとした感触だった。体の輪郭が消える。自分が「ここにいる」という事実が、コンマ数秒だけ停止する。
個体の左腕、形の定まらないあの何かが、春山の胸のあたりを横切った。
温度も圧力も、何も感じなかった。
まるで自分が、薄い煙でできているかのようだった。
攻撃が、通り抜けた。
物理的に、通り抜けた。
存在している。
判定が消える、極小の隙間。格ゲーでいうところの「0フレーム無敵」だ。
本来ならあり得ないバグだが、この迷宮はそれを許容してしまっている。
春山は動揺しなかった。動揺している時間がなかった。
ウィンドウを開く。
個体の動きが、次の動作へ移行しようとしていた。左腕を引いて、体勢を整えようとしている。その移行の瞬間、動作と動作の間の、わずかな空白。
今だ。
警棒を、思い切り叩き込んだ。
個体の右半身、形の明確な側面に、金属の重さが炸裂した。
カンッ、という乾いた音が、通路に響いた。
ドロップした魔石をトングで弾いたときのような、無機質な硬さ。
生身の生物を叩いた感触ではない。それは、この迷宮を構成する硬いだけの壁を殴りつけたときの手応えに近かった。それよりももっと硬い。もっと密度がある。
しかし確かに、当たった。
個体の動きが、初めて止まった。
完全に止まった。
輪郭の揺れが消えた。左半身の形が定まらないまま、全体の動作が停止した。固まった、という感触があった。
まるでこの迷宮が、予期しない入力を受けて、次の処理に移れなくなったかのように。
1秒。
2秒。
個体が、動いた。
止まっていたはずの個体が、また動き始めた。
輪郭の揺れが、今度は以前より激しく再開した。左半身が大きくぼやけ、足元の数が急激に変化した。右目と左目が、両方ともこちらを向いた。
まずい、と春山は思った。
1撃では足りなかった。
個体の口が、大きく開いた。
音はない。しかし開いた口の奥に、ぼやけた何かが渦巻いているのが見えた。黒に近い、しかし黒とも言い切れない色。輪郭がなく、大きさが定まらない。ただ、渦巻いている。
それが何なのか、判断する前に個体が動いた。
今度は速かった。
先ほどとは比べ物にならない速度で、個体が距離を詰めてきた。「移動」ではなく、先ほどライカの魔法を回避したときと同じように、一瞬で別の座標に出現した。
3メートル。
春山は反射的にウィンドウを閉じた。
間に合った。
個体の攻撃が、また体を通り抜けた。
しかし今度は、通り抜けた直後に2撃目が来た。
個体の右半身が、先ほどとは別の角度から伸びてきた。
閉じる。通り抜ける。開く。
しかし開いた瞬間に、もう3撃目が来ていた。
連続攻撃だ。
切り替えのコストが高い、という春山の読みが外れた。あるいは1撃を当てたことで、個体の挙動が変化した。想定外の入力に対して、個体が別のモードに移行した、ということだろうか。
「……想定外だ」
春山は後退しながら呟いた。
連続してウィンドウを開閉する。閉じる、避ける、開く。閉じる、避ける、開く。警棒を振る余裕がない。攻撃を透過させるだけで精一杯だった。
開閉の速度が、落ち始めていた。
指が、疲れている。
アケコンを長時間叩き続けた後のような、腱の奥の鈍い痛み。練習ではここまで連続して入力したことがなかった。使用限界が来るとは思っていなかった。
壁が迫ってきた。
あと3歩で背中が壁に当たる。
「……冷静に」
春山は息を整えた。
パニックになっている場合ではない。問題を整理する。個体は連続攻撃に切り替えた。指が疲れている。このまま防御だけを続ければ、いずれ入力が間に合わなくなる。
しかし連続攻撃には、必ず「切れ目」がある。どんなに速い連打でも、次の攻撃を準備する瞬間がある。格ゲーでも、無限に連続する攻撃は存在しない。必ずどこかに、ほんの僅かな間がある。
今は、その切れ目を探している。
閉じる。透過する。開く。
閉じる。透過する。開く。
指の痛みを意識の外に追いやる。今感じるべきは、個体の攻撃のリズムだけだ。
1撃。2撃。3撃。
個体の攻撃の速度が、わずかに落ちた瞬間があった。3撃目と4撃目の間が、他の間隔より少しだけ長かった。
そこだ。
4撃目が来た。
閉じる。透過する。
5撃目が来る前の間隔。
開く。
今。
警棒を振った。
先ほどと同じ、右半身への側面打ちではなく、今度は頭部、右目のある場所へ向けて。垂直ではなく、斜め上からの打ち下ろし。アケコンで特定の入力方向を使い分けていた感覚が、警棒の軌道に乗り移っていた。
当たった。
明確な手応えがあった。先ほどより重い衝撃が、警棒を通じて右手に伝わった。骨に直接当たったような、硬質な振動だった。
個体の動きが、また止まった。
今度は、先ほどより長く止まった。
3秒。
4秒。
輪郭の揺れが、急速に収まっていく。左半身のぼやけが、固まり始めた。形が定まろうとしている。完成しようとしている。本来は完成するはずがなかった何かが、今この瞬間だけ、完成に近づこうとしていた。
春山は、その過程を見ていた。
警棒を構えたまま、動かなかった。
個体の口が、また動いた。
今度は、少しだけ音が出た。
音、と呼べるものかどうか、判断がつかない。ノイズに近かった。磁気テープが劣化したときに出るような、細く乱れた音。しかしその中に、何かのパターンがあるような気がした。
繰り返している。
同じ音が、繰り返されていた。意味は読み取れない。しかし、繰り返しているということは、何かを伝えようとしているということだ。
気のせいかもしれない。
しかし春山は、その音を最後まで聞いた。
「……消えろ」
春山は静かに言った。
残酷なつもりはなかった。ただ、これ以上この形でいさせてはいけない、という感触があった。完成しかけているものを、完成させてはいけない。それがなぜかは、うまく言葉にできなかった。
ただ、そう思った。
警棒を、もう一度振った。
個体の頭部、形が定まりかけていた場所へ、正確に叩き込んだ。
個体が、砕けた。
ポリゴンに砕けて、消えた。
通常の魔物と同じように。あの「なり損ない」も、砕けて消えた。
砕ける直前の一瞬、個体の右目が、明確な形のまま春山を見た。
何かを言おうとするように、横に裂けた口が動いた。
音は出なかった。
次の瞬間、ポリゴンに砕けて、消えた。
床に素材と魔石が、いつもの法則通りの間隔で着地した。
静寂が戻った。
春山はしばらく、何も言わなかった。
警棒を持ったまま、個体がいた場所を見ていた。
ポリゴンの欠片が、ゆっくりと消えていく。最後の一片が消えると、その場所には何も残らなかった。床の砂と、岩盤の壁と、薄暗い通路だけが、元通り静止していた。
心拍数が上がっていた。
右手が、わずかに震えていた。震えていることに、今気づいた。
指の腱に、鈍い痛みがある。
「……成功した」
独り言が、暗い通路に落ちた。
成功した。それは事実だ。しかしその事実が、まだ実感として定まらなかった。攻撃が体を通り抜けた感触が、まだ皮膚の上に残っていた。あるいは残っているような気がした。
通り抜けた。
物理的に、通り抜けた。
これは何なのか。
自分の体が一時的に「存在しなかった」ということなのか。それとも個体の攻撃が「存在しなかった」ということなのか。どちらが正確な説明なのか、今の春山には判断できなかった。
どちらでも、今は構わない。
結果が出た。入力が作用した。攻撃が透過した。個体が消えた。
「……再現性を確認するのは、また今度だ」
まず今は、ここを出なければならない。
春山は右手の震えを確認して、警棒を作業着の内に戻した。トングを取り出して、素材と魔石の回収を始めた。
仕事だ。ここにあるものは、回収する。それがハイエナの仕事だ。
回収を終えて、前方の通路を確認した。
一歩、踏み出してみた。
今度は、踏み出せた。
空間が元に戻っている。地面が地面としての性質を取り戻していた。前方への通行が、再び可能になっていた。
個体が消えてから、区画の不安定さが収まっている。
昨日のDブロックで観察した傾向が、ここでも成立していた。
「……因果関係がある」
ノートを開いて、歩きながら書き込んだ。
『存在の間引き、実戦で確認、便宜上「0フレーム無敵」と呼称。攻撃を透過させることに成功。輪郭収縮のタイミングを攻撃準備の予兆と仮定、今回は有効。1撃後に挙動変化あり、連続攻撃モードへ移行。3撃目と4撃目の間隔に切れ目、そこへの入力で停止を再確認。3撃目で消滅』
一行空けて、続きを書いた。
『個体消滅後、空間の安定を確認。通行不能の解除を確認。個体の存在と空間の不安定さに因果関係がある可能性』
さらに一行追加した。
『注意:連続入力による指の疲弊を確認。長期戦では入力精度が低下する可能性あり。持久力の向上が必要』
ペンを置いて、ノートを閉じた。
出口の光が、前方に見え始めた。
春山は歩きながら、右手を握り直した。
まだ震えている。
しかし今日わかったことがある。
1フレームの隙間は、実在した。
この迷宮には、穴がある。設計の古いものが持つ、特有のクセ。前職で何度も見てきた、あの手触りと同じだ。そしてその穴は、自分の指先で突くことができる。
「……仕様の穴だ」
春山は静かに言った。
出口の光が、近づいてくる。




