第35話 例外の送出(エクセプション)
管理局から通達が来たのは、随行の前日だった。
Hブロック深部にて大規模合同演習を実施する。参加探索者は精鋭30人。各ギルドからの随行清掃員も帯同のこと。
本田から春山への連絡は簡潔だった。
「明日の演習、随行をお願いします」
「内容を確認してもいいですか」
「送ります」
資料を見た。演習区画はHブロック第6区画から第8区画。参加者30人が同時にスキルを行使する、負荷の高い構成だ。目的は「ダンジョン活性化の検証」とある。
管理局の判断は、こうだ。
各地で報告されている「幽霊」や「空間の歪み」は、ダンジョンがランクアップする前兆現象だ。精鋭を集めて深部に負荷をかけることで、活性化を促進する。
春山は資料を閉じた。
違う。
ランクアップの前兆ではない。あれはシステムが摩耗しているサインだ。幽霊は残留プロセスだ。空間の歪みは座標計算の精度劣化だ。
そこに30人が一斉にスキルを行使すれば、どうなるか。
保守されていないサーバーに、わざわざ負荷試験をかけるようなものだ。
しかし止める手段がない。管理局の判断を覆す立場にない。
「了解です」と春山は返信した。
翌日、現場に入った。
Hブロック第6区画は、これまで春山が見た中で最も広い空間だった。
天井が20メートルを超える。壁と壁の間隔も広く、体育館を3つ並べたような区画だ。精鋭探索者が30名、装備を整えて展開している。スペクタクル社の面々は右翼に配置されていた。
頭上に、ドローンが浮いていた。
スペクタクル社の機体だ。本田は後方の観察室から映像を確認しているはずだ。管理局に提出する記録映像の撮影と、春山への監視。両方の目的がある。
ライカが春山の隣に来た。
「多いですね」
「そうですね」
「春山さん、大丈夫ですか」
「仕事なので」
管理局の指揮官が前に出た。
「演習を開始する。目標は第8区画までの制圧。各チーム、連携を確認してから前進せよ」
30人が動き始めた。
春山はオーバーレイ環境を薄く展開した。全開ではない。現状把握のための、最小限の構成だ。
区画の座標密度を確認する。
数値が、高い。通常のHブロックより明らかに高い。30人分のスキル行使が始まる前から、この区画の演算負荷はすでに限界に近い。
春山は歩きながら、数値を監視し続けた。
第7区画に入った。
数値が跳ね上がった。
前衛の探索者たちが一斉にスキルを発動した。炎、氷、電撃、各種強化魔法。30人分の処理が同時に走った。空間が光と音で埋まった。
ドローンが高度を上げた。魔力干渉でノイズが走り始めたのか、制御信号が乱れている気配がある。それでも機体は落ちなかった。本田が手動で制御しているのかもしれない。
春山のフィルター越しに、座標ノイズが見えた。
壁の一部が、座標値を正しく返していない。床の判定が、数十センチ単位でズレ始めている。ポリゴンの組み立てが間に合っていない。世界の描画が、劣化し始めている。
まずい。速度が早すぎる。
しかし前線はすでに動いている。止まれない。
第8区画への移動が始まった。春山は歩きながら、オーバーレイの枚数を増やした。
第8区画に入った瞬間、空間が揺れた。
視覚的な揺れではなく、座標全体が一瞬ブレた、という感触だ。春山のフィルター越しに、区画全体の座標値が同時にノイズを発した。
「なんか、変じゃないですか」
ライカが周囲の状況を訝しむ。
「変ですね」
「敵の動きが……」
空間の中央に、何かが現れた。
落ちてきた、というのが正確な表現だ。
春山のフィルター越しに、その軌跡が見えた。天井から落ちたのではない。座標の空白から零れ落ちてきた。出現の瞬間、オブジェクトに付随する座標値が2組重なっていた。本来いるべき深層の座標と、この区画の座標が、同時に表示されている。上位の層から座標計算の誤差を通り抜けて、この区画に落下してきた。
サイズが、違った。
通常の魔物の5倍はある。全身が黒いポリゴンで覆われているが、表面に回路図のような、あるいは文字の羅列のような模様が走っている。
四肢の関節が多すぎる。目が、複数ある。深層から引き摺り出されたデータの塊が、この区画の解像度に収まりきらずに形を保っている、そういう見た目だ。
現場が、一瞬だけ静止した。
30人の精鋭が、それを見た。誰も動かなかった。規格外のサイズと、見たことのない形状。訓練で身に付けた反応が、追いついていない。
最初に動いたのは、指揮官だった。
「総員、攻撃開始!」
前衛が一斉に踏み込んだ。
3人が同時に剣を振り下ろした。刃が、魔物の体表に当たった。
通らなかった。
金属音ではなく、空を切る音がした。刃が体表をすり抜けた。ダメージ計算が走っていない。3人が弾かれて、後退した。
「魔法で!」
後衛が展開した。炎の柱が魔物に直撃した。爆発音が区画に響いた。煙が晴れた。
魔物は、無傷だった。
煙の中に立っている。表面の模様が、一瞬だけ光った。それだけだ。
「ダメージが入らない!」
誰かが叫んだ。
魔物が動いた。
速かった。
サイズに似合わない速度で、前衛の群れに突っ込んだ。片腕を薙いだだけで、前衛の3人が同時に吹き飛んだ。
壁に激突する音が、3回続いた。
「退がれ! 退がれ!」
指揮官が叫んでいる。しかし退がる先がない。第8区画の出口は、魔物の背後にある。
セイラが端末を操作しながら叫んだ。演習に備えてスペクタクル社が独自に拡張した解析設定だ。
区画内の魔力密度と味方のバイタルを同時に監視できるよう、今日は通常より多くのパラメータを取っている。
「ユウリ、左翼支援。ライカは距離を取って」
「数値は」
ライカが問う。
「魔力の定着点が散らばっている。どこに実体があるか絞れない。攻撃の照準が合わないのはそのせい」
セイラが春山を一瞥した。数値を読む目だ。混乱の中で、春山の周辺だけ別の反応が出ているはずだ。魔力を持たない清掃員が、何らかの干渉源になっている可能性に、気づいているかもしれない。
ユウリが盾を構えて前に出た。
「ライカ、チャージしろ。時間を稼ぐ」
「でも」
「稼ぐ」
ユウリが魔物の前に立った。魔物が腕を振り下ろした。盾に直撃した。ユウリの足が、床を10センチ滑った。押し込まれている。
2度目の打撃が来た。盾が光った。セイラの強化魔法だ。それでも、ユウリの膝が少し折れた。
「長くは持たない」
セイラの声が低い。
「わかってる」
ユウリは歯を食いしばっている。
ライカが魔力を練り始めた。広域魔法のチャージだ。しかし今回の魔物は、広域が通じない可能性がある。座標が確定していない以上、範囲攻撃も正しい座標に当たらない。
春山は状況を確認した。
ユウリが限界に近い。他の探索者たちは散り散りになっている。ライカの広域が通じるかどうか、わからない。このまま時間が経てば、全滅する。
春山はその場で、オーバーレイを全展開した。
5枚のウィンドウが重なる。辞書変換が走る。フィルターが重なる。
魔物の座標値が、浮かび上がった。
本来いるべき階層の座標値と、現在いる座標値が、混在している。座標計算のエラーが、この魔物を「無敵」にしている。
ダメージ計算は、正しい座標に対してしか走らない。この魔物の座標が確定していない以上、どんな攻撃も正しい座標に当たらない。
倒せない理由が、わかった。
次に、どうすれば消えるかを考えた。
先日、Gブロックの旧区画で残留プロセスを処理した。あのときは「応答なし」のフラグを持つオブジェクトに、強制終了のシグナルを送った。
この魔物は、座標エラーを持つオブジェクトだ。
座標エラーそのものを、システムに「致命的な不正アクセス」として認識させれば、システム側がこのプロセスをパージするかもしれない。倒すのではなく、システムにエラーとして処理させる。
ユウリが3度目の打撃を受けた。今度は滑らなかった。足が止まった。その代わり、盾を持つ腕が内側に折れた。体勢が崩れた。
時間がない。
春山は操作を開始した。
魔物の揺れ続ける座標値に、矛盾した座標値を送り込む形で入力を重ねる。
前職でメモリの不正アクセスを意図的に発生させてプロセスを落とす手法があった。正規の終了コマンドが通らないとき、メモリの境界値を意図的に超えた書き込みを発生させて、システムに例外を送出させる。荒い方法だが、通らない終了コマンドより確実だ。
ウィンドウが5枚、限界まで稼働している。指が悲鳴を上げている。視界の端がノイズで埋まり始めた。
魔物が春山の方を向いた。
ユウリへの攻撃を止めた。複数の目が、春山を捉えた。
何かを検知している。春山の周辺で発生しているノイズを、脅威として認識したのかもしれない。魔物が一歩、春山の方に踏み出した。
春山は入力を止めなかった。
魔物が近づいてくる。
2歩。3歩。
座標値に、矛盾が積み重なっていく。エラーフラグが、立ち始めた。
4歩目で、魔物の動きが一瞬だけ止まった。
コマ落ちするような、断続的な動きだ。1歩踏み出して、止まる。また1歩踏み出して、止まる。
来ている。
しかし間に合うかどうか、わからない。
春山は入力の速度を上げた。指の関節が熱を持っている。アケコンを長時間叩いたときより痛い。それでも止めない。
魔物が腕を上げた。
春山との距離が、2メートルを切っていた。
ライカが叫んだ。
「春山さん!」
魔物の腕が降りてくる。
春山はウィンドウを開いたまま、タイミングを測った。
腕が届く、その直前。
世界の「視線」から、自分の体が零れ落ちる。
腕が、すり抜けた。
春山は崩れるように横に転がった。泥臭く床に膝をついた。しかし入力は止めなかった。
魔物の輪郭が、揺れた。
残留プロセスが消えたときと同じ揺れ方だ。
春山は最後の入力を重ねた。
魔物が、崩れた。
輪郭がノイズに変わって、ノイズが高密度になって、一点に収束して、消えた。消える直前に、区画全体に高周波のノイズが走った。壊れかけたスピーカーが大音量で鳴るような音だ。
そして、静かになった。
誰も動かなかった。
30人の精鋭が、その場に立ち尽くしていた。
指揮官が周囲を見渡していた。何が起きたかを整理しようとしている顔だ。
消えた、という事実だけがあって、理由がない。周囲の探索者たちも同じ顔をしていた。混乱の極致にいたため、春山の介入に気づいている者は少ない。
ユウリが壁に片手をついて、体勢を立て直していた。腕の強化魔法が切れている。
床に膝をついている春山を見た。何が起きたかはわからない。しかし誰かが何かをした、ということだけは、前衛として長く動いてきた身体が感じ取っているようだった。
ライカが走ってきた。
「春山さん、怪我は」
「ないです」
「でも」
「ないです」
春山は立ち上がった。膝についた埃を払った。
ライカが春山を見ていた。目が、いつもと違った。配信中の目でも、現場で戦っているときの目でもない。何かを結びつけようとしている目だ。
以前出口で交わした言葉が、頭の中で動いているような顔だ。
「……春山さんが」
「たまたまです」
春山は先に答えた。
ライカが口を閉じた。直感的な何かが、言葉になる手前で止まっている、という顔だ。
セイラは端末を見ていた。春山を見ていなかった。
しかし端末への入力が、止まっている。画面に何かが表示されているのか、あるいは何も表示されていないのか。どちらにせよ、セイラの指が動かないのは、何かを確認しているからだ。
頭上のドローンが、高度を下げた。
春山のいる位置に、寄ってきた。
機体のスピーカーが、鳴った。
「春山さん」
本田の声だった。観察室から、ドローン越しに話しかけてきている。
「今のを『清掃員の経験』で説明するな」
周囲の探索者が、ドローンを見た。しかしその言葉が誰に向けられているかは、理解していないようだった。
「あれは物理現象じゃない」
春山はドローンを見た。
レンズが、春山を捉えている。本田が観察室のモニター越しに見ているのは、春山の顔だ。そしておそらく、ドローンが撮影したデータの中に、春山の手元の映像もある。何もない空間を高速で叩き続けていた手の動きが、記録されている。
「お前、何者だ」
春山は少し考えた。
「……ただの在庫管理ですよ」
「在庫管理」
「不具合品を棚から下ろしただけです」
スピーカーが、しばらく沈黙した。
本田が何を考えているかは、声だけではわからない。しかしこの沈黙は、反論を探している沈黙ではない。受け取ったものをどこに置くかを、静かに決めている沈黙だ。
スピーカーが切れた。
ドローンが高度を上げて、元の位置に戻った。
春山は、魔物が消えた場所を見た。
消える直前のノイズが、どこへ向かったかを、フィルター越しに追っていた。
データは消えない。プロセスが終了しても、データは何らかの形で残る。サーバーの場合、終了したプロセスのログは必ずどこかに書き込まれる。書き込み先がある。
ノイズの残光が、フィルター越しに見えた。
川の流れのように、一方向に向かって動いている。壁を避けない。床も避けない。物理的な障害を無視して、直線的に移動している。データのパスだ。物理空間ではなく、システムの経路を流れている。
その方向を、座標で追った。
上ではなかった。横でもなかった。
下だ。
床を透過して、ダンジョンの深い方向へ落ちていった。
春山はフィルターを最大まで上げて、その流れの先を追った。
解像度が届かなくなる前に、方向だけは確認できた。全てのパスが、同じ一点に向かって収束している。ログの書き込み先がある。このシステムの根幹が、その先にある。
物理的な穴が開いているわけではない。床は石畳のままだ。しかしデータの流れは、その下に着地点があることを示している。
春山はフィルター越しに床を見た。
足元の石畳の向こう、遥か深くに何かがある。そこに辿り着かなければ、何もわからない。報告書を書く相手が、もしかしたらそこにあるかもしれない。あるいは、何もないかもしれない。
しかし確認しなければ、わからない。
保守員の習性は、溢れたバッファを確認することだ。
「……次は、深層か」
独り言が、静かな区画に落ちた。
Hブロックの天井が、遠く高くあった。
その先に、まだ見ていない深さがある。




