MUGEN記述/アラド戦記のバックアタック記述一例
「アラド戦記」のバックアタックを再現するための記述の一例です。
この記述はユニオンヒットシステムの記述を応用しています。
参考にする際はこちらから目を通してください。
http://www.geocities.jp/harvest_dreamer/DnF__Union.lzh
~ ~ ~
●バックアタック
-アラド戦記のバックアタック
・相手の後方から攻撃をヒットさせる
・ダメージボーナス(正確な数値は不明)
-MUGEN化するにあたっての変更点
・ダメージボーナス→パワーゲージ100増加
●仕組みと記述例
2つの変数(変数x,変数y)を使用します。
また変数Aはユニオンヒット記述における変数Aを、変数Bは同変数Bを指しています。
;-----------------------------------------------------------------バックアタックここから
[State -2, バックアタック:フラグセット/ターゲット1]
type = VarSet
trigger1 = NumEnemy && var(A) < 2
var(x) = Enemy(0),Facing
ignorehitpause = 1
[State -2, バックアタック:フラグセット/ターゲット2]
type = VarSet
trigger1 = NumEnemy >= 2 && var(A) < 2
var(y) = Enemy(1),Facing
ignorehitpause = 1
[State -2, バックアタック:獲得ボイス]
type = PlaySnd
trigger1 = NumEnemy
trigger1 = Enemy(0),ID = var(B) && var(x) != Enemy(0),Facing && var(A) = 2
trigger2 = NumEnemy >= 2
trigger2 = Enemy(1),ID = var(B) && var(y) != Enemy(1),Facing && var(A) = 2
value = s*,** ;←任意のサウンドアドレス
[State -2, バックアタック:獲得メッセージ]
type = Explod
trigger1 = NumEnemy
trigger1 = Enemy(0),ID = var(B) && var(x) != Enemy(0),Facing && var(A) = 2
trigger2 = NumEnemy >= 2
trigger2 = Enemy(1),ID = var(B) && var(y) != Enemy(1),Facing && var(A) = 2
anim = **** ;←バックアタックメッセージアニメのNo
ID = **** ;←任意のIDNo
facing = Facing
ownpal = 1
ontop = 1
pos = 0,-130 ;←キャラのサイズに合わせて調整
postype = p1
removetime = -2
bindtime = 999
supermovetime = 999
pausemovetime = 999
[State -2, バックアタック:獲得メッセージ消去]
type = RemoveExplod
triggerall = NumExplod(****) ;←上記ID
trigger1 = NumEnemy
trigger1 = Enemy(0),ID = var(B) && var(x) != Enemy(0),Facing && var(A) = 3
trigger2 = NumEnemy >= 2
trigger2 = Enemy(1),ID = var(B) && var(y) != Enemy(1),Facing && var(A) = 3
ID = **** ;←上記ID
[State -2, バックアタック:パワーゲージ増加]
type = PowerAdd
trigger1 = NumEnemy
trigger1 = Enemy(0),ID = var(B) && var(x) != Enemy(0),Facing && var(A) = 2
trigger2 = NumEnemy >= 2
trigger2 = Enemy(1),ID = var(B) && var(y) != Enemy(1),Facing && var(A) = 2
value = 100
;-----------------------------------------------------------------バックアタックここまで
カウンターヒット同様、こちらも大体はユニオンヒットと同じような仕組みです。
相手の向きを監視し、自分の攻撃が当たったら向きを確認、不一致だった場合は
背後からの攻撃とみなしてバックアタック処理を実行します。
攻撃がヒットしたか、攻撃対象が同じ相手かを判断するのはユニオンヒット記述を利用。
変数Aが有効なら攻撃がヒット、変数Bが相手のIDと同じなら対象一致なので、
これら全てを満たした時にバックアタック処理が実行されます。
変数xは相手キャラの1人目(シングル・タッグ問わず)なので、もうひとつ
変数yを使って相手キャラの2人目を監視することで誤発動する確率を抑えています。
注意点として、攻撃をヒットさせたときに相手の向きをこちらに向かせないと
連続してバックアタックが発生する可能性があるので、
HitDefには必ずp2facing = 1を記述してください。
バックアタックメッセージのスプライトとアニメーション指定例、サウンドデータサンプルはこちらからどうぞ。
http://www.geocities.jp/harvest_dreamer/DnF__Backattack.lzh
この記述はユニオンヒットシステムの記述を応用しています。
参考にする際はこちらから目を通してください。
http://www.geocities.jp/harvest_dreamer/DnF__Union.lzh
~ ~ ~
●バックアタック
-アラド戦記のバックアタック
・相手の後方から攻撃をヒットさせる
・ダメージボーナス(正確な数値は不明)
-MUGEN化するにあたっての変更点
・ダメージボーナス→パワーゲージ100増加
●仕組みと記述例
2つの変数(変数x,変数y)を使用します。
また変数Aはユニオンヒット記述における変数Aを、変数Bは同変数Bを指しています。
;-----------------------------------------------------------------バックアタックここから
[State -2, バックアタック:フラグセット/ターゲット1]
type = VarSet
trigger1 = NumEnemy && var(A) < 2
var(x) = Enemy(0),Facing
ignorehitpause = 1
[State -2, バックアタック:フラグセット/ターゲット2]
type = VarSet
trigger1 = NumEnemy >= 2 && var(A) < 2
var(y) = Enemy(1),Facing
ignorehitpause = 1
[State -2, バックアタック:獲得ボイス]
type = PlaySnd
trigger1 = NumEnemy
trigger1 = Enemy(0),ID = var(B) && var(x) != Enemy(0),Facing && var(A) = 2
trigger2 = NumEnemy >= 2
trigger2 = Enemy(1),ID = var(B) && var(y) != Enemy(1),Facing && var(A) = 2
value = s*,** ;←任意のサウンドアドレス
[State -2, バックアタック:獲得メッセージ]
type = Explod
trigger1 = NumEnemy
trigger1 = Enemy(0),ID = var(B) && var(x) != Enemy(0),Facing && var(A) = 2
trigger2 = NumEnemy >= 2
trigger2 = Enemy(1),ID = var(B) && var(y) != Enemy(1),Facing && var(A) = 2
anim = **** ;←バックアタックメッセージアニメのNo
ID = **** ;←任意のIDNo
facing = Facing
ownpal = 1
ontop = 1
pos = 0,-130 ;←キャラのサイズに合わせて調整
postype = p1
removetime = -2
bindtime = 999
supermovetime = 999
pausemovetime = 999
[State -2, バックアタック:獲得メッセージ消去]
type = RemoveExplod
triggerall = NumExplod(****) ;←上記ID
trigger1 = NumEnemy
trigger1 = Enemy(0),ID = var(B) && var(x) != Enemy(0),Facing && var(A) = 3
trigger2 = NumEnemy >= 2
trigger2 = Enemy(1),ID = var(B) && var(y) != Enemy(1),Facing && var(A) = 3
ID = **** ;←上記ID
[State -2, バックアタック:パワーゲージ増加]
type = PowerAdd
trigger1 = NumEnemy
trigger1 = Enemy(0),ID = var(B) && var(x) != Enemy(0),Facing && var(A) = 2
trigger2 = NumEnemy >= 2
trigger2 = Enemy(1),ID = var(B) && var(y) != Enemy(1),Facing && var(A) = 2
value = 100
;-----------------------------------------------------------------バックアタックここまで
カウンターヒット同様、こちらも大体はユニオンヒットと同じような仕組みです。
相手の向きを監視し、自分の攻撃が当たったら向きを確認、不一致だった場合は
背後からの攻撃とみなしてバックアタック処理を実行します。
攻撃がヒットしたか、攻撃対象が同じ相手かを判断するのはユニオンヒット記述を利用。
変数Aが有効なら攻撃がヒット、変数Bが相手のIDと同じなら対象一致なので、
これら全てを満たした時にバックアタック処理が実行されます。
変数xは相手キャラの1人目(シングル・タッグ問わず)なので、もうひとつ
変数yを使って相手キャラの2人目を監視することで誤発動する確率を抑えています。
注意点として、攻撃をヒットさせたときに相手の向きをこちらに向かせないと
連続してバックアタックが発生する可能性があるので、
HitDefには必ずp2facing = 1を記述してください。
バックアタックメッセージのスプライトとアニメーション指定例、サウンドデータサンプルはこちらからどうぞ。
http://www.geocities.jp/harvest_dreamer/DnF__Backattack.lzh