HitByとNotHitByの違いって?

2chスレPart10 710氏のテキストより
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    HitByとNotHitByの仕様
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

両者ともよく似た効果を持つコントローラですが、
実は細かなところでかなり異なっています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■HitByの仕様

HitByのコントローラの効果は
「指定した攻撃だけを受ける」のではなく
「指定した攻撃以外を受け付けない」です。
勘違いしがちですが、HitByも無敵状態を設定するコントローラです。

例えば、『立ち・空中の投げ』と『しゃがみ攻撃・投げ』を受けたいとき

[State ,100]
type = HitBy
trigger1 = 1
value = SA,AT

[State ,100]
type = HitBy
trigger1 = 1
value2 = C,AA,AT

このようにステコンを記述したとします。
HitByを「指定した攻撃だけを受ける」と考えていると

「SA,ATが当たる」+「C,AA,ATが当たる」=「SA,ATとC,AA,ATが当たる」

という意味にとれ、うまくいきそうに見えますが、
実際のところは「指定した攻撃以外を受け付けない」であるため

「SA,AT以外を無効」+「C,AA,AT以外を無効」=「全無効」

となり、『SA,AT以外』には『C,AA,AT』も含まれるため『C,AA,AT』も無効化します。
同時に逆も適用されるため、結果全ての攻撃を無効化してしまいます。

なお、HitByでは状態と属性両方の指定が必須です。
どちらか一方しか記述がない場合、全ての攻撃を無効化します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■NotHitByの仕様

よく耳にするバグとしてNotHitByの状態指定をSCA(立ち、しゃがみ、空中)
とすると、その後の属性を無視して完全無敵になるというものがあります。
実はこれ、正確にはバグではなくHitByとNotHitByの仕様の違いによって起こります。

ステートの記述として表すと、

[State 100];立ち・しゃがみ・空中の全投げを無効
type = NotHitBy
trigger1 = 1
value = SCA,AT

このように記述すると、投げ以外の攻撃、飛び道具も全て無効化されてしまいます。

HitByと同じように読むと value = SCA,AT という記述は
「立ち・しゃがみ・空中の全ての投げを無効」となるはずです。
ところが、実はNotHitByでは
「『立ち・しゃがみ・空中の全投げ』を無効」ではなく
「『立ち・しゃがみ・空中(の攻撃)』および『全投げ』を無効」
という意味に変わってしまうのです。

NotHitByのattr仕様は、HitByやその他のattr仕様とは異なり

value = (A)状態,(B)属性
(A)で状態(S,C,A:立ち、しゃがみ、空中)についての無敵を設定
(B)で属性(A,P,T:攻撃、飛び道具、投げ)についての無敵を設定
(A)と(B)はそれぞれ独立して適用される

となっています。

つまりNotHitByのコントローラは、attrの指定のみでは
「立ち状態での投げのみ無効」というような使い方ができないということです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■それぞれの対策例

A.『立ち状態での投げ』のみ無効にしたい場合
 例1.
[State 100];相手が立ち状態のとき全投げを無効
type = NotHitBy
trigger1 = enemynear,statetype = S
value = ,AT

 例2.
[State ,100];相手が立ち状態のとき立ち攻撃、立ち飛び道具以外を無効
type = HitBy
trigger1 = enemynear,statetype = S
value2 = S,AA,AP

B.『立ち・空中の投げ』と『しゃがみ攻撃・投げ』を受けたいとき
 例1.
[State 100];相手がしゃがみ状態でないとき攻撃・飛び道具を無効
type = NotHitBy
trigger1 = enemynear,statetype != C
value = ,AA,AP

[State 100];相手がしゃがみ状態のとき飛び道具を無効
type = NotHitBy
trigger1 = enemynear,statetype = C
value2 = ,AP

 例2.
[State ,100];相手がしゃがみ状態でないとき立ち投げ・空中投げ以外を無効
type = HitBy
trigger1 = enemynear,statetype != C
value = SA,AT
	
[State ,100];相手がしゃがみ状態のときしゃがみ攻撃・しゃがみ投げ以外を無効
type = HitBy
trigger1 = enemynear,statetype = C
value2 = C,AA,AT

このように相手の状態をトリガーとして起動させることで
当たる状態を限定させることができます。
ただし、相手のStatedefで設定した状態と攻撃のattrで設定した状態が違っている場合は
意図したとおりの無敵状態とならない可能性があります。



書いた人:Lycoris
参考  :M.U.G.E.Nキャラ作ろうぜ!五回目 >>950-960

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2008年11月29日 23:34