グローバル変数

スクリプトのグローバルスコープから直接参照できる変数です。 これらは毎フレーム、実行前にプラグインが設定します。値は読み取り専用です (書き換えても描画には反映されません。描画を変えるには 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ビット演算

これらの中身は 標準ライブラリ にまとめています。

← 構文拡張 obj オブジェクト →