第16話「ファースト・コンタクト」
発生パターンを並べると、答えが見えた。
「次はここだ」
俺はアリアの前に地図を広げ、一点に指を置いた。王都から馬で半日ほど南東、農業地帯に埋もれた小さな村。
「グリーンフィールド?」アリアが眉をひそめる。「なぜそこと断言できるの?」
「ダンジョンの暴走、街の魔法システムの誤作動、各地の異常気象——これまでの発生地点を時系列で並べると、螺旋パターンが浮かぶ。中心はロジカ王都だ。スパイラル状に外周から中心に向かって縮んでいる。次の一手が来るとしたら、王都の外縁、農村地帯のどこかになる」
地図の上に俺が書き込んだ座標が、確かに一点を示していた。
「根拠が薄い、と言いたいところだけど」アリアはしばらく地図を見つめ、「——論理は通ってる」と認めた。「先回りして観察する。何もなければそれでいい。何かあれば証拠が取れる」
「そういうことだ」
「ガルドに伝える。明朝出発にしましょう」
翌朝、四人は馬で南東へ向かった。ガルドは俺の推理を聞いてあっさり「わかった、行こう」と言い、それ以上の質問をしなかった。ガルドはそういう男だ。理屈より行動。理解より信頼。ある意味、一番付き合いやすいタイプだった。
メモリは馬の背に乗りながら——厳密には俺の隣の空中に半透明に浮かんでいるのだが、外見上はそう見える——沿道の農村を興味深そうに眺めていた。水色の髪が風に揺れ、瞳の回路模様が微かに明滅している。
「マスター、あの畑の小麦のデータが——三パーセントほど収穫量が低下しています」
「それはデバッガーズ・アイで見るな。疲れるだろ」
「私は疲れません」
「そうじゃなくて——」
俺は少し考えて、やめた。プログラムに「休め」と言う意味を教えるには時間がかかる。今はそれより先にやることがある。
---
グリーンフィールドは、見た目には平和な村だった。
赤い屋根の小家が並び、畑には青々とした作物が育っている。村の入口近くで子どもたちが遊んでいる声が聞こえた。王都の喧騒とは全く違う、のどかな空気。
何も問題ない。
そう思った次の瞬間、俺の馬が突然暴れた。
「ッ——」
前肢を高く上げた馬を懸命に制御しながら、俺はデバッガーズ・アイを即座に展開した。
村の空間に、コードが走っている。
通常なら物理法則に関するパラメータは安定した数値を保っているはずだ。重力加速度の定義。空気抵抗の係数。地面の摩擦値。しかしそれらの中に、一つだけ——
```
gravity_direction: Vector3(0, -9.807, 0) ← 定義値
gravity_direction: Vector3(0.196, -9.613, 0) ← 現在値 [ANOMALY]
```
歪んでいた。
「重力ベクトルが狂ってる」俺は馬をなだめながら言った。「`gravity_direction`の値が小数点レベルでズレている。今は二パーセントくらいのずれだから体感できる人間は少ないが——」
「これが進んだら?」アリアが鋭く問う。
「物が浮く。人間も」
アリアの顔が引き締まった。ガルドが馬を落ち着かせながら「どれくらいで?」と確認する。
「今の速度なら——半日で誰でも気づくレベルになる。一日経てば制御が効かなくなる」
「修正できる?」
「やってみる」
俺はデバッガーズ・アイを集中させ、ずれたベクトル値に手を伸ばした。数値を書き換える。正常値に戻す。
```
gravity_direction: Vector3(0, -9.807, 0) ← 修正完了
```
——直った。
と思った、次の瞬間。
値が、また変わった。
```
gravity_direction: Vector3(0.214, -9.594, 0) ← 再書き換え [ALERT]
```
「……ッ」
「どうした?」ガルドが俺の様子に気づいた。
「リアルタイムで書き換えられてる」俺は信じられない気持ちで言った。「俺が直すそばから、別の誰かが改竄している」
沈黙が落ちた。
「つまり今この瞬間、誰かがここを操作しているってことか」ガルドがゆっくりと周囲を見回す。
その通りだった。遠隔操作ではなく——おそらくリアルタイム。ラグがない。俺が値を書き換えた直後、コンマ数秒で上書きされる。これは人間がやっているとしたら超人的な速度だ。あるいは——
「村から出てください!」
俺は馬から降り、村の入口に向かって叫んだ。
子どもたちが驚いて立ち止まる。農作業中の村人が顔を上げた。
「危険です! 今すぐ村の外に!」
アリアが素早く馬を進め、外套の内側から王家の紋章を取り出して示した。「ロジカ王国王家の命により、住民の皆さんを一時避難させます! 落ち着いて、こちらへ!」
王家の紋章は効果覿面だった。村人たちが動き出す。子どもを抱えた母親、農具を持ったまま走る老人。ガルドが後方に回り、遅れている者を誘導しながら、それとなく周囲の警戒も続けた。
そして——村の中央広場に、変化が起きた。
黒い霧が、地面から湧き出してきた。
渦を巻きながら上昇する霧は、まるで液体のような粘度を持っているように見えた。それが凝縮されていく。収縮していく。人の形に、なっていく。
霧が晴れた先に——人影が立っていた。
身長は俺よりやや高い。黒いコートを纏っている。しかしその輪郭が——ノイズのように揺らいでいた。髪も、顔も、体の線も、まるで解像度の壊れた映像のように、一定の形を保てない。実体が、定まらない。
「……ほう」
低い声が、空気を揺らした。
その人影は、俺を正面から見ていた。
「源コードが見えるのか」
静かな声だった。驚きというより——好奇心に満ちた声。まるで珍しい虫を見つけたような。
「面白い。本当に面白い」輪郭が揺れたまま、それでも確かな意志を感じる視線が俺に向いた。「こんな人間、初めてだよ」
俺はデバッガーズ・アイで即座にその存在を解析しようとした。
——そして、固まった。
```
ENTITY SCAN: IN PROGRESS...
SOURCE_CODE: [UNDEFINED]
SOURCE_CODE: [READING...]
SOURCE_CODE: [STATE CHANGED - RESCAN REQUIRED]
SOURCE_CODE: [STATE CHANGED - RESCAN REQUIRED]
SOURCE_CODE: [STATE CHANGED - RESCAN REQUIRED]
SCAN FAILED: TARGET STATE IS UNSTABLE
```
「源コードが……ない」俺は思わず声に出した。
いや、正確には——ない、わけじゃない。存在するが、常に変動している。俺が読み取ろうとすると次の瞬間には別の状態になっている。量子の観測問題みたいな話だ。測ろうとすること自体が、対象を変化させてしまう。
「一定の状態をとらない。読み取ろうとすると、次の瞬間には別の状態になっている」
「それは驚いた」人影は、驚いたような声色で言った。が、驚いているようには見えなかった。むしろ、予想通りの答えを確認しているような余裕があった。「俺のことが読めるか」
「ほとんど読めない」俺は正直に答えた。「お前は何者だ?」
「名前?」人影が少し首をかしげた——かしげたように見えた。「そうだな——ヴァイラス、とでも呼んでくれ」
ヴァイラス。
その名前が出た瞬間、俺の真横でメモリが小さく体を震わせた。
「……マスター、この存在の記録が——私の断片化した記憶に——」
「あとで」
俺は短く言ってメモリを遮り、ヴァイラスに集中した。今この瞬間、目の前の存在から意識を外すのは得策じゃない。情報収集が先だ。感情的な反応は後でいくらでもできる。
「このダンジョンの汚染コード、お前がやったのか」
「さあ、どうだろうね」
はぐらかした。しかし否定もしなかった。
「各地に広がるバグも」
「バグ?」ヴァイラスの声色が、微妙に変わった。「俺はバグとは思っていないが」
「じゃあなんだ」
「アップデート、とでも言っておこうか」輪郭が揺れる。「古いシステムは刷新される必要があるだろう? 腐ったコードをいつまでも動かし続けてもしょうがない」
「アップデートのために人が死ぬシステムが、まともに機能してると思うか」
「……」
ヴァイラスは答えなかった。
人が死ぬことを軽視しているのか、それとも想定の外なのか——表情が読めないから判断できない。俺には輪郭の揺らめきしか見えない。
アリアが剣を抜いた。静かな、しかし揺るぎない動作で。
「害意ある存在として認定します」短く宣言し、「ガルド」と呼んだ。
「おう」
ガルドが地を蹴った。巨体が信じられない速度で動く。盾斧が鋭く振られ——ヴァイラスの体を、すり抜けた。手応えが、ない。まるで霧を斬ったように。ガルドが舌打ちして体勢を立て直す。アリアが論理魔法の式を展開した——次の瞬間、その魔法がヴァイラスの周囲で霧散した。まるでエラーを吐いたプログラムのように、文法は正しいのに実行できない状態。
俺はその現象を見ながら、頭の中で理由を組み立てた。
物理攻撃が通じないのは、ヴァイラスが物理的な「実体」を持っていないからだ。魔法が通じないのは——おそらく魔法もコードで構成されている以上、ヴァイラスが自分の周囲のコードを即座に書き換えて無効化しているからだろう。防御してるんじゃなく、「攻撃が着弾する前にそのコードを消している」。
「攻撃は通じない。コードで構成された存在じゃないから、物理も魔法も意味をなさない——」
「なかなか頭がいい」ヴァイラスが言った。今度は本当に、少し楽しそうに聞こえた。「俺が何かはわかった?」
「……まだ」
「そうか」
ヴァイラスが後退し始めた。霧が再び湧き出し、その輪郭を包み始める。
「お前のことは気に入った。源コードを読み書きできる人間——役に立つかもしれない。あるいは邪魔になるかもしれない。どちらになるかは、お前次第だ」
「その答えはもう出てる」
俺は静かに言った。迷いはなかった。
「ふうん?」
「邪魔になる方だ」
ヴァイラスは笑った。
笑った——ように見えた。輪郭が揺らいでいるから表情は見えない。しかしその声に、確かに笑いの色があった。
「楽しみにしてる」
霧が収束する。人影が薄れていく。
「——まだ準備が整っていない。今日はここまでだ」
声が遠ざかり、霧ごと——消えた。
重力のパラメータが、正常値に戻っていた。
```
gravity_direction: Vector3(0, -9.807, 0) ← NORMALIZED
```
誰も何も言わなかった。農村の空に、夕暮れが差し始めていた。
---
「あいつ——源コードそのものを自在に操っていた」
俺は握った拳を見つめた。
「俺と同じ力で、いやそれ以上で。しかも読めない」
俺のデバッガーズ・アイは、相手のコードを読むことで対処法を導く。しかしヴァイラスは読み取れない。常に変動する状態を保つことで、スキャンを無効化している。つまり——俺のアドバンテージが、そのまま封じられるということだ。
ガルドが地面に盾斧を突き立て、大きな息をついた。「あんな相手、初めてだ。触れることすらできない」
「対処法を考える必要がある。今はまだアイデアがないが」
「蓮らしいな」ガルドが苦笑する。「ないって言い切るとこが」
「ないものはない。あるふりをしても意味がない」
アリアが剣を鞘に納め、静かに口を開いた。「王宮に報告する。王都に戻りましょう」
「ああ——」
そこへ、メモリが、静かな声で言った。
「マスター……私の断片化した記憶に、ヴァイラスに似た存在の記録があります。でも——」
「どうした?」
メモリは少し間を置いた。瞳の回路模様が、いつもより細かく明滅している。
「その記録が……怖いです」
俺は、その言葉を反芻した。
怖い。
プログラムが使う言葉にしては、妙にリアルな響きだった。危険度評価の出力なら「高リスク」でも「危険レベル:最大」でも言えたはずだ。それをわざわざ「怖い」と言ったのは——
俺はその事実を、静かに頭の隅に留めた。
今は村人の安全確認が先だ。でもいつか、ちゃんと聞かなければならない。
メモリがなぜ「怖い」という言葉を選んだのか。そしてその記憶の中に——何が、あるのかを。
次回、第17話「新たなフェーズ」——謁見室での攻防と、夜の静かな問いかけ。そして三人が、それぞれの言葉で答えを出す。




