MUGEN State Controller

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

Type = Trans

色の操作 > 一時的にスプライトを透過します | 実装されたバージョン: 2002.04.14 | 対象: 実行者自身

Airファイルの透過指定を1フレームのみ変更します。

パラメーター

Trans = 透過型 (文字列)

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

透過の種類 効果
Default 何も処理しない。多分Noneと同じ処理?パラメータは読み込まれる。
None 透過処理無し。Airで透過処理している時無効にできる。
Add 画像を半透明にする。アルファ値256,256の加算透過。
Add1 Addより暗い感じの半透明にする。アルファ値256,128の加算透過。
Sub 画像を影のように半透明にする。減算透過。
AddAlpha Alphaとセットで使用します。
省略不可
Alpha = ソースアルファ, デスティネーションアルファ (整数, 整数)

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

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

最小値: 0 ;-256 , 最大値: 256
省略時のデフォルト値: 256, 0
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

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

AddAlpha・Add1は影と反射に影響を及ぼします。
Version1.1から AddAlpha・Add1でAlphaのソースアルファに負数が使えるようになりました。負数で透過されます。

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

  • [State ,Trans]
  • Type = Trans
  • Trigger1 = 1
  • Trans = ?
  • Alpha = 256, 0
  • Persistent = 1
  • IgnoreHitPause = 0

コードサンプル

  • [StateDef -2]
  • [State ]
  • Type = Null
  • Trigger1 = !var(10)
  • Trigger1 = var(10):=1
  • Trigger1 = var(11):=1
  • [State ]
  • Type = Null
  • Trigger1 = var(10)>256
  • Trigger1 = var(11):=-1
  • Trigger2 = var(10)<1
  • Trigger2 = var(11):=1
  • [State ]
  • Type = Null
  • Trigger1 = var(11)=1
  • Trigger1 = var(10):=var(10)+3
  • Trigger2 = var(11)=-1
  • Trigger2 = var(10):=var(10)-3
  • [State ,Trans]
  • Type = Trans
  • Trigger1 = 1
  • Trans = AddAlpha
  • Alpha = var(10),125
  • Persistent = 1
  • IgnoreHitPause = 0

  • [StateDef -2]
  • [State ]
  • Type = Null
  • Trigger1 = !var(10)
  • Trigger1 = var(10):=1
  • Trigger1 = var(11):=1
  • [State ]
  • Type = Null
  • Trigger1 = var(10)>256
  • Trigger1 = var(11):=-1
  • Trigger2 = var(10)<1
  • Trigger2 = var(11):=1
  • [State ]
  • Type = Null
  • Trigger1 = var(11)=1
  • Trigger1 = var(10):=var(10)+3
  • Trigger2 = var(11)=-1
  • Trigger2 = var(10):=var(10)-3
  • [State ,Trans]
  • Type = Trans
  • Trigger1 = 1
  • Trans = AddAlpha
  • Alpha = 125,var(10)
  • Persistent = 1
  • IgnoreHitPause = 0

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

Trans(?) => Alpha(1, 2) => Persistent(?) => IgnoreHitPause(?) =>


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

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

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

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

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