ジャンプ通常攻撃

Last-modified: 2017-04-15 (土) 03:13:45

蒼月潮は二段ジャンプできない(その分ジャンプの高度・速度はある)のに加え、ジャンプ中の攻撃も
癖が強いものばかりなので、AIに使わせるのは難しいものもある。相手の頭を飛び越すことが多いため
範囲の狭い弱攻撃は使わず、めくりにも使える強攻撃のみのほうが良いくらいだ

 

なので未使用のvarを設定してタイミングを調整したり、コメントアウトして使わなかったりする

 

<注意>
なお11Pカラーのオリジナルコンボは、この簡易なAI(と言うか筆者の知識)で制御するのは
難しいので、使わないようコメントアウトする。自信のある方は記述してみても良いかも
</注意>


 

ジャンプ判別

追加記述

;通常ジャンプの後か、食らい中なら「0」にリセット
[State -1, ジャンプの種別判定・1]
type = VarSet
trigger1 = stateno = 40 || movetype = H
var(32) = 0

 

;スーパージャンプの後なら「1」をセット
[State -1, ジャンプの種別判定・2]
type = VarSet
trigger1 = stateno = 10003
var(32) = 1


蒼月潮のジャンプ攻撃は持続が短いので、タイミングを測って出す必要がある。よって新たに未使用のvarの
var(32)」を使用することで、ジャンプの種別を判定して、攻撃を出すタイミングを変えつつ使わせる
食らい中でもvarをリセットするのは、吹っ飛ばされて空中受身した直後を想定したもの

 

ジャンプ弱パンチ

編集前

[State -1, ジャンプ弱パンチ]
type = ChangeState

triggerall = (var(0) = 0) || ((var(0)=1) && (EnemyNear,p2BodyDist X = [-10,23]))

triggerall = (command = "x")
trigger1 = (StateType = A) && (Ctrl)
trigger2 = (StateNo = 630) && (MoveContact)
;■■■オリジナルコンボ■■■
trigger3 = (var(35) = 1) && (StateNo = [600,699]) && (MoveContact)
trigger4 = (var(35) = 1) && (StateNo = 750) && (MoveContact)
trigger5 = (var(35) = 1) && (StateNo = 1000) && (StateType = A) && (Time = [14,22])
trigger6 = (var(35) = 1) && (StateNo = [1002,1003]) && (MoveContact)
trigger7 = (var(35) = 1) && (StateNo = 1006) && (MoveContact)
trigger8 = (var(35) = 1) && (StateNo = 1012) && (StateType = A) && (MoveContact)
value = 600

 
編集後

;相手の頭を飛び越しがちな蒼月潮には使いづらい、のでコメントアウトしておく
;[State -1, ジャンプ弱パンチ]
;type = ChangeState

;triggerall = (var(0) = 0) || ((var(0)=1) && (EnemyNear,p2BodyDist X = [-10,23]))

;triggerall = (command = "x")
;trigger1 = (StateType = A) && (Ctrl)
;trigger2 = (StateNo = 630) && (MoveContact)
;■■■オリジナルコンボ■■■
;trigger3 = (var(35) = 1) && (StateNo = [600,699]) && (MoveContact)
;trigger4 = (var(35) = 1) && (StateNo = 750) && (MoveContact)
;trigger5 = (var(35) = 1) && (StateNo = 1000) && (StateType = A) && (Time = [14,22])
;trigger6 = (var(35) = 1) && (StateNo = [1002,1003]) && (MoveContact)
;trigger7 = (var(35) = 1) && (StateNo = 1006) && (MoveContact)
;trigger8 = (var(35) = 1) && (StateNo = 1012) && (StateType = A) && (MoveContact)
;value = 600


斜め下に槍を突き出す、ごく普通のジャンプ弱攻撃。基本的なことは和訳カンフーマンのそれと変わらない
だが弱攻撃ゆえの攻撃範囲の狭さは、ジャンプ力がありすぎ、相手の頭を飛び越しがちな蒼月潮には
当てづらい。なので、あえてコメントアウトし使わないことにする

 

ジャンプ強パンチ

編集前

[State -1, ジャンプ強パンチ]
type = ChangeState

triggerall = (var(0) = 0) || ((var(0)=1) && (EnemyNear,p2BodyDist X = [-10,23]))

triggerall = (command = "y")
trigger1 = (StateType = A) && (Ctrl)
trigger2 = (StateNo = 600 || StateNo = 630) && (MoveContact)
;■■■オリジナルコンボ■■■
trigger3 = (var(35) = 1) && (StateNo = [600,699]) && (MoveContact)
trigger4 = (var(35) = 1) && (StateNo = 750) && (MoveContact)
trigger5 = (var(35) = 1) && (StateNo = 1000) && (StateType = A) && (Time = [14,22])
trigger6 = (var(35) = 1) && (StateNo = [1002,1003]) && (MoveContact)
trigger7 = (var(35) = 1) && (StateNo = 1006) && (MoveContact)
trigger8 = (var(35) = 1) && (StateNo = 1012) && (StateType = A) && (MoveContact)
value = 610

 
編集後

;槍を下から前に振り上げる、そのおかげで空対空にも使える、距離は90まで届く
[State -1, ジャンプ強パンチ]
type = ChangeState
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = p2bodydist X = [-10,90]
trigger1 = (StateType = A) && (Ctrl)
trigger1 = p2statetype = A ||(var(32) = 0 && vel Y > 3)||(var(32) = 1 && vel Y > 6)
trigger1 = p2movetype != A
trigger1 = random <= 400
trigger2 = (StateNo = 600 || StateNo = 630) && (MoveContact)
trigger2 = random <= 500
value = 610


持続は非常に短いものの、横距離はとても広く空中戦の主力になりうる。対地は若干苦手だが使えなくはない
持続が短いので、前述で設定した「var(32)」を使用し、ジャンプの種別を判定、使うタイミングを
変更させている。これで立ち状態のカンフーマンには当たるはず、距離は十分に広いので伸ばしていない

 

ジャンプ弱キック

編集前

[State -1, ジャンプ弱キック]
type = ChangeState

triggerall = (var(0) = 0) || ((var(0)=1) && (EnemyNear,p2BodyDist X = [-10,23]))

triggerall = (command = "a")
trigger1 = (StateType = A) && (Ctrl)
trigger2 = (StateNo = 600) && (MoveContact)
;■■■オリジナルコンボ■■■
trigger3 = (var(35) = 1) && (StateNo = [600,699]) && (MoveContact)
trigger4 = (var(35) = 1) && (StateNo = 750) && (MoveContact)
trigger5 = (var(35) = 1) && (StateNo = 1000) && (StateType = A) && (Time = [14,22])
trigger6 = (var(35) = 1) && (StateNo = [1002,1003]) && (MoveContact)
trigger7 = (var(35) = 1) && (StateNo = 1006) && (MoveContact)
trigger8 = (var(35) = 1) && (StateNo = 1012) && (StateType = A) && (MoveContact)
value = 630

 
編集後

;真下に槍を繰り出す、攻撃範囲は非常に狭い。AIにはとても使いづらいので使わせない
;[State -1, ジャンプ弱キック]
;type = ChangeState

;triggerall = (var(0) = 0) || ((var(0)=1) && (EnemyNear,p2BodyDist X = [-10,23]))

;triggerall = (command = "a")
;trigger1 = (StateType = A) && (Ctrl)
;trigger2 = (StateNo = 600) && (MoveContact)
;■■■オリジナルコンボ■■■
;trigger3 = (var(35) = 1) && (StateNo = [600,699]) && (MoveContact)
;trigger4 = (var(35) = 1) && (StateNo = 750) && (MoveContact)
;trigger5 = (var(35) = 1) && (StateNo = 1000) && (StateType = A) && (Time = [14,22])
;trigger6 = (var(35) = 1) && (StateNo = [1002,1003]) && (MoveContact)
;trigger7 = (var(35) = 1) && (StateNo = 1006) && (MoveContact)
;trigger8 = (var(35) = 1) && (StateNo = 1012) && (StateType = A) && (MoveContact)
;value = 630


真下に槍を繰り出すという体勢ゆえ、AIにはとても当てづらい。何より密着から垂直ジャンプして出しても
当たらないという攻撃範囲の狭さは人操作でないと無理、なのでコメントアウトして使わない

 

ジャンプ強キック

編集前

[State -1, ジャンプ強キック]
type = ChangeState

triggerall = (var(0) = 0) || ((var(0)=1) && (EnemyNear,p2BodyDist X = [-10,23]))

triggerall = (command = "b")
trigger1 = (StateType = A) && (Ctrl)
trigger2 = (StateNo = 600 || StateNo = 630) && (MoveContact)
;■■■オリジナルコンボ■■■
trigger3 = (var(35) = 1) && (StateNo = [600,699]) && (MoveContact)
trigger4 = (var(35) = 1) && (StateNo = 750) && (MoveContact)
trigger5 = (var(35) = 1) && (StateNo = 1000) && (StateType = A) && (Time = [14,22])
trigger6 = (var(35) = 1) && (StateNo = [1002,1003]) && (MoveContact)
trigger7 = (var(35) = 1) && (StateNo = 1006) && (MoveContact)
trigger8 = (var(35) = 1) && (StateNo = 1012) && (StateType = A) && (MoveContact)
value = 640

 
編集後

;槍を回転させて攻撃、めくりに使えそうな攻撃範囲、距離は60まで届く
[State -1, ジャンプ強キック]
type = ChangeState
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = p2bodydist X <= 60
triggerall = p2bodydist Y >= -10
trigger1 = (StateType = A) && (Ctrl)
trigger1 = p2statetype = A ||(var(32) = 0 && vel Y > 0)||(var(32) = 1 && vel Y > 4)
trigger1 = p2movetype != A
trigger1 = random <= 400
trigger2 = (StateNo = 600 || StateNo = 630) && (MoveContact)
trigger2 = random <= 500
value = 640


槍を回転させる、めくりに向いた攻撃。なので相手の頭を飛び越しても出すように「p2bodydist X <= 60」
と記述しておく。めくりが主な目的なのと、攻撃範囲が必要ならジャンプ強パンチがあるので
特に使う距離を伸ばしたりはしていない