群れという名のバグ
ライラスの焚き火のそばで一晩を過ごし、翌朝――と言っても、この森に朝と呼べる時間帯があるのかは怪しいが――俺は改めて奈落の探索に出ることにした。
「北に行くのは、今日はやめときな」
出がけに、ライラスがそう釘を刺してきた。
「北に何かあるのか」
「『集まる』時期でね。ああいうのは単体じゃ大したことないが、数が集まると話が変わる」
忠告はありがたく聞いておくべきだった。だが、俺は忠告の意味を、正確な形では理解していなかったらしい。
案の定、というべきか。木々の隙間を縫うように歩いていた俺の視界に、最初は小さな違和感として、それは映り込んだ。
ノイズ、だ。
巨木の幹に張り付くようにして、拳大の甲虫が一匹。その背中の甲殻には、テレビの砂嵐のような、細かい静電気じみたノイズがちらついている。よく見れば、複眼のあたりに、小さな文字列らしきものが明滅していた。
(――なんだ、あれ)
動作解析ログに意識を向ける。
[ 対象種別:端末型甲虫 ]
[ 周辺個体を検出:40体以上 ]
視界が一気に開けた。
一匹だと思っていたそれは、周囲の木々という木々に、鈴生りに張り付いていた。俺の接近に反応してか、無数の複眼が一斉にこちらを向く。
「――マジか」
考える間もなく、それらは一斉に木を離れ、俺目掛けて飛来してきた。
一匹一匹は取るに足らない。事実、最初の数匹は素手で薙ぎ払うだけで、粒子になって消し飛んだ。だが、数十という数が同時に牙を剥く状況では、「一匹ずつ丁寧にバグを探す」という、これまでのやり方が通用しない。
石を置いてスタンを誘発する、なんて悠長な真似をしている暇はどこにもなかった。
クロックダウン。
迷わず時間を沈める。世界が粘りつくような速度に落ちる中、俺は初めて、群れ全体をまともに観察する余裕を得た。
――おかしい。
四十を超える個体の当たり判定が、寸分違わず同じ形をしている。羽ばたきの角度も、顎の開閉のタイミングも、まるで一つのモーションデータを、四十体すべてが完全に同期して再生しているようだった。
[ 異常検知:対象群 全個体が同一の参照オブジェクトIDを共有 ]
(――こいつら、別々の個体じゃない。同じデータの、コピーだ)
直感が繋がる。だとしたら、この群れのどこかに、コピー元――「親」が存在するはずだ。
視線を素早く走らせる。ほとんどの個体は寸分違わぬ同じノイズパターンを背負っていたが、ただ一体だけ、群れの最後方、明らかに動きが一拍遅れている個体がいた。よく見れば、その背のノイズだけが、他より一段濃い。
[ 例外検出:1体のみ ID が異なる(参照元:PARENT_NODE) ]
(見つけた)
クロックダウンの残り時間はもう長くない。頭の芯が、早くも冷えたガラスみたいにジンジンと痛み始めていた。だが、迷っている時間はない。
俺は群れの壁を無視して、最短距離を突っ切った。周囲の個体が牙や針を突き立ててくるが、この程度、皮膚の表面を撫でる感触にしかならない。
狙いを定めた「親」に、拳を叩き込む。
[ PARENT_NODE を破壊 ]
[ 子オブジェクト:参照切断を検出 ⇒ 一括で機能停止 ]
次の瞬間、あれほど猛々しく蠢いていた四十体以上の群れが、まるで電源を落とされたみたいに、一斉に地面へ落下した。断末魔の一つもない、あっけない終わり方だった。
クロックダウンを解除する。
――そして、そこで初めて、俺は自分の体の異変に気づいた。
視界が、点滅している。
景色が二重に見え、耳の奥でキィンという高い音が鳴り続けている。膝から力が抜け、立っていられない。
[ 警告:クロックダウンの連続使用を検出 ]
[ 反動:知覚同期エラー発生(回復までの安静を推奨) ]
(連発、しすぎた……のか)
考える端から、思考がまとまらなくなっていく。地面が近づいてくる感覚があって、それが自分が倒れているからだと理解するまでに、随分と時間がかかった気がした。
「――おいおい、坊主。派手にやったな」
薄れる意識の中、聞き慣れた嗄れ声が降ってきた。ライラスだ。心配していたのか、それとも様子を見に来ていたのか、いずれにせよ、絶妙なタイミングで現れた老人が、俺の体を担ぎ上げる気配がする。
「……悪い、爺さん」
「詫びなんぞいらんよ。ただ、次からはワシの忠告、もう少し真面目に聞くんだな」
からかうような声。それを最後に、俺の意識は、静かに闇へと落ちていった。




