特殊行動

Last-modified: 2017-04-12 (水) 03:29:21

攻撃以外のその他の行動を、全部ひとまとめにした項目。基本的には和訳カンフーマンの記述が
そのまま流用できるものが多いので、あまり苦労することはないだろうと思う

 

それ以外の部分も新・擬人化アマテラスの記述が参考になるはず


 

投げ

編集前

[State -1, 投げ]
type = ChangeState
triggerall = (command = "recovery")
triggerall = (StateNo != 100)
triggerall = (StateNo != 101)
triggerall = (StateNo != 106)
;地上投げ
trigger1 = (command = "holdfwd") || (command = "holdback")
trigger1 = (StateType != A)
trigger1 = (Ctrl)
:trigger1 = (P2BodyDist X < 8)
trigger1 = (P2StateType != A)
trigger1 = (P2MoveType != H)
;空中投げ
trigger2 = (command = "holdfwd") || (command = "holdback")
trigger2 = (StateType = A)
trigger2 = (Ctrl)
:trigger2 = (P2BodyDist X < 14)
trigger2 = (P2Dist Y = [-60,30])
trigger2 = (P2StateType = A)
trigger2 = (P2MoveType != H)
value = 800

 
編集後

;地上でも空中でも使える投げ、距離はコメントアウトされてるので実測して調べる
[State -1, 投げ]
type = ChangeState
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = (StateNo != 100)
triggerall = (StateNo != 101)
triggerall = (StateNo != 106)
triggerall = random <= 300 ||(p2movetype = A && random <= 500)
triggerall = p2bodydist X >= -10
;地上投げ
trigger1 = (StateType != A)
trigger1 = (Ctrl)
trigger1 = (P2BodyDist X < 28)
trigger1 = (P2StateType != A)
trigger1 = (P2MoveType != H)
;空中投げ
trigger2 = (StateType = A)
trigger2 = (Ctrl)
trigger2 = (P2BodyDist X < 40)
trigger2 = (P2Dist Y = [-60,30])
trigger2 = (P2StateType = A)
trigger2 = (P2MoveType != H)
value = 800


投げの距離はコメントアウト(?)されているので、投げられる距離は実測して調べる
それ以外は和訳カンフーマンの「カンフースルー」とほぼ同じなのでそのように

 

ガードキャンセル

編集前

[State -1, ガードキャンセル]
type = ChangeState
triggerall = (var(0) = 0)
triggerall = (RoundState = 2) && (Alive)
triggerall = (command = "counter_k") || (command = "counter_p")
trigger1 = (Power > 999)
trigger1 = (StateType != A)
trigger1 = (StateNo = [150,153])
trigger1 = !(HitShakeOver)
trigger1 = (InGuardDist)
value = 703

 
編集後

;1ゲージ消費してのガードキャンセル、高さと距離はそれぞれ60程度まで
[State -1, ガードキャンセル]
type = ChangeState
triggerall = (RoundState = 2) && (Alive)
triggerall = var(48) >= 1
triggerall = random <= var(48) * 70
triggerall = power >= 2000 || PalNo >= 9
triggerall = (p2stateno = [200,699])||(p2movetype = A && PalNo >= 9)
triggerall = p2bodydist X <= 80
triggerall = p2bodydist Y >= -60
trigger1 = (Power > 999)
trigger1 = (StateType != A)
trigger1 = (StateNo = [150,153])
trigger1 = !(HitShakeOver)
trigger1 = (InGuardDist)
value = 703


ガードキャンセル、範囲はそう広くないが、相手の判定も伸びていることを期待し距離は80まで伸ばしている
パンチボタンなら槍を振り回し背後にも攻撃判定があるが、キックボタンなら足払いで反撃し前方向にしか
攻撃判定が無い。なので高性能なパンチ一択、よほどのちびキャラでもない限り、しゃがんでいても当たるはず
ガードキャンセルの区別は、それ用のcnsファイルで記述するのでそのように

 

また相手が必殺技中や超必殺技中だと、無敵で避けられる可能性があるので、使うのは主に通常攻撃を
狙ってだが、高カラーであれば惜しみなくそれ以外の攻撃技にも使っていくようにする

 

オリジナルコンボ発動

編集前

[State -1, オリジナルコンボ発動]
type = ChangeState
triggerall = (var(0) = 0)
triggerall = (var(34) = 0) && (var(35) = 0) && (fvar(12) = 0)
triggerall = (NumEnemy)
triggerall = (RoundState = 2) && (Alive)
triggerall = (Power > 1499)
triggerall = (palNo = 11)
trigger1 = (command = "b") && (command = "y") && (Ctrl)
value = 704

 
編集後

;このAIではオリジナルコンボは扱えないのでコメントアウト
;[State -1, オリジナルコンボ発動]
;type = ChangeState
;triggerall = (var(0) = 0)
;triggerall = (var(34) = 0) && (var(35) = 0) && (fvar(12) = 0)
;triggerall = (NumEnemy)
;triggerall = (RoundState = 2) && (Alive)
;triggerall = (Power > 1499)
;triggerall = (palNo = 11)
;trigger1 = (command = "b") && (command = "y") && (Ctrl)
;value = 704


このAIでは、オリジナルコンボは扱えないので、コメントアウトしておく

 

回り込み

編集前

[State -1, 回り込み]
type = ChangeState
triggerall = (RoundState = 2) && (Alive)
trigger1 = (command = "a") && (command = "x") && (StateType != A) && (Ctrl)
value = 702

 
編集後

;通常でも投げ以外なら無敵、一回で100ほど前進し、カンフーマン相手なら49以下で裏回れる
[State -1, 回り込み]
type = ChangeState
triggerall = (RoundState = 2) && (Alive)
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = (StateType != A) && (Ctrl)
triggerall = EnemyNear,Facing != Facing
trigger1 = InGuardDist
trigger1 = p2statetype = A || p2bodydist X > 80
trigger1 = random <= 500
trigger2 = p2movetype = A && var(41) >= 1
trigger2 = p2bodydist X <= 40 && FrontEdgeBodyDist > 160
trigger2 = random <= 300
value = 702


基本的には新・擬人化アマテラスの「かわせ身」のような感じで使うが、通常だと投げ無敵はないので
裏周りはさせない。強化スイッチありならば裏周りさせるが、アマ公ほどの移動距離はないので
かなり至近距離、かつ裏回った先に余裕があり、端にならないときだけ使うようにしておく
カンフーマンなら距離49で裏回れるが、カンフーマンは体が細いので念のため距離40まで丸める

 

クイックスタンディング

編集前

[State -1, クイックスタンディング]
type = ChangeState
triggerall = (command = "blocking-002") && (RoundState = 2) && (Alive)
trigger1 = (StateNo = 5050) && (Pos Y > 5)
trigger2 = (PrevStateNo = 5071) && (StateNo = 5110) && (Time = [0,3])
trigger3 = (StateNo = 5100)
value = 10001

 
編集後

;移動起き上がりに当てはまらない時、壁端だが敵が離れているときは、すぐ起き上がる
[State -1, クイックスタンディング]
type = ChangeState
triggerall = (RoundState = 2) && (Alive)
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = p2bodydist X > 80 && BackEdgeBodydist <= 20
triggerall = random <= 700
trigger1 = (StateNo = 5050) && (Pos Y > 5)
trigger2 = (PrevStateNo = 5071) && (StateNo = 5110) && (Time = [0,3])
trigger3 = (StateNo = 5100)
value = 10001


後述する移動起き上がりに当てはまらない、壁端に追い込まれているが、敵はある程度離れている時
要するに必殺技なりで吹っ飛ばされた際は、すぐに起き上がって起き攻めされるのを避ける

 

移動起き上がり

編集前

[State -1, 移動起き上がり]
type = ChangeState
triggerall = (Alive)
triggerall = (RoundState = 2) && (StateNo = 5110) && (MoveType = H) && (Time > 1)
trigger1 = (command = "holdfwd") || (command = "holdback")
value = 10002

 
編集後

;移動起き上がり、後方に余裕があればとにかく下がり、端攻めされそうなときは脱出に使う
[State -1, 移動起き上がり]
type = ChangeState
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = (Alive)
triggerall = (RoundState = 2) && (StateNo = 5110) && (MoveType = H) && (Time > 1)
triggerall = random <= 700
trigger1 = BackEdgeBodydist > 20
trigger2 = p2bodydist X <= 80 && BackEdgeBodydist <= 20
value = 10002


移動起き上がり、後方に余裕があればとにかく下がる。後方に余裕がなく、相手が近距離にいる
起き攻めされそうなときは、逆に前に出て脱出を図る。成功するかは時の運になるけれど

 

パワー溜め

編集前

;パワー溜め
[State -1]
type = ChangeState
triggerall = (var(0) = 0)
triggerall = statetype != A
triggerall = ctrl
triggerall = (power < 3000)
triggerall = (var(35) = 0)
triggerall = roundstate = 2
trigger1 = (command = "chargec" && command = "chargez")
value = 850

 
編集後

;パワー溜め
[State -1, 普通のパワー溜め]
type = ChangeState
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = statetype != A
triggerall = ctrl
triggerall = (power < powermax)
triggerall = (var(35) = 0)
triggerall = roundstate = 2
triggerall = !InGuardDist && enemynear,NumProj = 0
triggerall = random <= 100
trigger1 = p2movetype != A && p2bodydist X > 160
trigger2 = p2statetype = L && power < 2000 && p2bodydist X > 60
value = 850


ごく普通のパワー溜め、和訳カンフーマンのそれとほぼ同じ

 

走る

編集前

[State -1, 走る]
type = ChangeState
triggerall = (StateNo != 100)
trigger1 = (command = "FF") && (StateType = S) && (Ctrl)
value = 100

 
編集後

;ランタイプとステップの間の子のようなダッシュ、速度はなかなかある
[State -1, 走る]
type = ChangeState
triggerall = roundstate = 2
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = (StateNo != 100)
triggerall = (StateType != A) && (Ctrl)
triggerall = P2BodyDist X >= 80
triggerall = enemynear,NumProj = 0
trigger1 = p2movetype = I && random <= 50
trigger2 = p2movetype = H
value = 100


一定距離を走ったら勝手に終了するのはステップに近いが、ランタイプのように途中での中断もできる
間の子のようなダッシュ。基本的にはランタイプ(和訳KFMと同様)に使っていくことにする

 

バックステップ

編集前

[State -1, バックステップ]
type = ChangeState
triggerall = (StateNo != 100)
trigger1 = (command = "BB") && (StateType = S) && (Ctrl)
value = 105

 
編集後

;ごく普通のバックステップ、記述も和訳カンフーマンの流用で十分
[State -1, バックステップ]
type = ChangeState
triggerall = roundstate = 2
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = (StateNo != 100)
triggerall = (StateType != A) && (Ctrl)
triggerall = P2BodyDist X < 60 && BackEdgeBodyDist > 20
trigger1 = p2statetype = L && life <= lifemax / 2
trigger2 = p2statetype != A && EnemyNear,HitDefAttr = SC, NT,ST,HT
trigger2 = random <= 500
value = 105


ごく普通のバックステップなので、和訳カンフーマンの記述を流用すれば十分使える

 

空中ダッシュ

編集前

[State -1, 空中ダッシュ]
type = ChangeState
triggerall = (Pos Y < -40)
triggerall = (StateNo != 101)
triggerall = (StateNo != 106)
triggerall = !(PrevStateNo = 45 && StateNo = 50)
trigger1 = (command = "FF") && (StateType = A) && (Ctrl)
value = 101

 
編集後

;低空の空中ダッシュによる飛び込みを狙っていく
[State -1, 空中ダッシュ]
type = ChangeState
triggerall = roundstate = 2
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = (Pos Y < -40)
triggerall = (StateNo != 101)
triggerall = (StateNo != 106)
triggerall = !(PrevStateNo = 45 && StateNo = 50)
triggerall = (StateType = A) && (Ctrl)
trigger1 = vel X >= 0 && vel Y < 1
trigger1 = p2movetype = I && p2bodydist X >= 80 && enemynear,NumProj = 0
trigger1 = var(32) = 0 && random <= 200
value = 101


空中でのダッシュ、地上でのダッシュを参考に記述する。ジャンプの上昇中かつ、後方に跳んでいないときに
相手との距離がまだあるならダッシュさせる。ジャンプの時点で相手の情報をトリガーとして跳ぶ方向を
決定しているので、その延長として低空ダッシュさせるのが目的
またスーパージャンプだと、それだけで飛距離が十分すぎるため、通常ジャンプ時しか使わない

 

空中バックダッシュ

編集前

[State -1, 空中バックダッシュ]
type = ChangeState
triggerall = (Pos Y < -40)
triggerall = (StateNo != 101)
triggerall = (StateNo != 106)
triggerall = !(PrevStateNo = 45 && StateNo = 50)
trigger1 = (command = "BB") && (StateType = A) && (Ctrl)
value = 106

 
編集後

;相手がダウン中、後方に大きくスペースがあるようなら距離を取る
[State -1, 空中バックダッシュ]
type = ChangeState
triggerall = roundstate = 2
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = (Pos Y < -40)
triggerall = (StateNo != 101)
triggerall = (StateNo != 106)
triggerall = !(PrevStateNo = 45 && StateNo = 50)
triggerall = (StateType = A) && (Ctrl)
trigger1 = vel X <= 0 && vel Y < 1
trigger1 = p2statetype = L && BackEdgeBodyDist >= 160 && enemynear,NumProj = 0
trigger1 = var(32) = 0 && random <= 200
value = 106


前方への空中ダッシュを参考に記述、相手がダウン中に後方に大きくスペースがあるようならば
距離を取るのに使う。とはいえ蒼月潮の後方ジャンプ力はかなり大きく、あまり使う必要は無いのだが

 

スーパージャンプ

編集前

[State -1, スーパージャンプ]
type = ChangeState
trigger1 = (command = "super_jump") && (StateType != A) && (Ctrl)
value = 10003

 
編集後

;高さ・距離ともに大きなジャンプ、飛び道具を回避しての飛び込みに使う
[State -1, スーパージャンプ]
type = ChangeState
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = var(50) >= 1
triggerall = random <= var(50) * 100
triggerall = (StateType != A) && (Ctrl)
trigger1 = p2statetype != A && p2bodydist X >= 200
trigger1 = enemynear,NumProj > 0 ||(p2movetype = A && EnemyNear,NumHelper > 0)
trigger1 = random <= 100
value = 10003


二段ジャンプのない蒼月潮のための技ではあるのだが、通常のジャンプでも十分に高さも距離もあるので
そこまで使う機会がなかったりもする。まあ、かなり離れた位置から飛び道具を避けて飛び込むのに
使えなくはないのでそう使っていく

 

挑発

編集前

[State -1, 挑発]
type = ChangeState
triggerall = (var(0) = 0)
triggerall = (command = "start")
trigger1 = (StateType != A) && (Ctrl)
value = 10000

 
編集後

;これに手を加えないのがCOOL
[State -1, 挑発]
type = ChangeState
triggerall = (var(0) = 0)
triggerall = (command = "start")
trigger1 = (StateType != A) && (Ctrl)
value = 10000


一切手を加えずランダムなAIに任せて使わせる、それがCOOLだろう