■Var 変数(Variable)

Varは【中に数値を入れ、別の場所で引き出せる情報】のこと。
特殊な情報を管理したり、数値計算に利用したりする。
なお単純にVarと呼ぶ場合は大体T-/Var()ではなく変数自体のことを指す。
ちなみに代入とは変数に(新しい)情報を入れること

簡単な概要
  • 例えば、SC-/VarSetでvar(23)に230を代入したとする。
  • そうすると数値情報としてvar(23)と記入すると代入した230の値を返す。
    • 新しく代入すれば新しく代入した数値を返す。
  • ( var(23) < 300 )という条件式ならvar(23)に代入されている数値が
    300未満で真、300以上で偽となり、代入数値に従う条件式となる。

Varの種類
  • T-/Var()
    • Int型数値を記録する変数。0番~59番までの60個分の変数スロットがある。
    • int型のため、記録できる数値は最大2147483647から最小-2147483648まで。
  • T-/FVar()
    • Float型数値記で録する変数。0~39番までの40個分の変数スロットがある。
    • Float型なので小数単位も利用できるが、桁数が多いと細かい数値が浮動する。
  • T-/SysVar()T-/SysFVar()、システム用の変数。
    • 数値の型はVar,Fvarと同じ。スロットは0~4の5個ずつ計10個。
    • Commonステートで既に使われている分以外は基本的に利用されない。
  • 基本のVar,Fvarは合計で100個、システム用に計10個。
    • これらの変数スロットは1キャラ毎に計110個ずつ保有している。
    • プレイヤーキャラはもちろん、SC-/HelperもVarを持っている。
      • 変数スロットはそれぞれで個別管理され他に干渉されることはない。

Var代入
Varを変更できるステートコントローラー
  • SC-/VarSet:指定した変数へ、指定した数値を代入する。
  • SC-/VarAdd:指定した変数に、指定した数値を加算代入する。
  • SC-/VarRandom:指定した変数へ、指定した範囲の数値をランダムに入れる。
  • SC-/VarRangeSet:指定した範囲の変数に、指定した数値を代入する。
  • SC-/ParentVarSetSC-/Helperから親の指定した変数へ数値を代入する。、
  • SC-/ParentVarAddSC-/Helperから親の指定した変数へ数値を加算する。
  • 演算子「:=」:条件式中のVarset。SysVar,SysFvarには使用できない。
これら以外ではラウンドの持ち越し関係以外でVarが変動することは無い。

Varのラウンド持ち越し
ラウンドをまたぐと変数はFile-/CNSファイルにある
IntPersistIndexFloatPersistIndexの設定値に従い変数を0にリセットする。
  • リセットは「指定値より小さい番号の変数スロットを全てリセットする」
    • 例えば設定値が30の場合、0~29までがリセット、30~が持ち越される。
なおSysVar、SysFvarは一切持ち越されない
当然ながら別々の試合で変数を持ち越すことも不可。
:|
SC-/Helperもラウンド終了時点で消去されるため変数の持ち越しは不可。


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

記述例

[State -3]
Type = Varset
Trigger! = StateNo = 5120
var(21) = 0
[State -3]
Type = Varadd
Trigger! = 1
var(21) = 1
  • 起き上がり後のフレーム数を確認する変数を作る。
    • 起き上がりステートなら変数を0にする。
    • 加えて毎フレーム+1ずつしていく。
      • これにより起き上がり後、次の起き上がりまで増えていく。

補足
  • 細かくは実際の制作中、特定の情報を管理したい時に利用する。
    • 基本とにかく実際の記述を見て、実際に書いてみて覚える。
  • なお変数スロットを入れる引数部分は数値で認識する。
    • その為、算式や条件式を加えることも一応可能。
      • 例:Vara( var(0) + (Enemy,ID != EnemyNear,ID) )
      • 基本的な管理には使わないが、特殊な管理の時に利用される。

注意点
  • 変数スロットが被ってしまうと、条件式がうまくいかなくなる。
    • 変数スロットはテキストファイルなどに表にしておいたほうが良い。
  • 変数スロットは合計100しかなく考えなしに利用しているとすぐに尽きる。
  • 使用する変数の数を抑えるには
    T-/Floor()他を利用した桁数分割管理や、
    bit演算を利用したbit桁数分割管理を利用することになる。

TempVarについて
  • 一時的に使用する変数としてTempVarを用意しておくと
    細かい変数処理をまとめることもできる。2~3個用意しておきたい。
  • Tempの種類
    • A.該当ステコンでのみ使用する計算補助用TempVar
    • B.該当フレームでのみ使用する条件式補助用TempVar
    • C.該当ステートで使用しつづける処理補助用TempVar
ABは別々の場所であれば同じ変数スロットを使いまわせる。
複雑な計算式ではVarに入れないと使えないケースもあり重宝する。
Cは別々のステートであれば同じ変数スロットを使いまわせる。
なおCommonステートでのSysvarはBCの使い方そのままである。


+ ■変数スロット表

;■■■スロット一覧
;■Varスロット
;;Var(0) =
;;Var(1) =
;;Var(2) =
;;Var(3) =
;;Var(4) =
;;Var(5) =
;;Var(6) =
;;Var(7) =
;;Var(8) =
;;Var(9) =
;Var(10) =
;Var(11) =
;Var(12) =
;Var(13) =
;Var(14) =
;Var(15) =
;Var(16) =
;Var(17) =
;Var(18) =
;Var(19) =
;Var(20) =
;Var(21) =
;Var(22) =
;Var(23) =
;Var(24) =
;Var(25) =
;Var(26) =
;Var(27) =
;Var(28) =
;Var(29) =
;Var(30) =
;Var(31) =
;Var(32) =
;Var(33) =
;Var(34) =
;Var(35) =
;Var(36) =
;Var(37) =
;Var(38) =
;Var(39) =
;Var(40) =
;Var(41) =
;Var(42) =
;Var(43) =
;Var(44) =
;Var(45) =
;Var(46) =
;Var(47) =
;Var(48) =
;Var(49) =
;Var(50) =
;Var(51) =
;Var(52) =
;Var(53) =
;Var(54) =
;Var(55) =
;Var(56) =
;Var(57) =
;Var(58) =
;Var(59) =
;■Fvarスロット
;;Fvar(0) =
;;Fvar(1) =
;;Fvar(2) =
;;Fvar(3) =
;;Fvar(4) =
;;Fvar(5) =
;;Fvar(6) =
;;Fvar(7) =
;;Fvar(8) =
;;Fvar(9) =
;Fvar(10) =
;Fvar(11) =
;Fvar(12) =
;Fvar(13) =
;Fvar(14) =
;Fvar(15) =
;Fvar(16) =
;Fvar(17) =
;Fvar(18) =
;Fvar(19) =
;Fvar(20) =
;Fvar(21) =
;Fvar(22) =
;Fvar(23) =
;Fvar(24) =
;Fvar(25) =
;Fvar(26) =
;Fvar(27) =
;Fvar(28) =
;Fvar(29) =
;Fvar(30) =
;Fvar(31) =
;Fvar(32) =
;Fvar(33) =
;Fvar(34) =
;Fvar(35) =
;Fvar(36) =
;Fvar(37) =
;Fvar(38) =
;Fvar(39) =
;■SysVarスロット
;SysVar(0) = ※Commonステートで使用
;SysVar(1) = ※Commonステートで使用
;SysVar(2) = ※Commonステートで使用
;SysVar(3) =
;SysVar(4) =
;■SysFvarスロット
;SysFvar(0) =
;SysFvar(1) =
;SysFvar(2) =
;SysFvar(3) =
;SysFvar(4) =
コピー&ペーストでテキストファイルに移して使う。


最終更新:2013年03月08日 23:09