DQ3 K.Mix 中間報告的なもの2

なんだかんだと作業速度がかなり停滞気味ということもあり、結局学習機能をONにした状態でテストプレイを始めたのは前回のエントリから1週間以上経ってからで、ゆるゆるとプレイを続けて船を取るあたりまで進めました。それまで全く学習機能ONの状態でテストしてこなかったこともあり*1、学習機能ONの状態でプレイしての問題点というのがようやく明らかになってきた、という感じです。これらの問題点を解決しないと学習機能をONにしたテストプレイが先に進めない(多分最初からやり直し)ということでリリースは思いのほか遅れそうです。というわけで相変わらずリアルもばたついていて落ち着いてエントリを投下できそうな状態ではないので適当に書き散らしてお茶を濁すことにします。

学習機能をONにしたテストプレイで今のところ感じたのは以下の2つの問題点です。

  1. モンスターの全て情報が開放されるまで最大8回戦闘するというのはしんどすぎる
  2. モンスターの耐性が明らかになっていない状態=完全耐性のモンスターと対峙していることになり、取る行動が極端に狭まる

そもそも「学習情報」というのは「PC・モンスターが行動することによって得られたモンスターの情報が蓄積していくことでAIがより正しい情報を元に行動を決定できる」を意図して導入したものでした。直接攻撃すれば守備力が、打撃攻撃を受ければ攻撃力が、メラを実行すればメラギラ系の耐性が、相手が何か行動すれば8つの行動パターンのうち1つが明らかになっていくというのを基本的な考え方としています。モンスターの脅威値も明らかになっている行動パターンのみから算出されるため、本当は呪文を使うモンスターに対して初見ではAIはマホトーンの使用の必要性を認識できません。基本は「実際にやってみないと結果がわからない」なのですが、それだと耐性や行動パターンは実際に呪文を使ったり相手がその行動をするまで完全に把握できないということになります。DQ3では行動の選択割合にかなり偏りがあるモンスターがあるので、延々と防御したりしてその行動をするまで待たないといけない(しかも表面上は全くわからない)ことになります。この状況を解決するために「学習ボーナス」という考え方を導入し、「その戦闘中につき各モンスターにつき1回限り、そのモンスターを倒した時に設定されている数だけ(基本1)未開放の戦闘行動、ダメージ系呪文耐性、確率系呪文耐性を開放する」というようにしました。モンスター行動は8パターン、ダメージ系呪文8属性、補助系呪文8属性それぞれボーナスにより最低1つずつ開放されるため、モンスターが一切行動しない場合でも最大8回戦闘すればそのモンスターの情報は全て把握できることになります(HP,MPなどの基本的な情報は1回でも倒せば把握できるとする)。なお、全て把握しているかどうかはモンスター図鑑の個別モンスター名の右に★印を表示することでわかるようにしました*2。あまり意味はありませんが、ボスなど1回しか戦えないモンスターについては1回倒せば全ての情報を把握した状態になるようにボーナスを8に設定しています(実際再戦することは一部のボスを除いて不可能なので意味はありませんが)。

20141125223105.jpg

自分のテストプレイではホイミスライムとエンカウントすることなくロマリアに進んでしまい、あとから戦ってないことに気づいて集中的にホイミスライムと戦ったりしたのですが、★をつけるのがメインの目的ではないにしろ、毎回エンカウントできるとは限らない特定のモンスターと集中的に8回も戦うのは結構しんどいということに思い至り、学習ボーナスを最低2に変えました。これにより最大4回戦うと全情報が開放されることになります。1つの地域での戦闘回数を考えると、4回目以降からAIが賢い判断をするようになってくるというのは悪くないかなと思います(まだテストプレイを再開していないのでわかりませんが)。

そしてもう1つの問題が学習情報が明らかになっていないモンスターに対するAIの行動です。現状の実装だと、初見のモンスターは「HP1、MP0、攻撃力1、守備力0の何も行動してこない完全耐性のモンスター」とAIは判断します。完全耐性なので自分からは一切呪文は実行しません(回復系は除く)。FC版DQ4のクリフトのような「効きもしないザキを連発する」ことはありませんが、マニュアル操作の他のキャラクターが呪文を実行しない限り、延々と直接攻撃と回復のみを繰り返すことになります。自分のテストプレイではぐんたいガニに勇者がメラを打つとその後魔法使いが真似してメラを実行するようになったり、1回倒すと学習ボーナスにより耐性が開放されていくので何回かあとの戦闘ではちゃんと弱点を狙ったりしてくれていたので、「戦闘を重ねるにつれAIが賢くなる」というのはある程度実感できていたと思います。ただ、序盤でテストプレイをやめてしまったので中盤以降のこちらの手数が増えた状態で情報が全部開放されるまで8回もかかる設定だと、なかなかまどろっこしかったかもしれません。これについてはすでに学習ボーナスを増やしたので数回の戦闘でより良い行動を取るようになると思われます。

問題はボス戦で、現状の実装だとボスは倒すまで一切情報がわからないので勇者が直接攻撃しかしない場合、AIは攻撃呪文を一切実行しないということになります。DQのボス戦というのはマニュアル操作が基本とはいえ、これはまずかろうということで「相手の耐性が不明の場合はわからないなりにも呪文をぶっ放す」ことを許容しないとまずいだろうなと考えています。現状「いろいろやろうぜ」のみが相手の耐性が不明でも効果が最大であると仮定して呪文を実行する実装になっているのですが、ボーナス値を増やした関係上、存在意義がかなり薄れることが予想されます(積極的に未開放の耐性を埋めようとしないでも適当に戦っていればすぐに開放されるので)。というわけで「いろいろやろうぜ」のかわりに、ボス戦でも使えるような「せめくちをさぐれ」に変更し、耐性情報が不明でも攻撃呪文系およびラリホー・マヌーサ・マホトーン・ルカニのみを相手の集中的に使うようにしようかと思っています。その他の作戦についても「相手の耐性が不明な場合でも耐性を推論する」機能を実装しようかと考えているのでこの変更に多少時間がかかる見込みです。

20141125223106.jpg

余談ですが「せめくちをさぐれ」(攻め口を探れ)という名称は正直かなり苦しいとは自分でも思っているのですが、作戦名称を平仮名8文字に収めたいという制限があったので*3、なんとかそれっぽいものがかろうじて見つかったという感じです。NG案として

  • きゅうしょをさぐれ(9文字で文字数オーバー)
  • じゃくてんをさぐれ(9文字で文字数オーバー)
  • きゅうしょをつけ(文字数はOKだが、毒針とイメージがかぶる)
  • じゃくてんをつけ(文字数はOKだが、他の作戦だって弱点は付いている)

というものも考えましたが「○○○○をさぐれ」というのが一番しっくり来ました。DQで使われる作戦名はどれも少ない文字数でそこそこ具体性のある方針をちゃんと表現できているのを改めて実感しました。

*1:学習機能もONにすると素のAIがまともに動いているのか切り分けできないので実装はしたものの全く未テストでした

*2:あくまでAIのためなので★印を一覧画面で描画するといらぬ収集欲求をプレイヤーに起こしそうなのと1行中に色の違う文字を複数行にわたって描画するとウィンドウの切り替えがスムーズに行われない恐れがあったのであえて一覧画面に表示することはしていません

*3:ウィンドウの幅を増やさないといけなくなり、かなり見た目のバランスが悪くなる

コメント

  1. ura より:

    …「じゃくてんさぐれ」でも良いのでは?

タイトルとURLをコピーしました