第三十一話:Cache Hit
訓練の場所に選んだのは、事務所から歩いて十分ほどの、使われていない倉庫前の空き地だった。アスファルトの隙間から雑草が伸び、フェンスの向こうには錆びたコンテナが積まれている。ダンジョンの中でやるには物騒すぎる「素振り」の練習には、ちょうどいい広さと静けさがあった。
「兄貴、先に言っておくッスけど、俺、剣術の型とかはちゃんと知らないッスよ」
カイは持参した角材二本を地面に置きながら、申し訳なさそうに言った。角材は後でやる読み合いの練習用で、本物の刃を初日から向け合うのは危険だという、タクミの忠告を律儀に守った結果だった。抜き打ちの練習そのものは、腰に佩いた本物の小太刀で行う。
「型は要らない。お前に求めているのは剣術の知識じゃない」
「じゃあ何ッスか」
「お前が罠感知とパルクールで積み上げてきた、反応速度と間合いの感覚だ。お前が動き出す瞬間の基準を、俺に渡せ。型は俺が後で構造として組み直す」
「……何かちゃんと頼られてる感じがして嬉しいッス。じゃあ、合図に合わせて抜くだけ、まずやってみましょうか」
「見本ッス」と言って、カイが腰のナイフに手を落とす。次の瞬間には、抜かれた刃が真横に走り、また鞘に戻っていた。動作と動作の間に、修の目でも追いきれない空白がある。型らしい型があるわけではない。あるのは、距離と隙だけを読んで反応する、純粋な反射の速さだった。
「……速度の問題じゃないな」
「そうッスね。速いっていうより、迷いがないんス。兄貴のそれ、迷いだらけッスよ」
言われて、修は自分の手の動きを思い出す。柄に触れた瞬間、頭の中で複数の計算が同時に走る。相手との距離、抜刀にかかる時間、刃が届くまでの軌道、その間に対象が移動する可能性のある座標範囲――並列演算のパッシブが、律儀にそれらすべてを処理しようとする。
「お前は、何を計算している」
「計算なんてしてないッスよ。来たら、抜く。それだけッス」
「それでは再現性のある精度が出ない」
「出るッス。何百回もやってるから出るんス。兄貴の言葉で言うと――データが溜まってるから、いちいち計算しなくていい、みたいな感じッスかね」
修は小太刀の柄を握り直しながら、その言葉を頭の中で変換する。観測した結果を毎回ゼロから処理し直すのではなく、過去に処理した結果をどこかに保持しておき、同じ状況が来た瞬間にそれを呼び出す。プログラムでいえば、それは――
「……キャッシュ、か」
「は?」
「いい。続けろ」
まずは抜刀だけを繰り返す。カイの号令に合わせて柄に手をかけ、抜く。その単純作業を、十回、二十回。最初の数回は腕の動きと頭の中の計算が噛み合わず、抜き終わる前に「届く距離か」「角度は正しいか」という確認作業が割り込んでくる。結果として、振り終わりの瞬間にはいつも一拍の遅れがあった。
「兄貴、今ので何回目スか」
「四十二回目だ」
「数えてるの、それも計算癖ッスよ」
「記録は基本動作だ」
「はいはい。でも、ちょっとずつ良くなってるの、俺にも分かるッスよ」
離れたところで見ていた雪音が、小さく拍手をした。
「修さん、さっきより滑らかになってます」
「データ上の改善は確認できていない」
「データに出なくても、見てる側には分かるものってあるんですよ」
修はその言葉に何も返さず、もう一度柄に手をかけた。
カイが小石を摘まみ上げ、軽く投げる。それが修の正面へ飛んでくる。抜刀でそれを払う、というだけの単純な課題だった。
一回目。修は石の軌道を計算し終える前に、石が顔の横を通り過ぎた。
「遅いッス」
二回目。今度は計算を早めに切り上げ、見切りで振った。刃は空を切り、石は別の方向へ落ちる。
「今度は早すぎッス。当てる気がない振りッスね、それ」
「皮肉か」
「指摘ッス」
三回目、四回目、五回目。同じ失敗が続く。傍で工具箱を膝に乗せていたタクミが、修の抜き打ちを目で追いながら、遠慮がちに声をかけた。
「あの、修さん。今朝のうちに、鞘の内側に油を差しておきました。抜く時の引っかかりが、少しでも減ればと思って……」
「効果は」
「あ、それは……修さんの体感で判断してもらうしかないです。すみません」
「いや、悪くない判断だ。ハードウェア側の遅延要因を一つでも削るのは、正しい優先順位だ」
タクミは少し照れたように指ぬきグローブをいじったが、その手は止まらなかった。手帳を開き、修の抜き打ちの回数と結果を記録し始める。錬金術師としての几帳面さが、こんな場でも顔を出すのかと修は思った。
六回目。修は計算をやめようとした。だが、やめるという判断自体が、また一つの計算だった。観測してから書き換えるという順番に染まりきった頭は、簡単には書き換わらない。
「兄貴、目、瞑ってみてもいいッスよ」
「視覚情報を遮断して、何の意味がある」
「意味とかどうでもいいんで、一回やってみてください」
不合理な提案だったが、修はそれに従った。石が投げられる音――空気を切る微かな擦過音だけを頼りに、柄に手をかける。計算しようとした瞬間、考える前に手が動いていた。
パキッ、と乾いた音が響いた。
目を開けると、抜き放たれた刃の先で、二つに割れた小石が落ちていく途中だった。
「……当たった」
「当たったッスね!」
カイが嬉しそうに声を上げる。雪音が小さく拍手をした。ミカゲは杖の先で地面をこんと突き、満足そうに頷いただけだった。
修は手の中の小太刀を見つめる。今のは、明確な計算の結果ではなかった。むしろ計算を放棄した瞬間に起きた現象だ。だがそれは偶然でもない。何百回と他者の動作を観測し、論理構造を解析してきた経験のどこかに、こういう動きへの反応パターンが既に蓄積されていたのだとすれば――
「……これがキャッシュヒットか」
「兄貴、独り言多いッスよ」
「説明している。聞いていなければそれで構わない」
タクミの手帳を横目に、修はもう一度、抜き打ちの体勢を取る。今度は意図的に計算を止めようとはしなかった。代わりに、計算が終わる前に体が動き出すことを、許した。
七回目は失敗した。八回目も失敗した。だが九回目、十回目あたりから、当たる回数と外れる回数が、徐々に均衡し始めた。完成にはまだ遠い。だが、ゼロだったものが、確かに増えていく感覚があった。
昼を過ぎた頃、ミカゲが珍しく自分から口を開いた。
「……修。次は、動いてる的にしたら?」
「静止目標への命中率がまだ安定していない。段階を飛ばすのは非効率だ」
「……飛ばしたほうが、早い時もある」
短い一言だったが、修は手を止めた。論理的な反証ではない。だが、誰も読めない古代語を独力で読み解き、自分の武器にしてきたミカゲの言葉には、それなりの重みがあった。
「……理由を聞かせろ」
「静止目標は、迷う時間がある。動いてたら、迷う前に、抜くしかなくなる」
修は少しの間、それを内側で処理した。静止目標は計算可能な範囲が広いがゆえに、計算を続ける誘惑も大きい。動目標は計算を許す余裕そのものが少ない。だとすれば、迷いを断つには、むしろ難易度を上げたほうが効率的な可能性がある。
「……分かった。カイ、的を動かせ」
「お、急に難易度上がったッスね。いいッス、やりましょう」
カイが小石ではなく、軽量のゴムボールを使った往復投げに切り替える。ボールは軌道が一定でなく、左右にぶれながら飛んでくる。最初の数回は全く反応できなかったが、十数回を過ぎた頃から、修の体は少しずつ「迷う前に動く」感覚を覚え始めていた。
午後の半分が過ぎる頃には、命中と失敗がほぼ半々になっていた。実戦での即時抜刀には程遠い数字だ。だが、修自身がこの数字を「悪くない」と評価できたことに、内心で小さな驚きがあった。
「セシル、お前は何も言わないんだな」
修が塀に座ったままのセシルに声をかける。セシルはフードの奥から、抑揚のない声を返した。
「……届かぬ祈りは、祈りではない」
「それは」
「祈りは、何度でも捧げられる」
誰のことを言っているのか、修にはあえて聞かなかった。だが、繰り返すことそのものに意味があるという言い方は、今日の訓練の構造とそう離れていない気がした。
夕方近く、休憩を挟んだ修たちは、最後にカイとの簡易的な組手を行った。ここでようやく、カイが持参した角材の出番になる。実際に刃を合わせるのはタクミの忠告通り避け、互いに角材を腰だめに構え、相手の「抜き」のタイミングだけを読み合う練習だ。
「これ、剣術の練習ってよりは、駆け引きの練習ッスね」
「同じことだ。抜刀は、相手の隙という入力に対する出力速度の競争に過ぎない」
「兄貴の理屈、いつも難しいッスけど、今のは分かりやすかったッス」
組手は十戦中、修が一勝もできなかった。だが、最後の数戦では、カイの抜きの直前にわずかに肩が動くという「予備動作」を、修の目が捉え始めていた。これも計算ではない。観測の積み重ねが、無意識のうちにパターンとして定着していく過程だった。
「兄貴、なんか目つき変わってきたッスね。さっきまでただ振られてただけだったのに」
「お前の予備動作を、肩の角度から検出し始めている」
「マジッスか。じゃあそろそろ俺も隠さなきゃ駄目かもしれないッスね」
カイは笑いながらそう言ったが、口調のどこかに、純粋な驚きが混じっていた。修が誰かの動きを「読む」側に回るのを、今までずっと見てきたカイにとって、それは奇妙な逆転に感じられたのかもしれない。
日が傾き始めた頃、修は借りていた角材をカイに返し、小太刀を腰の鞘に納めて、額の汗を拭った。前世であれば、こうして無駄に時間と体力を消耗する反復練習を「非効率」と切り捨てていたはずだ。結果が出るまでの過程を、すべて先読みのコードで処理しようとしていたはずだ。
だが今、目の前にあるのは先読みできない種類の課題だった。体に蓄積していくしかない、地味で遅いプロセス。
「修さん、今日はどうでしたか?」
雪音が近づいてくる。修は腰の鞘に指先で触れ、今日一日の重みを確かめながら、短く答えた。
「実行速度はまだ実戦水準に達していない。だが、改善の傾きは正だ」
「それって、頑張ったってことですよね」
「……そう言い換えても、間違いではない」
雪音が小さく笑う。タクミが今日の抜き打ちの記録をつけた手帳を閉じ、ミカゲは何も言わずにフードの位置を直した。セシルは塀から降り、誰よりも先に倉庫前の空き地を後にした。
「明日もやるッス?」
「やる。お前のデータをもっと提供してもらう」
「了解ッス! じゃあ次は、足運びの応用編からいきましょうか」
修は腰の小太刀の柄に軽く手を添えながら、夕焼けに染まる空き地を一度見渡した。観測してから書き換えるだけでは届かない領域が、自分の中にまだ広がっている。それを塞ぐのに必要なのは、新しいコードではなく、ただの反復だった。
非効率だと切り捨てるには、その積み重ねがもたらす変化を、もう一度だけ見届けたかった。
【現在のステータス】
■柏木 修
Lv: 20
HP: 900
MP: 260
STR: 78 / VIT: 72 / INT: 260 / DEX: 200 / AGI: 98 / LUK: 7
ATK: 96 / DEF: 80 / RES: 245
装備: 並列同期型小太刀(タクミ製・新調)、源田の補強胸当て(革鎧と併用)、使い古したスマートフォン
スキル: エクストラスキル『プログラマー』、パッシブ『不遇の記憶』、パッシブ『並列演算』
■白石 雪音
Lv: 25
HP: 2400
MP: 650
STR: 5 / VIT: 370 / INT: 85 / DEX: 62 / AGI: 54 / LUK: 108
ATK: 0 / DEF: 440 / RES: 300
装備: 訓練用ショートワンド、見習い聖女の軽量銀鎧、新生・白銀の円盾(持続耐久強化・コア・クリスタル内装)、源田より贈られた軽量脚甲
スキル: 【聖域守護】、【反射装甲】、パッシブ『不屈の精神』
■カイ
Lv: 22
HP: 820
MP: 205
STR: 160 / VIT: 128 / INT: 102 / DEX: 395 / AGI: 465 / LUK: 190
ATK: 260 / DEF: 120 / RES: 100
装備: 新調タクティカル・ナイフ(源田製・抗議の末に獲得)、浄化の片手剣、強化軽量レザーベスト(改・防御値向上)、特注防塵ゴーグル、高機動型ダンジョンシューズ
スキル: 『罠感知(ランクA)』、『パルクール・アクション』、『お調子者の空元気』
■ミカゲ
Lv: 23
HP: 610
MP: 1650
STR: 26 / VIT: 46 / INT: 390 / DEX: 114 / AGI: 140 / LUK: 70
ATK: 220 / DEF: 66 / RES: 435
装備: 深淵の魔導杖・改式・二型(コア・クリスタル換装・出力上限向上)、魔導銀の装飾ローブ、深淵を覗く者のフード、身代わりの守り
スキル: 固有スキル『極大消滅』、古代語魔法、古文書解読、沈黙の集中
■タクミ
Lv: 13
HP: 225
MP: 295
STR: 19 / VIT: 26 / INT: 88 / DEX: 124 / AGI: 40 / LUK: 57
ATK: 30 / DEF: 37 / RES: 68
装備: 煤けた作業用エプロン、源田より贈られた新しい指ぬきグローブ、指定学生服、初心者の小型錬金釜
スキル: 固有スキル『錬金術(論理構築/オーバーライド)』、特殊技能『アイテムの目利き』
■セシル
Lv: 20
HP: 260
MP: 1550
STR: 16 / VIT: 24 / INT: 120 / DEX: 47 / AGI: 34 / LUK: 10
ATK: 22 / DEF: 34 / RES: 150
装備: 古銀のロザリオ(改・発動遅延短縮)、夜色の修道服(ダンジョン産繊維製)、隠者のヴェール
スキル: 『浄化の光』、『鎮魂の調べ』、『甘露の直感』、パッシブ『生者への慈愛』




