しゃがみ通常攻撃

Last-modified: 2015-12-04 (金) 23:38:01

地上でしゃがみ状態で出す通常攻撃、崩しの中心となる

 

和訳カンフーマンは弱・強パンチ+弱・強キックの4ボタン式だが
新・擬人化アマテラスの場合は弱・中・強攻撃の3ボタン式になっている


 

しゃがみ弱攻撃

元記述

;しゃがみ弱パンチ
[State -1, Crouching Light Punch]
type = ChangeState
value = 400
triggerall = command = "x"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl
trigger2 = stateno = 400
trigger2 = movecontact

 
記入側

;距離は35まで届く、普通のしゃがみ弱攻撃
[State -3, しゃがみ弱攻撃]
type = ChangeState
value = 400
triggerall = var(59) >= 1
triggerall = random <= (var(59) * 100)
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = p2bodydist X = [-10,35]
trigger1 = statetype != A
trigger1 = ctrl
trigger1 = p2statetype = S
trigger1 = p2movetype != A
trigger1 = random <= 300
trigger2 = stateno = 400
trigger2 = movecontact
trigger2 = random <= 500


基本は和訳カンフーマンのしゃがみ通常攻撃と変わらない、切りが良いので距離は丸めていない

 

しゃがみ中攻撃・通常攻撃&ダウン追い打ち

元記述

;しゃがみ強キック
[State -1, Crouching Strong Kick]
type = ChangeState
value = 440
triggerall = command = "b"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl
trigger2 = stateno = 400
trigger2 = movecontact

 
記入側

;距離は62まで届く、ダウンを奪えるしダウン追い打ちも出来る
[State -3, しゃがみ中攻撃・通常攻撃]
type = ChangeState
value = 440
triggerall = var(59) >= 1
triggerall = random <= (var(59) * 100)
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = p2bodydist X = [-10,60]
trigger1 = statetype != A
trigger1 = ctrl
trigger1 = p2statetype = S
trigger1 = p2movetype != A
trigger1 = random <= 300
trigger2 = stateno = 400
trigger2 = movecontact
trigger2 = random <= 500

 

;距離は62まで届く、ダウンを奪えるしダウン追い打ちも出来る
[State -3, しゃがみ中攻撃・ダウン追い打ち]
type = ChangeState
value = 440
triggerall = var(59) >= 1
triggerall = random <= (var(59) * 100)
triggerall = roundstate = 2
triggerall = p2bodydist X = [-10,62]
trigger1 = statetype != A
trigger1 = ctrl
trigger1 = p2statetype = L
trigger1 = p2movetype = H
trigger1 = life > lifemax / 2 || var(13) > 0


ダウンを奪え、ダウン追い打ちも出来る足払い。通常攻撃用とダウン追い打ち用で分けて記述する
新・擬人化アマテラスの場合は、ガードされてもキャンセルジャンプで逃げられるので、通常攻撃用は距離を
60まで丸めつつ普通に振らせていく。ダウン追い打ち用は、和訳カンフーマンのしゃがみ強キックを参考に
ダウン中は横になるため、和訳カンフーマンほか当たり判定が広がる相手が多いので、距離を丸めず使う

 

【追記】
和訳カンフーマンの時と違い、何か他の行動に邪魔されているのか、ダウン追い打ちを全く行わないので
和訳KFMのバクステの逆である「life > lifemax / 2」を加えて、使用する優先度をバックステップ以上にした
また反撃を受ける危険の少ない「霧隠」中は、現在のライフに関わらずダウン追い打ちを行うように

 

しゃがみ強攻撃(対空)&目押し(少し反則)

元記述

;しゃがみ弱キック
[State -1, Crouching Light Kick]
type = ChangeState
value = 430
triggerall = command = "a"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl

 
記入側

;距離は66まで届き、高さは195まで届く、出はかなり遅い、しゃがみ中攻撃から目押しで繋がる
[State -3, しゃがみ強攻撃(対空)]
type = ChangeState
value = 430
triggerall = var(59) >= 1
triggerall = random <= (var(59) * 100)
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = p2bodydist X = [-10,66]
triggerall = p2bodydist Y >= -195
triggerall = statetype != A
triggerall = ctrl
triggerall = p2statetype = A
triggerall = p2movetype = H || var(13) > 0 || p2bodydist Y < -120
triggerall = p2stateno != [1170,1179]
triggerall = p2stateno != [1570,1579]
triggerall = random <= 400
trigger1 = p2bodydist X <= 40 || p2bodydist Y >= -140
trigger2 = p2bodydist X <= 60 && p2bodydist Y >= -170

 

;距離は66まで届き、高さは195まで届く、出はかなり遅い、しゃがみ中攻撃から目押しで繋がる
[State -3, しゃがみ強攻撃・目押し(少し反則)]
type = ChangeState
value = 430
triggerall = var(59) >= 1
triggerall = random <= (var(59) * 100)
triggerall = roundstate = 2
triggerall = p2bodydist X = [-10,70]
trigger1 = stateno = 440
trigger1 = movehit
trigger1 = AnimTime = 0
trigger2 = statetype != A
trigger2 = ctrl
trigger2 = prevstateno = 440
trigger2 = p2movetype = H
trigger2 = p2stateno = [5000,5999]


威力もそこそこ高く、かなりの高度まで届くが、発生があまりに遅いので対空技として使えるものではない
地上の相手にも(中段でもないし)危険なので使わない。よって『霧隠』発動中や、相手が食らい中の時ほか
相手が『立ち強攻撃』でも届かない高度(向こうの攻撃もこちらにまず届かない)にいる時など、安全な時に
多少振っていく感じ。ちなみに攻撃範囲がギザギザなので、確実に当てるためこういう形になっている

 

他の技からキャンセルでは繋がらないが、しゃがみ中攻撃から(ヒット=ダウン経由で)目押しが繋がるので
目押し用の記述にダウン中に攻撃しなくなる「p2statetype != L」は入れていない。あとしゃがみ中攻撃による
ダウンの前に一瞬宙に浮くので、「p2statetype != A」も入れていない。小さいことだが結構重要
ついでに、しゃがみ中攻撃がヒットしたなら、高度も問題ないはずなので指定してしない

 

そしてここで少し反則になるけれど、小ネタとして『ほぼ確実に繋がる目押し』の記述を紹介してみようかと
まず見ての通り「stateno = 440」「movehit」と、本来繋がらないはずの、しゃがみ中攻撃とチェーンさせる
その次が本題、タイミングを「AnimTime = 0」と指定している。この一文が何処から来たかというと

 

[State 440, 4]
type = ChangeState
trigger1 = AnimTime = 0
value = 11
ctrl = 1

 

「[Statedef 440](しゃがみ中攻撃のステート)」の末尾にあるこの記述、これは「AnimTime = 0」になったら
「stateno = 11(コモンステートのしゃがみ状態)」に移行し、コマンド操作可能状態に戻すという記述である
つまり何をやってるかというと、コマンド操作可能に戻る条件をコンボ条件に使うことで、「ctrl = 1」に
戻る瞬間に、繋げたい目押しのステートに飛ばせるので、ほぼ確実に目押しを成功できるということ

 

他の目押しさせたい技も同様に、その技が終了する条件を確認し、その条件をコンボ条件に加えて
コンボさせることで、あたかも『正確に目押ししているかのような挙動』をさせる事が可能ということ

 

ただしこれは『少し反則』と書いている通りぶっちゃけ反則で、チェーンしないはずの技同士をコンボさせて
いる事に変わりないのは確か。目押しは一瞬だけとはいえ「ctrl = 1(コマンド操作可能)」に戻って繋ぐもの
だがその1フレーム(60分の1秒)とはいえ、そこを無視する性能を改変しているのも確かなのだ

 

多くの場合は性能に大差は出ないし、強力なAIを作る有効な手段なのだが、使うのは自己責任ということで
(立ち攻撃と、しゃがみ攻撃が入り交じっていて、繋ぎにくい目押しの時ならば、仕方ないかもしれない)
ちなみに新・擬人化アマテラスは割と性能改変なんかもOKなようなので、使わせてもらっています

 

trigger2は通常の目押し用の記述、いかに反則とはいえ判定されるタイミングは一瞬一回きりなので
AIレベルを下げると目押しの成功率は著しく下がってしまう。なので通常の目押しも記述しておくことで
AIレベルを下げた時の目押し成功率の下降が緩やかになり、多少はAIレベルを上下させやすくなると思う

 

【追記】
相手がダウン中は体が横になり当たり判定が広がるので、目押しの距離は70まで伸ばしてみている