MUGEN State Controller

MUGENで良いキャラを作るポイントは… 「良いキャラのソースコードを読む」->「コピペ」->「記述を理解」->「自分でアレンジ」
MUGEN Width

Type = Width

> | 実装されたバージョン: 2002.04.14 |

このステートコントローラー実行したプレイヤーのキャラや画面端の幅サイズを変更します。効果は、1フレームしか無いので注意!

デバッグモードで、判定枠を表示(Ctrl+C)させると、対画面端幅を示すバーが橙で、対プレイヤー幅を示すバーが黄色で、重なっている部分が明るい黄色で表示されます。例えば、edge=40とすると画面端から40ピクセルの範囲はプレイヤーが進入不可になります。

投げ技中の攻撃側が、これを使わないと画面端で敵との位置が狂ってしまいます(ScreenBoundを使うサムスピ式の方法もあります)。

パラメーター

Edge = 前方画面端幅, 後方画面端幅(省略可能) (整数, 整数)

画面端に対するプレイヤーの幅をピクセル単位指定。

画面端から指定値までの範囲は進入不可能になります。

前面と後ろにプレイヤーのエッジの幅を設定します。

エッジ幅は、プレイヤーが画面の端に得ることができますどれだけ近いかを判断します。

最小値: -2147483647, -2147483647 , 最大値: 2147483647, 2147483647
省略不可
Player = 前方プレイヤー幅, 後方プレイヤー幅(省略可能) (整数, 整数)

相手に対するプレイヤー幅を指定。

前面と後ろに選手の幅を設定します。プレーヤの横幅はプレイヤーが他のプレイヤーに取得することができますどれだけ近いかを決定します。

最小値: -2147483647, -2147483647 , 最大値: 2147483647, 2147483647
省略不可
; value = 前方幅, 後方幅 (整数, 整数)

画面端とプレイヤー幅を両方設定出来る、EdgeとPlayerの短縮構文です。EdgeとPlayerのパラメータが指定されていない場合にのみ、有効になります。

最小値: -2147483647, -2147483647 , 最大値: 2147483647, 2147483647
代替書式
Persistent = ステートを再度読み込むフラグ (整数)

Persistentの値をNに設定した場合、設定したステートコントローラーはNフレーム後にもう一度実行されます。0の場合、トリガーが成立しても1回しかステートコントローラーが実行されません。※トリガーは読み込みますが、パラメーターは完全に無視されます。

Persistentが管理されている配列が初期化される条件は、ステート処理開始(ChangeState,SelfState,TagOut,TagInなどでステート移動)でTime=0の場合に実行されます。また、初期化される個数が決まっており、10個のPersistentしか初期化されません。ですので、Persistentの多様やChangeStateでの使用は避けましょう。もし、特定のステートが実行されない場合は、この仕様を疑ったほうがいいかもしれません。

その他にも、var,fvar,sysvar変数は利用できない・常時ステート([StateDef -1],[StateDef -2],[StateDef -3])では、常にPersistent=1の状態・IgnoreHitPause=1が設定されていた場合、アドレスを書き換え(Alive偽装・Persistent偽装?など)・バージョンによる動作の違いなどバグが満載です。

結論、Persistentの値が0以外の場合は省略して、TriggerTimevarを使って管理した方がいいです。

最小値: 0 , 最大値: 128
省略時のデフォルト値: 1
IgnoreHitPause = HitPauseを無視するフラグ (0か1)

IgnoreHitPauseの記述されたステートコントローラー処理がHitPause(ヒット停止時間)を無視して実行されます。基本的に1に設定しておくべきパラメーター。

パラメーター自身にvar,fvar,sysvar変数は利用できません。

攻撃を当てたり受けたりした時にVarSetしたり、Explodの演出をずれないようにしたり用途はさまざま。

最小値: 0 , 最大値: 1
省略時のデフォルト値: 0

省略した時のデフォルト値

  • [State ,Width]
  • Type = Width
  • Trigger1 = 1
  • Edge = 0, 0
  • Player = 0, 0
  • ; value = 0, 0
  • Persistent = 1
  • IgnoreHitPause = 0

パラメーターの読み込み順

Edge(1, 2) => Player(3, 4) => ; value(1→3, 2→4) => Persistent(?) => IgnoreHitPause(?) =>


*バージョンや実行環境,パラーメーターの指定の仕方によって、読み込まれる順番が変わる可能性があります。参考程度なものだと思ってください。
公開日:
最終更新日:
目次
この記事は役に立ちましたか?
ご意見・ご要望はございますか?
記事に不備があった場合

不備があればGithubTwittersuteadddayov@gmail.comにご報告下さい。

記事を編集してみませんか?

ページ編集・翻訳にご協力いただける方を募集しております。お気軽にご連絡下さい。

We are looking for someone who can cooperate on page editing / translation. Please feel free to contact us.