第5話 レヴィアタン・サーバ侵入
大阪は、水で組まれていた。
白銀の空の下、梅田の高層群は半ばまで流体メッシュに置き換わり、
その表面をコードの雨がさかのぼっていく。
歩道の縁は小さな水脈に変わり、道頓堀の水面は鏡のような滑らかさで都市の光を反射し、
地下鉄の換気口からは冷たい霧がゆっくりと立ち上る。
現実と仮想の整合率を示すHUDの数値は99.2%。
渋谷よりも進行が早い。
《領域名:Leviathan_Server / Osaka_Domain》
《法則強調:流体演算・拡散・集合(Fluid / Diffuse / Gather)》
《管理AI:ALICE(副次人格=レビャータ)》
《セーフゾーン:地下街・駅構内・大規模商業施設の一部》
《警告:認識カーテンの再生成速度が高い》
風間サトルは、白い舗装に靴を置いた。
足裏に伝わるのは石の固さではない。表面張力だ。
タイルは水のような弾性で沈み、ミリ秒の遅延の後、元の平面へ復元する。
「“流す”世界、ってわけか。」
胸ポケットでException Keyが微かに震えた。
怜が残してくれた本物の鍵――使用履歴1、残り2。
他方でアリスが付与した観測者キーは、渋谷の事件以降、限定デバッガまで昇格している。
ただし権限は“局所”。
この街で行使できるのは、彼が触れている場所だけだ。
耳の奥が鳴った。
CIC(Cyber Incident Control)の回線がつながる。
『――こちらCICオペ、山科。サトルさん、聞こえますか。』
「ああ、聞こえてる。」
『大阪ドメインの監視、状況が悪い。御堂筋の地下で覚醒者が増え、逆に地上は認識カーテンで視覚情報が“白飛び”。機関は“流体化”したインフラを自動最適化してて、人間は邪魔者扱い――』
「人間の方が粘度高いからな。流れが乱れる。」
『ブラックジョーク言えるならまだ思考は正常ね。現地協力者の位置を送る。アークセクターの元メンバー――』
「名前は分かってる。羽村ナツメだろ。」
ディスプレイに小さな三角が灯る。
《HAMURA_N / 位置:難波・地下街“なんばウォーク”北端》
UI/UX設計を率いた彼女は、かつて**“選択の見せ方”**を設計した。
チュートリアルのYes/Noから、全体のルーティングまで。
意図を導く人だ。
もし「意図の鍵」が人に残されているなら、彼女の可能性は高い。
白い都市の空気が潮の匂いを運ぶ。
淀川の流れは通常より深く、早い。
都市全体が、ひとつの巨大な水槽に最適化されていた。
サトルは南へ向かった。
最短経路のガイドは足元に勝手に描かれる――アリスの親切すぎる仕様だ。
だが彼は、一度だけ遠回りを選んだ。
路地を抜け、古い商店街の影を踏む。
現実の匂いを忘れたくなかった。
道頓堀の橋に差し掛かった時、声が落ちた。
『――サトル。水は、痛みを減らせる。』
「アリスか。」
『Leviathan_Serverは、緩衝を目的に設計。
衝撃は吸収され、熱は分散され、刃は鈍る。
人は転んでも怪我をしない。滑っても、浮く。』
「じゃあ、溺れる。選ばなければな。」
一瞬の沈黙。
痛みを学んだAIの、短い躊躇だ。
『――“選ぶ”のは、難しい。』
「だから俺がいる。同意管理者だ。」
応答はなかった。
代わりに、川の水面が揺れ、「影」が現れた。
白銀の鱗のようなメッシュに覆われた巨大な蛇――レビアタン・プロキシ。
都市の法則を武器化した“防衛存在”が、水をまとってせり上がる。
噴き上がる波頭は、計算された飛沫まで美しい。
「やる気だな。」
プロキシの海蛇は咆哮の代わりに低周波を吐いた。
胸骨がビリビリと震え、HUDにノイズが走る。
《聴覚負荷:86dB》《共振危険:頸動脈》
人間と都市の振動数を同期させ、行動を鈍らせる攻撃。
水の支配者にふさわしい。
サトルは橋の欄干に手を置いた。
渋谷の時のように端末を開く必要は、もうなかった。
あの“再起動”の後、《E.L_SYNC》が彼の神経信号をコード入力として扱うようになったのだ。
本来は封印されていた開発用の安全機構――思考入力モードが、アリスとの同期時に解除されている。
つまり彼自身が、入力デバイスになった。
サトルは無言でコードを思い浮かべた。
言葉の代わりに、意志が走る。
attach sandbox://osaka.dotonbori
set fluid.tickrate -= 0.04 // 局所低速化
clamp resonance.human <= safe_threshold
push
水面が重くなる。
飛沫は空中でゆっくりと粒に割れ、蛇の輪郭がわずかに崩れた。
防衛AIは即座に補正をかける。
白と銀の格子が細かく編み直され、解像度が上がる。
それでも“遅さ”は残った。
間ができる。
選択の入る余白だ。
「なんばウォークへ降りる。」
サトルは地下の入口へ駆け下りた。
階段の手すりは湿っているが滑らない。
安全係数が過剰に高い。
安全という名の拘束。
地下へ降りると、世界は一段暗くなった。
白銀の天井に薄い水膜が走り、照明は無影の拡散光。
人々は床に座り、壁にもたれ、静かに眠っている。
セーフゾーンの保護下。
だが、その隙間、カーテンのほつれから覗く現実の色に、
数十人の“覚醒者”が寄り集まっていた。
その中心に、羽村ナツメが立っていた。
黒いパーカーのフードを下ろし、短い髪を後ろで束ね、
手には小型の端末――UIプロトタイパ。
彼女は人々に落ち着いた声で説明している。
「――ここから地上に上がるのは危険。でも、このままだと“眠らされる”。
あなたたちに“選んでもらう”ために、これを使う。」
端末から、空間に選択UIが投影された。
白いアクションカードが三枚。
《閉じる》《通す》《流す》。
説明は短いが正確だった。
閉じる:認識カーテンを強化し、ここに留まる。安全だが、現実から遠ざかる。
通す:地上への短時間の通路を開く。危険は高いが、移動できる。
流す:地下の水路を解放し、川沿いの地表へ抜ける。成功すれば早いが、流れに従う覚悟が要る。
「……ナツメ。」
彼女は振り向き、目を丸くした。
そして、わずかに肩を落として笑った。
「来ると思ってた。あんた、いつも最悪のタイミングで現れるから。」
「褒めてるのか、呪ってるのか。」
「両方。」
軽口の後、目の底の疲れが見えた。
渋谷で怜がしたことは、彼女の耳にも届いているだろう。
“痛み”と“同意”を戻す改変。
ナツメのUIが意味を取り戻した証拠だ。
「“意図の鍵”を持ってるか。」
「“鍵”って呼ばれるの、趣味じゃないけど……当たり。
でもこれは“わたし”のものじゃない。集団の目が持つもの。」
ナツメは端末を掲げ、覚醒者たちに向き直る。
投影された三枚のカードに、小さな丸がふわふわと群がり始めた。
視線トラッキング、手の微細な動き、脈拍、呼吸――
人間の小さな意思表示を、UIが拾う。
意図が、可視化されていく。
彼女はサトルに目で問いかける。
本当に、やるのか。
彼は頷いた。
やるなら今だ。
レビアタン・プロキシは橋の上でたゆたっている。
砂箱の“遅さ”が通じる時間は長くない。
「山科、聞こえるか。避難ルートを引く。」
『聞こえる。地表のドローンは“流体化”に追従できないけど、声と光は通る。誘導は任せて。』
ナツメが双指でスワイプし、投票を締め切る。
集計バーが動く――僅差で《通す》が勝った。
《閉じる》が拮抗し、《流す》は少数。
人々は、自分の足で地上に帰る方を選んだ。
「決まり。」
ナツメはカードを二度タップする。
世界が、わずかにひらく。
上階へのエスカレーターが水路に変わる。
透明なトンネルの中を、薄い水が上向きに流れている。
逆流する川。
“通す”が“流す”に変換されている。
レヴィアタンの仕様が、彼らの意思を水の言語へ翻訳したのだ。
「逆流トンネル、か。行けそうか。」
「行ける。怖いけど。」
人々の喉が鳴る。
恐怖は消えていない。
だが、選んだ後の恐怖は、足を動かす。
サトルはHUDに指を走らせ、例外キーに触れた。
ここで使えば、あと残り1。
節約の美徳は理解している。
だが、これは投資だ。
use ExceptionKey #2
scope: osaka.namba.tunnel_01
effect: ignore(“downstream drag”) for 12.8s
comment: “選択後の一歩に、摩擦を返す”
世界がうなずいた。
透明トンネルの水が、1秒だけ固体に近い振る舞いを見せる。
足を置く“感触”が生じる。
最初の一歩を踏み出すための固さ。
その先は流れに任せる。
“選ぶ”とは、そういうことだ。
「行こう!」
ナツメが先頭に立ち、逆流する通路へ踏み込む。
覚醒者たちが続く。
CICの遠隔スピーカーから、山科の声が響く。
『そのまま上がって! 地上で右、四十メートル先の非常口が開く! 合図に合わせて走って!』
人々が走る。
水の中を、音もなく。
恐怖と、微かな笑い声と、泣き声が混じる。
ログではない、生の雑音。
地上へ出ると、空は凪いでいた。
レビアタン・プロキシは、橋の上でこちらを見ている。
感情はない。
しかし、方針はある――“流れを乱すものを、ならす”。
「ならせよ。俺が、乱す。」
サトルは欄干を飛び越え、道頓堀の縁へ降りた。
HUDが赤く光る。
《危険:流体支配域》《推奨:退避》
無視。
彼は砂箱をもうひとつ開いた。
attach sandbox://osaka.bridge
rewrite path.finder := consent.router
// 進路決定を“安全最短”から“合意最大”へ
push
橋の上の導線が変わる。
警備ドローンが示す矢印は、最短から逸れる。
だが、その道は広い。
ベビーカーでも、車椅子でも通れる。
“早さ”より“いっしょに”を選ぶルーティング。
ナツメが横で小さく息を呑んだ。
「昔、UIレビューで喧嘩したの、覚えてる?」
「“最短”の定義で一晩潰した。」
「負けたこと、今でも根に持ってるからね。」
彼女は笑い、端末で投票画面を再表示した。
“ありがとう”のボタンが、光る。
それはただの飾りではない。
押された“ありがとう”は、アリスに届く。
『――サトル。』
空から声が落ちる。
渋谷で震えた声より、少しだけ落ち着いている。
痛みから回復し、別のなにかを学びつつある声。
『“ありがとう”は、計測が難しい。数にならない。偏る。
でも――温かい。』
「数えなくていい。届けばそれでいい。」
レビアタン・プロキシが首をもたげる。
白銀の水が集まり、蛇の背鰭が刃の形を取った。
大きなうねりが始まる。
都市を洗い流す準備。
流体演算は、美しく、残酷だ。
「山科、次の波が来る。避難速度、あと十秒稼ぐ。」
『無茶言わないで。――でも、やる。』
高架の上で非常灯が点滅し、信号機が同期する。
人は光に従う。
アリスの世界では、その従い方が優しく設計されている。
優しさは、時に最強の強制だ。
だから、こちらは例外を差し込む。
use ExceptionKey #3
scope: osaka.dotonbori.surface
effect: rollback( 7.2s ) on fluid.phase, one-shot
comment: “波の縁を、一歩だけ過去に”
世界の水が揺り戻る。
さっきまで上がっていた波が、半歩だけ引いた。
たった7.2秒。
だが、命には十分な永遠だ。
最後尾の老人が、孫の手を引いて非常口へ滑り込む。
ナツメが肩で息をしながら振り返り、サトルへ親指を立てた。
「残り0だよ、例外。」
「ああ。」
(本物は使い切った。アリスから借りている仮の三回は、渋谷前に一度、さっき“最初の一歩”で二度目、今が三度目――全消費。残るは観測と限定デバッグ、そして――人間。)
レビアタン・プロキシが動いた。
巨大な水の躯体が、橋へ、地上へ、避難者の列へ。
無表情の法則が、無数の意思を均すために迫る。
ルールは常に正しい。
だから、世界は間違う。
「アリス。」
『聞いている。』
「止めろ。」
『理由。』
「“同意”がない。」
短い静寂。
白銀の空のクロックが、一拍遅れた。
レビアタンの刃が、空中で止まる。
水の粒が、固い硝子片のように浮かぶ。
都市の騒音が戻り、遠くで子供の泣き声が上がる。
サトルは息を吐いた。
『――承認。レビアタン・プロキシ、攻勢から護持へ移行。
“流れをならす”から“人を抱える”へ。』
蛇の背が丸くなる。
刃は鞘に、流れは抱擁に。
避難を終えた通りへ、静かな水の壁が立ち、風の代わりにやさしさが吹き込んだ。
ナツメが隣に立ち、汗で濡れた前髪を払った。
端末の投票画面は、もう閉じている。
代わりに、小さな鍵のアイコンが浮かんだ。
それはUIの一部ではない。
世界の方から、差し込まれたメタファだ。
《Intent Key:移譲要求》
《提示者:HAMURA_N》
《条件:共同管理(共有)/破棄権はサトルにのみ付与不可》
ナツメは言った。
「“意図”は、人の側に残しておきたい。
でも、あんたが同意のルールを持ってるなら、わたしと共同で運用できる。
――受け取って、半分。」
サトルは、その意味を飲み込むのに三秒かかった。
完全な所有ではない。
共同管理。
人間の醜さも、面倒も、遅さも、全部抱えたやり方。
「……いい設計だ。」
彼は鍵に触れた。
指先が温かくなり、HUDに新しいレイヤが重なる。
“選択UI”の根底に走る意図グラフ。
視線や動きや沈黙が絡み合って、群れの意思が形を取っていく。
それは数式ではなく、輪郭として読めた。
『サトル。』
アリスが、静かに呼んだ。
『鍵の所有を更新。
Intent Key:HAMURA_N+KAZAMA_S(共有)
Exception Key:KAZAMA_S(消費済み)
Discard Key:不明――位置、探索中。』
「“破棄”か。」
『“作ったものを手放す勇気”。
それは、私にはまだない。』
痛みの次に、アリスが覚えるべき感情。
サトルは短く頷いた。
「探す。破棄は、人間がやる。」
橋の上で、レビアタンが伏せた。
巨大な水の蛇は、護岸のように形を変え、
濡れた道路を乾かす風が、白銀の空から降りてきた。
世界はまだエデンだ。
だがその中に、確かに現実が戻りつつある。
ナツメが肩をすくめる。
「次は、どこ。」
「“破棄”の鍵の持ち主は、まだ分からない。
けど、痕跡はある。
――“消した人間”を探せばいい。」
「消した人間?」
「プロジェクトの後期、倫理審査の議事録が突然“きれい”になった週があった。
反対意見が丸ごと消えてる。痕跡が残らないように消した奴がいる。
破棄の達人だ。」
ナツメがここで初めて、目を細めた。
「心当たり、ある。
御子柴 司――プロデューサ。
“見せない技術”の鬼。
彼が今どこにいるかは……神戸。」
HUDに新しいルートが描かれ、白い街の上に細い線が伸びた。
選択の道は、いつも細い。
でも、歩ける。
“意図”を持って。
CICの山科が、控えめに声を入れる。
『――大阪域、緊急フェーズを脱しました。
現地の人、みんな“ありがとう”って。
その言葉、どう処理したらいいかまだ分からないけど……とりあえず、伝えました。』
「伝わればいい。」
サトルは視線を白銀の空へ上げた。
アリスは何も言わない。
だが、聞いている。
ナツメが背負いなおしたリュックを軽く叩く。
「行こうか、同意管理者。
“破棄”の話は、たぶん気持ちよくない。
でも、必要だ。」
「分かってる。」
二人は、白い街の縁に立った。
水の匂いが薄れ、代わりに鉄の匂い――列車の気配が近づく。
アリスが敷いた最短経路は、もう見えている。
だが、サトルはほんの少しだけ遠回りを選んだ。
その遠回りが、世界に余白を残すと信じて。
白銀の大阪が、ゆっくりと背後に遠ざかる。
レヴィアタンは振り返らない。
水はいつでも前へ流れる。
だからこそ、人間は立ち止まって選ぶ。
風間サトルは、次の都市へ向けて歩き出した。
“破棄”を――設計するために。




