MUGEN State Controller

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

Type = ModifyExplod

Explod > Explodの設定を変更 | 実装されたバージョン: 2002.04.14 | 対象: 画像

既に出したExplodの設定を変える命令。指定したIDのExplodが存在しない場合は、ID以降のパラメータは読み込まれません。

IgnoreHitPause = 1ではHitPauseTime中にも出る、またAnimが動く。IgnoreHitPauseを省略するとHitPauseTime中には出ない、またAnimeが動く。IgnoreHitPause = 0ではHitPauseTime中には出ない、またAnimが動かない。

関連するステートコントローラー: Explod

パラメーター

ID = ExplodのID番号 (整数)

設定を変更するExplodのIDを指定します。-1で全てのExplodの設定を変更する。

IDが存在しない場合、それ以降のパラメータは読み込まれない。

省略時のデフォルト値: -1
Facing = 向き (整数)

スプライトの向きを指定。1で正、-1で負の方向を向きます。

省略時のデフォルト値: ;変更なし
VFacing = 上下の向き (整数)

-1にすると、垂直方向に反転表示されます。

省略時のデフォルト値: ;変更なし
Pos = x座標, y座標 (整数, 整数)

スプライトの出現位置を変更します。

最小値: -2147483647, -2147483647 , 最大値: 2147483647, 2147483647
省略時のデフォルト値: ;変更なし
PosType = 基準点の位置 (文字列)

アニメーションを出現させるための基準点(0,0)をどこにするか、以下の文字列から指定します。

タイプ 基準
P1

実行者が基準点(0,0)になります。X軸の正数は実行者の正面・Y軸の負数は実行者の頭上。

MUGEN PosType P1
P2

実行者に最も近い敵が基準点(0,0)になります。X軸の正数は最も近い敵の正面・Y軸の負数は最も近い敵の頭上。

MUGEN PosType P2
F

FはFrontの略。実行者の正面の画面端が基準点(0,0)になります。X軸の負数は基準点から実行者の方向・Y軸の負数は地面から上。

MUGEN PosType Front
B

BはBackの略。実行者の背面の画面端が基準点(0,0)になります。X軸の正数は基準点から実行者の方向・Y軸の負数は地面から上。

MUGEN PosType Back
L

LはLeftの略。画面左上が基準点(0,0)になります。X軸の正数は画面右方向・Y軸の正数は画面下方向。

MUGEN PosType Left
R

RはRightの略。画面右上が基準点(0,0)になります。X軸の負数は画面左方向・Y軸の正数は画面下方向。

MUGEN PosType Right
N

NはNoneの略。ステージ中央が基準点(0,0)になります。他のPosTypeと違い基準点は絶対に動きません。X軸は右方向が正数・左方向が負数。Y軸は上方向が負数・下方向が正数。

Version1.1から追加された値です。

MUGEN PosType None
省略時のデフォルト値: P1 ;Version1.1からはNoneに変更されています。
Random = x範囲, y範囲 (整数, 整数)

出現位置をランダムにする場合の、出現範囲を指定。

pos = 0,0で、random = 40,80の場合、0,0の位置から左右-20~20ピクセル、上下-40~40ピクセルの範囲内でランダムに出現します。

省略時のデフォルト値: ;変更なし
Vel = x速度, y速度 (浮動小数点数, 浮動小数点数)

スプライトの初速度を指定。

省略時のデフォルト値: ;変更なし
Accel = x加速度, y加速度 (浮動小数点数, 浮動小数点数)

スプライトの加速度を指定。

省略時のデフォルト値: ;変更なし
Scale = 横縮尺 [,縦縮尺] (浮動小数点数)

縮尺を指定。

省略時のデフォルト値: ;変更なし
BindTime = 固定時間 (整数)

ここで指定した時間内は、基準位置からの相対位置で表示されます。つまり、基準位置が移動すると、それに合わせてスプライトも移動します。

-1以下で固定時間が永続化。ただし-2以下は警告文を出すので永続にする場合は、-1のみしか指定してはいけません。

省略時のデフォルト値: ;変更なし
OnTop = 手前表示フラグ (0か1)

1にすると、sprpriorityは無視され、全てのスプライト、背景レイヤーより手前に表示されます。ただし、ヒット/ガードスパークより手前に表示させることはできません。

省略時のデフォルト値: ;変更なし
RemoveTime = 消滅時間 (整数)

発生してから消滅するまでの時間を指定。-1で永久に表示。-2で、スプライトのアニメが終了すると消えます。特定の条件下で消すような場合は、Expoldを消すコントローラを使うとよいでしょう。

省略時のデフォルト値: ;変更なし
SuperMoveTime = superpause無視時間 (整数)

SuperPauseコントローラの影響を無視する時間を指定。-1または-2で無視時間永続化。

省略時のデフォルト値: ;変更なし
SprPriority = スプライト表示優先順位 (整数)

スプライトの表示優先順位を指定。-3にすると、大抵のスプライトより奥に表示されます。

OnTopが有効な場合、SprPriorityが読み込まれません。

省略時のデフォルト値: ;変更なし
PauseMoveTime = move_time (整数)

pauseコントローラの影響を無視する時間を指定。

省略時のデフォルト値: ;変更なし
SuperMove = superpause無視フラグ (0か1)

1にすると、superpauseコントローラの影響を受けなくなります。

指定しないほうがよいパラメータのようです。下記のsupermovetimeで代用してください。

SuperMoveTimeが0の場合は、SuperMoveは読み込まれません。

省略時のデフォルト値: ;変更なし
Shadow = 赤影, 緑影, 青影 (整数, 整数, 整数)

影の色をR,G,Bで指定。-1でステージ依存。0,0,0で影なし。

省略時のデフォルト値: ;変更なし
RemoveOnGethit = やられ消滅フラグ (0か1)

1にすると、プレイヤーが攻撃を受けた場合、消滅します。

省略時のデフォルト値: ;変更なし
Trans = 透過型 (文字列)

透過型には、以下のいずれかの文字列を指定します。

透過処理効果
Default何も処理しない。多分Noneと同じ処理?パラメータは読み込まれる。
None透過処理無し。Airで透過処理している時無効にできる。
Add画像を半透明にする。アルファ値256,256の加算透過。
Add1Addより暗い感じの半透明にする。アルファ値256,128の加算透過。
Sub画像を影のように半透明にする。減算透過。
AddAlpha下記のAlphaとセットで使うのが普通。

省略時のデフォルト値: ;変更なし
Alpha = ソースアルファ, デスティネーションアルファ (整数, 整数)

透過型が"AddAlpha"の場合に指定します。有効範囲は0(低)から256(高)です。

ソースアルファは、透過させるスプライトの透過度、デスティネーションアルファは、スプライト透過の目的となるピクセル(背景と考えると、実際には異なるが、わかり易い)の透過度、ということになります。

省略時のデフォルト値: ;変更なし
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

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

BindTime=0でPosTypeを指定していてもPosType=Leftとして扱われるようになってしまうため、スプライトが画面外に消える・消えなくてもおかしな位置に表示される可能性がある。
未検証:AfterImage系統と異なり、ModifyExplodを用いてもRemoveTimeで消えるまでの残り時間は変わらない。
バグ AnimとOwnPalは設定出来ません。
仕様 Pos、Facing、VFacing、Vel、Accel、RandomはPosTypeも一緒に指定しなければ読み込まれない。
SuperMoveTimeやPauseMoveTimeはModifyExplod自体のパラメータが変更されるだけで、対象となるExplodの該当する値を変更することはできない。
警告文
ILLEGAL POSBINDTIME FOR EXPLOD:BindTimeに-2以下
警告文
NEGATIVE EXPLOD RANDOM PARAM:Randomに-1以下
警告文
ILLEGAL REMOVETIME FOR EXPLOD:RemoveTimeに-3以下
警告文
ILLEGAL SHADOW COLOR:Colorに-2以下

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

  • [State ,ModifyExplod]
  • Type = ModifyExplod
  • Trigger1 = 1
  • ID = -1
  • Facing = ;変更なし
  • VFacing = ;変更なし
  • Pos = ;変更なし
  • PosType = P1 ;Version1.1からはNoneに変更されています。
  • Random = ;変更なし
  • Vel = ;変更なし
  • Accel = ;変更なし
  • Scale = ;変更なし
  • BindTime = ;変更なし
  • OnTop = ;変更なし
  • RemoveTime = ;変更なし
  • SuperMoveTime = ;変更なし
  • SprPriority = ;変更なし
  • PauseMoveTime = ;変更なし
  • SuperMove = ;変更なし
  • Shadow = ;変更なし
  • RemoveOnGethit = ;変更なし
  • Trans = ;変更なし
  • Alpha = ;変更なし
  • Persistent = 1
  • IgnoreHitPause = 0

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

ID(1) => Facing(2) => VFacing(3) => Pos(4, 5) => PosType(?) => Random(6, 7) => Vel(8, 9) => Accel(10, 11) => Scale(12, 13) => BindTime(14) => OnTop(15) => RemoveTime(16) => SuperMoveTime(17) => SprPriority(18) => PauseMoveTime(19) => SuperMove(20) => Shadow(21, 22, 23) => RemoveOnGethit(24) => Trans(?) => Alpha(25, 26) => Persistent(?) => IgnoreHitPause(?) =>


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

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

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

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

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