StagingLightシーケンス仕様
シーケンスファイルは基本的に、/Minecraft/slSequenceに配置する
コンフィグで変更することも可能
ファイルフォーマット
拡張子:.txt または .sls
文字コード:UTF-8
大文字と小文字はすべて区別されません
行頭のスペースタブは無視されます
//から始まる行はコメントとして扱われ無視されます
命令形式
code: sls
Rotate yaw=180 pitch+=20
のように
code: sls
<コマンド> <引数名><代入タイプ><値/変数名> <引数><代入タイプ><値/変数名> ...
の形式で記述する
引数はどの順で記述しても動作は変わらない
代入タイプはVer3.0の時点では、
table: 代入タイプ
= 代入(絶対指定)
+= 加算(相対指定)
-= 減算(相対指定)
の3種類
=30とした場合は、その引数に対応するライトの状態値が30になる
+=20とした場合は、その引数に対応するライトの状態値に30を加算する
値の上限を超えていた場合は、上限の値にセットされる
変数
具体的な数字の代わりに、変数を用いることができる
変数はVarコマンドで次のようにセットできる
code: sls
Var hoge=30 huga-=10
hogeには30の値が入り、hugaの値は10減少する
また、システム変数も存在する
table: システム変数
変数名 値 説明
_t 20 指定しなかったときに参照される実行tick数
_tscale 1 実行tick数の倍率
これらの_から始まる変数は、シーケンス開始時に自動的に定義され、それ以降のコマンドで内部的に参照される
Varコマンドで上書きすることも可能で、たとえば
code: sls
Var _tscale=3
とすると、それ以降のコマンドの実行時間が3倍になる
繰り返し
RepeatコマンドとLoopコマンドでコマンドを囲うと繰り返しの命令ができる
code: sls
Repeat times=8
Rotate yaw+=45
Loop
上記のように、繰り返し回数はRepeatコマンドのtimes引数で指定する
ここでの繰り返し回数指定には変数を使用できない
(繰り返しの展開はシーケンスファイル読み込み時に行われるため)
2重ループ、3重ループも可能
インデントはシーケンス上では無視されるが、読みやすさのためにつけることを推奨
シーケンスの流れ
コマンドは基本的に上から順に逐一実行される
また、実行時間を持つコマンドは引数 t と引数 lock で次のコマンドに処理が移るまでの動作を記述できる
引数 t
そのコマンド自体の継続tick数を決める
指定しなかった場合は_t変数の値が使用される
引数 lock
次のコマンドに処理が移るまでのtick数を決める
指定しなかった場合は引数 t で指定される継続時間と同じ値になる
よって、引数 t より引数 lockを少ない値にすることで、並列的にコマンドを実行させることができる
code: sls
Rotate yaw+=90 t=20 lock=0
Shape d=20 t=20
とすると、RotateコマンドとShapeコマンドは同時に実行が始まり、同時に終わる