日記/2015-04-29
ホムAI:Glenelg v0.68 の問題点†
別途4/4へのコメントでも書きましたが。
あれ以外にも多少気になる点があるため、自分の修正作業前の整理メモ。
今はバーニングイベント優先なので AIの即時リリースはしません:
明らかなバグについては修正場所もメモっておきます。
ちなみに 3 以降は仕様追加・改善事項なので、実施するか否か未定です。
1. コンボ処理の致命的バグ†
4/4 へのコメントにも書いた内容。
Glenelg V0.68 では、エレノアのコンボ系スキルが一切動かない:
それどころか、コンボスキルを使用すると AI が落ちます。
致命的な問題で、すみません。
修正は簡単。combo.lua 内を開いて「CreateComboTable」で検索、ひっかかる 2箇所を書き換えればよい。
元: CreateComboTable() 正: CreateComboTable(skid)
セラの自動ペインキラー対応が原因:
『登録されている複数キャラにペインキラー使用』という振舞いを、
エレノアコンボの仕組みを流用して『複数のペインキラー操作を自動発生』させるように設計しました。
その際、エレノアコンボとリスト生成の方法が異なることから、
使用しようとしたスキル種類に基づいて生成処理を分岐するようにしました。
で、その際に、エレノアコンボ側にバグが入ってしまった、と。
2. CHASE 時の空きエリア検索処理漏れ。†
V0.60 で作成した機能を、間違って部分的に消してしまった (^^;;
敵味方が密集しているときに、適切な空きエリアに移動する仕組み。
ターゲット管理の方法を変更した際の修正ミス。
AImain.lua 内、OnCHASE_CMD_ST()とOnCHASE_ST()のそれぞれ最後のほう。
GetEmptyCell() を呼んでいる OnCHASE_CMD_ST() のほうが正しい。
ちなみにこれらの関数の差は、前者が『AIが自律的に敵を決めたとき』、後者が『ユーザが敵を指定したとき』。
3. 自動ペインキラー、リストの非揮発化†
現状では自動ペインキラーのリストは『AIリロードで消えてしまう』揮発情報としている。
だが、利便性にやや難ありのため、改善対応の検討中。
この機能でやりたいことは実質的に『自分で物理攻撃しない後列キャラは、常に防御対象』、
『前列は状況に応じてなので自動化対象外』だと考えている。
だがこの『後列キャラ』というのが、意外と難しい。
例えば職で指定することはできない。世の中にはいわゆる『殴りプリ・殴り魔法職』というのがいる。
動作観察するのが妥当だとは思うが、それだとこのスキルに期待される『事前に防御準備』はできない。
一番簡単なのが『友瀬のJoseは殴りプリだから、対象外』『友瀬のさやかはIntプリだから対象』というように
キャラ名で指定することなんだけど、これはホムAIからは取得できないんだよね。
仕方ないので現状は割り切って、パーティ結成時に対象を指定・そのパーティ中だけ有効な情報でいいという想定。
だから『アカウント』情報を揮発記録する仕様になっている。
だが揮発情報だと、狩場に行ってそこで設定する必要がある。
またホム自身が死んでしまうのも、アウト。
どうせ友達登録するんだから、それを前提に記録してしまうのも手ではある。
消し忘れと、友達ロック機能との兼ね合いには気をつけないとだけど。
4. 制限スキル適用外敵リスト†
こっこAIで実装されている機能:フィーリルの奥義スキルを使ってよい・いけない敵を記録する。
これによって、例えば『ポリンに奥義を撃ってしまう』ユーザの誤操作を防ぐ。
意図としては『メカニズム的に連発できない・ミスが許されない』スキルに事前フィルタをつけることになる。
正直、奥義スキルは実用品ではない==不要だと思っていた機能だが、エレノアのつかみ3段で気が変わった。
これも決して狩での常用品とはいえないが、
例えば騎士団で深淵やブラッディナイト複数に囲まれたときの『5分間に1回の打開スキル』としては有用。
で、そういうタイミングでうっかり取巻きカリッツに使ってはたまらない。
学習情報は、敵ごとの学習リストに項目追加する方式がいいだろう。
ポイントは『使ってよい』ホワイトリストにするか、『使っちゃダメ』のブラックリストにするか、か。
『使ってよい』対象は少ない気がするのでホワイトリストのほうが使い手に優しいんだけど、
その場合『初めて出会い頭で会った敵に使えない』という問題があるんだよね。。
Glenelgでの敵ごとのActive/Passive指定同様に、『未学習の相手用』のデフォルトはユーザ選択できるようにするか。
5. 範囲攻撃・強化スキルの条件段階化、およびその自動・手動判定†
これらのスキルは、自動使用の条件に『敵群の脅威度』合計を用いている。
これ自体は正しいが、これには2つほど、考慮すべき項目がある。
1つは『SPの残量』。
余裕があるなら強化/範囲攻撃してもいいし、減っているときに使わせたくない。
1つは、上記にも関連:『かゆいときの手動フォロー』。
『今は強化よりも攻撃だろう』とかいう類ね。
ともあれ、まだもやっとした考えに過ぎないので、具体化は未定。
とりあえず、SP残量に起因して使用率を変動させる条件を追加したい。
ご意見などがあれば。