Files
YataiDONNijiiro/Scripts/background/bg_data/bg_anim/b_020_n.lua
T
TaikoZhongandClaude Opus 5.5 2f7291d4ec background: pack the cabinet movies' per-frame channels into strings
The collab backdrops (and the default donbg band) replay exported movies
whose per-frame channels were Lua tables of numbers: 38 MB that Lua
compiled on every song start (0.7 s for the TOHO pack; game screen init
1.5-1.6 s -> 0.9-1.0 s in-game), plus ~19 MB of Lua memory per pack.

Each per-frame array is now {base, step, width, "digits"}: value = base +
step * n, n being the frame's width chars in base 92 (printable ASCII
without '"' and '\'). One string constant compiles in a fraction of the
time; bg_objects/packed_channel.lua decodes the frame being drawn.
Quantization: 0.05 px, 0.005 deg, 5e-5 scale, 1/1024 alpha and tint;
every value of all 77 files checked against the original within half a
step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 09:00:18 +08:00

17 lines
902 B
Lua

-- GENERATED by scratchpad/lyric/movie_export.py from enso/background/bg_nomal_b_020.nulm -- do not hand-edit.
-- 1920x540 stage @60fps (screen y 540). Per leaf: shape, period, channels tx/ty/sx/sy/rot/a
-- (number = constant, table = per frame of the loop; a = 0 means not placed), optional on/on_period mask.
-- shapes[c] = {w, h, ox, oy}: png size and the shape origin inside it.
return {
shapes = {
[1] = {1920, 540, 960, 270},
[3] = {1920, 264, 960, 132},
[6] = {1920, 540, 960, 270},
},
normal = {
{ shape = 1, period = 1, tx = 960, ty = 270, sx = 1, sy = 1, rot = 0, a = 1 }, -- #8@0/#1@0
{ shape = 3, period = 20, blend = 8, tx = 960, ty = 120, sx = 1, sy = 1, rot = 0, a = {0.551, 0.0009765625, 2, "#_#J#6#!!k!V!^!k!s#!#)!s!^!J!5!!!J!o#:#_"} }, -- #8@0/#5@1/#3@0
{ shape = 6, period = 1, tx = 960, ty = 270, sx = 1, sy = 1, rot = 0, a = 1 }, -- #8@0/#6@2
},
}