188 お問い合わせ『ランダムエンカウントの実装方法』2
メガネの衝撃的な発言を聞いてジト目になったドラ子だったが、すぐに考え直す。
(まぁ、なんだかんだ言っても、関連イベント機能で上手い事繋げばなんとかなるんだろうなぁ。
どうやるのかは先輩が説明してくれるだろうし──)
「──みたいな、他力本願なことを考えている顔だなぁ、ドラ子?」
「お、おおお、思って無いですよ」
心の中のモノローグを言い当てられて、ドラ子は盛大に目を泳がせた。
だが、そうは言ってもドラ子も今まで、この保守サポート部で揉まれて来たのだ。
先輩のジト目から逃れるように、思いつきを口にすることくらいはできる。
「でもなんとなくですけど、なんかの条件で対象を転移させて、その転移先でモンスターと戦わせる、みたいな実装ならできなくもなさそうですよね」
そんなドラ子の思いつきに、メガネは「良い線を突いたな」と、珍しく素直に褒め言葉を口にするのだった。
ランダムエンカウントと呼ばれる形式の戦闘はだいたい以下の流れだ。
1.パーティがダンジョンを歩く。
2.一歩ごとにエンカウントの判定が行われる。
3.判定に成功すると、戦闘用のフィールドに移動する。
4.敵味方ともに戦闘行動を開始する。
5.戦闘に勝利する、戦闘に敗北する、戦闘から逃げる、戦闘を中断されるなどの条件で戦闘が終了する。
6.戦闘のリザルトの後に元いたダンジョンに帰還する。
そして重要なのは、2のエンカウントの判定というところだ。
ここがランダムエンカウントのランダムエンカウントらしいところであり、言ってしまえば、現実ではなくゲームらしいところ。
Solomon的に考えれば、このエンカウント判定さえどうにかしてしまえば、あとはSolomonの機能でなんとでもなりそうなのだ。
1のパーティがダンジョンを歩く部分は、こちらが全く関与するまでもない。人間は勝手に歩く生き物だ。
3の戦闘用のフィールドに移動する(まぁ、そういうのがないゲームもあるが)というのは、先日の試験で散々食らった転移でも使って、予め用意していたフィールドに移動させればいい。
戦闘フィールドはダンジョンごとに用意して、その中にモンスターも召喚しておけば、後は冒険者なりなんなりが入ってくれば勝手に4の戦闘行動も開始される。
戦闘が始まれば自動的に5の戦闘終了判定まで双方は勝手に戦うだろうし、戦闘が終わったら、モンスター側が勝ったら何も無いし、冒険者側が勝ったら転移の魔法陣でも用意して帰してやればいい。
まぁ、戦闘後のバトルフィールドを安全地帯として使われるのも癪なので、転移の魔法陣に乗らなくても時間で強制的に戻す必要はあるだろうが。
と、こんな感じで、エンカウントの判定以外は、Solomonの機能でいくらでも再現はできそうなのだ。
「細部で手を加えて自然な流れを作り出す必要とかはあると思いますが。たとえば、戦闘に入るときのロード時間も意図的に作って心の準備とかさせたいですしね」
ドラ子は、パッと思いつきで出来そうと思ったことを、しっかりと自分の言葉にしてメガネに語ってみせた。
メガネはドラ子の言葉を肯定も否定もせずに聞いていたが、結論らしきことをドラ子が口にしたところで頷く。
「真面目に実装するなら、ドラ子の考え方でだいたい間違っていないだろう」
そうメガネはしみじみと頷いてみせた。
ドラ子はそんなメガネの顔を、まじまじと見つめる。
「…………???」
「なぜ不思議そうな顔をする?」
「いえ、ダメ出しが飛んでこないとか、先輩具合でも悪いのかなって」
「お前は俺をなんだと思ってるんだ?」
メガネの問いかけに、ドラ子は真顔で答えた。
「祝勝会を勢いで反省会に変える空気読めない人」
「お前らが聞きたいって言ったんじゃねえか」
お互いが渋い顔をした。
今回の嫌味の応酬は痛み分けであった。
「とにかく、エンカウントの部分だけなんとか出来れば、他は問題ないってことですよね。決戦のバトルフィールドを作ったり、そこにモンスターを召喚したりと、そこそこ手間はかかりそうですけど」
ドラ子は自分のさきほど出した案を自分で検討してみる。
少なくとも、生物としてのモンスターを採用することはできない。
まずもって、ランダムエンカウントを主とする世界で、モンスターの繁殖の可能性など万が一にでもあっては困る。
例えば、職業テイマーみたいな人間が生まれて、戦闘中のモンスターを決戦のバトルフィールドから引き抜いたとしたら。
そういう人間が集れば、繁殖の可能性もあるし、何かあれば逃げて野生化だってする。
それがまかり間違ってダンジョンに住み着きでもしたら大変だ。
決戦のバトルフィールドに移行するまでもないリアルエンカウントもするし、戦闘中に判定を踏んでランダムエンカウントなんかしたら目も当てられない。
帰って来た瞬間にまた、待っていたモンスターとの連戦は堪えるだろう。
まぁ、それ以前に決戦のバトルフィールドという性質を考えれば、そこにモンスターが生活できるだけの生態系を築くのは大変困難なので、そういう点を考えてもモンスターは魔力形成一択になるだろうが。
魔力形成なら、モンスター側が勝ったとしても、傷ついたモンスターを魔力に戻して、また次の戦闘で万全なモンスターを再召喚できるのも、大きな利点だ。
他にも、バトルフィールドの広さ、援軍を呼ぶ事を可能にするかどうか、競合を発生させないためのフィールドの数はどれくらいか、逃げるなどの行動の成否判定はどうするか、などなど、戦闘に関する細かい決めごとは、それこそ数え切れないくらいありそうだ。
だが、その辺りはぶっちゃけこっちが考えることではない。
細かい部分を詰めるのは、お問い合わせの主の仕事であって、こちらは、ランダムエンカウントできるかできないかを答えれば良いのだ。
実装する際の細かい設定等については、貴ダンジョンにてご検討ください。
考えれば考える程、なんかいけそうな気がする!
最初は顧客に対して、お前は何を言っているんだとしか思わなかったが。
Solomonという術式によってダンジョンを管理する以上、それはある意味ではゲームの中のダンジョンとそう違いはない。
動かしているのが魔術式なのか電子プログラムなのかの違いだけで、その二つは言ってしまえば似たようなものだ。
だから、やろうと思えば似たようなことは出来てしまうのだ。
ただ、一点。
エンカウント判定という、現実では全く起こらない事象さえなんとかなれば。
「そこのところどうにかなりませんかメガネ先輩」
「最後は普通に頼るのか……」
意気揚々と己の構想を展開した後に、結局解決しなかった問題だけを堂々と先輩に投げつけたドラ子であった。
メガネはそんな後輩に目を細くしながら、簡単に思いつくことを述べる。
「ドラ子は忘れているかもしれないが、Solomonでは中に入った人間の情報は収集している。うちと提携している会社の術式を使ったギルドカードなんかを持っていれば、更に細部の情報まで拾うことができる」
「それは知ってます」
かつてHAダンジョン──ハイアヴェイラビリティダンジョンのチケットを押し付けられたときに、ゴーレム部長から聞いた話だ。
中世ファンタジー的に考えて明らかにオーパーツ過ぎるギルドカードや冒険者証なんかの術式を作っているのは、実は人間でも世界の管理者でもなく、うちの提携会社だったりするのだとか。
それ故に、ギルドカードを持っている人間の情報は、ダンジョン側でも読み込めるのだ。
「なので、ギルドカード持ちの行動をSolomonで収集すれば、移動距離だとか運動量だとか、大声を出す、騒ぐ、挑発する、忍び足をする、聖水を撒くなどの、様々なエンカウント関連の行動データは集めることができるんだよ」
「え? ギルドカードってそんな情報まで収集してるんですか?」
「裏側ではな」
ステータスを表示するだけじゃなかったんだ、と思いつつ少しドラ子は納得した。
そりゃ、こっちが思っている以上の情報を収集していないと、勝手に犯罪の情報を集めたり、自分が倒した魔物だけカウントしたり、いつの間にか称号を付与しているなんてこと、出来る訳が無いなと。
そして、その辺りのマスクデータを収集すれば、エンカウントの判定にいくらでも使えそうだ。
判定基準を設定して、カスタムトラップ機能でも使ってダンジョン全域に転移の罠を張っておいて。
あとは収集されたデータを元に、独自に作成した閾値を越えた冒険者パーティを、決戦のバトルフィールドに転移する。
あとは流れで戦闘処理を行えば、ランダムエンカウントの完成である。
一連の動きは、全部関連イベント機能で繋げば、一個のイベントとして処理できるだろう。
煩雑な設定をまとめてくれる関連イベント機能に、今日ほど感謝したことはない。
「完璧じゃないですか」
呟き、ドラ子は、確かな達成感を覚えていた。
要所でメガネ先輩の助言を貰いはしたが、自分の考えだけで、ランダムエンカウントらしきシステムを、構想することが出来てしまった。
もちろん、Solomonの機能としてのランダムエンカウントは存在しないので、これをそのまま案内することは出来ないだろうが、参考情報として軽く説明してやることはできる。
初めて、自分の言葉で、しっかりと案内することができる。
「先輩、私、なんだかいけそうな気がしてきました」
「そうか……良かったな」
「はい!」
いつもだったら、皮肉にも聞こえそうなメガネの言葉も、今日のドラ子には素直な賞賛として響いた。
さて、やる事は決まった。
あとは回答方針をさくっと投げて、並行して回答案の作成にも入っちゃおうかな。
本日絶好調だったドラ子は、そうやって行動を開始しようとして──。
「ただドラ子。この顧客に、素直にさっきのランダムエンカウントの提案するのは絶対にやめろ。おそらくほぼ100%クレームになるから」
「え?」
先輩からの、無慈悲な『待った』が入ったのだった。




