ガードを崩す

AI作る上で一番悩んだところ。
どうやったら人間らしい崩れ方ができるか。
動画を見て結構研究してた。

で、できたのがこれ↓
;------------------上下段ガードフラグ
;-------正立ちガード
[state ]
type=varadd
triggerall=var(56)&1
triggerall=random<=20*var(58)||var(58)>4
triggerall=!enemynear,movecontact||var(58)>4
trigger1=enemynear,statetype=a
trigger2=enemynear,stateno=var(50)&&var(50) ;中段判定
trigger3=enemynear,stateno=var(49)&&var(49) ;中段判定
trigger4=enemynear,stateno=var(48)&&var(48) ;中段判定
trigger5=enemynear,stateno=var(47)&&var(47) ;中段判定
var(56)=-1
;-------正屈ガード
[state ]
type=varadd
triggerall=!(var(56)&1)
triggerall=random<=20*var(58)||var(58)>4
triggerall=!enemynear,movecontact||var(58)>4
trigger1=enemynear,statetype!=a
trigger1=enemynear,stateno!=var(50)||!var(50) ;中段判定
trigger1=enemynear,stateno!=var(49)||!var(49) ;中段判定
trigger1=enemynear,stateno!=var(48)||!var(48) ;中段判定
trigger1=enemynear,stateno!=var(47)||!var(47) ;中段判定
var(56)=1

とりあえず基本。中段>下段やすかし下段、低ダなどならこれで崩せる設定。
!enemynear,movecontactは下の誤ガード用に。

;------------------誤立ちガード
[state ]
type=varadd
triggerall=var(56)&1
triggerall=var(58)<=4
trigger1=enemynear,statetype!=a
trigger1=enemynear,movecontact>=5
trigger1=p2bodydist x>=60
trigger1=random<=100-20*var(58)+2*(p2bodydist x-60)
var(56)=-1

距離が近いのにわざわざ地上相手に対して立ちをすることはあまりないと思うので距離によって立ちガードの誤ガード確率変動。
これで小足×n>ブー小足みたいな崩し方で崩せる再現をしてある。
enemynear,movecontact>=5は小足連打では崩れない、いわゆるファジーガードの再現。

;------------------誤屈ガード
[state ]
type=varadd
triggerall=!(var(56)&1)
triggerall=var(58)<=4
trigger1=enemynear,statetype=a
trigger1=enemynear,movecontact
trigger1=enemynear,pos y>=-60
trigger1=random<=100-20*var(58)+2*(60+enemynear,pos y)
var(56)=1

空中版。
基本的に空中だと低空であるほど見えにくいため、enemynear,pos yによって誤ガード率変動。
で、崩れやすいのはサウザーのJB>爆星波みたいな中段>中段の繋ぎなので、
enemynear,movecontactで下段ガードに変えるようにしてある。
enemynear,vel y>=0(下り)を追加したらもっとそれっぽくなるかも。
逆にこれは中段>ブー下段みたいな固めに対して強くなる。

;----------------めくりが見えない
[state ]
type=varset
var(52)=120
triggerall=var(59)=1
triggerall=!var(52)
triggerall=var(56)&4
triggerall=ctrl
trigger1=anim=[120,155]
trigger1=enemynear,p2dist x>=0&&p2dist x>=0
trigger2=random<=200*var(58)
trigger2=enemynear,p2dist x>=0||random<=200*var(58)
trigger3=var(58)>4

敵が裏回ったらガードを解除してもう一回ガード判定を行う。
enemynear,p2dist xとすることで敵の能動的なめくりに対していろいろな反応をさせることができる。
ただ今のところ表落ちめくりに対しての反応が再現できていない。
案はあるのでいろいろ実験してみたいかな。

コメントの投稿

非公開コメント

プロフィール

SAIKEI

Author:SAIKEI
MUGEN製作跡地
現在製作はしておりません。
適当にはまってるゲームの攻略記事書いてます。

リンクフリーです

管理画面

キャラ公開
クリップボード01
・ユダ
本体
更新日:13/03/27
sff,sndファイル
更新日:11/03/03 クリップボード01
・ケンシロウ
本体(AI無し)
更新日:12/06/17
sff,sndファイル
更新日:12/05/21
AIが入ってる旧バージョン本体
更新日:12/02/19 クリップボード01
・サウザー
本体
更新日:10/12/26
sff,sndファイル
更新日:10/11/28

・ラオウAI(Ataru氏製)
AI
更新日:10/07/11
SFF修正ファイル
更新日:10/07/11

yukari_20090921184412.jpg
・影紫(09/08/24更新版)
※凶悪キャラにより注意
S-Yukari

・宇宙意思強化パッチ
パッチ
更新日 10/04/04
カテゴリ
月別アーカイブ
ブログカウンター
現在の閲覧者数:
検索フォーム
最新コメント
最新記事
リンク