scene と ymm4

scene はシーンの解像度とシーン単位の共有値を、ymm4 はグループ・タイムライン・再生状態などの 環境情報を提供します。

scene — シーン情報

メンバー説明
scene.widthシーンの横解像度(ピクセル)
scene.heightシーンの縦解像度(ピクセル)
scene.cx横解像度の半分(scene.width / 2
scene.cy縦解像度の半分(scene.height / 2
scene.set(name, value)シーン全体で共有する値を保存します
scene.get(name)scene.set() で保存した値を取得します

シーンサイズに対する相対配置

obj.x = scene.cx * obj.track0 / 100

scene.set / scene.get — シーン内の値共有

scene.set(name, value) は、シーンごとに用意された共有領域へ値を保存します。 保存した値は、同じシーンに置かれたすべての Lua スクリプトエフェクトから scene.get(name) で読み取れます。どちらの実行エンジンでも同じ動作をします。

引数説明
name値の名前を文字列で指定します
value保存する値を指定します。数値と文字列と真偽値を保存できます。nil を渡すと値を削除します
-- アイテムA: 自分の座標を共有する
scene.set("leader_x", obj.x)

-- アイテムB: 共有された座標へ追従する
obj.x = scene.get("leader_x") or 0

値が見えるタイミング

制限

ymm4 — 環境・メタ情報

メンバー説明
ymm4.group_index整数グループ制御内の現在のインデックス(0 始まり)
ymm4.group_count整数グループ制御内の総アイテム数
ymm4.group_ratio数値グループ内の進行割合(group_index / group_count
ymm4.timeline_totalframe整数タイムライン全体の総フレーム数
ymm4.timeline_totaltime数値タイムライン全体の総時間(秒)
ymm4.time_ratio数値現在の再生位置の割合(0.0 ~ 1.0)
ymm4.is_saving真偽値動画出力中のみ true
ymm4.is_playing真偽値再生中のみ true
ymm4.is_paused真偽値一時停止中のみ true
ymm4.scene_id文字列現在のシーンを識別する文字列(GUID)

グループ内のインデックスで時間差をつける

local d = ymm4.group_index * 0.1
local p = anim.duration(anim.delay(time, d), 0.5)
obj.alpha = p * 255

グループ内の進行割合で配置をずらす

obj.x = obj.x + ymm4.group_ratio * 400

出力時のみ挙動を変える

if ymm4.is_saving then
    obj.alpha = 255
else
    obj.alpha = 128
end
← anim ライブラリ ピクセル操作 →