補正

「補正」の編集履歴(バックアップ)一覧に戻る

補正 - (2011/07/04 (月) 11:32:16) のソース

//誰か加筆頼む
//↑んー、というか全体的にいろいろとマズいんだよな
// 補正てーのはダメージに限ったことじゃないし
// わざわざ苦労して作らなくてもよかったんでなかろうか

格闘ゲーム全般において、何らかの数値が増減するシステムの総称。
その多くはコンボ、特にコンボのダメージ(火力)に関するもので、
コンボができる経験者とできない初心者との格差を埋めるべく導入された。
多くの場合、&color(red){自分が有利になるほど数値上では不利な扱いを受ける。}

またこれが転じて、設定上の本来の能力をゲーム用に調整する[[格ゲー補正]]というものもある。
こちらは該当項目を参照。

#contents
----
----
----
*補正の例
**ダメージ補正
***ヒット数によるダメージ補正
攻撃のヒット数に応じてダメージにかかる補正。「コンボ補正」とも。
ほとんどの場合、ヒット数が増えるにしたがってダメージは減る。

***体力によるダメージ補正
自分もしくは相手の体力に応じてダメージにかかる補正。
「[[根性値]]」(ないし「逆根性値」)と同一。詳細は当該項目にて。

***キャンセルによるダメージ補正
特定の技を特定の技でキャンセルした際にかかる補正。
・『[[THE KING OF FIGHTERS]]』シリーズや『ストリートファイターIII』の「スーパーキャンセル」
・『[[GUILTY GEAR]]』シリーズの「基底ダメージ補正」
・『[[MELTY BLOOD]]』シリーズの「リバースビート」「A連打補正」
などがこれに分類される。

***相手の状態によるダメージ補正
相手がダウンしている時や空中に浮いている時などにかかる補正。

----
**ノックバック補正
ヒット数に応じて自分や相手のノックバック速度にかかる補正。
多くの場合、ヒット数が多くなるほどノックバックが大きくなり、
より長い時間コンボを続けるのが難しくなる。

----
----
----
*MUGENにおける補正
**攻撃側で設定される補正
***AttackMulSet
ステートとトリガー次第で自由に攻撃力の増減を設定可能。
ほとんどのダメージ補正はこれを使って再現されている。
以下は「コンボ補正」を設定した例。
>[State -2,AttackMulSet]
>Type = AttackMulSet
>TriggerAll = NumEnemy
>TriggerAll = Alive
>Trigger1 = Enemy,GetHitVar(HitCount) < 50
>Value = 0.50+(0.50-(Enemy,GetHitVar(HitCount)*0.01))
>
>[State -2,AttackMulSet]
>Type = AttackMulSet
>TriggerAll = NumEnemy
>TriggerAll = Alive
>Trigger1 = Enemy,GetHitVar(HitCount) >= 50
>Value = 0.50
>
>;GetHitVar(HitCount)は相手のMoveTypeがHではなくなった後も値が0にならないので、
>;始動については別個に設定してやらないとコンボの始動技にもヒット数による補正がかかってしまう。
>[State -2,AttackMulSet]
>Type = AttackMulSet
>TriggerAll = NumEnemy
>TriggerAll = Alive
>Trigger1 = p2MoveType!= H
>Trigger2 = p2StateNo = [150,155]
>Value = 1.0

しかし仕様に若干のクセがあり
-targetlifeaddには適用されない。
-ガード時の削りダメージには適用されない。
-hitdefコントローラが実行されたときにかかっていた補正が、hitdefが上書きされるまでそのままかかり続ける。
-projectileでもhitdefと同様最初に適用された補正がかかり続ける。またprojectileの特性上上書きもできない。
-本体とhelperでは別個に処理される。helperの攻撃に補正をかけたければhelperのステートでattackmulsetを実行する必要あり。
-同一フレームで複数回実行しても最初に適用された補正だけがかかり、乗算、加算、上書きなどは行われない。本体とhelperで別々に設定することは可能。
-helperからprojectileを出した場合、projectile自体は本体管理になるがattackmulsetに関してはhelperにかかっている値が適用される。
攻撃力を一律で変動させられるのは便利だが、各攻撃の個別管理ができないため特定の攻撃にだけ補正をかけるということができない。
また投げには補正をかけられないという致命的な問題があるので、
変数を使ってdamageやtargetlifeaddの値に直接倍率をかけておいた方が融通が利く。
またdisplayclipboardで直接倍率を確認できるので、挙動を把握しやすいという利点もある。

***Ground.Velocity(Air.Velocity)
ステートコントローラー「HitDef」内で設定可能。
相手のノックバックの初速度を決定する。ヒット数を値の式に使えばノックバック補正が再現可能。
ただし決められるのは初速度のみで、地上を滑っていく相手のx軸方向の加速度は、相手のStand.Friction(Crouch.Friction)依存になる。
なお相手が浮いている場合、ステートを奪うなどしない限りx軸方向の加速度は発生しない。y軸方向の加速度は以下のYaccelで設定できる。

***Yaccel
ステートコントローラー「HitDef」内で設定可能。
攻撃によって相手のphysicsがAになったとき(y方向のvelocityを付けたとき、または空中くらい)の相手のy軸方向の加速度を決定する。
値を変動させることでキャラクターによってはコンボが続けにくくなり、補正として機能する。
パラメータを指定しなかった場合、0.35と指定したものとして扱われる。
ちなみに再現できるのは等加速度運動のみ。加速度を変動させたいときはステートを奪うしかない。

***Super.TargetDefenceMul
キャラクターのCNSファイルではなく、mugen.cfg内で設定可能。
防御力を変動させているように見えるが、実際には攻撃力を変動させている。
superpauseを実行した際にp2defmulを指定しないか0にした場合、
superpause実行後に始まったコンボが終了するまでダメージに補正がかかる。
また、この補正がかかると相手にかかっているdefencemulsetは無視される。

----
**防御側で設定される補正
***Fall.Defence_Up
CNSファイルの「[Data]」セクションで設定可能。
ダウン中(statetypeがLになっているとき)、この数値だけ防御力が上昇する。

***Stand.Friction(Crouch.Friction)
CNSファイルの「[Movement]」セクションで設定可能。定数であるためヒット数による操作などはできない。
キャラクターの摩擦係数に相当し、この値が小さいほど地上で滑りにくくなる。
phisicsがSまたはCに設定されているステート全てにかかってくるため、ダメージを受けたときのノックバックが変化する。
下手に値をいじると相手のコンボがつながらなくなったり、
逆に[[永久]]になってしまったりと相手が意図しない挙動になることも。むやみに変更しない方が無難。

***DefenceMulSet
ステートとトリガー次第で自由に防御力の増減を設定可能。
&color(red){Valueで設定される値はダメージにかかる係数なので注意。}
以下は「[[根性値]]」を設定した例。
>[State -2, DefenceMulSet]
>Type = DefenceMulSet
>TriggerAll = Alive
>Trigger1 = Life <= 300
>Value = 0.70

ただし、予めmovetypeがHの状態でダメージを受けたときにしか適用されないという致命的な問題がある。
このためmugenで根性値を厳密に再現するのは不可能。
一応かなりそれらしくはできるが、内部でイレギュラーな処理をすることになる。


//記述例はミスがあるかも