以下、いろいろ散文的に。
- 今回のバージョンアップの主目的は、
戦闘中の回復スキル使用への対応です。
- 設定はいつもどおり、iniファイル/GlenelgWatchで実施。
設定する条件は『使用スキル』、
『状況:戦闘中 and/or 非戦闘中』、
『体力状況:特定率以下で使用』です。
- 『戦闘中』を指定した場合、戦闘中に回復スキルを使用します。
- 『通常時』を指定した場合、非戦闘中に回復スキルを使用します。
ただし、設定にかかわらずカオシックベネディクションのみ使用します。
治癒の手は使用しません。
- 治癒の手は比較的入手が面倒な消耗品を使用するものであるため、
火急度の低い非戦闘中では使わない、という仕様です。
- 回復スキルの使用条件は、『ボスケミ/ホムの体力が一定以上減ったとき』です。
- 使用するスキルレベルは、以下の通り自動判定します。
- カオシックベネディクションは、スキルレベルによって対象選択のランダム範囲が変わるため、ボスケミ/ホムの状況に応じてレベルを自動調整します。
また、第三者と戦闘している敵が近くにいるときは使用しません。
妨害行為にあたる可能性があるため。
- 治癒の手は緊急事態用を想定しているため、常に最大レベルで使用します。
なおボスケミしか回復できないので、ホム体力はチェックしません。
- 蛇足ながら、上記も含めて、治癒の手については『ボスケミの体力基準をある程度低め』にしておくことをお勧めします。
『余裕があるのに治癒の手』というのは、あまり期待されないと思われるため。
- 以上対応ですが、治癒の手については未テスト。
カオシックベネディクションで期待通りの使用をしているので、たぶん大丈夫だと思いますが。
- 上記対応中に既存のバグを発見したので、修正。
- カオシックベネディクションの使用条件:
ボスケミ/ホムのダメージ比率指定が、iniファイルの設定値を無視していた。
- 0.51以降でのiniファイル使用変更の反映モレ。
回復スキル対応のついでに修正しました。
- 範囲攻撃スキルの使用レベルを、iniファイルの設定値を無視して常に最大レベルで使用していた。
- 修正。
またついでに、ゼノスラッシャーに限り状況による使用レベル判断するように仕様追加しました。
攻撃スキルがイレイサーカッター指定になっているならば、現在殴っている相手へのイレイサーカッター指定レベルと同じレベルで使用します。
最後の仕様は、以前から検討していた項目の暫定追加、という感じですね。
今までの仕様でもiniファイル編集で対応でき・・・てたつもりなんですが、バグってたので(笑)
アマツイベントの都合で暴虐王やってて気がついたさ (^^;;;
ともあれ、毎回iniファイルを操作するのも微妙なので、ついでの拡張対応をしました。
これによりイレイサーカッター・ゼノスラッシャーを使用する設定になっていれば、イレイサーカッターの使用レベルを操作することで間接的にゼノスラッシャーの設定もできるかたちになります。
現状の仕様では、水と風が混在する場所ではまずいケースもありえます。
例えば亀島3Fで水亀にレベル5すると、アサルトタートルで困る、とか。
これについては、当面妥協。
ご意見などがあれば。
例年、アマツ祭は「精錬祭」で、
今年も精錬関連なのですが。
例年の『過剰精錬祭り』ではなく、
どちらかというとカード対応、というのが正しい感じ。
多くのイベント同様今回の基本的な流れは
- 特定の作業で、このイベント用の専用ポイントを獲得
- その専用ポイントを消費して、サービスを受けられる
・・・というもの。
提供されているサービスは以下:
- 通常の精錬:エル・オリは不要。
- ミラクル精錬:精錬成功率が低い代わりに、失敗しても装備が「精錬ゼロ」になるだけで壊れない。
- 合成精錬:装備に刺されているカードを、他の装備に動かすことができる。
- 例えば『対虫ガード』+『カード無しバルキリー盾』を元に、『対虫バルキリー盾』を作る。
- 昔作った旧装備から、高価なカードだけ再利用、という感じ。
- 合成元の装備は消滅、合成先のカードも消滅。
- カードだけを取り出すことはできない。
- リストア精錬:装備に刺されているカードを消す。
- 『やっちゃった』高級装備を取り戻す、という感じ。
- カードは消滅する。
当初ミラクル精錬にときめいていたんですが。
実際には成功率が非常に低く、+7を作ることさえ現実的ではない感じ。
で、今回の面白い・・・というか興味深い点は、
専用ポイントの獲得方法がほぼ『既存ダンジョン攻略』
になっているということ。
一応今回独特のデイリー3件イベントがあるにはあるのですが、
それから得られるポイントは非常に限定的で。
それよりは各種メモリアルダンジョンをこなすことで得られるほうが多い。
正直友瀬&友人チームだとハードルが高く、苦しい感じ。
現実的にこなせるのは『サラの記憶』『暴虐王の洞窟』くらいなんですよね。
もうちょっと高レベルだと、楽なのかもしれないんですが・・・
ご意見などがあれば。
Glenelg の特徴の1つとして、
『敵ごとへの対処法は、RO画面上で戦闘しながら教える』
というものがあります。
手ごわい敵の優先度を上げ、弱い相手は優先度を下げる。
攻撃スキルの使用率・使用レベルを変更する。
・・・などなど。
これについては友瀬は今でもリーズナブルだと思っていますが。
ボスPL自体が忙しい戦闘においては、うまくやりづらいというのも事実。
また設定項目が多くなり、操作が難しくなっているのも否定できません。
で、今回GlenelgWatchで、ある程度『教育』設定ができるようにしました。
ただし、これはあくまで『補助レベル』とご理解ください。
実際にエディタを開いてみればわかるのですが、おそらく、
『ほとんどの敵に対して学習してなかったんだ』という状態になっているはず。
多数の敵にいちいち事前設定するのは、結構大変だと思います。
いちいち設定するのではなく、まずは普通に戦わせてみてください。
そんなにひどい戦い方はしないと思いますよ?
ご意見などがあれば。
別に機能自体にバグがあるとかいうわけではありません。
問題は、必要な地図情報外部ファイルに関する話。
地図情報は、外部サイトの方が作成していたものです。
http://h-x.2-d.jp/roAI/
上記リンク先をたどればわかるのですが、
サイト自体は残っているのですが、
データの更新はもう6年以上なされていません。
つまり、現状かなりの数のマップについて
地図情報がありません。
そのため、それら多くのマップにおいて
機能が実用できない状況になっています。
どうしようかねぇ。
ご意見などがあれば。
ホムンクルスAIページにあるとおり、今回のリリースでの対応は大きく以下の4つです。
- 範囲攻撃スキルの自動使用対応
- 強化スキル自動使用の複数併用対応
- 操作系:攻撃スキルの一部を他の機能に任意割り当て
- 「全員友達」
以下、それぞれについて簡単にコメントしておきます。
- 範囲攻撃スキルの自動使用対応
- 少し前から記事にもしていた内容。
1つのスキルを指定しておけば、それを使用します。
- 使用条件は、強化スキル同様の『近くにいる敵の脅威度合計』。
- 範囲攻撃での横殴り(うっかり他人の敵を範囲に巻き込んでしまう)は予防済み。
- 制約事項:スキルレベルの変更。
iniファイル/GlenelgWatch で指定したレベルでしか使用しません。
これは当面、現状を仕様とします。
スキルレベルを頻繁に変えなければならない理由があまりないため。
- おそらくは「レベルによって属性が変わるゼノスラッシャー」くらい。
- 制約事項:「危険敵を巻き込まない」判断。
これも当面、現状を仕様とします。専用フラグを準備するのが手間。
ダメージトリガーで動きが変わる敵には注意のこと。
- 未対応事項:「自動使用の一時的禁止操作」
- 強化スキル自動使用の複数併用対応
- 例えばフィーリルの「オーバードスピード&フリットムーブ」というようなかたち。
ホムSでは強化スキルがいくつもあるため、最大3つまでを指定できるようにしました。
- 未対応事項:併用できないスキル指定時の排他。
バリエリの「ゴールデンフェルゼ」vs「アングリフスモドス」のような。
- 操作系:攻撃スキルの一部を他の機能に任意割り当て
- もともと「敵を攻撃するのはALT+右ダブルクリック」という
標準のホム操作がめんどくさくて
「カプリスLv1はALT+右クリック相当」と固定割当していた機能。
- その意味では従来でも「ソースを書き変えて実現してね」
というレベルではサポートしていました。
GlenelgWatchサポートでやっと簡易実現できるようになった、
という感じ。
- 割り当てられる機能については、今後も変更追加していくかも。
- 「全員友達」モード。
- 蜃気楼の塔やモンスターハウスといった『参加者全員味方』環境用。
別の言い方をすると『横殴り判定をあえて実行しない』モード。
- うっかり設定忘れして通常狩場でそのモードというのもまずいので、
状態表示にも警告表示を出すようにしています。
- 内部的には、単純にフラグを1つ登録しているだけです。
画面上の全員を友達に登録、としているわけではありません。
- 0.54ではちとミスって、通常友達の削除処理に悪影響をいれていました。ごめんなさい。
今回の対応で、いちおーある程度ホムS対応終了、かな。
エレノアのコンボとか、セラのレギオンでのタゲリセットとか、
気になるところはいくつかありますが。
さすがに試せる環境がないと怖くて(笑)
ご意見などがあれば。
単純に使うこと自体は、何の問題もないのですが。
その使用条件に悩んでいます。
全般的に、戦場状況監視が必要なのです。
- 数と強さとの兼ね合い。
- ものすごく簡単に言えば、
「1体相手に範囲攻撃する理由はない」。
「雑魚ならたくさんためて、強ければそこそこの数から使いたい」。
じゃあ、どう判断する?
- Glenelg では、強化スキルで「周囲の脅威度の合計」で判断する仕組みを作った。
一応それを使うことはできる。
- 例えば「合計20以上」に条件を設定すれば。
標準的な敵(優先度5)なら4体以上。
雑魚(優先度3以下)なら、7〜20体ためられる計算。
- ただ、この仕組みだと強敵への感度が鈍い。
もう少し調整が必要かも。
- ラウレル(マジシャンDop)のような「巻き込みたくない」敵もいるので、
「これがいたら範囲攻撃しない」というような仕組みもあるべき。
- 仕組み自体は至極簡単。
単純に「これは対象外」という情報さえ持たせれば、範囲内にいる・いないチェックするだけ。
- ただ、これはいわゆる優先度とは相反する部分があるので、
既存設定項目の流用ではダメ。
以上設定を増やすのは、正直嫌な感じ。
- 属性に起因する振る舞い。
- ゼノスラッシャーは「高倍率x無属性」「並倍率x風属性」を切り替えられる。
ダメージ倍率的に、「水属性の敵には風モード」「それ以外には無属性」と使い分けたい。
- 同じ特性を持つイレイサーカッターの場合、対象が単体ということもあり
「敵ごとに使用するレベル(==モード)」を変更指定できる。
だがゼノスラッシャーは範囲攻撃なので、単体モードで判断しづらい。
- ゼノスラッシャー独自で、判断処理を作るか?
イレイサーカッターの設定に基づいて、
範囲内にいる敵ごとの設定を見て、より多いタイプの属性にあわせる。
ただし優先度が高い敵がいれば、そちら側に傾ける。
・・・など。
- ディータにも似たような話あり。
基本的に「なんでも火属性」のディータでは、そもそもスキル使用したくないケースもあるのでは。
例えばトール火山のような「全部火の敵」など。
- まあ、そんな場所にディータで行くか?という前提もあるにはあるけど。
- ディータのケースの場合、判断もいくつかありうるのが悩ましい。
「効きづらいから、がんがん撃って手数で補おう」
「効きづらいから、SP節約のために使わずにいよう」
「一部敵には効かないけど、効くのも混ざっているから使おう」
など。
- 範囲攻撃の横殴り対策が必要。
- ゼノスラッシャーは 9x9セル == 起点から4マスはなれたところまで攻撃する。
そのため「4セル以内で他キャラが戦っていたら、使わない」処理を含める必要あり。
- 手動でとめる仕組みを作るべきか。
- ここまでにいくつか挙げたように、範囲攻撃を「止めるべき」ケースはある。
- 理想論的には、「これは巻き込むから止める」とAIに判断させるべきだが。
一概にそう判断するのが難しいケースもある。
その場合の緊急停止機能は欲しい。
- 従来もこの手の課題はあったが、いずれも「対単体」だったので。
「敵ごとの個別学習」「ALT_Tで強制非戦闘状態」「直接敵指定で対象変更禁止に」という停止手段で対応できた。
だが範囲攻撃を使いたい==乱戦状態では、上記では対応しきれない。
ご意見などがあれば。
最大の変更点は、専用アプリ『GlenelgWatch』のリリースです。
圧縮ファイル内、USER_AI\GlenelgWatch.exe。
.net4.0 のWindowsプログラムです。
ROでは、いわゆるBOT/チートに関わるものとして、
外部プログラムは公式にはNGとされているものです。
友瀬はそれを受けて今まであえて外部プログラムは提供していませんでしたが。
いわゆる『不正』ではないと判断して、今回これをリリースしました。
これに伴い、AI利用に関して以下のようなメリットが発生しています。
- 従来エクスプローラで実現していた「状態表示」を
GlenelgWatch上で確認できます。
- 各種iniファイルの初期化処理を GlenelgWatchでサポートしました。
- 従来の問題として、ai_option系ini ファイルのリリース問題がありました。
ユーザ編集前提のファイルにも関わらず、
リリースする iniファイルもUSER_AI フォルダにおいているため、
バージョンアップのたびにユーザが手動修正必要になっていました。
- 今回から、『リリースされるマスターデータ的ini』は
下位フォルダにおくことにしました。
利用者の方はリリースzipを解凍・USER_AIに全部上書きした後、GlenelgWatchを起動してください。GlenelgWatch起動時にUSER_AI直下のものをマージアップデートするようになっています。
- Glenelgが『難しい』理由の一つが、
『RO画面を9分割した、ALT+SHIFT+右クリック』の学習操作だと思っています。
GlenelgWatchでは『画面位置ごとの簡単なヘルプ』を表示するようにしています。
もちろん、Glenelgの状態に応じて変更される点も。
ともあれ。
Gunghoの規約としては、外部プログラムはNGといわれています。
そのため GlenelgWatchも『アウトといわれればアウト』です。
ご利用に当たっては、そのあたりは覚悟の上でお願いします。
ご意見などがあれば。