第10話:バグの具現化(魔物襲来)
村の外れに出ると、そこはすでに地獄の様相を呈していた。
松明の赤い光が揺れ、金属音と悲鳴が入り混じる。
「ひるむな! 村に入れさせるな!」
騎士たちの隊長らしき男が叫ぶ。
白銀の鎧を着た精鋭たちが盾を構え、横一列の壁を作っている。
本来なら、どんな魔物の突撃も弾き返す鉄壁の布陣だ。
だが、相手が悪すぎた。
「ガアアアアッ!」
闇の中から飛び出してきたのは、「黒狼」の変異種だ。
だが、その姿は異様だった。
体長は優に三メートルを超え、全身の毛並みはノイズのように明滅している。
輪郭が定まっていない。時折、体の一部がポリゴン欠けのように透明になり、背景が透けて見える。
(……テクスチャが剥がれてる。やっぱりバグだ)
僕が屋根の上から戦況を確認した瞬間、信じられない光景が展開された。
黒狼が、騎士の盾に食らいついたのだ。
ガギン! という金属音はしなかった。
代わりに、ジュッ、という短い音がして、盾の表面が黒い格子模様に変わり、砂のように崩れ落ちたのだ。
「な、なんだこれは!?」
「盾が……消えた!?」
「ギャウッ!」
狼は盾を失った騎士の腕に噛みつく。
鮮血ではなく、赤黒いブロック状の破片が飛び散る。
騎士の悲鳴が、何か不快な電子音のように歪んで響く。
(……やばい。あいつら、コリジョン(衝突判定)がおかしい)
僕の『低レイヤー・ビジョン』が、敵の正体を解析する。
あれは生物じゃない。
聖泉の過剰な魔力を取り込み、自己増殖と変異を繰り返した果てに、物理法則から逸脱した「エラー・オブジェクト」。
通常の物質なら「硬い」「柔らかい」で計算される防御力が、奴らには適用されない。
触れたもののデータを「無効化(Null)」して上書きしてしまう——そういう厄介な仕様だ。
「くそっ、キリがない!」
「魔法部隊、何をしている! 援護しろ!」
後方から、魔法使いの騎士たちが火の玉を放つ。
だが、炎は狼の体に触れた瞬間、ジジッという音と共に吸い込まれて消滅した。
「魔法が……効かない!?」
「魔力を食ってるんだ! 奴らに魔法は逆効果だぞ!」
パニックが広がる。
戦線が崩壊しかけている。
剣も盾も魔法も効かない相手に、歴戦の騎士たちが蹂躙されていく。
テントの隙間から、怯えるリナの顔が見えた。
「レイン……」
リナが僕の名前を呼んだ気がした。
震えている。
当然だ。あんな絶望を見せつけられて、平気でいられるはずがない。
「……大丈夫だ」
僕は立ち上がった。
計算する。
今の騎士団の戦力では、全滅まであと十分。
その後、村は蹂躙される。
リナも、両親も死ぬ。
(……やるしかないか)
僕が動けば、確実に「代償」を払うことになる。
今の体調は万全ではない。
だが、選択の余地はなかった。
「どいてて。……『掃除』の時間だ」
僕は屋根から飛び降りた。
着地の瞬間、風魔法で衝撃を殺す。
騎士たちの最前線、崩れかけた防衛ラインの前に立つ。
「ぼ、坊主!? 何をしている、下がれ!」
「死にたいのか!」
騎士の一人が僕の襟首を掴もうとする。
その手を払い除け、僕は迫りくる黒狼の群れを見据えた。
「グルルゥ……!」
一匹の黒狼が、新たな獲物(僕)を見つけて飛びかかってきた。
口を大きく開け、あの「虚無の牙」が迫る。
「……邪魔だ」
僕は懐から、作り直したばかりの「杖(ジャンクMk-2)」を取り出した。
先端には、河原で拾った石英ではなく、先日壊した父さんの杖から回収した「微小な魔石の欠片」を埋め込んである。
一回使い切り(ディスポーザブル)の高出力仕様だ。
(物理演算、オーバーライド)
(重力定数 `g` を局所変種として再定義)
僕は指先を向けた。
詠唱なんていらない。
必要なのは、座標指定と、変数の書き換えだけだ。
**Target:** Enemy Object (Range 5m)
**Command:** Set Gravity = 100G
**Execute.**
――ズドンッ!!
耳をつんざくような轟音。
飛びかかってきた黒狼が、空中で見えない巨人の手に叩き潰されたように、地面に縫い付けられた。
「ギャンッ!」という短い悲鳴。
そして、グシャリと潰れる音。
「な……?」
騎士たちが目を見開く。
目の前の地面には、ペラペラの絨毯のようになった狼の残骸が張り付いていた。
三次元(3D)モデルの高さ(Z軸)を無理やりゼロにしたような、不気味な平面図。
「……ふう」
僕は息を吐いた。
まだだ。一匹倒しただけだ。
残りは四十九匹。
それに、森の奥からはもっと巨大な「親玉」の気配がする。
「ギャウッ! ギャウッ!」
仲間がやられたことに気づいたのか、群れの動きが変わった。
四方八方から、僕を包囲するように展開する。
賢い。
単体の処理能力(AI)も高いらしい。
「坊主、援護する!」
「させるかよ!」
騎士たちが盾を構え直す。
だが、僕は制止した。
「下がってて。あなたたちの武器じゃ、奴らのデータは削れない」
「な、なんだと……?」
「奴らは物理攻撃を透過するし、魔法を吸収する。倒すには、『環境依存のダメージ』を与えるしかないんだ」
「か、環境依存……?」
ポカンとする騎士たちを無視して、僕は杖を掲げた。
重力魔法は燃費が悪い。
連発すれば、僕の脳が先に焼き切れる。
もっと効率的に、一網打尽にする方法。
(……地面ごと、埋めればいい)
僕は地面に手を触れた。
土魔法。
ただし、土壁を作ったり弾丸を飛ばしたりするようなチャチなものではない。
地形データそのものの編集だ。
**Target:** Ground (Area 20m x 20m)
**Action:** Delete Polygon
**Depth:** -10m
「――《落とし穴》」
ズズズズズ……!!
地響きと共に、狼たちの足元の地面が突如として「消失」した。
穴が掘られたのではない。
最初からそこには何もなかったかのように、地面の存在判定が消えたのだ。
「キャンッ!?」
「ギャウッ!」
数十匹の黒狼が、一斉に奈落の底へと落ちていく。
もがこうにも、壁も足場もない。
ただの落下。
そして、その底には――
「……閉じて」
**Action:** Restore Polygon
僕は地面を元に戻した。
穴を埋めたのではない。
「穴があった場所」に、再び「土」というデータを上書きしたのだ。
結果、穴の底にいた狼たちはどうなるか。
大量の土砂と一体化し、圧縮され、存在ごと圧殺される。
ドムッ、という鈍い音が地下から響いた。
そして、静寂。
目の前には、何事もなかったかのような平らな地面が広がっている。
ただ、そこから滲み出る赤黒い液体だけが、地下で行われた大虐殺を物語っていた。
「……ば、バカな……」
「地面が……消えて、元に戻った……?」
「魔法……なのか? これが……?」
騎士たちが青ざめた顔で後ずさる。
味方であるはずの僕を、まるで化け物を見るような目で見ている。
まあ、いい。
慣れている。
前世でも、僕が書いたコード(自動化スクリプト)が凄すぎて、同僚から引かれたことは何度もあった。
(……ぐっ、きつい)
僕は膝をついた。
鼻血が滴り落ちる。
地形操作はリソースを食いすぎる。
視界が二重にブレる。脳内CPUの温度が危険域に入っている。
だが、まだ終わっていなかった。
ズゥゥゥゥゥン……!
今までとは桁違いの振動。
森の木々がなぎ倒され、巨大な影が現れた。
体長十メートル。
三つの頭を持つ、巨大な狼――ケルベロス・タイプ。
いや、よく見ると頭部がつぎはぎだ。
複数の狼がバグって融合してしまった失敗作のような姿。
「GROOOOOOOOOOO……!!」
咆哮だけで、鼓膜が破れそうになる。
バリバリと音を立てて、周囲の空間に電撃のようなノイズが走る。
ラスボスの登場だ。
「……はは。デバッグ作業に休日出勤はつきものだけどさ」
僕は口元の血を拭い、ふらつく足で立ち上がった。
杖を構える。
杖にもヒビが入っている。あと一発、撃てるかどうか。
「ちょっと、重すぎないかな……この案件」
愚痴をこぼしながら、僕は最後の力を振り絞った。
村を守るため。
そして、僕の平穏な生活を取り戻すために。
【今節の専門用語解説】
・ヌル・テクスチャ(Null Texture)
ゲームなどで、画像データが読み込めなかった時に表示される、紫と黒の格子模様などのこと。レインには、バグった狼に噛まれた盾が「データ欠損」したように見えた。
・物理演算(Physics)
重力や衝突、摩擦などを計算するプログラム処理のこと。レインはこの設定値をいじって、局所的に重力を100倍にした。
・環境依存(Environment Dependent)
特定の環境(OSやブラウザなど)でしか動かない、あるいは特定の環境を利用した動作のこと。レインは「落下ダメージ」という、敵の防御力に関係ない攻撃を利用した。




