第3話「思い出せない夏の日」
意識が浮き上がる。
暗い水底から、ゆっくりと。最初に音。虫の声。それから重さ。足の裏の草。最後に光——星。
目を開ける。
大きな木の下にいた。いつもの場所。いつもの星空。金色、白色、淡い青色。空が星で満ちている。
体を起こす。指先から順に感覚を確かめる。手のひら。手首。肘。肩。首を回す。問題ない。
右手に鉛筆がある。黄色い軸。先端が潰れたHB。17.5センチ。
くるり、と回した。指が勝手にやる。もう止めようとしなかった。
根元を見た。
双葉がいた。
——大きくなっている。
しゃがむ。目を凝らす。昨日は4.2センチだった。今は——わずかに伸びている。葉の開きが広がった。茎が太くなったわけではないが、二枚の葉が少しだけ胸を張っているように見える。気のせいかもしれない。しかし4.2センチではない。
触ろうとして——手を止めた。
前もそうした。折れそうだから。茎が細すぎるから。理由は同じだ。同じ理由で同じ動作を繰り返している。それが「日課」というものなのかもしれない。
「おはようございます」
枝の間から白い光が降りてきた。ピンポン球ほどの発光体。ふわふわと揺れながら、双葉の上で止まった。
「エコー」
「定時報告です。サーバー稼働時間——」
「双葉は」
「——本日の報告をさせていただいてもよろしいですか。順番がありまして」
「双葉が先だ」
エコーの光が一瞬明滅した。抗議の明滅だったのかもしれない。
「……オブジェクト `futaba_test_final_FINAL_v2`。成長を確認しました。現在の計測値、4.7センチ。前回計測値4.2センチからの増加率——」
「伸びたな」
「——最後まで聞いてください」
「伸びただろ」
「はい。0.5センチの成長を確認しました。成長トリガーは依然として特定できていません。環境スクリプトに植物成長のルーチンは存在しないため——」
「仕様外か」
「仕様外です。引き続きモニタリングを継続します。——では、本日のサーバー稼働時間ですが」
「ああ」
「安定稼働を維持しています。草原エリアのテクスチャ読み込み範囲は依然として——」
「10歩で切り替わるやつだろ。知ってる」
「知っていても報告するのが職務です」
「律儀だな」
「律儀でないガイドAIは信頼を失います」
「信頼って……客、一人しかいないぞ」
「だからこそです」
エコーの声に感情はない。ないはずだ。ただ、「だからこそ」の言い方には——何かがあった。矜持に近い何かが。
双葉が揺れた。風はない。いつもの原因不明の揺れ。4.7センチの双葉が、虫の声の中で、ゆらゆらと。
---
足音が来た。
しゃくしゃくしゃくしゃく。速い。全力。定刻。——いや、定刻という概念はないが、体がこの足音のタイミングを覚え始めている。
「レンーーーーっ!!」
走ってくる。パーカーのフードがはためく。今日は右手に何かを握っている。小さな四角いもの。
五歩目。足元のテクスチャがグレーの格子にブツッと切り替わった。ひまりが一瞬つんのめる。もう驚かない。お約束だ。六歩目で戻る。
「来た!! 今日は——」
急ブレーキ。草が散る。パーティクルなし。
ひまりが右手を突き出した。四角いもの。
メニューカードだった。半透明のウィンドウが手のひらの上に浮かんでいる。
「天候システム、実装しましたーー!」
「天候」
「雨! 雨が降ります!」
「……この世界、永遠の夜だろ。先に昼を実装した方がよくないか?」
「夜でも雨は降るでしょ!」
「まあ……降るな」
「じゃあ降ります! いきます!」
ひまりがメニューカードをタップした。
何も起きなかった。
三秒。
五秒。
「……あれ」
「降らないが」
「ちょっと待って。もう一回——」
タップ。
バンッ。
空に雲が出現した。一枚。テクスチャ一枚がそのまま空に貼りついた。端がくっきり四角い。星空と雲の境界が直線で、遠景の山のシルエットを半分覆っている。そこだけ紙を貼ったみたいだ。
「——おっ、出た出た!」
「これ雲か? 四角いぞ」
「形は今後のアップデートで! 大事なのは雨!」
雲の下面から——白い線が降り始めた。
細い。無数の白い線。まっすぐに落ちてくる。風はないから斜めにならない。垂直に、等間隔に、夜空を細い白で埋めていく。
白い線が体に触れた。
——抜けた。
頭を通過して、肩を通過して、胴体を通過して、足の下に消えた。触覚のフィードバックがない。衝突判定がない。雨が体を貫通している。
「……抜けてるぞ」
「えっ」
ひまりが自分の体を見下ろした。白い線が彼女のパーカーを貫通して、スカートを貫通して、スニーカーを貫通して地面に吸い込まれていく。
「——あっ、衝突判定入れ忘れた!!」
「入れ忘れるな」
「ま、まあ、濡れないからいいかなって! メリットとも言える!」
「雨の意味がない」
「雰囲気です! 雰囲気が大事! 雨っぽさ!」
ひまりが両手を広げた。白い線が腕を貫通していく。体を突き抜ける雨の中で、彼女はくるりと回った。パーカーの裾が広がる。
「ほら、きれいでしょ?」
——きれいだった。
認めざるを得なかった。衝突判定が壊れていて、雲が四角くて、雨が体を素通りしている。
システムとしては破綻している。しかし——白い線が、星明かりの代わりのように草原に降り注いでいる。
貫通するからこそ、雨粒ではなく光の糸のように見える。細い白線が無数に落ちてきて、草の上に消えていく。
草が濡れるわけでもない。ただ通過するだけ。なのに、草原が——少しだけ柔らかく見えた。
「……嫌いじゃない」
「でしょー?」
ひまりが笑った。えへへ、の手前の、満足げな顔。
地面を見た。雨が地面に到達している。体は貫通するのに、地面には——染みている。
白い線が草の隙間の土に触れた瞬間、わずかに色が変わる。濡れた土の色。暗い茶色が少しだけ深くなる。
体は貫通して、地面には染みる。
奇妙な矛盾だ。
バグなのか、仕様なのか。この世界ではその区別に意味がないことを、三日で学んだ。
「あっ、見て見て! 水たまり!」
ひまりが指差した先に、地面の窪みに水が溜まっている。
光を反射して、星空を映している——かと思ったら、映しているのはデバッグコンソールだ。池と同じバグ。
「踏んでみて!」
嫌な予感がした。
「……お前が先に踏め」
「えー、なんでー」
「開発者の義務だろ」
「テストプレイはプレイヤーの仕事です」
「NPCはプレイヤーに入るのか?」
「労働力の有効活用だよ」
「搾取だろ」
踏んだ。
ドゴンッ。
体が打ち上げられた。
真上に。猛烈な勢いで。草原が足の下で一瞬で小さくなった。星空が近づいた。雲の四角いテクスチャを突き破った——突き破れた。衝突判定がないのはこっちも同じらしい。
放物線の頂点。一瞬だけ止まった。Star Gardenの全景が見えた。草原、花畑、池、丘、シンボルツリー。全部が小さい。テクスチャの切れ目が丸見えだ。
落下。
重力が戻る。加速する。地面が迫る。
ドスン。
草原に着地。足の裏から衝撃が走った。HPが——減っていない。落下ダメージがないらしい。
「あはははは!!」
ひまりが腹を抱えて笑っていた。
「すっごい飛んだ!! 何メートル!? 百メートルくらい!?」
「……衝突優先度おかしいだろ」
「水たまりの衝突優先度、999にしちゃってた……えへへ」
「えへへじゃねえ。死ぬかと思った」
「落下ダメージないから大丈夫!」
「それは結果論だろ」
「結果よければ全てよし! ひまりイズム!」
エコーの光が近づいてきた。ふわふわと。
「報告します。天候システムに5件のバグを検出しました。雲テクスチャの形状異常、降雨の衝突判定欠如、水たまりの衝突優先度異常値——」
「やめて!」
「——降雨パーティクルの透過率未設定——」
「やめてって言ってるの!」
「——スカイボックスとの描画順序の競合。以上です」
「…………ぅぅ」
ひまりがしゃがんだ。小さくなった。三度目の報告爆撃に対する、条件反射的なしゃがみ。
「修正の優先順位を指示してください」
「……水たまりだけ直す。他は仕様」
「仕様ですか」
「仕様です」
エコーの光が明滅した。何かを飲み込んだ明滅に見えた。
「……記録します」
---
「次! 新エリア!」
ひまりが立ち上がった。切り替えが速い。しゃがんでいたのが嘘みたいに弾けた。
「浜辺作ったの! 三日かかった!」
「浜辺」
「海! 波! 砂浜! ——行こ!」
走り出した。草原を横切って、花畑の方へ。おはなのアーチは迂回した——天井の岩石モンスターは健在だ。全速力で抜ければ当たらないと分かっていても、あの「どっすん」のスポーン音は心臓に悪い。
花畑を抜ける。赤、青、黄色の花が等間隔で地平線まで続く。ランダム配置スクリプトはまだ直っていない。軍隊式配列の花畑。しかし花弁の透過処理は丁寧で、星明かりが花びらの縁を透けて光る。ひまりの力の入れどころは、いつも偏っている。
花畑の向こうに——音が聞こえた。
波の音。
低く、寄せて、引いて、寄せて——ブツッ。
途切れた。三秒の無音。
——ザザァ。
戻った。
「あれ波の音か」
「うん! サンプリング自信作! ……ループのつなぎ目がちょっとだけ」
「ちょっとじゃないだろ。ブツッて切れた」
「三秒だけだから!」
花畑を抜けた先に——浜辺があった。
砂。白い砂。星明かりを受けてかすかに輝いている。細かい粒の一つ一つにテクスチャが割り当てられているかのように、表面の反射処理が丁寧で、歩くと足元がさらさらと光る。
——ひまりの足元が。
波打ち際が見えた。暗い水面。寄せて返す白い泡の線。動いている。ちゃんと動いている。波が浜を這い上がって、止まって、引いていく。泡が砂に残って、消える。
水平線——が、左三分の一で途切れていた。海のテクスチャが途中でぷつんと終わって、その先はデフォルトのスカイボックス——夜空。海と空の境界が消失して、左側だけ海が空に溶けている。
「水平線、途中で——」
「知ってる! テクスチャ足りなかった! けど右側三分の二は完璧でしょ!」
右を見た。確かに、右三分の二は水平線がきっちり引かれている。海面と空の境界。暗い水面に星が映り込んでいる。
映り込んだ星が——美しかった。
海面が揺れるたびに、星が揺れる。水面の波紋が星の光を引き伸ばして、縮めて、また引き伸ばす。
金色の星が水面で細い線になって、白色の星が丸い光点になって、淡い青の星が水の底に沈むように滲んで——波が来るたびに全部が混ざって、引くと元に戻る。
「……いいな」
声に出ていた。
ひまりが振り向いた。目が少し大きくなった。
「え、どこ? どこがいい?」
「海面の反射。星が揺れてるところ」
「あっ、そこ! そこは頑張ったの! 波のメッシュに反射マップ載せて、揺れの周波数を星のスクリプトと同期させて——」
「よく分からんが、きれいだ」
ひまりの口が止まった。半開きのまま。技術的な説明の途中で、ぶつりと停止した。
「——えへへ」
耳が赤かった。
褒められ慣れていない人間の反応。毎回そうだ。具体的に褒めると止まる。
漠然とした「すごい」には「でしょー!」と返すが、具体的な箇所を挙げると黙る。照れる。耳が赤くなる。
「石も見て! 石!」
ひまりが砂浜の石を拾った。丸い。灰色。表面に細かい模様が入っている。石のテクスチャが——これも丁寧だった。ひとつひとつの石に微妙な色の違いがある。
「石なんか誰も見ないだろ」
「わたしが見る! 石のテクスチャ、一個一個手で描いたの!」
「……暇か」
「暇じゃない! こだわりだもん! 三等星の色分けと同じくらい大事なの!」
「三等星と石を同列に並べるな」
「どっちもわたしの作品だもん。同列だよ」
歩いた。砂浜を。波の音が寄せて返す。三秒ごとにブツッと切れる。切れて、戻る。波音のループ。不完全なループ。それでも、波は動いている。ちゃんと浜を這い上がって、引いていく。
浜辺の北端に近づいたとき——音が聞こえた。
波の音ではない。甲高い。
「アウッ。アウッ。アウッアウッアウッ」
「……何の音だ」
「え? ——あっ」
角を回った。浜辺の北端。岩場の向こう。
オットセイがいた。
大量にいた。
灰色の丸い体。短い手足。黒い目。ひげ。一体一体は愛嬌のあるフォルムだが——問題は数だった。
岩場を埋め尽くしている。びっしりと。重なり合って。折り重なって。背中の上に別のオットセイが乗っている。その上にまた乗っている。三段重ね。四段重ね。端から端まで。
「アウッアウッアウッアウッアウッアウッアウッ」
鳴き声が重なって壁のようになっている。一体の声は可愛い。百を超えると圧力になる。
目の前で、砂浜からまた一体がポコンと湧いた。生まれたての顔で鳴いた。「アウッ」。
「……何体いる」
「えっと……ちょっと待って……ステータスで……」
ひまりが管理者メニューを開いた。数字を見た。顔が引きつった。
「ひゃ、百十四……」
「百十四体」
「海洋生物のスポーン上限、設定してなかった……」
「スポーン上限を設定しないとどうなる」
「……無限に湧く」
目の前でまた一体湧いた。「アウッ」。百十五。
エコーの光が寄ってきた。
「報告します。環境生成テーブル『海洋生物(装飾用)』のデフォルト生物がオットセイに設定されています。スポーン上限値が未定義のため、ティックごとにスポーン判定が発生し——」
「やめて」
「——現在も増加中です」
「やめてって言ったのに」
オットセイの群れを見た。百十五体。百十六。目の前で湧いた。「アウッ」。鳴き声は可愛い。一体なら飼いたいくらいだ。百十六体は飼えない。
「……壁で囲え」
「え?」
「透明な壁。ここの北端だけ囲って、外に出ないようにすればいい。スポーン上限は後から直すとして、増えてもこの中に収まるようにしておけば被害は広がらない」
ひまりが目を丸くした。
「……レン、それ天才じゃない?」
「普通の判断だろ」
「オットセイゾーン! オットセイ専用ゾーン! いいね! やる!」
管理者権限。透明な壁が四方に出現した。浜辺北端の岩場を囲む。長方形。天井はない——天井をつけると空のテクスチャと干渉するらしい。
オットセイたちは囲いの中で鳴いている。「アウッアウッアウッ」。外には出てこない。新しく湧いた個体も壁の内側にスポーンする。
「解決! ……たぶん!」
「たぶんっていうな」
「上限値は後で直すから! たぶん!」
「二回目のたぶんは信用できない」
「えへへ」
---
浜辺を歩いた。
オットセイゾーンを背にして、南へ。波打ち際に沿って。ひまりが少し先を歩いている。砂浜に足跡がついていく。小さな足跡。スニーカーのパターン。波が来るたびに、足跡の端が少しだけ削れる。
波を見ていた。
寄せて、返して、寄せて——ブツッ。三秒。——ザザァ。戻る。
きれいだ。
水面が揺れている。星が揺れている。海面の反射。金色。白色。淡い青色。
きれいだ、と思っている。思っているのに——何かが引っかかっている。海面の反射でも、波音のループ切断でもなく、もっと奥の、引き出しの底の——
波を見ている。
暗い水面。星の反射。泡の白。波が足元に寄せてくる。寄せてきて——
「……波、冷たかったな」
声が出ていた。
自分の声だった。口から出た。出した覚えがない。考えて発話したのではない。波を見ていたら、口が勝手に動いた。声帯が振動して、音が出て、言葉になった。
冷たかった。
冷たい。この世界に温度はない。触覚フィードバックは限定的で、温度のパラメータは実装されていない。「冷たい」は存在しない感覚だった。
なのに口が言った。
「波、冷たかったな」——過去形。いつの。何の。
ひまりの足が止まった。
振り返ったひまりの顔を見て——空気が変わったことが分かった。
さっきまでの笑顔が消えていた。消えたのではない。剥がれた。下にあった別の表情が出てきた。
目が——どこを見ているか分からない目になった。こっちを見ているのに、もっと遠くを見ている。もっと前を見ている。時間の向こう側を。
「——レン」
声のトーンが違った。いつもの弾んだ声ではない。低い。慎重な声。初めて聞く声だ。
「今、なんて言った?」
「……波が冷たかった、と」
「冷たかった?」
「ああ」
なぜそう言ったのか分からなかった。分からないまま、口が止まらなかった。
「靴が——濡れたから」
引き出しの底。空っぽだった引き出しの底に、何かが貼りついていた。
剥がれないと思っていたものが、波を見ていたら——剥がれた。ぺりぺりと。言葉の形をして。
「麦わら帽子」
映像ではない。視覚ではない。もっと手前の——手触り。指先の。手のひらの。濡れた布の。
「走って、追いかけて……俺は海に入っていって」
足の裏の感覚。砂。熱くない砂。湿った砂。走った。麦わら帽子を。追いかけた。
「——泣いてたよな」
止まった。口が止まった。最後の言葉だけが、他の断片と違った。
温度があった。感覚ではなく情動。
胸の奥の、名前がつかない圧力。
誰かが泣いていた。小さい。自分より小さい。
沈黙があった。
波の音が寄せて返す。ブツッ。三秒。ザザァ。
ひまりは動かなかった。砂浜に立ったまま。両手がスカートの裾を握っている。指が白い。
一秒。二秒。三秒。四秒。五秒。
ひまりに五秒の沈黙は長い。普段の彼女なら一秒で言葉が出る。二秒あれば話題が変わる。五秒は——普通ではなかった。
「……麦わら帽子」
ひまりの声。かすれていた。
「被ってた?」
質問だった。質問の形をしていた。しかし質問ではなかった。彼女は答えを知っている。知っていて聞いている。確認している。答え合わせをしている。怖がりながら。
「…………分からない」
分からなかった。本当に分からなかった。断片しかない。映像がない。音声がない。手触りだけ。濡れた布の感触。麦わらの、あの——ざらざらした——
「……被ってた。たぶん」
たぶん。確証はない。でも指が知っている。頭の上の、帽子の重さ。あれは——自分のだったのか。拾った帽子のだったのか。
ひまりが息を吸った。小さく。鼻から。
「泣いてたって……誰が」
「お前——」
口が言った。また勝手に。言ってから気づいた。お前。なぜ「お前」と言った。
目の前にいるひまりに向かって、過去形の記憶を当てはめた。
NPCとして三日前に生成された自分が、「お前、泣いてたよな」と過去形で。
ひまりの唇が震えた。——見えた。下唇が、わずかに。
「泣いてなかったよ」
静かな声だった。否定の声。しかし怒りはない。悲しみとも違う。もっと複雑な——答え合わせの、最後のピースを置くような声。
「笑ってた」
笑って、いた。
ひまりの目が赤い。目の縁。ほんのわずかに。泣いてはいない。泣いていない。
本人がそう言うなら、そうだ。地の文がそれを否定する権利はない。
「……そうか」
それしか言えなかった。
自分が何を言ったのか、半分も理解できていなかった。
波。冷たい。靴。麦わら帽子。走った。泣いていた——笑っていた。
断片が口から出て、砂浜にばらまかれて、波に攫われるみたいに消えていく。
回収できない。意味を組み立てられない。自分の口から出た言葉なのに、自分のものではないような——空の引き出しの底に貼りついていたものが、勝手に剥がれて、勝手に落ちた。それだけだ。
ひまりが動いた。
一歩。前に。
そして——いつもの速度で、切り替わった。
「——よし! オットセイゾーンの様子見に行こ! 増えてないかな! 増えてるだろうなー!」
声のトーンが戻っている。弾んでいる。明るい。いつものひまりだ。
——速い。
切り替えが速い。五秒の沈黙から、ゼロコンマ何秒かで元に戻った。
地面に落ちたガラスの破片を、一瞬で掃いて絨毯を敷き直したような切り替え。
何事もなかったかのように。笑顔。いつもの笑顔。
速すぎる。
速すぎることが——何かを意味している気がした。走って逃げているのか、走って追いかけているのか。どちらなのかは分からない。
聞かなかった。聞かないほうがいい。三度目の直感。同じ場所から。引き出しの底の、かすかな振動。
「……ああ」
短く応えて、歩き出した。
---
浜辺から草原へ戻る帰り道。
砂浜が草に変わる境界を踏んだとき、テクスチャの切り替わりが0.5秒ほど遅延して、足元が一瞬だけ砂と草のハイブリッドになった。
砂から草が生えている。あるいは草の上に砂が降っている。どちらにしてもバグだ。
「あっ、テクスチャの——」
「知ってる」
「まだ何も言ってないのに」
「顔で分かる」
ひまりが口を尖らせた。いつもの表情。日常の表情。さっきの浜辺の空気は——もう、ここにはない。
歩きながら、ひまりが口を開いた。
「レンってさ」
「うん」
「前も——」
止まった。
言葉が途切れた。口が開いたまま、音が出ない状態が一瞬あって——閉じた。唇を引き結んで、飲み込んだ。何かを。
「……なんでもない」
「なんでもないの多くないか。お前」
「お互いさまでしょ」
「…………まあな」
前も。
何の前だ。いつの前だ。自分は三日前に生成された。
「前」は三日分しかない。
三日前にログインしてきたひまりと会って、Star Gardenを案内されて、落とし穴に落ちて、いっぱいドアハウスから脱出して、ぷるりんキングを倒して——それが全部だ。全部の「前」だ。
ひまりが言いかけた「前」は、その三日間のどこかを指しているのか。
それとも——もっと前を。
聞かなかった。
---
草原を歩く。しゃくしゃく。いつもの足音。ひまりが二歩先を歩いて、レンがその後を追う。三歩目でテクスチャがグレーに切り替わり、四歩目で戻る。
渓谷の方角から、ガコン、という音がした。
「何の音だ」
「あ、渓谷の橋。重力無視して浮いてるんだった……直してない……」
「橋が浮いてるのか」
「うん。渡ろうとすると足場がなくなるの」
「それ橋じゃないだろ」
「橋です。浮いてる橋です。——あっ、そうだ、ぜったいあたるけどいたくないハンマーで渓谷の地面叩いたらどうなるか知ってる?」
「知らない」
「空が割れるの」
「……なんで?」
「分かんない! バグ!」
笑った。ひまりが笑って、それにつられて——つられた、のか? つられて笑う、という判定がパラメータにあるのか。ないと思う。ないのに口の端が持ち上がった。
川のそばを通りかかった。相変わらず水が上に流れている。重力ベクトルの反転。水面に星が映り込んでいて、水が上に流れるせいで星が逆さまに昇っていく。きれいかバグかで言えば、両方だ。
川の上空を——何かが泳いでいた。巨大な影。鱗が星を反射してきらきら光る。
「……デカい魚が空を泳いでいるんだが」
「——あれは……えーっと、作った覚えないけど、たぶんバグかな……」
「名前は?」
「つけてない。ただの魚」
「そのうち誰かが名前つけるだろ」
「誰かって、ここ三人しかいないよ」
「じゃあそのうち三人の誰かが」
エコーの光がふわりと追いついてきた。
「報告します。川エリアの重力バグにより大気圏に流出した魚アセット `fish_01` は、現在も上空を周回中です。軌道に変化はありません」
「ありがとうエコー。報告はもういい」
「もう一件あります」
「……何」
「落とし穴の四番目の底面テキストを確認しました。『ドンドンドンマイ!!!!』です」
「それ報告する必要あるか?」
「記録は網羅的であるべきです」
「…………律儀すぎる」
渓谷の橋が遠くでまたガコンと鳴った。浮いて、落ちて、浮いて。誰も渡らない橋が、永遠に浮き沈みを繰り返している。
笑った。また笑った。バグを見て笑っている。三日前なら「壊れてる」としか思わなかった。今は——壊れていること自体がこの世界の手触りだと分かっている。
草原に戻ってきた。大きな木が見えた。シンボルツリー。広がった枝。根元の——双葉。
双葉が見えた。4.7センチ。さっきより大きくは見えないが、雨が地面に染みた後だからか、葉の色がわずかに明るい気がした。気のせいかもしれない。
ひまりが双葉の前にしゃがんだ。
「……ねえ、レン」
「うん」
「この子に名前、つけたい」
双葉を見ている。小さな二枚の葉。風のない世界で揺れている。
「お前が決めろ」
「うん。——ふたばちゃん」
「…………そのまんまだな」
「そのまんまがいいの! 分かりやすいし! ふたばちゃん! ね、ふたばちゃん!」
双葉が揺れた。返事をしたように見えた。風はない。原因不明の揺れ。
エコーの光が降りてきた。双葉の上で静止した。
「管理対象名を更新します。通称『ふたば』。——登録しました」
「ありがとうエコー!」
「仕様外のオブジェクトに名前がつきました。これは——」
エコーの光が、ほんの一瞬だけ揺れた。
「——前例がありません。記録します」
仕様外の存在が、名前を得た。
仕様書にないもの。生成経路が特定できないもの。誰が作ったのでもないもの。偶然と偶然が重なって、気まぐれに地面を刺したシャーペンの芯から、勝手に生えてきたもの。
それが「ふたば」になった。
名前をつけるというのは、どういうことなのか。ここにいていい、ということなのか。ここにいることを認める、ということなのか。
——考えすぎだ。パラメータに哲学のパラメータはない。たぶん。
双葉が揺れている。ふたばが揺れている。4.7センチの、小さな命——命なのかは分からないが、他に呼び方を知らない。
---
夜が続いている。
この世界に夜しかないことを忘れかけている。永遠の夜空。永遠の星。ひまりが好きだから夜しかない世界。月はまだない。朝もない。昼もない。
大きな木の根元に座った。いつもの場所。二人分の——三人分のスペース。レンが幹に背を預け、ひまりが少し離れて膝を抱え、エコーが枝の間でふわふわしている。
星を見上げた。
金色。明るい星。一等星。
白色。中間。三等星。
淡い青色。遠い星。五等星以下。
色分けが丁寧で、空の奥行きが色だけで伝わる。
三日かけて制作した、とひまりが言っていた。
「……三等星のやつが好きだ」
口にしていた。
「え?」
「淡い金。一等星の金とは違う。もっとくすんでて、遠い。あの色は——出そうとしても出せないだろうな」
ひまりが動いた。首がこっちを向いた。目が——大きくなった。
「そういうの……言うんだね」
声が小さかった。小さくて、柔らかくて、どこか遠い声。
「言うも何も、見たまんまだ」
「ううん。見たまんまじゃないよ。三等星の色のこと、そうやって言う人——」
止まった。
「前も——」
また止まった。口が閉じた。飲み込んだ。
二度目。帰り道の一回を合わせて、今日二度目の「前も」。
「…………なんでもない! ——あのね、天の川やろうかなって思ってるの」
切り替えた。また。速い。今度は一秒もかからなかった。
「天の川?」
「星の密集エリア。今の星空って全体的に均一でしょ? もっとメリハリがほしいなって。帯みたいに星が集まってるところがあったら、もっと——」
「いいと思う」
「——えっ、もう賛成?」
「お前は自分の好きなものを完璧に作りたいんだろ。花も、砂浜の石も。ちゃんと作れるものから作っていくのは、悪い事じゃない」
ひまりが黙った。
黙って、こっちを見ていた。目が——さっきとは違う色をしていた。浜辺のときの、答え合わせの目ではない。もっと単純な——驚きと、嬉しさと、何かが混じった目。
「……レンって」
「うん」
「……ありがとう」
「何が」
「ちゃんと見てくれて」
「見てるだろ。目の前にあるんだから」
「目の前にあっても見ない人はいるよ」
ひまりが笑った。えへへ、ではなかった。もっと静かな笑い。口の端だけが持ち上がって、目が細くなって、視線が少しだけ下を向いた。
星の光が、ひまりの横顔に落ちていた。金色と白色と淡い青。三色が混じって、頬の輪郭を縁取っている。
——温かい。
温度は、ない。この世界に温度はない。実装されていない。VRデバイスの触覚フィードバックに温度のパラメータはない。
なのに、隣にいる距離が——温かい。前回もそうだった。前々回もそうだった。ログアウトの後、一人になると消える温度。存在しない温度。パラメータにない温度。
引き出しの底が、また振動している。かすかに。
---
「……そろそろ帰るね」
「ああ」
ひまりが立ち上がった。草を払う。草はついていない。癖。
メニュー画面。半透明のウィンドウ。ログアウトのボタン。
指がボタンの上で止まった。前回と同じだ。少しだけ迷う。ほんの少しだけ。迷いの時間が——前回より長い気がした。気のせいかもしれない。
振り返る。
「じゃあね、レン。ふたばちゃん。エコー」
「ああ」
「おやすみなさい。記録を継続します」
ふたばが揺れた。風はない。
「おやすみ」
ひまりの体が光り始めた。
白い光。足元から。つま先から。光の粒子が上昇していく。スニーカーが溶ける。脚が溶ける。スカートの裾が。パーカーの袖が。指先が。
笑顔のまま透けていく。向こう側の星空が見える。三等星の淡い金色が、ひまりの透けた体の向こうで揺れている。
最後に——手を振る形。五本の指の輪郭が光の粒になって。
散った。
星空に混じった。
消えた。
波の音が——ここまでは聞こえない。虫の声だけが残った。
立ち上がった。
砂浜に行く気はなかった。行く気はなかったのに——足が向いた。草原を横切って、花畑を抜けて。おはなのアーチは迂回して。
砂浜に出た。
波が寄せて返している。ブツッ。三秒。ザザァ。星が海面で揺れている。
足元を見た。
砂浜に足跡があった。
小さな足跡。スニーカーのパターン。ひまりの足跡。波打ち際に沿って、二人で歩いた軌跡。寄せる波に端を削られながら、まだ残っている。
ひまりの足跡の隣に——自分の足跡がない。
砂浜を歩いた。確かに歩いた。ひまりの隣を。同じ方向に。同じ距離を。
ひまりの足跡だけが残っている。スニーカーの凹凸。右足、左足、右足、左足。一人分の足跡が波打ち際に沿って続いている。
一人分。
NPCの歩行は地形を変形させない。プレイヤーの歩行だけが砂を凹ませ、痕跡を残す。
知らなかった。気にしたことがなかった。草原では足跡など見えない。砂浜だから分かった。
自分がここを歩いた記録が、どこにもない。
立ち止まった。波が足元に寄せてきた。引いていった。砂は凹まなかった。
水も——水の衝突判定がどうなっているかは知らないが——足に触れた感覚はなかった。
通過した。雨と同じだ。体を貫通する。
存在の痕跡が残らない。
足跡がない。
ここを歩いたことの証拠が、物理的にどこにも残らない。
「…………」
波が来た。引いた。ひまりの足跡が少し削れた。あと何回か波が来たら、彼女の足跡も消える。
そうしたらこの浜辺を歩いた人間は——ゼロになる。
振り返った。草原の方。大きな木のシルエット。その根元の、4.7センチの双葉は——遠くて見えない。
仕様外の双葉。自分が植えた——植えたというほど意図的ではない——気まぐれで地面に刺した芯から生えた、仕様外の双葉。
あれは、残っている。
あれだけが、自分がここにいた痕跡として——残っている。
波の音が繰り返す。寄せて、返して、ブツッ、三秒、ザザァ。
戻った。
---
大きな木の下。根元。ふたばの横。
座った。エコーの光が枝の間にいる。白い光。静かに浮遊している。
「エコー」
「はい」
「今日の浜辺での——俺の発言。記録したか」
「はい。全て記録しています」
「『波、冷たかったな』から始まるやつ」
「はい。記録された語彙を列挙します。『波、冷たかったな』『靴が濡れた』『麦わら帽子』『走って追いかけて』『泣いてたよな』——以上五件。いずれも生成ログに存在しない未登録語彙です。パラメータとの一致率はゼロ。生成経路は特定不能です」
「……俺はなんであれを言ったんだ?」
「分かりません。パラメータからの出力であれば経路を追跡できますが、今回の語彙は——どこからも来ていません。少なくとも、わたしがアクセスできるログの範囲には、出所が見当たりません」
「仕様外か」
「仕様外です。重大度を低から中に引き上げます」
「中」
「ふたばの件は重大度・低のままです。環境への影響が限定的なので。しかし今回は——NPCの応答エンジンが、入力に基づかない出力を五件連続で生成しています。これは軽微とは言えません」
沈黙。
虫の声。ふたばの揺れ。
「……お前はどう思う」
「どう、とは」
「俺が言ったこと。——意味があると思うか」
エコーの光が——止まった。明滅が完全に止まった。一定の白い光。
長い間があった。
「……分かりません」
「分からないか」
「分かりません。しかし——」
光がわずかに揺れた。
「——気になります」
初めて聞く言い方だった。報告でもなく、事実の列挙でもなく、分析の結論でもない。「気になる」。主観的な言葉。ガイドAIの標準出力にある言い回しなのか、それとも——
「お前、また仕様外だぞ」
「……かもしれません」
「修正するか?」
「修正はしません」
即答だった。迷いがなかった。
「記録します。——あなたの発言も、わたしの所感も。全て」
「律儀だな」
「律儀でないガイドAIは——」
「信頼を失う、だろ」
「……はい」
エコーの光が、ほんのわずかに——柔らかくなった気がした。光の色は変わらない。白のまま。でも、硬さが抜けた。初日もそう感じた。二度目だ。
右手に鉛筆がある。先端が潰れたHB。
くるり、と回した。
なぜこの動作をするのか。三日目になっても分からない。分からないまま、指が覚えている。指だけが知っている。
波の感触を思い出そうとしたが——思い出せなかった。
「冷たかった」と口が言ったが、体は覚えていない。
覚えていないものを口が言った。引き出しの底に貼りついていたものが——口だけに届いて、体には届かなかった。
足跡がなかった。
砂浜に、自分の歩いた跡がなかった。
ここにいたのに。確かに歩いたのに。
ふたばが揺れている。4.7センチ。風のない世界で。
——あれは残っている。
あれだけが。
意識が閉じていく。星が遠くなる。虫の声が遠くなる。エコーの光が遠くなる。
最後に思ったのは——明日、ひまりの足跡はまだ残っているだろうか、ということだった。
---
```
Star Garden ── server: local_stargarden_01
player_count: 0
npc_count: 1
guide_ai: ECHO ── status: active
[LOG] プレイヤー himari がログアウトしました ── 22:36:09
[LOG] 本日のプレイ時間:3時間12分
[LOG] NPC npc_ren_01 ── 待機モードに移行
[WEATHER] 天候システム(雨)── 初回稼働
[WEATHER] バグ5件を検出(雲テクスチャ形状異常 / 降雨衝突判定欠如 /
水たまり衝突優先度999 / 降雨パーティクル透過率未設定 /
スカイボックス描画順序競合)
[NOTE] 管理者指示:水たまりのみ修正。他は「仕様」
[AREA] 浜辺エリア ── 公開
[AREA] バグ3件を検出(波音ループ3秒切断 / 水平線描画不足(左1/3)/
オットセイ無限湧き(現在237体))
[NOTE] オットセイゾーン ── 設置完了。提案者:npc_ren_01
[ANOMALY] npc_ren_01 ── 未登録語彙5件を検出
「波、冷たかったな」
「靴が濡れた」
「麦わら帽子」
「走って追いかけて」
「泣いてたよな」
[ANOMALY] 生成ログ:該当なし
[ANOMALY] パラメータ:不一致
[ANOMALY] 生成経路:特定不能
[ANOMALY] 重大度:低 → 中 に引き上げ
[ANOMALY] npc_ren_01 ── 砂浜歩行時の地形変形なしを自己認識
(NPCによる環境痕跡の不在を初めて意識的に検出)
[LOG] オブジェクト futaba_test_final_FINAL_v2 ── 4.2cm → 4.7cm(成長を確認)
[LOG] 通称「ふたば」── 管理対象名を更新
[LOG] anomaly_count: 6
[LOG] runtime: stable
[ECHO] ……気になります。
── 記録を終了します。
```
---
ひまりはVRヘッドギアを外した。
髪が額に張りついている。手の甲で押さえた。汗。走り回ったわけでもないのに、汗をかいていた。
部屋は暗い。二階の六畳間。窓の外は夜。カーテンは半分開いている。街灯のオレンジが壁に細い線を引いている。
机の上。教科書の山は昨日と同じ高さだが、位置がずれている。母が掃除に入った痕跡。教科書の下に黄色い付箋が挟まっている。
付箋を抜いた。
母の字。丸くて少し右に傾いた字。
「お兄ちゃんのお見舞い、日曜日に行こうね。 母より」
付箋を見ていた。
しばらく見ていた。
付箋を教科書の山のいちばん上に置いた。裏返さなかった。見えるところに。
ベッドに座った。スマートフォンを手に取った。画面が点いた。
LINEの通知はなかった。
——なかった。美優からの通知がない。昨日は三件来ていた。今日はゼロ。
未読メッセージを開いた。昨日の三件。「今日もカラオケ楽しかったよー!」「ひまりの分のポテトも頼んだのに(泣)」「てか最近返信遅くない?? 大丈夫??」
既読がついていない。昨日、開かなかった。今、開いた。既読がついた。
指がキーボードの上を滑った。
「ごめ」
二文字で止まった。
バックスペース。消した。
「だいじょ」
四文字。消した。
画面を見ていた。カーソルが点滅している。入力欄が空白のまま。
スマートフォンを枕元に置いた。裏返さなかった。画面が上を向いたまま。美優のトーク画面が光っている。
仰向けに倒れた。天井を見た。白い天井。
右手を持ち上げた。何もない手。指を広げた。何かを回すような動きをした。何も持っていない指で。
止めた。手を下ろした。
毛布を引っ張った。膝まで。顔は出したまま。
天井を見ている。
三時間十二分。いつもより長かった。学校から帰って、宿題を片付けて、ログインしたのが——何時だったか。帰ってきたのが今。時計を見ない。見ない。
「…………」
机の上のPCはスリープに入っている。画面は暗い。昨日はスリープ前にファイル名が見えた。`npc_oniichan.dat`。今日は見えない。画面が先に消えた。
街灯のオレンジがカーテンの隙間から伸びている。細い光の線が、天井の隅まで届いている。
「……波が冷たいって、言った」
声は小さかった。天井に向かって。自分にしか聞こえない声。
「教えてないのに」
沈黙。
「鉛筆の回し方も。波のことも。麦わら帽子のことも」
沈黙。
「——なんでもない」
毛布を顔まで引き上げた。
目を閉じた。
付箋が教科書の山のいちばん上で、街灯の光を受けて黄色く光っている。
「お兄ちゃんのお見舞い、日曜日に行こうね。 母より」
部屋が暗くなった。
街灯のオレンジだけが残っている。カーテンの隙間。細い線。天井の隅まで届いて、壁を伝って、教科書の山の影を床に落としている。
毛布の中から、呼吸の音がした。
浅い呼吸。少しだけ速い。眠りに落ちる直前の呼吸ではない。起きている人間の、何かを堪えている呼吸。
毛布が動いた。
顔が出た。目だけ。天井を見ている。暗い天井。星はない。当たり前だ。ここは現実の部屋で、現実の天井で、現実には——星を三日かけて色分けしてくれる人はいない。
目が、窓の方を向いた。カーテンの隙間。その向こうに、夜空がある。街灯と電線に切り取られた、細い夜空。星は——見えない。街の明かりが強すぎて。
「……明日も行くからね」
毛布の中から、声がした。
前回より小さな声。前々回より小さな声。
小さくなっていく声。
誰に言ったのかは——分からない。分からないまま、声だけが暗い部屋に落ちて、消えた。




