ぷっぷく工房

mugenとゲームとイラストをまったりと綴るブログです。

<< 2013-07- | ARCHIVE-SELECT | 2013-09- >>

| PAGE-SELECT | NEXT >>

>> EDIT

AI小話~その5~

こんにちは、管理人のつづらです。

AI制作をする際に大事になってくる要素の一つに、
攻撃の回避・・・というものがあります。

もちろん、攻撃をガンガン仕掛け、敵を圧倒しつつ殲滅・・・、
なんていう戦闘スタイルもありますが、個人的には、
要所要所で的確な回避、防御を選択しながらここぞと
いう所でカウンターを仕掛ける・・・という攻撃スタイルも
結構好きです♪
(もちろん、そのキャラに合った戦闘方法にするというのが
大前提です。)

今回は、そんな攻撃の回避に関するお話。

基本的な回避の記述に必要となってくるのが、
enemy,movetype = Aとinguarddistですが、
さらに大事になってくるのが、相手との距離を表す
p2distと避けを発動する
タイミングです。

ご存知の通り、すべての技には、発動準備・発動中・
発動後のモーションが必ずあり、発動後には
必ず行動不能となっている操作不能の状態、
いわゆる『隙』と呼ばれる状態があります。

反撃は、主にこの攻撃の隙を突いて行う事が多いのですが、
この隙に間に合うかどうかというのが、
とても重要になってきます。

攻撃を上手く回避したとしても、相手が再び行動可能に
なってしまっていたら、今度はこちらが回避の隙を
狙われる・・・という事になりかねません。
(もちろん、飛影みたいに回避の隙がほとんど無い
キャラならそんなこと関係ないですが。笑)

そこで、大事になってくるのが攻撃発動時間を表す
animtime。

この時間をしっかりと把握する事で、
相手の隙にカウンターを合わせるという事が可能に
なってきます♪

具体的には、自分の回避行動終了までのanimtimeを調べて、
そのanimtimeに合わせて回避開始時間を設定してあげる事が
大事になってきます。

例えば、回避行動のanimtimeが25あるキャラだとすると、

enemynear,animtime <= -26

というように相手の行動が終了する前に・・・というように
記述を加える必要があります。
(animtimeが+1されているのがミソ。)

こうする事で、こちらの行動が終了する前に
相手が行動可能になる・・・という状況を
未然に防ぐ事が可能になってきます。

当然、攻撃判定が攻撃終了後も持続するような技には
この記述は無意味になってしまいますが、通常技や
必殺技の隙を突く際には、一つの選択肢としては
とても有効になってきます♪

・・・実は、私もこの表記を理解するまで
大分時間がかかりました。(笑)

今までだと、movetype = Aに合わせて、
回避行動を発動させていたのですが、
それだと弱Pのようなけん制技に合わせて
回避をしてしまい、まんまとその隙を
狙われる・・・という事があったりします。

そこで、大きな隙を持つ技にのみ的確に反応して
回避する、回避の上手なキャラのAIをじっくりと調べ、
どんなタイミングで回避しているのか・・・というのを
突き止めたのです!

そこで発見したのが上記の記述。
上手い回避をするキャラのほとんどに同じような記述が
書き加えられていました。

当時の私では、全くその意味が理解出来て
いなかったのですが、ここ数年研究を繰り返し、
やっとその表記を理解する事が出来ました♪

・・・とにもかくにも、この研究の成果は
次回の一斉更新の時にお披露目したいと
思っていますので、ぜひぜひその絶妙なタイミングを
体感して下さいね~!

mugen00510
web拍手 by FC2

| mugen | 23:55 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT | NEXT >>