第二章 29 『正しい対策』
サルディオンが次の退避位置へ足を運んだ瞬間、淡い星光を帯びた桜花が、まさにその直前まで彼が立っていた場所を横切った。
さらに二群目が、最初の回避先として最も自然だった右前方へ角度を変えて殺到する。予測して先に進路を捨てていなければ、最初の回避そのものを罠に変えられていた。
自分の読みが正しかったことを確認しても、サルディオンはそこで判断を止めなかった。リゼルヴェート・アルシェノアは一度目の回避先を見てから二段目を変更したのではなく、最初から複数の軌道候補を持たせていた可能性が高い。
ならば《星桜千華》を単純な一斉射として扱う配列は、今この瞬間に修正しなければならなかった。
「射出後変更あり。第二群、回避先への収束を確認」
サルディオンは短く情報を整理し、《戦律配列》へ新しい条件を組み込んだ。初動で全体の軌道を決め打ちするのではなく、第一群の目的を《攻撃》と《移動誘導》の両方に分ける。
相手がこちらの回避方向まで攻撃条件へ含めるなら、自分も回避そのものを次の配列開始条件として扱えばいい。
再び星桜が展開された。今度は先ほどより総数が少ないが、その代わり展開位置が高低二層へ分けられているため、正面から見える数だけで密度を判断すれば対応を誤る。
サルディオンは足元へ寄る下段を先に外し、頭上から落ちる群れに対しては大きく距離を取らず、上下の軌道が重ならない空間だけを使って通過した。
そこまでは新しい配列で問題なく処理できたが、リゼルヴェートは同じ条件を最後まで維持しなかった。上段に残っていた三つの星桜だけが、他より半拍遅れて速度を上げる。
公開記録から準備していた《迎撃成功を終了条件にしない》という判断がなければ、最初の回避直後を狙われていた。
「時間差まで変えましたか」
サルディオンは上体を傾けて一つを外し、残る二つが交差する直前に進路の内側へ踏み込んだ。光が背後で弾けた時には、すでに次の安全域へ身体を移している。
個々の対処は正しく、ここまでリゼルヴェートの攻撃へ決定的な直撃を許してはいなかった。
だが、相手はその成功を待ってはくれない。新しい花弁群がサルディオンの視界の端で咲き、今度は前方、左側面、さらに背後へ回り込む群れがそれぞれ違う速度を持って動き始める。
同じ《星桜千華》でありながら、数だけでなく射出方向と到達時間まで別々に変えられていた。
過去記録にある最大数へ合わせて配列を組むだけでは足りない。数を固定値ではなく範囲として扱い、射出方向も中心軸一つではなく複数の起点として認識する必要がある。
サルディオンは三つの条件を同時に更新しながら、安全域候補を二箇所まで絞った。
左側は、背後へ回る群れとの重なりが早すぎる。単純な後退も、正面群との距離を確保できる代わりに左右から閉じられる。残された右前方だけが、包囲が完成する前に外へ抜けられる位置だった。
判断と同時に、サルディオンは右前方へ踏み込んだ。前方から来る花弁群が右へ寄るより先に内側へ入り、側面群が閉じる前に包囲円そのものから外へ抜ける。
背後へ回り込んだ星桜は追尾角度が足りず、少し前まで彼がいた空間だけを切り裂いて通過していった。
「そこも抜けるんだ」
リゼルヴェートの声には、苛立ちより興味の方が強く混じっていた。
「対策してきましたので」
「本当にいっぱいしてるね」
「あなたも、随分変えてきますね」
「同じだと止められるから」
言葉を交わしている間にも、リゼルヴェートは次の攻撃へ切り替えていた。右手側へ集まった星桜が一斉に細く伸び、花弁群とは違う鋭い光刃へ変わる。
その挙動は公開記録で確認済みであり、サルディオンは《星桜千華》用ではない別の配列を即座に呼び出した。
「——『星華断刃』」
光刃が横薙ぎに走る。過去記録と大きく違わない軌道なら、刃の外側へ大きく逃げるより、発生直後の内側へ踏み込んで斬線が伸び切る前に射角から外れた方が速い。
サルディオンは身体を低くして前へ入り込み、光が肩口のすぐ後ろを通過する位置まで一気に距離を詰めた。
回避だけで終わらず、位置まで取れたのは大きかった。この距離なら、《星桜千華》の広い包囲を作るための空間を一部削れる。
近距離だから安全だとは考えていないが、少なくとも全周へ同じ規模の攻撃を広げるには、リゼルヴェート自身もこちらとの位置関係を処理しなければならない。
しかし、リゼルヴェートは距離を取らなかった。星桜の一部を攻撃へ回さず、身体の周囲へ淡い光と花弁を重ね、サルディオンが入ってきた方向へ防御を厚くする。
攻撃用の展開を減らした分だけ防御へ再配置したように見えたが、それだけで終わると判断するのは早かった。
「防御転用も確認」
サルディオンは無理にその防御を押し込まず、一度だけ距離を戻した。相手が守りへ源素を回した瞬間に正面から崩そうとすれば、リゼルヴェートの得意な出力勝負へ自分から付き合うことになる。
見るべきなのは、防御を選んだ時に何を同時に捨てるのかだった。
その答えは、すぐ背後から返ってきた。サルディオンが離れた瞬間、正面で防御を維持したまま、彼の背後に小さな星桜が三つ生まれる。
防御と外部攻撃が同時に成立している以上、近距離へ入れば手数が減るという仮定は、ここで完全に捨てる必要があった。
「なるほど」
サルディオンは振り返らず、事前に残していた退避角へ身体を滑らせた。最初の三つを外した先には速度の異なる二群目があり、そのまま同じ回避を続ければ今度はこちらへぶつかる。
そこで踏み込みを止め、半歩だけ戻すことで、遅れてきた星桜を目の前へ通過させた。
これも対処としては正しかった。防御中も外部操作可能という新条件を《戦律配列》へ加え、近距離戦で相手の攻撃数が大きく減るという仮定を削除する。
公開記録から疑っていた部分を実戦で確認できたからこそ、誤った前提へ長く留まらずに済んだ。
八十四ポイントを積むまでに、最初の想定を外してくる相手とは何度も戦ってきた。対策した技が途中で変わり、一度通じた方法が次には通用しなくなることも珍しくない。
大事なのは最初の予測が外れないことではなく、外れた後にどれだけ早く次の条件へ置き換えられるかだった。
「まだいける?」
リゼルヴェートが尋ねる。
「もちろんです」
「じゃあ、もう少し変えるね」
「どうぞ」
返した直後、サルディオンはその言葉が単なる宣言ではなかったことを理解した。新たに展開された《星桜千華》は、最初に十数の光点を生んだものの、そのうち一部だけが先行して射出される。
残った星桜は同じ位置へ留まらず、リゼルヴェート自身の移動に合わせて広がりながら、後続群の射出角まで変えていった。
固定された発射点ではない以上、展開時点の位置だけを記録しても次の予測には使えない。サルディオンは起点移動を新条件として加え、先行群を本命ではなく移動確認用の攻撃として扱う。
ところが、その処理を進めている最中に、先行群の一つだけが他より明確に速度を落とした。
高速群と低速群を同じ回避で処理すれば、遅い一発が進路を塞ぐ。サルディオンは高速群を避け、低速の一発だけを破壊し、そのまま後続群が動く前に位置を変える。
ここまでも判断は間違っておらず、リゼルヴェートが追加した条件へ一つずつ新しい返答を与えられていた。
その直後、別方向から光刃が走った。《星桜千華》の後続だけを待っていたところへ、《星華断刃》が進路を斜めに切る。
複数の技を順番に使うのではなく、一方で作った移動先へ別の技を重ねてきたのだと、サルディオンは斬線を見た時点で理解した。
「組み合わせましたか」
足を止めざるを得なかったが、それ自体は想定できる展開だった。《星華断刃》が移動制限に使われるなら、その後に来る《星桜千華》の収束方向まで読めばいい。
実際、止まった位置へ向かって左右の花弁群が閉じ始めている。
上へ抜ける案が最初に浮かんだが、リゼルヴェートの視線が高い位置へ置かれていることに気づき、サルディオンは踏み切る直前で判断を修正した。
誘導されているなら上は捨て、身体を低くして後方へ下がる。その直後、頭上を三本の光軌が交差し、最初の判断をそのまま実行していれば進路を完全に塞がれていた。
「正解です」
着地したサルディオンは、呼吸を乱さないまま次の攻撃へ意識を移した。リゼルヴェートが条件を変えるたび、《戦律配列》は新しい情報を拾い、それに合わせた返答を構築している。
今のところ、一つ一つの判断については確実に機能していた。
攻撃数が変われば、固定数ではなく範囲で処理する。速度差が生じれば時間条件を分け、射角が変われば退避方向を更新し、時間差が加われば迎撃終了条件を後ろへずらす。
別技が混ざった場合は単独技として見る配列を捨て、複合攻撃として位置関係そのものを処理する。
その結果、リゼルヴェートの攻撃は何度も止められていた。直撃を許しておらず、一方的に追い立てられているわけでもない。
むしろサルディオンが先に位置を選び、その位置を嫌ったリゼルヴェートが攻撃方向を変える場面さえ増えていた。
「八十四って、やっぱりすごいね」
リゼルヴェートが少し楽しそうに言った。
「数字が戦っているわけではありませんよ」
「でも、その分いっぱい戦ったんでしょ?」
「否定はしません」
「じゃあ、やっぱりすごい」
言葉を交わしている間にも、リゼルヴェートは右へ一歩ずれていた。それだけで次の射線候補が変わるため、サルディオンは会話から意識を外し、位置変化を新しい条件へ加える。
戦いながら考えることには慣れているはずだったが、この相手は一度の変化で修正させる項目が多かった。
そこまで考えて、サルディオンは初めて違和感の正体へ触れた。対応そのものは失敗していないのに、《戦律配列》を書き換える頻度だけが戦闘開始時より明らかに増えている。
問題は正解を出せるかどうかではなく、その正解を何度作り直さなければならないかへ移り始めていた。
開戦直後なら、事前に準備した配列から適切なものを選ぶだけで済んだ。《星桜千華》の基本形、包囲形、時間差型、《星華断刃》の公開軌道も、既存の情報からすぐに対応を引き出せる。
それに対し今は、リゼルヴェートが一度攻撃するたび、既存条件へ新しい修正を複数加えなければ次へ対応できなくなっていた。
射出数。
起点位置。
速度。
時間差。
別技との複合。
本人の移動。
どれか一つだけが変わるのではなく、複数の条件が一度に変化する。しかも次の攻撃では、今修正したばかりの条件がさらに上書きされていく。
次の《星桜千華》が広がった。前方七、左側四、右上三、さらに後方へ回る二つという配置を認識した直後、前方七のうち二つだけが速度を落とす。
左側四は互いの間隔を広げ、右上三は射出を遅らせ、後方へ回った二つは光量を落として視認しづらくなった。
消えたわけではない。見えにくくして優先順位を下げさせようとしているだけだと判断し、サルディオンは最初に組んだ配列をその場で捨てた。
前方群の回避、左側の突破、右上への警戒、後方二発の追跡を別々に処理しなければならない。
「前方を回避、左を――」
右上の三つが予定より早く動いた。ならば右を先に処理すべきかと判断した瞬間、今度は左側の群れが狭まり始める。
さらに正面には《星華断刃》の光が立ち上がり、一つの優先順位を確定する前に、別の条件が次々と変化していった。
それでもサルディオンの判断自体は間に合った。右上三つを外し、左側群の薄い部分へ進み、《星華断刃》が完成する前に射線の外へ抜ける。
どの選択を取っても理由があり、その時点での正解として間違ってはいない。
問題は、その次だった。サルディオンが今の攻撃への処理を終え、次の配列を構築し始めた時点で、リゼルヴェートはすでに新しい星桜を別の位置へ配置している。
一つの回答を出している間に、新しい問題の条件がさらに増えていた。
《戦律配列》は観測した情報から正しい返答を作れる。実戦経験を重ねる中で、情報を得てから配列へ反映するまでの時間も可能な限り縮めてきた。
通常なら、相手が一つ条件を変えた程度であれば、次の攻撃が来るまでに十分更新できる。
だがリゼルヴェートは、一つずつ変えていなかった。一度の攻撃だけで複数の条件を変え、その結果を見ながら次の攻撃では別の条件まで上書きしてくる。
しかも、まだ覚醒へ移ることなく、通常状態のままでそれを続けていた。
「対応は、間違っていない」
サルディオンは自分の状況を確認するように呟いた。焦って配列そのものを疑えば、それまで正しく機能していた判断まで崩すことになる。
必要なのは失敗していない対策を捨てることではなく、相手がどれほどの速度で新しい問題を増やしているかを測り直すことだった。
リゼルヴェートが右足を前へ出した。視線は左へ向けているが、星桜は正面に残っているため、過去傾向だけなら左側へ追加攻撃を置く可能性が高い。
サルディオンは正面群を避けながら、左方向から来る次の攻撃へ備える配列を選んだ。
予測通り正面の花弁が一斉に飛び、その半拍後に左側へ新しい光が生まれる。ここまでは読めており、サルディオンは正面群を外した後、左からの攻撃を迎えるため身体を向けた。
ところが、左側から踏み込んできたのは星桜ではなく、リゼルヴェート本人だった。
「――っ」
遠距離攻撃へ意識を集めさせ、その間に本人が距離を詰める選択。サルディオンは即座に近距離対応へ《戦律配列》を切り替え、これまで観測した身体運用と直前の近接挙動を合わせて迎撃位置を組み直した。正面から来るだけなら、まだ十分に間に合う。
リゼルヴェートの右手が動き、それに合わせてサルディオンも迎撃点を確定した。だが、その瞬間まで背後へ残されていた星桜が一つだけ遅れて動き出す。
配列はすでに正面のリゼルヴェートへ切り替わっており、背後の一発を新しい優先対象へ戻す処理だけが、それまでより僅かに遅れた。
ほんの一手分だった。それでも通常なら取れていた最短の退避角が消え、サルディオンは直撃だけを避けるため予定外の方向へ身体を捻るしかない。
星桜は回避できたものの、その一歩によって自分が選ぶはずではなかった位置へ押し出された。
リゼルヴェートの目が、その変化を逃さなかった。偶然足を滑らせたわけでも、読み違えて自分から崩れたわけでもなく、対策の更新だけが一手遅れたことを、彼女は攻防の中で即座に拾っている。
次に生まれる星桜の位置が、それまでとは明らかに違うものへ変わり始めた。
サルディオンの対策は、まだ間違っていなかった。正解そのものが通用しなくなったのではなく、正解を作り直さなければならない回数だけが想定を越えて増え始めている。
その最初の僅かな遅れを見つけたリゼルヴェートは、もう次の攻撃条件へ組み込み、さらに新しい問題を増やそうとしていた。




