引っ越しは三時間で終わった。オヤジの紹介で、蒲田のジャンク置き場の二階に間借りすることになった。六畳よりさらに狭い。四畳半。窓は一つ。エアコンはない。壁に染みがある。だがコンセントは三口あり、圏外じゃない。
「最低限の住環境ね」
「家賃ゼロ円。文句言うな」
「言ってない。感想を述べただけ」
荷物は俺のデバイスとリサのボロボロの軍服ドレスだけだ。引っ越しというより移動。ホームレスが公園のベンチを変えるのと大差ない。
フリープランに切り替わって二日目。
リサの視界には一日四十回、五秒間のスキップ不可広告が降ってくる。俺と同じだ。俺はもう慣れた。三年も浴びれば、広告が来るタイミングが体内時計に組み込まれる。
リサはまだ慣れていない。
「——っ」
会話の途中でリサの目が虚ろになった。瞳孔が開いて、焦点が消える。五秒間。AR視界が広告に完全にジャックされている。
五秒後、リサの目に光が戻った。
「……今のは?」
「育毛剤。たぶんプレミアム向けのやつだ。ターゲティングが狂ってるのはフリープランの仕様。金を払わない人間にはゴミ広告しか来ない」
「私に育毛剤」
「ユーザー属性の分析にも金がかかる。フリーのお前の属性は"不明"だ。不明には不明向けの広告が飛ぶ。育毛、結婚相談所、オンラインカジノの三大ジャンクだ」
リサが心底うんざりした顔をした。エンタープライズ・プランでは広告が存在しない。金を払えば世界はきれいだ。払わなければこうなる。
「慣れるしかない。俺の最初の一ヶ月は地獄だった」
「慣れたの?」
「慣れた。今は広告の五秒を呼吸に使ってる。吸って、止めて、吐いて。ちょうど五秒」
「それは慣れたんじゃなくて、諦めたんじゃないの」
否定できなかった。
その日の夕方。
リサが妙なことを言い出した。
「クロヤ。広告の五秒間、あなた触られても分からないの?」
「分からない。AR視界が全入力チャンネルをロックする。視覚も聴覚もタッチ入力も。五秒間は完全に切断される」
「なぜ?」
「広告スキップを防ぐためだ。入力を受け付けたら、ハードウェア割り込みでスキップできる可能性がある。だからフリープラン用の広告再生中は、ニューロリンクの入力インターフェースごと凍結される。公式の利用規約に書いてある。第七章第三十四条、広告視聴義務に関する項」
「入力が全部ロックされる。ということは」
リサの目が光った。エンタープライズ出身の分析能力が回り始めている。
「攻撃入力も、無効?」
俺の手が止まった。
「……もう一回言ってくれ」
「広告の五秒間。入力が全部ロックされるなら、外部からの攻撃入力も受け付けないんじゃないの?」
心臓が跳ねた。巻き戻せ。何がおかしい?
考えたことがなかった。三年間フリープランで生き延びてきて、広告の五秒は「失う時間」としか考えていなかった。消費者として訓練されすぎていた。
だがリサは消費者じゃない。元エンタープライズだ。システムの設計思想から逆算する人間だ。
「オムニバースの攻撃は全部AR入力経由だ。能力の発動も、ステータスの書き換えも、全部ニューロリンクの入力チャンネルを通る。広告再生中にチャンネルがロックされてるなら——」
「攻撃も通らない」
俺は天井を見た。染みだらけの天井。脳が2ミリ秒で計算した。頭の中でオムニバースのAPIドキュメントを高速でめくる。
入力チャンネルのロック。公式仕様。広告配信ミドルウェアが全チャンネルのexclusive lockを取得する。exclusive lockの間は他プロセスからのwrite要求が全拒否される。つまり攻撃コマンドがwrite要求として飛んできても、ロック中は弾かれる。
五秒間の無敵。
「……嘘だろ」
「嘘じゃないでしょう? 論理的に正しいはず」
「正しい。正しいが」
俺は三年間、この可能性に気づかなかった。
広告は罰だと思っていた。五秒間の視界強奪。一日四十回、合計二百秒の人生の無駄。俺はそれを耐え忍ぶものとしか見ていなかった。
リサは初日で反転させた。
「検証する」
俺はデバイスを取り出した。
「今から俺のARにピング攻撃を飛ばす。最低威力の、痛くないやつだ。お前が広告に入った瞬間に撃つ。通るかどうか見る」
「分かった」
待った。三分後、リサの目が虚ろになった。広告が来た。
俺はデバイスから最低威力のピング攻撃を送信した。通常なら相手のAR視界にエラーポップアップが一つ表示される程度のもの。
五秒経過。リサの目が戻った。
「何か来た?」
「何も」
デバイスのログを確認した。送信ステータス——REJECTED: target input channel locked。
拒否。ターゲットの入力チャンネルがロック中のため受信拒否。
「通らなかった」
リサが微笑んだ。
「つまり広告が来るたびに、五秒間は誰にも攻撃されないということね」
「ああ。五秒間の絶対防御。代わりに五秒間は自分も何もできないが」
「でも戦闘中に五秒あれば」
「距離を取れる。位置を変えられる。いや、広告中は体も動かせるのか?」
「ニューロリンクの入力がロックされるだけで、身体の自律神経系は別系統でしょう? 足で走るのは脳幹レベルの運動指令だから、ロック対象外のはず」
鳥肌が立った。
広告が来た瞬間——AR攻撃は全無効。でも脚は動く。走れる。逃げられる。再配置できる。五秒間、敵の攻撃が絶対に当たらない状態で、自分だけが物理的に動ける。
「お前、こっち側の才能あるぞ。俺が想定してた以上に」
「褒めてるの?」
「褒めてる。三年気づかなかったことを初日で見つけた。東京一の詐欺師が見落としていたバグを、元お嬢様が発掘した」
「バグじゃないわ。仕様よ。仕様を読み替えただけ」
仕様を読み替えただけ。
それが一番怖いんだよ、リサ。
俺はデバイスに新規ファイルを作成した。ファイル名:ad_shield_protocol_v0.1.txt。
項目を打ち込んだ。
利用規約 第7章34条に基づく防御手順(暫定版)
1. フリープラン広告の配信間隔を計測し、次回配信時刻を予測する 2. 戦闘中、攻撃が来る直前に広告タイミングを意図的に合わせる(身体位置で調整) 3. 広告開始と同時に物理移動を実行。5秒間のinput lockを盾として利用 4. 広告終了直後の0.5秒間はチャンネル再接続のラグあり——この隙に反撃の初動を取る
注意事項: - 広告タイミングの完全な予測は不可能。±15秒の誤差あり - 一日40回の制限あり。使い切ったら防御手段消失 - 本手法はオムニバース社の利用規約に違反しない(広告を視聴しているため)
「最後の一行がいいわね」
「だろ。合法だ。規約通りに広告を見てるだけ。たまたま攻撃が当たらないのは仕様」
リサが笑った。声を出して笑った。凍結解除後、初めてのちゃんとした笑い方だった。
「ありがとう、オムニバース。すばらしい広告体験をお届けいただき、感謝いたします」
最悪のユーザーレビューだ。
だが、五秒間の盾を手に入れた。これで次に堂本が来ても、少しは戦える。
窓の外で、蒲田の夕日が落ちていく。東京の西。ありふれた夕暮れ。
リサの視界にまた広告が割り込んだ。今度はオンラインカジノだ。リサの目が虚ろになる。五秒間。
その五秒を、俺は黙って数えた。
一、二、三、四、五。
五秒間の無敵時間。
悪くない鎖だ。