ジャンプ通常攻撃

Last-modified: 2017-04-16 (日) 18:56:16

空中で出す通常攻撃、ジャンプで飛び込む時や、エリアル(空中コンボ)で使うことになるだろう
斜め下への判定が強い技は飛び込み向きで、横への判定が強い技はエリアルや空対空に向いている
空中にいられる時間は短いので、反応をしゃがみ攻撃よりも鋭く出す必要もある


 

ジャンプ弱パンチ

編集前

[State -1, ジャンプ弱パンチ]
type = ChangeState
value = 600
triggerall = command = "x"
trigger1 = statetype = A
trigger1 = ctrl
trigger2 = stateno = 600
trigger2 = statetime >= 7
;trigger3 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい

 
編集後

;横距離は37まで届く、地上の相手には当てづらい
[State -1, ジャンプ弱パンチ]
type = ChangeState
value = 600
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = p2bodydist X = [-10,40]
trigger1 = statetype = A
trigger1 = ctrl
trigger1 = p2statetype = A
trigger1 = p2movetype != A
trigger1 = random <= 400
trigger2 = stateno = 600
trigger2 = statetime >= 7
trigger2 = movecontact
trigger2 = random <= 500
;trigger3 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい


打点が高く地上の相手には当てづらいので、空対空もしくはエリアル用として使う

 

横距離を増やしてあるのは、「common1.cns」をきちんと記述したなら、攻撃するためにジャンプしたときは
前方に向けて飛んでいるはずだから、早めに出しても問題ない。むしろジャンプ中の時間は短いので
早めに出しておいた方が良いという理由があるから、そうしないと相手に先に技を出される危険もあるし

 

「p2bodydist Y」を指定しないのは、どんな小さいキャラでもその高度さえ分かれば、対空のタイミングを
測るには問題のない対空技と違って「相手の大きさが非常に重要なのに、それを知る手段は少ない」
という理由から、空中攻撃は元々当てづらいものなので、適当に放つしか無いという事情がある
それをうまく計算して当てているAIは本当に凄いので、今度MUGEN大会を見るときは、注目して欲しい

 

ジャンプ強パンチ

編集前

[State -1, ジャンプ強パンチ]
type = ChangeState
value = 610
triggerall = command = "y"
trigger1 = statetype = A
trigger1 = ctrl
trigger2 = stateno = 600 || stateno = 630
trigger2 = movecontact
;trigger3 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい

 
編集後

;横距離は45まで届く、地上の相手には当てづらい
[State -1, ジャンプ強パンチ]
type = ChangeState
value = 610
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = p2bodydist X = [-10,50]
trigger1 = statetype = A
trigger1 = ctrl
trigger1 = p2statetype = A
trigger1 = p2movetype != A
trigger1 = random <= 400
trigger2 = stateno = 600 || stateno = 630
trigger2 = movecontact
trigger2 = random <= 500
;trigger3 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい


手刀による強打を繰り出す、基本的には「ジャンプ弱パンチ」と同様、距離は50まで伸ばしている

 

ジャンプ弱キック

編集前

[State -1, ジャンプ弱キック]
type = ChangeState
value = 630
triggerall = command = "a"
trigger1 = statetype = A
trigger1 = ctrl
;trigger2 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい

 
編集後

;横距離は23まで届く、地上の相手にも当てられなくもない
[State -1, ジャンプ弱キック]
type = ChangeState
value = 630
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = p2bodydist X = [-10,25]
triggerall = p2bodydist Y >= -10
trigger1 = statetype = A
trigger1 = ctrl
trigger1 = p2statetype = A || vel Y > 0
trigger1 = p2movetype != A
trigger1 = random <= 400
;trigger2 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい


斜め下方向にヒザを突き出すモーションは、飛び込みなどの対地攻撃に向いている
エリアルにも使えなくはないが、その姿勢ゆえ自身よりも大きく高い位置にいる相手には当たらないので
「p2bodydist Y >= -10」と、相手が自分より高い位置にいるときには使わないように記述してある

 

また和訳KFMのジャンプ弱キックには持続時間に限りがあり、あまり早く出し過ぎると相手にヒットする前に
攻撃判定が消えてしまう。なので対地攻撃として振るときには、縦方向の動きも気にする必要がある

 

「vel」は自身の移動速度を測るトリガー、Xで横方向、Yで縦方向の速度を測ることができる
「vel Y > 0」だと、「自身がジャンプの頂点から落下を始めるタイミングで」という意味になる
こうしておくと地上で立ち状態の和訳KFMに対し、ちょうど頭部に攻撃が当たるくらいのタイミングで
技を振ってくれるようになる。使う距離は25まで伸ばしてある

 

ちなみにしゃがまれるとスカってしまうタイミングなのだが、ジャンプ攻撃はしゃがみガードできないため
AIでも人操作でも、ジャンプ攻撃は立ち状態で対処するのが定石であるため、気にしなくても良いと思う
何よりあまり出すのが遅すぎても、コンボを繋げる時間が無くなってしまうので、これくらいが良い

 

【追記】
MUGENには「size.head.pos」という頭の位置を示すパラメータは存在するものの、それが正しく設定されて
いるとは限らないため、地上の相手に当たるよう出すためには、このように当たるタイミングを実測して
技を出すようにしなければならない。なおその出すタイミングについてだが、速く出すように設定すると
背が低めのキャラクターには当たらないが、かと言って遅く出し過ぎると技が出る前に着地してしまう

 

筆者の場合は、若干背が低めのキャラクター(筆者の場合はmaitake氏の「D4霊夢」「悪Q」を用いている)の
立ち状態にランダム抜きでギリギリ当たらない程度のタイミングで設定し、それにランダム要素を加えることで
背の低い相手には当たったり当たらなかったりし、背が普通の相手にも綺麗に当たったり少し遅かったりする
という、ほどほど程度に当たるタイミングで技を出すようにしている

 

なお和訳カンフーマンには二段ジャンプがあり、それから出すにはこのタイミングだと速すぎるのだが
あくまで作成例ということで、ここでは時々ランダムで出て来る程度の二段ジャンプのことは
あまり考慮しない記述にしている。どうしても気になるなら、新・擬人化アマテラスを参考に
varを用いて出すタイミングを使い分けるという方法もある

 

ジャンプ強キック

編集前

[State -1, ジャンプ強キック]
type = ChangeState
value = 640
triggerall = command = "b"
trigger1 = statetype = A
trigger1 = ctrl
trigger2 = stateno = 600 || stateno = 630
trigger2 = movecontact
;trigger3 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい

 
編集後

;横距離は57まで届く、一番遠くまで届く空中攻撃
[State -1, ジャンプ強キック]
type = ChangeState
value = 640
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = p2bodydist X = [-10,60]
triggerall = p2bodydist Y >= -10
trigger1 = statetype = A
trigger1 = ctrl
trigger1 = p2statetype = A || vel Y > 1
trigger1 = p2movetype != A
trigger1 = random <= 400
trigger2 = stateno = 600 || stateno = 630
trigger2 = movecontact
trigger2 = random <= 500
;trigger3 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい


やや斜め下に蹴りを繰り出す、リーチは最も長く、空中戦の主役になるはず
基本的には「ジャンプ弱キック」と同様に記述。使用する距離は60まで伸ばしてある

 

「vel Y > 1」は「ちょっと落下を開始したタイミングで」という意味、ジャンプ弱キックに比べると
ジャンプ強キックは技の持続時間が短いため、より引きつけたタイミングで出さないといけない