第12話 在庫管理の応用
管理局からの呼び出しは、3日後に来た。
南港の管理事務所。会議室と呼ぶには狭い、パイプ椅子と折り畳みテーブルだけの部屋だった。担当者は40代の男性で、スーツが少しよれていた。机の上に、春山の回収記録と、スペクタクル社の報告書が並んでいた。
「Eブロックでの件ですが」
担当者が、書類を見ながら言った。
「空間の不安定化が発生し、春山さんが一時的に孤立した。個体は春山さんが孤立した後、自然消滅したと理解していますが、相違ありませんか」
「そうです」
「回収された素材の中にイレギュラー個体由来のものが含まれていましたが、これは孤立した区画内に落ちていたものを回収した、ということでよろしいですか」
「そうです。空間が安定してから拾いました」
担当者が頷いて、書類に何かを書き込んだ。
「スペクタクル社の報告とも概ね一致しています。空間の不安定化は個体の消滅後に解消されたと記録されていますので、その間に自然消滅した可能性は十分あります」
春山は黙って聞いていた。
「お怪我はありませんでしたか」
「ありませんでした」
「そうですか。大変な思いをされましたね」
担当者の声に、それ以上の疑念はなかった。書類を整えて、春山に確認印を求めた。春山は印を押して、部屋を出た。
廊下を歩きながら、春山は息を一度だけ吐いた。
通過した。
しかし、これが限界だ。次に同じことが起きれば、説明が難しくなる。清掃員が単独でイレギュラー個体のドロップを回収する。それが2度続けば、「運」では説明がつかなくなる。
今後は、もっと慎重に動く必要があった。
その日の夜、春山は軽自動車の中でノートを開いた。
自分の能力の価値に気づいてから3日が経つ。管理局の呼び出しを受けながら、頭の中ではずっと別のことを考えていた。
0フレーム無敵の仕組みは確立した。
ウィンドウの開閉が、この迷宮への直接命令として機能する。通常の処理を飛び越えて、深い層に作用する。
ならば、同じ仕組みを別の方向に使えないか。
前職で担当していた旧型の在庫管理ソフトに、特定のバグがあった。
アイテムの移動処理とソート処理を、1フレームの誤差もなく同時に入力したとき、システムが重複チェックをスキップする。本来は「このスロットにはすでにデータがある」と弾くはずの処理が、同時入力のせいで走らない。結果として、同じスロットに複数のデータが書き込まれる。
スロットの中身が、重なる。
春山はノートに書き込んだ。
『仮説:回収袋への収納動作とウィンドウ開閉を1フレームで同時入力することで、重複チェックを回避できる可能性がある。同じ座標に複数のアイテムを登録させる』
書いてから、少し考えた。
問題は査定だ。
計量所の査定機は重さではなく、魔石の純度、つまりエネルギー量で値を決める。もし複数の魔石のエネルギーが1つに統合されるなら、査定機は「1個なのに複数個分のエネルギー反応」を検出することになる。
1つで3倍の純度。
それを持ち込んだとき、査定員はどう判断するか。
不審に思うか。あるいは「たまたま質の良い個体だった」で流すか。
ダンジョンのドロップ品には、もともと個体差がある。同じ種類の魔石でも、純度にばらつきが出ることは、業界では常識だ。通常の数倍の純度を持つ魔石が出ることも、稀ではあるが記録されている。
「……2〜3倍の範囲なら、押し通せる」
春山はノートに書き加えた。
『重ねる数は最大3個以内に抑える。4個以上になると純度が通常値を大幅に超え、不審を招く可能性がある』
在庫管理の仕事には、表に出ない数字の調整が伴うことがある。帳簿と実態を完全に一致させることが、常に正解とは限らない。現場ではある程度の「誤差の吸収」が、暗黙の了解として存在していた。
春山はそういう仕事を、10年間やってきた。
どこまでが「誤差の範囲」で、どこからが「説明できない異常値」なのか。その境界線を見極める感覚は、前職で体に染み込んでいた。
「……在庫管理は、丁寧にやるもんだ」
翌日、Cブロックの清掃に入った。
通常の清掃をしながら、実験の機会を探る。
春山は腰に下げた、どこにでも売っているポリプロピレン製の回収袋に目をやった。
この迷宮における回収袋の挙動は、以前から奇妙だと思っていた。
魔石を放り込んだ瞬間、袋の底でわずかに空気が震えるような手応えがあり、中身が「確定」される。どれだけ詰め込んでも袋が破れることはなく、持ち上げたときだけ、現実的な質量が手に伝わってくる。
探索者たちはそれを「ダンジョンの魔法」と呼び、利便性だけを享受している。だが、前職の経験と己の能力が春山に別の視点を与えていた。
これは、入力だ。
袋の口という「境界」を越えた瞬間、この世界は中身をドロップ品として認識し、情報を書き込んでいる。
ならば、その書き込みが行われる一瞬の隙を突けば、処理を誤魔化せるはずだ。
魔石を1つ拾い上げ、袋の口に持っていく。その瞬間に合わせて、左手でウィンドウを閉じる。
失敗した。
タイミングが合わなかった。袋に入れる動作とウィンドウ操作が、コンマ数秒ずれた。魔石は通常通り袋の中に収まった。
もう一度試す。
また失敗した。
問題は、入力の構造だ。前職でのバグ再現は、特定のキー入力を1フレームで同時押しすることで起きた。全てが指先の動作として統一されていた。
しかし今の入力には、「身体全体の動き」が混じっている。腕を伸ばして、手を開いて、魔石を袋に入れる。その一連の動作の中で、どの瞬間を「入力の完了」と定義するか。
「……手放す瞬間だ」
春山は気づいた。
袋の口で指を離す瞬間。魔石が自分の手を離れて、袋の中に落ちる、その瞬間。それが「データ登録の確定」にあたるとすれば、その瞬間にウィンドウを閉じれば良い。
指先が魔石から離れる瞬間とウィンドウを閉じる瞬間を、指先で同期した。
アケコンでコンボを入力するとき、最後のボタンを離す瞬間と次の入力の開始を同期させていた。あの感覚と同じだ。
試した。
かちり、という感触があった。
音ではなく、感触だ。指先に伝わる、微細な振動のような何か。通常の収納では感じたことのない、異質な手応えだった。
春山はすぐにウィンドウを開いた。
袋の中を確認した。
最初に目に入ったのは、光の乱れだった。
通常の魔石は均質な光を放つ。しかし袋の中の魔石は、表面の光が落ち着かなかった。緑色の光が、コンマ数秒ごとに明滅している。2つの光が同じ場所で干渉し合うように、互いに打ち消し合い、重なり合い、また干渉する。
3Dゲームで、2つのポリゴンが全く同じ座標に重なったとき起きる現象に似ていた。どちらを手前に描画すべきか、システムが判断できずに交互に切り替え続ける、あのちらつき。
「……Zファイティングだ」
春山は思わず言った。
2つのデータが、同じ場所を取り合っている。どちらが「正」かを決められず、表示が揺れている。
しかし数秒後、その明滅が収まった。
光が均質になった。
落ち着いた後の魔石は、見た目の上では通常と変わらない。しかし袋ごと持ち上げると、明らかに重かった。魔石1つ分の重さではない。
「……統合されたのか」
今度は意図的に2度目を試した。
放した瞬間に、ウィンドウを閉じる。
かちり。
また明滅が起きた。今度はより激しかった。3つのデータが同じ座標を取り合い、光がより不規則に点滅する。しかし10秒ほどで収まった。
袋を持ち上げると、さらに重くなっていた。
「……再現性がある」
春山はノートを取り出して、立ったまま書き込んだ。
『重ね合わせ(スタック)成功。放した瞬間とウィンドウ閉鎖の同時入力で重複チェックを回避。直後に表面の明滅が発生、数秒で収束。収束後は外見上通常と変わらないが、重さが複数個分に増加している』
一行空けて、続きを書いた。
『収束後の表面を精査すると、均質な光の中に微細なノイズが残っている。磁気テープの劣化ノイズに似た、細く不規則な線。明滅の痕跡か、あるいは別の何かか。要観察』
ペンを止めて、少し考えた。
魔石でできるなら、素材でもできるはずだ。
魔石は「エネルギーの塊」として扱われているが、素材は物理的な形を持つ。牙、爪、皮。それらをスタックできれば、複数の素材が同じ空間に重なり合う。密度が上がる。硬度が上がる。
「……次は素材で試す」
ノートの余白に、一行だけ書き加えた。
『素材への応用を検討。物理的オブジェクトの座標重複による密度変化を仮説として記録』
その日の夜、軽自動車の中で今日の成果を確認した。
スタックした魔石が3つ。明日、計量所に持ち込む。ただし通常の回収品に混ぜて、1つずつ別々に出す。一度に持ち込まない。
査定機が純度を検出したとき、どんな反応をするか。
「たまたま質の良い個体だった」で押し通せる範囲かどうか。
それが、明日の確認事項だ。
エンジンをかけた。
43号線へ出ると、夜の渋滞がいつも通り待っていた。
「……今日も、混んでるな」
標準語が、静かに車内に落ちた。
アクセルを踏んで、赤いランプの列に加わる。
頭の隅で、魔石の表面のノイズが残っていた。
明滅が収まった後に残る、細く乱れた線。あれは何なのか。
まだわからない。
しかし、また点が増えた。




