追加仕様1:エレノア、スタイルチェンジの半自動化。†
表記にいちおー対応しました。
『半自動化』というのは、多少ユーザが意識して使わないとならないためです。
基本的な動作は、以下の通り:
- エレノアには『打撃スタイル』と『つかみスタイル』がある。
- AIはロードされたとき、エレノアが『打撃スタイル』であると仮定して動作する。
- ユーザがコンボ入力を行うと、AIはエレノアの状態と比較して必要に応じたスタイルチェンジを自動的に行う。
- 例えば『打撃スタイル』時につかみ2段コンボを使用しようとすると、
スタイルチェンジ→ティンダーブレイカー→CQC とコンボをつなげる。
- 周囲に敵がいる状態ならば、上記スタイルは『また別のスタイルでのスキルが要求される』まで維持される。
- 例えば上記CQCまで実施したら、つかみ状態で戦闘を続ける。
その状態で、ユーザが打撃コンボを入力すると、打撃スタイルに戻るスタイルチェンジを自動的に行う。
- 周囲に敵がいない戦闘終了状態になると、AIは自動的に『打撃スタイル』に戻るよう、必要に応じてスタイルチェンジを行う。
ここで重要なのは、上記2つ目の仮定です。
これを逸脱するような状態になってしまったら、ユーザが自分の手でスタイルチェンジを行う必要があります。
とはいえ、これは『つかみスタイルになったところでAIをリロード』しなければ発生しません。
ですから、つかみスタイルの状態で『テレポート』や『ログアウト・ログイン』をしないとか、
同じくつかみスタイルの状態でホムが倒れてしまったとか、そういう状態にならないかぎりは、何もしなくてよいはずです。
追加仕様2:自動攻撃スキルの発生率微調整†
GlenelgWatchから、上記を調整できるようにしました。
これはまあ、Watchを見てもらえばわかるかな。
ご意見などがあれば。
GlenelgWatchを使っている方はお気づきかと思いますが。
Watch のホム設定画面はタブコントロールでいくつかにグルーピングされています。
で、そのうち「攻撃スキル」や「スキル割当」のタブ、切り替えがすごく重いです。
これ、ComboBoxが重いみたいです:
上記の画面は、Comboboxが多いですよね。
Google先生に聞いても、やっぱりVBでの基本的な問題らしい。
というわけで、どうしようか迷ってます。
動的生成すると多少はマシらしいんで、それを試そうと思うのと。
あと、思い切ってラベル使って、A+S+R設定でやっているようなD&D方式にしようかと。
ただまあ、それなりに面倒なので、迷うわけです。
そう頻繁に設定変更する部分でもないですし。
どうしよう。
ご意見などがあれば。
オートスキルの一時的スイッチ†
シュタルホーンは、そのノックバック特性から『ある程度条件を絞って使いたい』
スキルじゃないかと思います。
例えば、『壁に押し付けるような位置からのみ』とか。
そこで『明示的なユーザ指定で、その敵に対してオートスキルを使う・使わない切替』
の仕組みがあるといいのかな、と。
V0.62 では、オートスキル用の攻撃スキルにメイン・サブの2系統を登録できるように機能拡張しました。
それを考慮に入れて、
『普段はメインを使用』『特定操作した個体にはサブを使用』するようにすればいいかな。
こうすれば、例えば鳥→馬のホムならば『普段はムーンライト』『押し込むときはシュタルホーン』
とかできそう。
専用のスイッチを使う手もあるし、『サブスキルを手動入力したら』なんてのもあるか。
相手の位置監視しての自動判断†
上記は手動判断ですが、敵のノックバック距離を観測すればある程度は自動判断もできるはず。
シュタルホーン使用の前後で敵が動いていなければ、シュタルホーンを連射してよく。
そうでないならば、次の使用を控える、なんてことはできる。
ただこの場合、最初にシュタルホーンを使わないとわからない。
シュタルホーン連射してどんどん追いかけていく・・・というのを止めるためのアイディアだけど、
やや使いにくい気はする。
『突っ込まない』モード†
シュタルホーン使用での問題は『ノックバックした敵を追いかけてどんどん前進』という点。
で、シュタインワンド==セーフティウォール向けに『そこから動かない』対応が必要なので、
この『動かない』仕様をシュタルホーンでも、これをすればいいんじゃないだろうか。
ちなみにGlenelgには、射撃戦闘モードというのがある:指定した敵には隣接しないように逃げるけど、それ以外では一切移動しないモード。
これをちょっと拡張すればできそうではある。
問題は、『いつこのモードを終了する』のかが判断しづらいところか。
シュタインワンドならば、SWの持続時間で止めればよさそう。
シュタルホーンだと・・・どうすればいいんだろう。
ご意見などがあれば。
シュタルホーンの特徴を列挙すると、以下のようになります。
- スタン効果がある。
- 射程が長い。
- ノックバック効果がある
この『ノックバック&スタン』という特徴、無条件に連打するには向かないですが、『頭良く使えば強い』スキルだと思います。
『壁側に押し付けて連打』とか『囲まれたとき数体をトバして時間稼ぎ』とか。
ということは、ですね。
やっぱりホムAIだと、ちょっとつらい。
少なくとも現状のGlenelgでは、変な設定をすると大暴れします。
『1体を狙って打つ』→『離れた相手に突撃、さらにノックバック』→『索敵リミット外に出してしまって戻ってくる』・・・というような動きになりまして。
ものすごくバカっぽい、猪武者的な感じ(笑)
とはいえ、単にバカっぽいと笑っているわけにもいきません。
なにしろこれは通常の狩りに影響します。PTでも、ソロでも。
少なくとも、強敵が多いマップで慎重に位置取りする、という当たり前の戦術が使えなくなります。
さらに言えば、将来のシュタインワンド==セーフティウォールとの相性もよくない。
というわけで、ちょっと考察してみる。
以下、散文的に。
- ノックバックさせた相手を、どう扱うのがよいのか。
- 基本的には『追尾せず、戻ってくるのを待つ』ようにしたい。
- 少なくとも、複数のアクティブに囲まれているときにはこれは十分有効。
ホムには囲まれ補正はないが、当面の数を減らすことには意味があるし、ジェネ本体にはもっといい。
- 逆に言うと、相手が1体しかいないときが悩みどころ。
無条件に追いかけてしまうと、前述の突出問題になる。
- Glenelgの場合、優先度の問題もある。
優先度の高い敵に対して使用すると、『優先度の高い敵が遠くに』『低い敵が近くに』という状態になる。
この場合は『強敵が遠くにいる間に手近な敵を倒す』のが理想と考えるが、現Glenelg ではそうはならない。
- 相手がスタンしてしまうのも問題。特に非アクティブの相手だと、スタン回復すると『非アクティブ』になってしまうので、戻ってこない。
- とりあえずは、ノックバックした相手の優先度を一時的に下げるというのが、1つの選択肢だろう。
囲まれている状態であれば、下がった相手は後回しになる。
- ただしこの場合『一時的に』というのが面倒くさい。
ホムは『敵がスタンしている』ということがわからない。
また、スタンが発生するまで多少のラグがあるため、モーションを拾っても確認できない。
- 単体相手や非アクティブについては、妥協範囲とするか。
- そもそも、敵や状況によって使い分ける必要があるのでは。
- 例えば『ノックバックやスタンをしないボス系』には、普通の攻撃スキルとして使ってよい。
- うまく『壁を背負わせた』状態になっていれば、普通の相手でも普通に使っていい。
遠くにさえいかなければ、なんの問題もない。
- 敵の座標をチェックして、ノックバックしていなければ『引き続きシュタルホーン使用』とすればいい。
- 同時に、『シュタルホーンを使えない』ときに何を使うか、選択する仕組みがいる。
ご意見などがあれば。
- 今回の大物は、『初撃専用スキル』です。
従来のオートスキルでは使うスキルは常に1種類でしたが、今回からは望むならば以下のように2種類を指定できます。
- 初撃のみ使用するスキル。これが従来にない項目です。
- 通常時に使用するスキル。これは既存。
- これの背景は、例えば『スキルが怖いセシル』に対して初撃サイレントブリーズで沈黙→以降普通にイレイサーカッター、というような運用を行うためのものです。
- これのバリエーションとして、エレノアのコンボも初撃用に選べるようにしました。
エレノアはSP面で苦しい面が多いと考え、常用にはいれていません。
- 上記の『初撃専用スキルを使うかどうか』は、従来の学習操作によって敵ごとに指定できます。
- ここで前回追加した『A+S+R設定』を使用する想定です。
各自使用していないメニュー行動を『初撃切り替え』に置き換えて使うようにする、と。
とりあえず、これで冬休みのバージョンアップは一段落。
次のバージョンアップは・・・そうですね、友瀬のエレノアがコンボ3段目を覚えて、それが動きだしてから、かな。
バグとかそういうのが心配なので。
ご意見などがあれば。
友瀬はMHにジェネで参加しているので、動作インターバルを2くらいに設定しています。
いろいろ面倒くさいので友瀬はこの設定、普段もこの値にしていました。
この設定だとAIは1回動作すると次の2AIサイクルは何もせずに終了します。
1AIサイクルは大体150msec弱なので、ホムは実質的に3AIサイクル==約450msec前後に1回しか
移動や攻撃の指示をうけないことになります。
当たり前といえば当たり前なのですが・・・
この状態だと、ホムは最速でも『450msecに1回』、つまり毎秒2回程度しか攻撃しないわけです。
少々損なのには違いないのですが、致命的に遅いわけでもないので放置しました。
で、エレノアのコンボテストをしていたところで、まずいことに気づきまして。
『想定よりもコンボつなぎが遅いなぁ』『時々コンボ繋がらないなぁ』と思っていたら、これが悪さしていました。
そりゃそうだよね、コンボ接続のための入力待ちに600msecくらいを設定しているので、
上記の『450msec周期』だと900msecでしか次のコンボ出さないですし。
加えて《約》450msec なので状況にによっては遅延するし。
そこで、ディレイを外したら、ですね。
エレノア、すげー強えー(笑)
攻撃回数が一気に増えて、通常打撃&オートスキルがすごい勢いに。
というわけで、教訓。
必要ないときは、AI動作インターバルはゼロにしておきましょう(笑)
ご意見などがあれば。