「File-/Stateファイル」の編集履歴(バックアップ)一覧に戻る

File-/Stateファイル - (2013/01/18 (金) 18:06:20) の編集履歴(バックアップ)



■Stateファイル【ステート定義ファイル】

動作を決定するステートの定義を行うファイル。
Commonステートを管理するStCommonもStateファイルの一種。
Common用合わせて12個のファイルまで指定できる。



Stateファイルの中身

ステートの定義を行いステートコントローラーを記述していく。

ステートの種類
  • 番号ステート:0以上のステートのこと。
    • キャラ全員はT-/StateNoを持つ
    • 基本毎フレーム、当する番号のステートを読み込む。
  • 常時監視ステート:-3,-2,-1ステートのこと。詳しくは該当ページ参照。
    • StateNoとは関係なく、基本毎フレーム番号ステートの前に読み込む。
    • ステートを奪われている場合は、-3,-1ステートは読み込まない。
  • ※Pause,SuperPauseでの停止中などの処理については検証不足
    • 多分、キャラの処理がスキップされ、一切読み込まれない?

■ステート定義

  • [Statedef XXX]でXXXに書かれた番号のステートの宣言を行う。
    • もちろん数字以外使えない。また-3以上の番号しか使えない。(上限不明)
    • ステートの範囲は宣言行から他のステート宣言などが行われるか、
      そのファイルの終わりまで。一応[command]の宣言でも終わる。
  • ステートには必ず1個以上ステートコントローラーを記述しなければならない。

Statedefのオプション
このオプションにはほぼ全て対応するステートコントローラーがある。
内容の詳しいことは該当ページを参照。
このオプションは「ステートを移動した時点」で一度だけ処理を行う。
性質上常時監視ステートでは使えない。
  • Type=U:T-/StateTypeの指定。省略時:Sのため、省略しないほうが良い。
    • S、C、A、L:それぞれのStatetypeになる。
    • U:変更せず、直前までのStateTypeを継続させる。
  • Movetype=U:T-/Movetypeの指定。省略時:I、攻撃・くらいステートでは要注意。。
    • I、A、H:それぞれのMovetypeになる。
    • U:変更せず、直前までのMoveTypeを継続させる。
  • Physics=U:Physicsの指定。省略しないほうが良い。
    • S、C、A、N:それぞれのPhysicsになる。詳しくはVelとPhysicsのページ参照。
    • U:変更せず、直前までのPhysicsを継続させる。
  • Type(StateType)、MoveType、Physicsは、SC-/StateTypeSetとほぼ同じ。
  • Anim=0:SC-/ChangeAnimと同じ。省略時変更なし。
  • VelSet=X,Y:SC-/VelSetと同じだが、パラメーターは一行。省略時変更なし。
  • Ctrl=1:SC-/CtrlSetと同じ。省略時変更なし。
  • PowerAdd=1000:SC-/PowerAddと同じ。省略時変更なし。
  • Juggle=0;Juggle用数値。※省略時、以前指定された数値から変更されない
  • FaceP2=0:省略時0。1の場合、相手側へ自動振り向き?
  • SprPriority=0:SC-/SprPriorityと同じ。※省略時不明
  • Persist系・直前のステートの情報を維持する。省略時0
  • HitDefPersist=0:1の場合、指定されていたSC-/HitDefを持続
  • MoveHitPersist=0:1の場合、T-/MoveContact,T-/MoveHit,T-/MoveGuardedを持続。
  • HitCountPersist=0:1の場合、T-/HitCountを持続。


■Lv1-記述例・補足・注意点


ステートの番号が重複した場合
  • 同じファイル同士での重複は先に、上側に記述されている方が優先される。
  • ファイル同士の場合は「St」「St0~9」「Cmd」「StCommon」の順で優先。
  • Common1.cnsを読み込んでも、同じ番号のステートをStで書いておけば、
    Commonステートを使わずキャラ側の固有Commonを使用できる。
  • 優先されたステート1組のみを読み込み、それ以外の重複ステートは無視される。

※検証不足
番号ステートでのChangeStateでも自動振り向きが発生する関係上、
オプションのtype指定などを省略してしまうと、
自動振り向きの条件が満たされることがあり、思いがけず振り向くケースがある。
特に迂回専用のステートで起きやすいため、注意したい。

+ 記述例・Common
記述例・Common

[Statedef 0]
type = S
physics = S
sprpriority = 0

[State 0, 1]
type = ChangeAnim
trigger1 = Anim != 0 && Anim != 5
trigger2 = Anim = 5 && AnimTime = 0 ;Turn anim over
value = 0

[State 0, 2]
type = VelSet
trigger1 = Time = 0
y = 0

[State 0, 3] ;Stop moving if low velocity or 4 ticks pass
type = VelSet
trigger1 = abs(vel x) < 2
trigger2 = Time = 4
x = 0

[State 0, 4] ;Are you dead?
type = ChangeState
trigger1 = !alive
value = 5050

  • StateDefのオプションで、Type=S、Physics=Sを指定。
    • Movetypeが省略されているため、Movetype=Iになる。
  • ステートコントローラーは4つ指定されている。
    • ちなみに、[State X, X]はそれぞれの数値に設定する必要はない。
    • ただし構文のエラーで落ちた場合、
      そこに書かれた名称が表示されることもあるため、
      なるべく区別しやすいように名前をつけておくと良い。

なおステートが次のステートの宣言やファイルの終わりまで続くのと同様、
ステートコントローラー自体も、次の宣言までが範囲となっている。
分かりやすいよう記述はまとめるべきだが。