第21話:緊急クエストのメールマージ 〜戦場を定義するピボットテーブル〜
ギルドホールは、沸騰した鍋のような状態だった。
伝令の「オーガの群れ」という言葉が引き金となり、恐怖と興奮が伝播を起こしている。
「オーガだと!? この街の壁じゃ保たねぇぞ!」
「荷物をまとめろ! 逃げるんだ!」
「馬鹿野郎、今から街道に出たら餌食だ! 籠城だ!」
冒険者たちが武器を掴んで怒鳴り合い、商人は商品を抱えて逃げ惑う。
受付嬢たちはカウンターの下に隠れ、エリーナも顔面蒼白で立ち尽くしている。
支部長のガントが、肺活量の限界まで息を吸い込み、怒号を上げた。
「うろたえるなァァァッ!! 武器を取れ! 俺が出る!!」
さすがは元Sランク。その声には物理的な衝撃波が含まれていたようで、ホールが一瞬静まり返った。
だが、それは秩序の回復ではない。単なる「フリーズ」だ。
彼には「勇気」はあるが、「指揮系統」がない。
個々が勝手に動けば、烏合の衆として各個撃破されるだけだ。
俺は、静かにカウンターの上に登った。
革靴の底が、硬い木板を踏みしめる。
視界には、ホールにいる全員のステータスが表示されている。
`Count: 218 persons`
彼らは人間ではない。俺にとっては「可動リソース(Assets)」だ。
「――状況整理(状況確認)を行います」
俺は声を張り上げず、しかしよく通る声で言った。
同時に、`[条件付き書式]` を発動。
対象:ホール内の全員。
書式:`[自身の声]` が聞こえる範囲の空気の振動数を強調。
俺の声が、まるで高品質なスピーカーを通したかのように、クリアに全員の耳元へ届いた。
全員の視線が、スーツ姿の事務員に集まる。
「敵戦力はオーガの群れ。到着まで約三時間。逃走は不可能です。戦うしかありません」
俺は淡々と事実を告げた。
パニックになりかけた新人が悲鳴を上げそうになるのを、手で制する。
「ですが、勝算はあります。……ただし、私の『指揮』に従うなら、ですが」
俺はガント支部長を見下ろした。
彼は一瞬ムッとしたが、すぐに状況を理解し、大きく頷いた。
「任せる!」という合図だ。
俺は右手を掲げた。
ここからが、Excel使いの本領発揮だ。
「まず、戦力の可視化を行います。ご自身のギルドカードを取り出してください」
冒険者たちが、おずおずとカードを取り出す。
俺は空中に巨大なウィンドウを展開した。
`[挿入] タブ` → `[ピボットテーブル (PivotTable)]`。
データソース:`[現在のホール内の全ギルドカード]`。
シュンッ!
ホールの天井付近に、青白く光る巨大な集計表が浮かび上がった。
冒険者たちが「おおっ!?」とどよめく。
行ラベル:`職業(Class)`
列ラベル:`ランク(Rank)`
値:`人数(Count)`
----------------------------------
| 職業 | A | B | C | D | E | F | 計 |
|--------------------------------|
前衛 | 0 | 2 | 5 | 12| 20| 8 | 47 |
近接 | 1 | 4 | 15| 30| 45| 22| 117|
| 後衛(魔法/弓) | 0 | 1 | 4 | 8 | 15| 10| 38 |
回復 | 0 | 0 | 2 | 4 | 6 | 4 | 16 |
----------------------------------
残酷な現実が浮き彫りになった。
圧倒的な「ヒーラー不足」。
全体の10%にも満たない。
そして、壁役となる「タンク(重装戦士)」も少ない。
逆に、剣や斧を振り回すだけの「脳筋アタッカー」が過剰供給されている。
「バランスが悪いですね……典型的な『火力偏重』のプロジェクトチームだ」
俺は眉をひそめた。
このまま突っ込めば、回復が追いつかずに前線が崩壊する。
ボトルネックは「回復リソース」だ。
俺は空中の表を操作した。
`[スライサー(Slicer)]` を挿入。
`[アイテム]` カテゴリでフィルタリング。
「ポーション所持者」の数を表示させる。
`Count: 85`。
半分以下だ。備えが甘い。
「全員、聞け! 今からパーティを解体し、再編成を行う!」
冒険者たちから反発の声が上がる。
「はぁ? 俺たちはいつもの仲間と戦いてぇんだよ!」
「急造パーティで連携が取れるか!」
俺は冷徹に言い放った。
「いつもの仲間と死にたいなら止めません。ですが、生き残りたいなら効率に従ってください。ヒーラーのいないパーティは、オーガの一撃で即死しますよ?」
死、という言葉に彼らは黙った。
「タンクを最前列に配置し、『壁』を構築。その後ろからアタッカーが攻撃。ヒーラーは中央で待機し、負傷したタンクをローテーションで回復させる。……これは『総力戦』です。個人の手柄など不要」
俺は脳内で `Solver` を起動した。
最適化問題だ。
目的関数:`生存人数の最大化`。
制約条件:`ヒーラーのMP`、`タンクのHP`、`敵の攻撃力`。
計算終了。
最適解が出た。
「これより、各自のギルドカードに『作戦指示書』を送信します」
俺は `差し込み印刷(Mail Merge)` の要領で、個別の指示データを生成した。
宛先:全員。
内容:`配置ポジション`、`役割`、`組むべき相手`。
送信(Send)。
ピロリン、ピロリン、ピロリン……!
ホール中で、ギルドカードが一斉に通知音を鳴らした。
冒険者たちがカードを見る。
「俺は……『第1防衛ライン、C-4ブロック』?」
「私は『後方支援、回復班Bチーム』……?」
「俺の相棒は……この新人の盾使いか?」
混乱していた群衆に、「役割」が与えられたことで、秩序が生まれた。
人は、何をすべきか明確になると落ち着くものだ。
「移動開始! 指定された配置につけ! ギルド倉庫を開放する! ポーションがない者は持っていけ! 後で給料から引くがな!」
ガント支部長が吼える。
冒険者たちが一斉に動き出した。
先ほどまでのパニック走りではない。目的を持った、力強い足取りだ。
俺はカウンターを降り、支部長室へと向かった。
そこを「作戦司令室」にする。
現場指揮はカイルやガントに任せる。俺の仕事は、全体の戦況をモニターし、リソースを配分することだ。
支部長室に入り、大きな机に地図を広げる。
`[挿入] タブ` → `[3D マップ (3D Map)]`。
地図の上に、ホログラムが展開される。
北の山脈から、赤い粒子の奔流が、川のようにアルタ・ノヴァへ向かって流れてきている。
`Enemy_Count: Approx. 300`
`Type: Ogre, High Ogre, Ogre Mage`
そして、街の城壁には、青い光点(冒険者たち)が配置につき始めている。
「……数が多いな」
俺の後ろから、カイルが覗き込んだ。
彼は前線指揮官として、これから出撃する。
「ええ。単純な戦力比なら、こちらは3割不利です」
俺は冷静に分析した。
オーガは生命力が高い。こちらの攻撃力では、削りきる前にスタミナ切れを起こす可能性がある。
「カイルさん、あなたの部隊(遊撃隊)が鍵です。敵の指揮官――おそらく『オーガ・ジェネラル』か『オーガ・メイジ』を狙ってください」
「いわゆる『社長』を落とせってことか。了解だ」
カイルはニヤリと笑い、大剣を担いだ。
「安心しろ工藤。アンタの作った『シフト表』通りに動けば、誰も死なせずに勝てる気がしてくるぜ」
「気休めは言いません。確率は……生存率85%です」
「十分だ。行ってくる」
カイルが出て行った。
部屋には俺と、通信役(伝令魔法使い)のミリア、そして数名の補助職員が残された。
俺は椅子に座り、目を閉じた。
頭の中で、巨大なガントチャートを描く。
横軸は時間。
縦軸は各部隊のHPとMP。
`Phase 1: 遠距離攻撃による削り(Delay Project)`
`Phase 2: 城壁での防衛戦(Main Task)`
`Phase 3: 疲労した部隊のローテーション(Resource Leveling)`
「……始めようか。残業代は高くつくぞ」
俺は目を開け、マップ上の赤い奔流を見据えた。
敵の先頭集団が、警戒エリア(条件付き書式の赤枠)に侵入した。
アラートが鳴り響く。
`[Alert]: Enemy Contact`
開戦だ。
俺にとっては、それは「高負荷ストレステスト」の開始合図でしかなかった。




