MUGEN State Controller

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

Type = BindToTarget

バインド > ターゲットをプレイヤーの位置に固定 | 実装されたバージョン: 2002.04.14 | 対象: 実行者自身

特定のターゲット(プレイヤーの攻撃を受けてヒット・ガード状態になっている敵)を基準にプレイヤーの位置を固定します。

パラメーター

ID = ヒットID (整数)

基準にするターゲットをIDで指定。

ちなみに、ターゲットIDは、自動で割り当てられるIDではなく、ターゲットにされた攻撃のHitDefのIDパラメータで指定した値となります。 よって、大抵の場合、デフォルト値の0となります。

省略時のデフォルト値: -1 ;無差別に1つのターゲットをを選択
Time = 固定時間 (整数)

ターゲットを取ったプレイヤーの固定する時間をフレーム単位で指定します。

-1で効果が永続するので注意。

※60フレーム=1秒

省略時のデフォルト値: 1
Pos = x座標 , y座標 , 基準位置 (浮動小数点数, 浮動小数点数, 文字列)

基準位置("Head","Foot","Mid"のいずれか)の座標を(0,0)として、座標を指定。"Head"の場合は、ターゲットのcnsのhead.pos、"Foot"の場合は、(0,0)座標、"Mid"の場合はMid.posを基準にします。

省略した場合、Targetを実行者から”P2BodyDist x = -1025, P2BodyDist y = -1025”の位置に移動させるため、Posの省略はダメです。

省略時のデフォルト値: ?
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

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

BindToTargetを実行した次のフレームに自身のPosをTargetの基準とした位置に移動する。
”Time-1”フレーム まではTargetの速度が実行者の速度と同じになる。(Time-1フレーム後はTargetが速度を変えない限り、速度はほぼそのままである。)残りのTimeは相手がこちらを基準として動いてしまう。
警告文
Set ILLEGAL TARGET BINDTIME:Timeに-2以下

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

  • [State ,BindToTarget]
  • Type = BindToTarget
  • Trigger1 = 1
  • ID = -1 ;無差別に1つのターゲットをを選択
  • Time = 1
  • Pos = ?
  • Persistent = 1
  • IgnoreHitPause = 0

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

ID(1) => Time(2) => Pos(3, 4, ?) => Persistent(?) => IgnoreHitPause(?) =>


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

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

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

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

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