長閑な島の最果て

主にMUGEN中心の内容を書き綴ってます。リンクはご自由に。

変数弄り・変数リセット

MUGENには"変数"という数値を記憶できる情報管理システムがあります。文字通り、数値を一時保存して別の場所で引き出すことによって、そのままオプションパラメータの値やトリガーの条件として使用することができます。数値を自由に記憶できるので、time等で変動する値であっても変数を使えば簡単に設定できるので便利です。
当然、数値の管理というものはMUGENのCNSに限らずプログラミングにおいて幅広く使われる情報システムなので、知ってて損はないでしょう。
イメージ 1
MUGENのCNSで変数に数値を設定したり、別の値を代入するにはステートコントローラーの"VarSet"や"VarAdd"を使用します。ステート内でこれらを使用すれば数値を記憶できますが、ここで一つ注意することがあります。当たり前ですが、変数は相手も使用します。もし相手のステートを奪って、自分のステートに送った時に相手に"VarSet"や"VarAdd"を実行させたらどうなるでしょうか?勿論、これは相手の変数を書き換えるということになります。普通に考えるとステートを奪って、送ったステート先で相手の変数を書き換える必要はないのですが、知らずに実行させると相手のキャラの性能を壊しかねないので、CNSを組み込むときは相手の変数を書き換えないのが基本です。
しかし、凶悪キャラともなればそんなのお構いなしというかの如く多用してきます。というのも、キャラの中には自分のライフや性能を変数で判断していることがあるので、変数を弄ることによってそのキャラを弱体化させたり自滅させたりすることができるからです。逆も然り、変数を弄ったことが原因で相手が論外化して倒すことができなくなるなんてこともあります(そっちの方が多いかも)。変数の弄り方は主に二通りで変数を文字通り滅茶苦茶な値にする(変数弄り)のと、初期状態"0"にする(変数リセット)ものが挙げられます。本体が"VarSet"や"VarAdd"を実行すれば独自の変数を設定しますが、ヘルパーの場合はヘルパー独自の変数を設定することになります。更にいうと、ヘルパー専用のステートコントローラーがあって、"ParentVarSet"や"ParentVarAdd"を使用すればヘルパーのステート内で親の変数を設定することも可能です。このことから、わざわざ本体のステートを奪わなくてもヘルパーのステートさえ奪えていればいいわけですので、変数弄りはヘルパーのターゲットを取得する"混線バグ"と組ませて行う方がより効果的です(混線変数弄り)。
イメージ 2
何度もいいますが、通常の試合において変数を弄ることは相手にとって失礼な行為に当たりますので、凶悪キャラじゃなければ無難にそっとしておくのがベターでしょう。