MUGEN State Controller

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

Type = SelfState

ステート > 奪われたステートを取り返す | 実装されたバージョン: 2002.04.14 | 対象: 実行者自身

ChangeStateと同じく、ステートを変更するコントローラですが、相手のステートを参照している場合に、自分のステートに変更するという点で異なります。

HitDefのP2StateパラメータやTargetStateを使った場合、必ずSelfStateで元に戻すようにしましょう。

また、ChangeStateの代わりとして普通に使えます。-2ステートに記述すれば、相手のステートから無理矢理抜けることもできますが、不具合の元です。

関連するトリガー: StateNo, P2StateNo, PrevStateNo

パラメーター

value = ステート番号 (整数)

変更させるステート番号を指定。

基本ステート番号 基本動作
0 ニュートラル・立ち
10 屈み移行
11 屈み待機
12 立ち上がり
20 歩き
40 ジャンプ始動
45 空中ジャンプ始動
50 ジャンプ中
51 空中動作後
52 着地
ダッシュ
100 ダッシュ
105 バックステップ
106 バックステップ着地
110 Z軸用のステップ型ダッシュ
115 Z軸用のステップ型ダッシュ
ガード動作
120 ガード始動
130 立ちガード
131 屈みガード
132 空中ガード
140 ガード終了
150 立ちガード/HitShake硬直
151 立ちガード/ノックバック
152 屈みガード/HitShake硬直
153 屈みガード/ノックバック
154 空中ガード/HitShake硬直
155 空中ガード/ノックバック
特殊動作
170 敗北演出
175 引き分け演出
180 勝利演出
190 イントロ開始
191 イントロ用
5500 コンテニュー画面
5900 導入
やられ動作
5000 立ちくらい/ヒットシェイク
5001 立ちくらい/ヒットバック
5010 屈みくらい/ヒットシェイク
5011 屈みくらい/ヒットバック
5020 空中くらい/ヒットシェイク
5030 空中くらい/ヒットバック・ふっとび開始
5035 空中くらい/ふっとび経過
5040 空中くらい/ふっとび・戻り
5050 空中くらい/ふっとび・倒れまで
5070 空中くらい/転ばされヒットストップ
5071 空中くらい/転ばされヒットバック
5080 倒れくらい/ヒットシェイク
5081 倒れくらい/ヒットバック
5100 倒れくらい/空中~着地
5101 倒れくらい/バウンド中
5110 倒れくらい/倒れ待機
起き上がり・リカバリー動作
5120 倒れ/起き上がり
5200 倒れ受身/開始
5201 倒れ受身/着地
5210 空中受身 空中受身
死亡ステート
5150 死亡
省略不可
Ctrl = コントロールフラグ (整数)

0以外を指定すると、ステート変更と同時にコントロールフラグが立ちます。

指定先の[StateDef]で、Ctrlのフラグを設定しているとそちらに上書きされるので、注意してください。

省略時のデフォルト値: Ctrl ;前のステートで使用されたコントロールを引き継ぐ。
Anim = アクション番号 (整数)

アクション番号も同時に変更可能。

IgnoreHitPauseを指定してもHitPauseの影響を受けてしまう模様。

指定先の[StateDef]で、Ctrlのフラグを設定しているとそちらに上書きされるので、注意してください。

省略時のデフォルト値: -1 ;前のステートで使用されたアニメーションを引き継ぐ。
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

仕様・バグ・エラー・変更点

警告文
ATTEMPTED SELFSTATE TO NEGATIVE STATE:Valueに-1以下
警告文
ATTEMPTED CHANGE TO NEGATIVE STATE:Animに-2以下

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

  • [State ,SelfState]
  • Type = SelfState
  • Trigger1 = 1
  • value = ?
  • Ctrl = Ctrl ;前のステートで使用されたコントロールを引き継ぐ。
  • Anim = -1 ;前のステートで使用されたアニメーションを引き継ぐ。
  • Persistent = 1
  • IgnoreHitPause = 0

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

value(1) => Ctrl(2) => Anim(3) => Persistent(?) => IgnoreHitPause(?) =>


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

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

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

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

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