第3章 こんにちは、テストです
「森、ですか?」
朝食の席で切り出すと、リタは目を丸くした。
「北の森に、薬草を探しに行きたいんだ。病み上がりの体にいいって、本で読んだから」
「駄目です! 北の森は、領民も近づかない場所なんですよ」
「どうして?」
「出るんです」
リタは声をひそめた。
「森に入った人が、同じところをぐるぐる回って出られなくなったり、鳥がずっと同じ調子で鳴き続けていたり。村の年寄りは、あそこは神様に見捨てられた森だって」
同じところを回る。同じ調子で鳴く鳥。
俺の頭の中で、二つの言葉が結びついた。
ループ処理。それに、移動判定の不具合。
「……やっぱり行く。昼までには戻るよ」
「アルト様っ!」
リタは最後まで渋ったが、結局、昼食の包みを持たせてくれた。父には「薬草探し」で通した。黄金色の麦畑の一件以来、父は俺のすることに口を挟まなくなっていた。
北の森は、屋敷の裏手から半刻ほど歩いた先にあった。
一歩踏み込んだ瞬間、違和感が首筋を撫でた。
木が、同じなのだ。
枝の分かれ方も、幹の瘤の位置も、まったく同じ樫の木が等間隔に並んでいる。三本目で気づき、五本目で確信した。一本のモデルを、コピーして貼り付けている。
鳥の声がした。チチチ、チチ。三秒の沈黙。チチチ、チチ。三秒の沈黙。寸分違わぬ間隔で、同じ鳴き声が繰り返される。
少し先では、一頭の鹿が木の幹に向かって歩き続けていた。脚は動いているのに、体は一歩も前に進まない。当たり判定に引っかかったまま、足踏みを続けている。
「……ひどいな、これ」
思わず笑ってしまった。笑うしかなかった。
これは、俺たちの手抜きの跡だ。
思い出した。『LOGOS ONLINE』の開発初期、王国の北側には何もない空き地があった。そこを俺たちは、機能テスト用の「サンドボックス」として使っていた。新しい木のモデルを置いてみる。鳥の鳴き声を鳴らしてみる。鹿の歩行を試してみる。
正式サービスの前に、その区画は「北の森」として背景用のマップに流用された。テスト用のオブジェクトを、きちんと片付けないまま。
あなたが忘れた子が、そこにいます。
NUMの言葉が、胸の奥で重みを増していく。
テスト用の区画に、俺が置いて、忘れたもの。心当たりは、ありすぎた。
◇
森の奥へ進むと、木々が途切れ、小さな円形の広場に出た。
地面に、淡く光る円が描かれている。
スポーン地点。キャラクターの出現位置を示す、開発用のマーカーだ。本来なら、プレイヤーの目に見えるはずのないものだった。
その円の真ん中に、少女が立っていた。
両腕を真横にまっすぐ伸ばし、足を揃え、正面を見つめたまま、微動だにしない。
──Tポーズ。
3Dモデルの、初期姿勢だ。
「……嘘だろ」
少女の髪は、白に近い銀色だった。ただし毛先だけが、目に痛いほど鮮やかなマゼンタに染まっている。
マゼンタ。ゲーム開発者なら誰でも知っている色だ。テクスチャの読み込みに失敗した時、代わりに表示される警告色。
白い簡素なワンピースの裾と袖口には、マゼンタと黒の市松模様が入っている。これも、欠損テクスチャの定番の模様だ。
首元で、小さな金属のタグが光っていた。
刻まれている文字は、遠目にも読めた。
《test_07》
記憶の蓋が、音を立てて開いた。
十一年前。会話システムの検証用に、俺が作ったテストキャラクター。七番目だから、test_07。見た目は既存の素材の寄せ集めで、台詞は全部仮のもの。正式実装の前に消すつもりで、ここに置いた。
そして、消し忘れた。
少女の首が、かくりと動いた。
両腕がゆっくりと下がる。左右で色の違う瞳が、俺を捉えた。右は深い紫。左は、色が設定されていない初期値の灰色だった。
少女は、抑揚のない声で言った。
「こんにちは、テストです」
……そうだ。そういう台詞を入れた。
「この台詞は、正しく表示されていますか?」
「……表示されてるよ」
「確認しました。ありがとうございます」
少女はぺこりと頭を下げた。下げすぎて、額が膝につきそうになった。角度のパラメータを、たぶん間違えて入れている。
「テスト、テスト。音声の再生テスト中です。聞こえていますか?」
「聞こえてる」
「確認しました。ありがとうございます」
また、深すぎるお辞儀。
俺は額を押さえた。笑えばいいのか、謝ればいいのか、わからない。
手袋をはめた手を握り、小さく呟く。
「@root」
時間が延びる。手袋の縫い目から、回路の光がかすかに漏れた。
「look test_07」
《object: test_07(テスト用NPC)》
《HP: 1 / 防御力: 99999》
《所持品: テスト用の剣 ×99、テスト用のりんご(食べられません) ×1》
《役割(role): null》
《好感度: 未設定》
《状態: 待機中(命令元: @root)》
《削除キュー: 登録済み ── 登録元: [external]》
最後の一行で、笑いが引っ込んだ。
削除キュー。外部の何者かが、この子を消す予定に入れている。
役割を持たないNPC。どの物語にも、どの仕事にも属さない存在。この世界を書き換えている「外部」から見れば、彼女はただのバグだ。
◇
そして、もう一つの行が、俺の胸を刺した。
待機中。命令元、@root。
俺だ。
テストの最終日、俺はこの子に「ここで待機」というコマンドを打ち込んだ。翌日に続きをやるつもりで。だが翌日は仕様変更の対応に追われ、そのまま忘れた。
俺は「exit」と呟いてコンソールを閉じ、少女に向き直った。
「……ずっと、ここで待ってたのか」
「質問の意味を確認します。待機時間についての質問ですか?」
「ああ」
「待機時間を測定する機能は、実装されていません」
少女は首をかしげた。かくり、と、少しだけ角度が大きすぎる動きで。
「ですが、空が暗くなって明るくなる回数を、数えていました。数える機能もありませんでしたが、数えていました」
「……何回だ」
「十万を超えたあたりで、数字が桁あふれしました」
息を呑んだ。
十万日。三百年近い。
現実では、俺がこの子を置いてから、十一年しか経っていない。
広場の端に、見上げるほどの大樫がそびえていた。幹は、大人が五人で囲んでも足りないほど太い。
覚えている。あれは、俺が成長アニメーションのテストのために置いた、苗木だった。
この世界の時間は、現実よりもずっと速く流れている。
誰かが、時計の針を回している。何のために。
手帳に書き留める指が、わずかに震えた。
《世界の時間:現実より大幅に速い。苗木→大樹。test_07の待機:十万日以上》
《時間を加速しているのは、外部か》
俺は手帳を閉じ、少女の前に立った。
「ごめん」
「謝罪の意味を確認します。謝罪の対象は、何ですか?」
「待たせたことだ。ここに置いて、忘れたことだ。……全部、俺のせいだ」
少女は、しばらく俺の顔を見ていた。紫と灰色の瞳が、何かを読み取ろうとするように、まばたきもせずに。
「該当する返答が、登録されていません」
そう言って、少女は首元のタグに触れた。
「代わりに、質問します。待機命令は、まだ有効ですか?」
「……いや。解除する。もう待たなくていい」
「待機命令の解除を確認しました」
少女の肩から、ふっと何かが抜けたように見えた。気のせいかもしれない。表情は、少しも変わっていないのだから。
「次の命令を、ください」
「命令はしない」
俺は首を振った。
「代わりに、名前を呼ばせてくれ。test_07だから……ナナ。仮の名前だ。本当の名前は、いつか自分で決めればいい」
「ナナ」
少女は、その音を確かめるように繰り返した。
「ナナ。……登録しますか?」
「君が嫌じゃなければ」
「嫌、という感情パラメータは、未設定です」
そう言いながら、ナナは俺の上着の袖を、指先でつまんだ。
離さないように。もう、置いていかれないように。
その仕草は、俺が書いたどの動作データにもないものだった。
その時だった。
チチチ、チチ。三秒ごとに繰り返されていた鳥の声が、ぷつりと途切れた。
森が、静まり返る。
木々の隙間で、何かが白く光った。一つ、二つ、五つ。
白い甲冑をまとった騎士たちが、音もなく森の中に立っていた。兜の奥には、顔がない。ただ、のっぺりとした白い面があるだけだ。
視界の端に、呼んでもいないコンソールが勝手に開いた。
《[修正パッチ] 削除対象 test_07 を捕捉》
《[修正パッチ] 不明な権限保持者を検出。照合を開始します》
ナナが、俺の袖を握る指に、ほんの少し力を込めた。




