グローバル変数
スクリプトのグローバルスコープから直接参照できる変数です。
これらは毎フレーム、実行前にプラグインが設定します。値は読み取り専用です
(書き換えても描画には反映されません。描画を変えるには obj を使います)。
時間とフレーム
| 変数 | 型 | 説明 |
|---|---|---|
time | 数値 | アイテム先頭からの経過時間(秒)。obj.time と同じ |
frame | 整数 | アイテム先頭からの現在フレーム番号。obj.frame と同じ |
totalframe | 整数 | アイテムの総フレーム数。obj.totalframe と同じ |
framerate | 整数 | フレームレート(fps)。obj.framerate と同じ |
timelineframe | 整数 | タイムライン先頭からの絶対フレーム番号 |
timelinetime | 数値 | タイムライン基準の現在時間(秒) |
layer | 整数 | 配置されているレイヤー番号。obj.layer と同じ |
time はアニメーションの基準としてもっともよく使います。
アイテム内の進行割合(0.0 ~ 1.0)が欲しいときは obj.t を使います。
obj.rz = time * 90
obj.alpha = obj.t * 255
色
| 変数 | 型 | 説明 |
|---|---|---|
color | 数値 | Color パラメータの色を 0xRRGGBB の整数で表す |
color は、Color パラメータが表示されているとき(スクリプトで color を使うか、
--color@ 指定子で宣言したとき)にのみ設定されます。
各成分は次のように取り出せます。
local r = bit32.rshift(bit32.band(color, 0xFF0000), 16)
local g = bit32.rshift(bit32.band(color, 0x00FF00), 8)
local b = bit32.band(color, 0x0000FF)
テーブル
主要な機能は、グローバルに置かれた次のテーブルにまとまっています。
| テーブル | 役割 | 参照 |
|---|---|---|
obj | 描画対象の座標・回転・拡大率・不透明度と各種関数 | obj / obj の関数 |
anim | 補間・波・ノイズ・色変換などのアニメーション関数 | anim |
scene | シーンの解像度と、シーン全体で共有する値 | scene |
ymm4 | グループ・タイムライン・再生状態などの環境情報 | ymm4 |
グローバル関数(AviUtl 互換)
以下の関数はグローバルスコープから直接呼び出せます。 MoonSharp とネイティブのどちらのエンジンでも同一の結果を返します。
| 関数 | 説明 |
|---|---|
RGB(r, g, b) | RGB 各要素(0 ~ 255)を 1 つの色情報(0xRRGGBB)へ合成 |
RGB(col) | 色情報を r, g, b の 3 値へ分解 |
RGB(r1, g1, b1, r2, g2, b2) | オブジェクトの時間経過(obj.time / obj.totaltime)で一色目から二色目へ直線的に変化する色情報を返す |
HSV(h, s, v) / HSV(col) / HSV(h1, s1, v1, h2, s2, v2) | 色相(0 ~ 360)・彩度(0 ~ 100)・明度(0 ~ 100)と色情報の相互変換。引数の意味は RGB() と同様 |
OR(a, b) / AND(a, b) / XOR(a, b) | 32bit 整数のビット演算。小数は 0.5 ちょうどまでを切り捨てて整数化(2.50 → 2、2.51 → 3) |
SHIFT(a, shift) | 算術シフト。shift が正で左シフト、負で右シフト |
debug_print(text) | 文字列を OutputDebugString() へ送信。DebugView などで確認できる。スクリプトの実行エラーも自動で送信される |
col = RGB(64, 192, 255) -- 0x40C0FF
r, g, b = RGB(0x0080FF) -- 0, 128, 255
col = HSV(60, 100, 100) -- 0xFFFF00
result = SHIFT(5, 3) -- 40
debug_print(string.format("x = %d", obj.x))
標準ライブラリのテーブルもグローバルに置かれています。
| テーブル | 役割 |
|---|---|
math | 数学関数 |
string | 文字列操作 |
table | テーブル操作 |
bit32 | ビット演算 |
これらの中身は 標準ライブラリ にまとめています。