とゆーワケでアーマー処理について。 処理が画一化されるのはつまんないので、この類いの処理について語るのはちょっとどーかと思ったのですが 正直もうネタが切れてきたので書いてみます。 誰もオメーの胡散臭い処理なんざアテにしやしねーよ、何が画一化だボケ! ・・・・という声が聞こえて来そうなのでちとアレですが。 |
世間で使われてるHitOverrideによるアーマー処理。 これは他に解説されてるサイトあるっぽいので割愛。 で、HitOverrideを使った場合はある問題が発生するのです。 「P2state付きの打撃技で攻撃された時、攻撃を食らわない」というモノです。 文章だと伝わりにくいかも知れませんが、 相手側から見た場合、判定のない状態の敵を殴ってるような感じになる、とでも言いましょーか。 |
つーワケで通常打撃のみアーマー処理、 P2state付き打撃と投げは普通に食らうというのを前提に書いてみます。 P2state付き打撃食らった時はダメージのみ貰ってアーマー処理に移行するのが理想ですが こればっかりはどーしよーもない(と思う)。 特殊な打撃技くらい食らっとくか、たとえ攻撃がスカっても食らいたくないか。 どっちを選択するかは貴方次第。 アナタな〜らどぉするゥ〜♪ ってなもんだ。 ナゲーな、前置きが。 |
[State -3,現在のステート番号を常時var(1)に入れとく] type = VarSet trigger1 = MoveType != H trigger1 = StateNo != 9999 ←なくてもいいかも知んないけど一応 var(1) = StateNo 9999はアーマー処理するステート番号です。 上と同じトリガーで var(2) = Ctrl も仕込む。 |
で、仮にstate200の弱パンチに戻るとして[Statedef 200,弱パンチ] type = S movetype= A physics = S ;ここでアニメ番号を指定してはいけない。 juggle = 7 poweradd= 20 ctrl = 0 [State 200,アーマーステートから来たのでなければアニメ200を一枚目から] type = ChangeAnim triggerall = PrevStateNo != 9999 trigger1 = time = 0 value = 200 [State 200,アーマーステートから来たのならアニメ200をvar(3)枚目から];なくてもいいかも知れない type = ChangeAnim triggerall = PrevStateNo = 9999 trigger1 = time = 0 value = 200 ekem = var(3) てな感じにしときましょう。 |
これでp2state付き打撃を食らってくれます。 食らいたくない場合は最後んとこを-2でHitOverride使えば多分おっけー。 あと1ヒットしかしない攻撃が2ヒットしてしまう可能性があるので 各HitDefに対策用のトリガー入れときましょう。 さらに一枚のスプライトの表示フレーム数が長めの場合も問題発生する恐れアリ。 airファイルで細かく切っとくと良いかも。 200,0, 0,0, 12 を 200,0, 0,0, 4 200,0, 0,0, 4 200,0, 0,0, 4 200,0, 0,0, 4 みたいな感じで。 |