ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。

ハローサマー、グッドバイ(17) マーカー

»

 オペレーションMM の一行は、15 時30 分にみなとみらい大橋の手前に到達した。予定では、90 分前にベースキャンプ設置地点に到着していなければならないのだが、このペースでは3、40 分はかかるだろう。

 橋の右方向には、ベイ・クォーターやSOGO ビルが見えた。横浜市内でも屈指の商業施設の集合体で、Zの密集度が最も高いと予想される区画だ。解像度の低い外部カメラによるモニタ映像でも、ベイ・クォーターのテラスに、数十体のZがあてもなく徘徊しているのがわかった。おそらく建物の中には、もっと多数が潜んでいるに違いない。

 臼井大尉は橋の手前、ポートサイド中央交差点に指揮車両を停車させ、ドローンを飛ばして周辺を念入りに調べた。この交差点を西に進めば横浜駅の北側に出る。そこから、ぼくが以前勤めていた会社までは、徒歩10 分ほどだ。懐かしさとともに、ヨコハマ撤退時の恐怖がフラッシュバックし、思わず身体が震えた。

 「大尉、まだ進まないのか」小清水大佐が苛立った声を出した。「予定より遅れているんだがね」

 「まだ状況を確認中です」臼井大尉は顔も上げなかった。「鳴海さん、ソリストのZ判定機能は、まだ正常に動作しないか?」

 「必要な実装はだいたい終わってます」ぼくは答えた。「今、最後のテストをやっているところです」

 「どれぐらいで終わる?」

 「1時間ってとこですね」

 臼井大尉は唸った。すると、会話を聞いていたらしい谷少尉が言ってきた。

 『鳴海さん、テスト工程をいくつかスキップできませんか?』

 「というと?」

 『テストはシミュレータでやるんですよね』

 「はい」

 『それをやめて、実機でテストしてはどうでしょう』

 「......なるほど」ぼくはノートPC に視線を落として考えた。「ちょっと待ってください」

 ソリスト端末用モジュールを作成するのは、想像していたほど難しいことではなかった。専用の開発ツールというだけあって、数パターンのテンプレートやスタブが用意されていたし、何よりライブラリ分も含めたソースが揃っていたからだ。サーバ側のソースは、所々歯抜けの状態だったというのに。API ドキュメントは英語だったが、それほど難しい英語ではなかったので、想像で補完できた。これが、独自仕様の専用デバイスだったら、おそらくお手上げだっただろうが、ソリスト端末がAndroid OS なのも幸運だった。ハードウェアよりの実装はほとんど必要なかったからだ。

 今は、ビルドしたばかりのモジュールを、仮想環境にインストールして、テストケースを作成しているところだ。この後、サーバ側のテスト環境と接続して、うまく赤外線情報を無視して判定ロジックが実行されることを確認する予定だった。だが、実機でテストしてもらえるのなら、そのどちらもスキップすることができる。

 「そうですね」ぼくは答えた。「それなら、すぐ可能です」

 「ちょっと待て」ボリスが割り込んだ。「そのアプリが他の機能に影響を及ぼさないという保証は?あるのか?」

 「ないですよ」あるか、そんなもの。

 「そうだろうな」ボリスは薄笑いを浮かべながら、臼井大尉を見た。「ちょっとこれはお奨めできませんね」

 「最初に誰か1 人だけで試せば、影響は最小限度ですみますよ」

 『大尉』谷少尉が言った。『確かに不具合が発生するかもしれませんが、最悪でも、隊員1 人が一時的に戦力外になるだけです。これ以上、スケジュールが遅れることの方が危険だと思います』

 「わかった」臼井大尉が頷いて顔を上げた。「サンキスト、近くのZは?確認できている群れだけでいい」

 「ドローンが捉えた限りでは、前方300 メートル先に約20 体、3 時方向150 メートルに40 体、7 時方向100 メートルに10 から20 体。あとは、バラバラと単体でうろうろしている程度です」

 「ビーン、グレイベア。ポイントマンからの報告は?」

 『第1 分隊、橋の途中には3 体を確認』

 『第2 分隊、同じく3 体を確認』

 「よし、さしあたっての危険はないな。ビーン、ブラウンアイズのソリストを更新する。全員で警戒にあたれ。ブラウンアイズ、準備しろ」

 『またあたしですか』不満そうなブラウンアイズの返事が聞こえた。『他の奴じゃダメなんですか?』

 「ダメだ。鳴海さん、アップデートにかかる時間は?」

 「たぶん、10 秒ぐらいだと思います。あと、再起動に20 秒から30 秒、チェックに10 秒」

 「第1 分隊、60 秒間、ブラウンアイズとコミュニケーションできなくなる。準備しろ」

 『了解』谷少尉が答えた。

 「鳴海さん」臼井大尉はぼくをちらりと振り返った。「準備いいか?」

 「ちょっと待ってください」ぼくは作成したばかりの、apk ファイルをブラウンアイズのID に向けて送信するように設定した。「どうぞ」

 「ブラウンアイズ、準備しろ。3秒後にソリストを更新する。3、2、1、マーク」

 ぼくはEnter キーの上に乗せていた指に力を入れた。小隊内LAN を通して、ブラウンアイズのソリストコントローラにapk ファイルが送信され、インストールされ、モジュールに組み込まれていく様子が、プログレスバーで表示される。ボリスをいい気分にさせたくないので平静を装ってはいたが、何かエラーが発生するのではないかと、内心はヒヤヒヤしていた。

 幸いなことに、インストールと組み込みのプロセスは、正常に完了した。ぼくは素早くSNMP による診断ツールで簡易チェックを実行した。結果は全て正常だ。ブラウンアイズのディスプレイモードに切り替えてみたが、こちらも問題ない。少なくともソリストの基本機能には影響がなかったようだ。

 「完了です」

 「ブラウンアイズ?」臼井大尉が呼びかけた。

 『はい。通じてます』

 「例のロジックは?」臼井大尉はぼくを振り返った。

 ぼくはモニタを見つめていた。ブラウンアイズのソリストが再起動した瞬間から、ブラウンアイズが装着しているセンサーからは、各種データ送信が再開されている。数秒間、モニタしてみたが、その中に赤外線情報はない。

 「問題なさそうです」

 「よし。まず第1 分隊から、順次アップデートをやるぞ。第2 分隊、近くに寄れ。第1 分隊を全周防御だ。位置に付いたら知らせろ。鳴海さん、第1 分隊の残りの隊員をまとめて更新してくれ」

 「はい」

 ぼくが送信の準備を終えると、ほぼ同時に、柿本少尉から連絡が入った。

 『配置につきました』

 「60 秒間、Zを近づけるな。武器使用は分隊長の判断に任せる。準備しろ。3、2、1、マーク」

 モニタ上から、ブラウンアイズを除く第1 分隊のアイコンが消えた。別のウィンドウで、モジュールのインストール および再起動の進行状況を確認すると、並行処理しているせいか多少もたついているものの、処理自体は順調に推移していた。

 「完了です」

 「第1 分隊、全員、聞こえるか?」

 『全員の応答を確認しました』代表して谷少尉が答えた。『問題なさそうです』

 「サンキスト、さっきのZの位置は?」

 「3 時方向の群れが接近してきています。他は離れていきますね」

 「よし第2 分隊の更新を続けて実行する。第1 分隊、全周防御。鳴海さん、準備は?」

 「できてます」

 『第1 分隊、配置につきました』

 「第2 分隊、更新準備。3、2、......」

 「待ってください。まずいな」サンキストが声を上げた。「9 時方向から30 体ほど接近してきます。距離、180 メートル」

 「ビーン、迎撃しろ。武器使用の判断は任せる」臼井大尉は顔だけぼくの方に向けた。「再起動を継続するぞ。3、2、1、マーク」

 『第1 分隊、移動します』谷少尉が言った。『CCV の8 時方向から、9 時方向へ展開』

 『分隊長、交戦規程は?』

 『緊急時以外は撃つな。撃たなきゃならんときは低く撃て』

 『うっかり頭部を誤射したらマズいすかね』

 『カメラの映像は全部記録されてるんだぞ。後で、お前の同じ場所をぶん殴ってやるからな。ブラウンアイズ、ヘッジホッグの援護に回れ。キトン、6 時方向からCCV に接近して、第2 分隊の右翼をカバーしろ』

 「サンキスト」臼井大尉が囁いた。「RWS を操作できるか?9 時方向の交番に何発か打ち込んで引きつけておけ」

 「了解」

 長い60 秒が経過した。

 「再起動、完了です」ぼくは報告した。「信号、問題なしです」

 「グレイベア?」

 『第2 分隊、全員、異常なしです』

 「各分隊、元のフォーメーションに戻れ。鳴海さん、もう、Z探知は正常にできるようになったのか?」

 「今、データ処理のロジックを切り替えたので、そろそろ反映されると思います」

 「サンキスト?」

 「まだ来てません......いや、来た、来ました!3 番モニタに表示します」

 モニタの1 つに指揮車両を中心にしたZ探知マップが表示された。Zを表す赤いアイコンがかなり多い。最も近距離では20 メートル東にZアイコンが点滅している。移動はしていないので、建物の中だろう。少し遅れて、半径400 メートル内の推定Z数が表示された。

 「2087 体」臼井大尉は唸った。「プラスマイナス281 体。予想以上だな」

 「大尉、大丈夫かね」小清水大佐が腰を浮かせた。「拠点第1 候補まで、無事に到達できそうか」

 「ソリストが正常に動作すれば可能でしょうね」臼井大尉は言葉遣いだけは丁寧に答えた。「各分隊、分布図は更新されてるか?」

 谷少尉、柿本少尉から、それぞれ短い応答があった。

 「サンキスト、微速前進。各分隊、CCV と速度を同期」

 指揮車両はゆっくりと進み出した。各分隊も、それぞれ担当していたZの群れから離れて、CCV の後を追って走ってくる。状況を確認した臼井大尉は、一息ついて言った。

 「サンキスト、基地との連絡はまだ取れないか?」

 「ずっとオートで呼び続けてますが、沈黙してますね。こっちが発信できてないのか、向こうが受信できてないのかは知りませんが」

 「衛星通信装置はどうだ?持って来ていたな」

 「ありますが、まだソリストに接続してないです」サンキストはゆっくりハンドルを切りながら答えた。「もちろん単体でも使えますが、元々、移動中は使用する予定がなかったので、装備ボックスの奧にしまってあります。ここでCCV を停めて店開きするのは、ちょっと。どっちみち、うちが使えるLEO(低軌道周回衛星) は、ここんとこ不調なんで、まともな通信ができるかどうかわからんですけどね」

 「わかった。拠点に着いたら試してみてくれ」

 『ビーンです』谷少尉が呼びかけてきた。『鳴海さん、いますか?』

 「はい、います」

 『ちょっと考えたんですがね。Zの分布図のデータがあって、地図データもある。それらをうまく使って、我々ができるだけZを回避できるようなルートを算出できないもんですかね。もちろん最短で』

 巡回セールスマン問題みたいなものか、とぼくは考えた。あちらは全ての都市を必ず1回経由しなければならないが、こちらは点在するZの群れを避ければいいだけなので、問題としての難易度は低い。ただし、都市は動かないが、Zの群れはじっとしているわけではないという点を考慮する必要はあるが。

 「できると思いますが」ぼくは答えた。「ちょっと考えさせてください」

 ボリスが何か言ってくるか、と思って身構えていたが、関心のなさそうな素振りだったので、少し拍子抜けした。代わりに島崎さんが近寄ってきた。

 「今の要望、できそうなの?」

 「たぶん。今は使ってないみたいですが、ナビ機能は元々パッケージに含まれてるんです。当然、道路を走行するようになっているわけなんですが、登録済みの障害物が道路上にあれば、別ルートを選択するロジックがデフォルトであります。フィルターかぶせて、Z判定ロジックで出たZの群れの位置を障害物として見るようにして、迂回距離を20 メートルとか30 メートルにしてやれば」

 「どれぐらいでできる?」臼井大尉が訊いた。

 「やってみないとわかりませんが、何時間かはかかりますね」

 「ふーむ」臼井大尉はあごひげをつまんだ。「そうなると、それが完成するまでに拠点に到着してしまいそうだな。まあいい、では、それをお願いしよう。現地での作戦行動や帰路には役立つかもしれないからな」

 「ちゃんと動けば、ですね」ボリスが薄笑いとともに言った。「それより、大尉。そろそろマーカーを試してもらえませんか?」

 「今か?」

 「ええ。マーカーを付けておけば、ドローンの哨戒範囲外からでも群れが把握できます。帰路の安全保障にもなりますよ。それに、サンプルデータはできるだけ多く、と言われているじゃありませんか」

 ボリスは同意を求めるように、というよりは、賛成意見を促すような顔で小清水大佐の方を見た。小清水大佐は即座に頷いた。

 「いいんじゃないのかね、大尉。有意なサンプル数として、1000 以上という命令だ。ここらで稼いでおこうじゃないか」

 臼井大尉はZ分布図のモニタを確認してから答えた。

 「わかりました。このあたりなら、特に危険度の高い群れもいないようです。ビーン、聞いていたか?」

 1 秒遅れて、谷少尉が答えた。

 『はい』

 「マーカーは装備しているな?」

 『はい。スクレイパー以外は、各自が20 本』

 「群れをこっちで選定する。接近して、マーカーを打ち込め。コンビネーションは任せる。第2 分隊、第1 分隊を左翼から援護しろ」

 『了解』柿本少尉が答えた。『停車ですか?』

 「いや、遅れているからな。あくまでも拠点を目指すことが最優先だ」臼井大尉はモニタを確認した。「第1 分隊、11 時の方向、前方150 メートル。20 体ほどの群れがいる。最初のターゲットとして、バブ01 と呼称する。プロらしく、危険をおかさず手早く済ませろ」

 『第1 分隊、了解。ヘッジホッグ、キトン、ブラウンアイズでフォーメーション。スクレイパー、CCV の可視範囲で援護しろ。おれはバックアップする。よし、マーク』

 ぼくは興味を抱いて、谷少尉のカメラに切り替えた。視線の先に3 人のバンド隊員が走っていくのが見える。前方にZの群れが動いていた。その中の1 体が接近する隊員たちに気付いたのか、のろのろと向きを変えようとした。

 ブラウンアイズたちの動きは速かった。巨漢のヘッジホッグが、群れの端にいるZのボロボロになった衣服を掴むと、反動をつけて群れから引き離して路面に放り投げる。タイミングを合わせてキトンが接近し、Zの身体を足で転がしうつ伏せにさせた。戻って来たヘッジホッグが右肩を押さえ、合流したブラウンアイズが左肩を地面に押しつけて固定した。Zは必死で顔をねじまげてヘッジホッグに食いつこうとしていたが、それより早く、ブラウンアイズが何かをZのこめかみに押し当てた。

 ショートカットキーで、ブラウンアイズの視点に切り替えると、Zのこめかみにペットボトルキャップぐらいの金属製の円筒が付着していた。ブラウンアイズは右手に銃身の短いハンドガンを握っている。Zは死んだように――つまり本当の意味で――動きを止めていた。

 「あれがマーカーですか?」ぼくは島崎さんに訊いた。

 「うん、そう」島崎さんもモニタを覗き込んだ。「あのペレットをZの頭部に打ち込む。あのタイプのインジェクターだと、20 本装填できるんだったかな」

 「GPS ですか?」

 「いや、あれは生分解性プラスティック。電子デバイスじゃないよ。ほら」

 島崎さんはモニタを指した。ブラウンアイズの視線の先で、ペレットがZから離れて落ちていったところだった。ブラウンアイズはそれを確認すると、立ち上がって、次のZに向かっていった。

 「ペレットは空洞で溶液で満たされている」島崎さんは説明してくれた。「中には細菌サイズのマイクロマシンが100000 個、非活性状態で封じ込められていてね。何種類かの微量元素と一緒にね。マイクロマシンはインジェクターから発射されるときに、荷電されて活性化する。Zに注入されると、脳神経内に急速に展開するように設計されてるんだ」

 「展開?散らばるってことですか?」

 「ネットワークを形成しながらね。体内に存在する鉄や亜鉛、銅、マグネシウムなんかを材料にする。一緒に注入する微量元素は予備だね。脳を網目状に覆うイメージだよ。ウェブだな。Zは血液の循環はほとんどないけど、神経繊維はソラニュウム・ウィルスが機能を維持しているから、それに相乗りする形になる。もちろん脳の損傷がひどい場合は無理なんだが」

 「それがマーカーですか」

 「そういうこと。マーカーといっても常に電波を出しているわけじゃないよ。特定の周波数でコマンドを送ると、ウェブがリザルトを返してくる。ソフトウェア的なインプラントがあるようなものだ。位置情報はもちろん、Zが歩いていれば進行方向や速度なんかもわかる。あと、コマンドによってはZをコントロールすることもできるんだ。これはまだ実験段階なんだけどね」

 「コントロール?動きを止めるとか?」

 「そういうこと。R型のZは群れで行動する傾向が強いだろ。群れが進む方向をどうやって決めているのか、まだはっきりしたことはわかってないけど、1 体が明確に方向を変えれば残りも追随する現象は報告されているからね」

 「そのインプラントの寿命はどれぐらいなんですか?」

 「ほぼ半永久的」島崎さんは答えた。「たとえネットワークのどこかが欠けても、自動的に欠落部分を修復するし、コマンドで配置を変更することによって機能追加や機能変更もできる。これはハウンドが国際特許を持ってる技術なんだけどね」

 「すごいですね」ぼくは感心したが、ふと心配になった。「あの、島崎さん、今さらなんですけど、ぼくみたいな部外者がそんな重要な内容を知ってしまっていいんでしょうか?機密漏洩にここまで気を遣ってるのに」

 「鳴海さんだって、機密保持契約書にサインしただろ?」島崎さんは笑った。「それに知ったところで、どうすることもできないじゃないか。マイクロマシン/ナノマシン技術なんか、技術スペックを知っても、製品化できる設備を持ってる企業なんか、ほとんどないだろ。それにJSPKF 用に特化したICT 技術なんだから、他ではあまり役に立たないよ」

 「まあ、そうかもしれませんね」ぼくは肩をすくめた。「マーカーを打ち込まれたZの分布図みたいなのは見られないんですか?」

 「あるよ。ほら」島崎さんはキーボードに手を伸ばして管理メニューを表示させた。「マーカー関連のメニューがこれ。グレーになっているのは、まだ未完成の機能だね」

 分布図をクリックすると、このあたりの広域マップが表示された。いくつかの色の異なるアイコンが点滅している。

 「building と表示されているのが、ネットワーク構築中のマーカーだね」

 ぼくは頷いて、モニタに目を向けた。ブラウンアイズたちは、実に手際よく動き回り、13 体めのZにマーカーを打ち込み終えたところだった。ブラウンアイズの装備データの<Marker Injector>の残数が7 になっている。

 「第1 分隊、バブ01 はもういい」臼井大尉は呼びかけた。「30 メートル前方に別の群れがいる。次のターゲットとしてバブ02 と呼称する。そちらに向かえ。野球チームだ」

 『第1 分隊、了解』谷少尉が応答した。『シューターをキトンに交代。バブ02 に向かいます』

 野球チーム、というのが何の符丁なのかとモニタを見ると、それは文字通りの意味だった。バブ02 は7、8 体の集団で全員がストライプのユニフォームを着ていたのだ。何人かはまだグローブをはめたままだ。ブラウンアイズたちは、一度バブ01 から全速で遠ざかった後、大きく弧を描くようにバブ02 に接近していた。

 ふと背後に人の気配を感じて振り向くと、ボリスがモニタを覗き込んでいた。少し驚いたのは、ボリスがこれまで見たこともないような穏やかな顔をしていたからだ。

 「野球チームか」ボリスは誰にともなくつぶやいた。「彼らにも人間としての人生があったんだな」

 「ボリスさんも野球をやっていたとか?」島崎さんが訊いた。

 「いえ」ボリスはかぶりをふった。「やっていたのは弟です。シカゴのマイナーリーグでね」

 「弟さんはどうしているんですか?」

 思わず訊くと、ボリスはじろりとぼくの顔を睨んだものの、これまでのように侮蔑的な表情をすることもなく淡々と答えた。

 「死んだよ。シカゴが放棄されるときにな。両親も一緒だった」

 アメリカ合衆国のZ被害は先進国の中でも最大級だ。いくつかの掃討作戦が大失敗に終わったことで、ロッキー山脈から東海岸にかけては、ほとんどの州が放棄された。現在でも、多くの州境が閉鎖されたままだと聞く。

 「すみません」

 謝罪したが、ボリスは何も答えずに自分の席に戻り、タブレットで何かの操作を始めた。

 20 分後、ブラウンアイズたちがバブ03 と命名された群れに、マーカーを打ち込み終えた後、臼井大尉は振り返った。

 「ミスター・ボリス、マーカーは正常に稼働しているか?」

 「計47 個打ち込み、うち44 個が応答しています。残りはビルドに失敗したようですね」

 「隊員のモニタにも出せるのか?」

 「はい、もちろんです。少しお待ちください」

 ボリスはタブレットで操作を行った。また何かの不具合が発覚することを、ぼくは半ば確信していたのだが、その予想は外れた。数秒後、隊員のモニタに、さきほど島崎さんが見せてくれた分布図が表示されたからだ。

 「初めてまともに動いたな」臼井大尉は頷いて向き直った。「よし、急ごう。少し遅れているから、早めに拠点候補地に到着したい。ビーン、グレイベア、進むぞ。少しペースを上げてくれ」

 「マーカーの打ち込みは継続してください」ボリスが言った。「ある程度の数が集まらないと......」

 「わかっている。両分隊、危険のない範囲で、マーカーを打ち込め。ただし、移動を優先させろ」

(続)

Comment(14)

コメント

huikdse

ボリス氏の唐突な個人的エピソード。これはフラグの匂いがプンプンするぜ・・・!

yupika

野球チームはグローブをはめたまま何年も徘徊してるのか・・・。
やはり土地柄、Dから始まる球団で…。

3rdStream

ハウンドとしてはソリストはどうでもよくて、主眼はマーカーの導入なのかな…

fgn

10連敗してZ化したんですかね・・

HMX

「電荷されて」→「荷電されて」

かな?

BEL

もしくは「電化」?

今回「実は○○だった」みたいな人がいるとすればボリスかなと思っていたが、
主人公も、よくこんな少ない情報で色々把握できてるよな、と不気味になってきた。

umu

Zの遠隔操作を狙っているとしか…

typoかな

>仮装環境にインストール
仮想環境にインストール

HMXさん、typoかなさん、ご指摘ありがとうございます。
荷電、仮想でした。

CES

> 1 秒遅れて、谷少尉が答えた。

なんか、嫌な予感。

ばぶ?

あれはパブかと思ってたw

てかこれ、Zのウィルスが電脳化してすごい事になるよ。


とあるZの前にキーボードを置いたら、途端に一心に打ち始めた。
それがソリストだかのシステムに繋がってて、そのZが実はしょーじ氏で、それはもう。

楽しみです。

通りすがり

初めてソース見たシステムの不具合を一時的とはいえ修復するapk思いついて作るとか、鳴海さんスーパーハッカー過ぎやしませんかねぇ……
ある程度中身知ってるシステムならまだしも。まぁお話だからそこに突っ込むのは無粋ってもんか

ミケ

大多数というのは割合を表す言葉ですから、「もっと大多数」というのはおかしくないでしょうか。
「もっと多数」が適切かと思います。

ミケさん、ありがとうございます。確かに。

コメントを投稿する