第五話 監視ソリューション
カルラとアルバンとエイダが最下層に挑戦している頃に、俺はダンジョンの監視ソリューションを完成させた。
監視は、それほど難しくは無かった。
プッシュで送られてくるダンジョンからのデータを受信できるポイントを設定して、表示するだけでよかった。よくある、動画を再生する方法と同じだ。
簡単に出来た。ダンジョンが動画を撮影していると仮定してネットワークを繋げてみた。カメラがネットワークカメラとして認識が出来た。
最初は、ネットワークカメラとして認識させた状態で開発を行った。
Motion JPEG のストリームで取得するのは簡単だった、イベントハンドにメソッドを書き込めば、イベントとして処理が出来た。
ストリーム取得の処理が考えていた以上に高負荷になってしまったために、違う方法を考えていたら、備え付けの端末ならUSB接続で行けるのではないかと考えた。開発環境がある端末を起動してから、ダンジョンにUSBで接続するように選択を行った。
なんでもありだな・・・。
USB接続のUSBカメラとして、ダンジョンが認識した。カメラの切り替えも可能だったが、カメラの位置が固定されてしまう。
監視ソリューションとしては、DirectShowを使ったUSBカメラの動画再生で問題はないだろう。階層の入り口や休憩室などをメインに考えればいい。いくつかのカメラを設定して、DB化しておく、接続ポイントさえ設定しておけば、カメラの切り替えは可能だ。
備え付けのカメラでの監視には、問題はなかった。
次は、冒険者たちの行動監視だが、戦闘や会話は既に取り込むようになっている。監視が必要とは思えないが、作ってみる。追尾カメラは、固定式ではない。フレームレートを落としてネットワークカメラとして作成してみる。
イベントハンドラをオーバーライドができるのは当然だから、クラスをラッピングしてカメラを自動的に作成して、必要がなくなったら削除するようなクラスを作成した。
これで、ネットワークカメラを使った”カクカク動画”が再生できる。追尾カメラとして考えれば上出来だ。
追尾カメラを自動生成する方法が使えたので、USBカメラも自動生成ができると考えた。
ダンジョンクラスを探していると、オーバーライドできそうな物が見つかった。クラスのパラメータにポインターを返すことで作ったカメラが生成された。これで、定点カメラも問題はなくなった。
異常系や特殊操作はまだ作っていないが、α版として動作を開始する。
表示するモニターは贅沢にも、128面。大小様々なモニターを壁に配置した。ヒューマノイドたちに監視させるために、配置したのだが少しだけ、ほんの少しだけやりすぎた。モニターなんて使いみちがないし、持っていけないから、使えそうな物でサイズ的に適している物を並べていった。
電源の確保やケーブルの取り回しを考えなくて言い分だけ、設置は楽に出来た。
監視ソリューションが、ひとまず落ち着いたので、次はエイダの肝になっている、機械学習の部分を巨大化する。
俺の知恵袋として活躍が期待できるエイダには、知識を溜め込んで欲しい。そして、遠隔でダンジョンのヒューマノイドたちを動かしてほしいのだ。そのためにも、機能の向上は必須事項だ。
近くに控えていた、ゴブサンに流れてきていた、ラックサーバを保管している場所に案内させた。
あまり得意ではないが、複数のサーバを連結させる。構築してあったエイダの心臓部を更に大きくする。ヒューマノイドにも協力させて、48Uのラックもどきを作成する。ラックサーバの数を確認したら、92台が流れ着いていた。スペックはまちまちだが、ひとまず48Uのラックに、23台を納めていく。隙間を開けて設置しておく、ケーブルの取り回しが無いのがすごく嬉しい。それだけではなく、モニターへの出力やキーボードやマウス接続が、プログラムから制御できる。
一台のエイダシステムの監視用に端末を用意して、制御用に設定をおこなって、プログラムを動かす。
起動時に、動くOSが選べるのが地味に嬉しい。BIOS設定でOSを入れ替えることができる。スペックなのか、世代なのか、原因はわからないが、選択できないOSも存在しているのだが、それなら、動く端末を使えばいい。
腕につけている。スマートウォッチでエイダに連絡をする。
『エイダ』
『マスター?』
『鍛錬の最中か?』
『いえ、休憩中です』
『管制室に来てくれ、エイダのシステムをアップデートする』
『わかりました』
5分後に、エイダが管制室に戻ってきた。いつものポジションに座ったエイダを端末に接続する。新しく構築したシステムに、エイダを接続する。今までのシステムはバックアップ用に作動させる。電気代を考えなくて済むのは嬉しい。電気の代わりに、魔力が必要になっているが、ダンジョンの状況をモニタリングしている端末には、ダンジョンが溜め込んでいる魔力も表示させてある。大事なデータなので、中央のモニターに表示している数値だ。その数値は、93億前後で推移している。俺が管制室を使うようになって、気がついた時には、90億程度だったので微増している状況だ。100億を基準に考えることにしている。魔物を作成したり、罠を生成したり、宝物を設置すると魔力が減る。倒されると、少しだけ戻ってくる。ダンジョン内に、ダンジョンで産まれた者以外が居ると魔力が回復する。
「エイダ。終わった。起動するぞ」
『はい。マスター』
エイダに配置したモジュールを順番に発動していく、エイダに関連するモジュールは、本体以外にも存在する。
「接続はどうだ?」
『問題はありません』
「よし、切り離すぞ」
『はい』
開発環境との接続を切る。
エイダが立ち上がった。
「問題は?」
「ありません」
「ダンジョンの制御や、ヒューマノイドへの命令が行えるようになっている。試してみてくれ」
「はい・・・・。問題はありません。ダンジョン内の情報に接続できました。ヒューマノイドは、管制室に居る者だけですが接続ができました」
「わかった。概ね成功だな」
「はい。ありがとうございます」
エイダも感情が豊かになってきた。
精度が上がってきているのだろう。
エイダに監視ソリューションの説明を行う。戦闘と同時には無理だという判断が下ったが、戦闘をしていなければ、監視もスムーズに行えるようだ。
俺が関しソリューションを完成させて、エイダを支援特化にまとめ上げた、翌日にカルラとアルバンは、俺が提示した最下層に相当する敵を撃破することができた。
食堂で待っているとカルラとアルバンがエイダに釣れられて入ってきた。
「兄ちゃん!」「マナベ様」
カルラは、俺の前で跪いて、アルバンは俺に飛びかかろうとしたのを、カルラが制した。
「突破できたようだな」
「うん」「はい」
「共和国に向けて出発する・・・。前に、情報収集だな」
「マナベ様。共和国への道やダンジョンと思われる場所の情報収集は、私が行います。アルバンは、共和国までの物資の調達を行います」
「あっわかった。任せる。準備が出来たら呼んでくれ」
「かしこまりました」
「エイダ!」
「はっ」
「アルバンについていけ。アルバンは、エイダを連れて行って、馬車の用意を頼む」
「わかった。エイダ。一緒に行こう」
エイダを抱きかかえたアルバンが嬉しそうにするのとは対照的に、エイダがイヤそうな顔をする。
『マスター』
『エイダ。外は、アルバンの従魔のように振る舞えよ。外でどれだけのことができるのか確認してくれ、魔法を使ってみて、違和感が無いか確認してくれ』
『わかりました。マスターは?』
『俺は、管制室の整理を続ける』
『はっ』
二人とエイダが食堂から出ていった。
ゴブイチが飲み物を持ってきた。人数分が用意されていたが、俺が全員分を飲んだ。
あとは、寝て待っていればいいよな?