MUGEN State Controller

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

Type = EnvShake

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


画面を揺らします。ただし、ライフバーは揺れません。

次のフレームからTime-1フレーム後まで作用。1フレーム毎に実行すると、前回の効果に上書きされるため、内容が同じだと画面が揺れません。

揺れは正弦波であり、初期位相Phase°、角周波数Freq°/フレーム、振幅Amplピクセル。(正弦波は円周上を回る点を縦軸に映した影と見ることが出来、円の半径をAmpl、1フレームに反時計回りに回る角度をFreq、スタート地点をPhaseと考えることが出来る。)



バージョンごとの変更点・バグ・エラー・仕様

内容
警告文NEGATIVE FREQ FOR ENVSHAKE: Freqに-1以下


パラメーター

Time = 揺れる時間 (整数)

揺れの持続時間をフレーム単位で指定。

※60フレーム=1秒

最小値: 0 ;効果なし , 最大値: 2147483647
省略不可
Ampl = 揺れ幅 (整数)

揺れ幅をピクセル寸法で指定。負数を指定すると、最初、下方向に揺れます。

ハイレゾ(1024×768ドット以上の解像度)のステージでは背景の振れ幅は半減します。

省略時のデフォルト値: -4 ;ただし、画面の縦が240ピクセル:-4, 480ピクセル:-8, 720ピクセル:-16
Phase = 位相開始位置 (浮動小数点数)

揺れ幅をどこから始めるか指定出来ます。

省略時のデフォルト値: 0 ;ただし、Freqが90以上の場合、90になります。
Freq = 揺れの速度 (浮動小数点数)

揺れるスピードを、0(固定),1(低速)~180(高速)の間で指定。180を「中心からズレて中心に戻るまで」とした速度数値。半周が180なので一周=360。360/Freq値=一周にかかるフレーム数。

最小値: 0 , 最大値: 180
省略時のデフォルト値: 60
Persistent = HitPause無視時間 (整数)

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 ,EnvShake]
  • Type = EnvShake
  • Trigger1 = 1
  • Time =
  • Ampl = -4 ;ただし、画面の縦が240ピクセル:-4, 480ピクセル:-8, 720ピクセル:-16
  • Phase = 0 ;ただし、Freqが90以上の場合、90になります。
  • Freq = 60
  • Persistent = 1
  • IgnoreHitPause = 0


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

Time(1) => Ampl(2) => Phase(3) => Freq(4) => Persistent(?) => IgnoreHitPause(?) =>


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

問題点があればGithubTwittersuteadddayov@gmail.comにご報告下さい。また、ページ編集にご協力いただける方を募集しております。お気軽にご連絡下さい。Please report any problems to the Github · Twitter · suteadddayov@gmail.com. In addition, we are looking for the person who cooperate with page editing and translation. Please do not hesitate to contact me.