堕落街道まっしぐら。

現在のゲームプレイ状況: アリスギア = ウマ娘 > DMMブラゲ > Crossout >> それ以外

MUGEN/カズヤ君にAIパッチ作る 2

イメージ 1

敵を知り己を知ればうんたらかんたら。


今に始めた事ではないですが、とある時期を境にして自作のAIには
「相手の攻撃動作のデータを収集する機能」が備わっておりまして、
ガードした攻撃の情報を分析して今後の立ち回りに活用するっていうものがあります。

しかし使用する変数の量が最大40+1個に及ぶため、
クリップボードを活用してもすべて把握するのは困難故に大雑把な出来栄えになってました。


しかし今回、カズヤ君にダメージ表示用の数字画像を搭載したことをきっかけに、
一度細かい部分までチェックして完成度を高めようではないかプロジェクトが立ちまして、
今まで確認できなかった保管情報を視覚化したのがこちらですババン!


こちら側が行動可能な状態(反撃できる状態)からガードを行った相手の打撃が対象で、左から
 相手の動作ステートNo
 ステート中、最初の攻撃が接触した時間(発生速度)
 ステート中、最後の攻撃が接触してからモーションを終えるまでの時間(硬直時間)
 攻撃が接触した時の相手との距離(攻撃のリーチ)
の4つを記憶情報として最大10種まで保管します。一度記憶した攻撃であっても、
相手が加速状態になる等して発生速度が速くなった場合は速くなった発生速度の物に情報更新しますし、
同様に全体フレーム(アニメーションの実行時間)が短くなっていたら硬直時間もそれを基準に修正、
相手がより遠くから攻撃を当ててきた場合は遠い方の距離を参照してリーチ情報を更新します。


これを活用することにより、
相手が「確実に当たる距離から発生何Fの攻撃を実行した」のを確認してから反撃技を振ったり、
「発生何フレームの攻撃だと識別出来ている」のでそれより発生の早い攻撃を出して
相手の技の出掛かりを潰したりできるようになります(相手が無敵状態だったりした場合は除きますが)。
P2MoveTypeやHitDefAttrだけを参照する超反応はもう古いZE!手間がかからなくて楽だけど。


ちなみにこれ、使用している変数枠はほぼヘルパー側の変数なので、
キャラ本体の変数枠は最低2つ(内1つはAIフラグ)、
やろうと思えばリダイレクトトリガーを変えることによりAIフラグ用の変数1つ用意するだけで
どのキャラにも実装可能だったりしますバババン!


難点はヘルパー側の変数を活用しているので、ラウンドを跨ぐと保管情報が初期化されてしまうこと。
キャラ側の変数に一時保管すれば持ち越しもできそうですが、
使用している変数の枠数は最大40なので結構な量になるんですよねぇ。