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>
50 lines
5.9 KiB
Lua
50 lines
5.9 KiB
Lua
-- GENERATED by scratchpad/lyric/movie_export.py from enso/background/bg_nomal_a_03.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] = {12, 540, 4, 180},
|
|
[3] = {264, 264, 132, 132},
|
|
[6] = {264, 264, 132, 132},
|
|
[9] = {1920, 540, 960, 270},
|
|
[11] = {264, 264, 132, 132},
|
|
[14] = {264, 264, 132, 132},
|
|
[17] = {1920, 540, 640, 180},
|
|
[19] = {1920, 540, 960, 270},
|
|
[21] = {1920, 540, 0, 0},
|
|
[24] = {1920, 540, 960, 270},
|
|
[26] = {1920, 540, 960, 270},
|
|
},
|
|
normal = {
|
|
{ shape = 1, period = 1, tx = 640, ty = 180, sx = 160, sy = 1, rot = 0, a = 1 }, -- #1@0
|
|
{ shape = 3, period = 60, blend = 8, tx = 740, ty = 330, sx = 1, sy = 1, rot = 0, a = {0.079, 0.0009765625, 1, "LJIHFECBA?><;:864320/-,+)(&%$!$%&()*,-/0134589:<=??ACDEFHJJL"} }, -- #5@1/#3@0
|
|
{ shape = 3, period = 60, blend = 8, tx = 1170, ty = 330, sx = 1, sy = 1, rot = 0, a = {0.079, 0.0009765625, 1, "LJIHFECBA?><;:864320/-,+)(&%$!$%&()*,-/0134589:<=??ACDEFHJJL"} }, -- #5@2/#3@0
|
|
{ shape = 6, period = 60, blend = 8, tx = 700, ty = 270, sx = 1, sy = 1, rot = 0, a = {0.079, 0.0009765625, 1, "LJIHFECBA?><;:864320/-,+)(&%$!$%&()*,-/0134589:<=??ACDEFHJJL"} }, -- #8@3/#6@0
|
|
{ shape = 6, period = 60, blend = 8, tx = 1210, ty = 270, sx = 1, sy = 1, rot = 0, a = {0.079, 0.0009765625, 1, "LJIHFECBA?><;:864320/-,+)(&%$!$%&()*,-/0134589:<=??ACDEFHJJL"} }, -- #8@4/#6@0
|
|
{ shape = 9, period = 1, tx = 960, ty = 270, sx = 1, sy = 1, rot = 0, a = 1 }, -- #9@5
|
|
{ shape = 1, period = 1, tx = 640, ty = 180, sx = 160, sy = 1, rot = 0, a = 0.199 }, -- #1@6
|
|
{ shape = 6, period = 60, blend = 8, tx = 769.45, ty = 147.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #8@7/#6@0
|
|
{ shape = 11, period = 60, blend = 8, tx = 865.85, ty = 147.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #13@8/#11@0
|
|
{ shape = 3, period = 60, blend = 8, tx = 1065.5, ty = 147.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #5@9/#3@0
|
|
{ shape = 14, period = 60, blend = 8, tx = 976.55, ty = 147.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #16@10/#14@0
|
|
{ shape = 6, period = 60, blend = 8, tx = 1147, ty = 147.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #8@11/#6@0
|
|
{ shape = 6, period = 60, blend = 8, tx = 1104.2, ty = 287.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #8@12/#6@0
|
|
{ shape = 11, period = 60, blend = 8, tx = 1025.4, ty = 287.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #13@13/#11@0
|
|
{ shape = 6, period = 60, blend = 8, tx = 930.5, ty = 287.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #8@14/#6@0
|
|
{ shape = 14, period = 60, blend = 8, tx = 827.95, ty = 287.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #16@15/#14@0
|
|
{ shape = 3, period = 60, blend = 8, tx = 806.55, ty = 389.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #5@16/#3@0
|
|
{ shape = 6, period = 60, blend = 8, tx = 960.55, ty = 389.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #8@17/#6@0
|
|
{ shape = 11, period = 60, blend = 8, tx = 1118.4, ty = 389.9, sx = 0.82, sy = 0.82, rot = 0, a = {0.159, 0.0009765625, 1, "vsonkhe`_[XUQPMJGEB?<9630-*(%!%&*-0149<=@CGHKNPSVY[_bfhknqsv"} }, -- #13@18/#11@0
|
|
{ shape = 17, period = 1, tx = 640, ty = 180, sx = 1, sy = 1, rot = 0, a = 1 }, -- #17@19
|
|
{ shape = 19, period = 1, tx = 960, ty = 270, sx = 1, sy = 1, rot = 0, a = 1 }, -- #19@20
|
|
{ shape = 21, period = 30, blend = 8, tx = 0, ty = -2.25, sx = 1, sy = 1, rot = 0, a = {0.21, 0.0009765625, 2, "#U#J#A#7#+#!!u!l!`!T!L!A!5!-!!!+!5!?!J!R!Z!g!o!z#%#-#9#A#L#U"} }, -- #23@21/#21@0
|
|
{ shape = 3, period = 60, blend = 8, tx = 1460, ty = 69.75, sx = 1, sy = 1, rot = 0, a = {0.24, 0.0009765625, 2, "#C#>#9#7#2#-#(##!~!y!u!p!k!i!d!^!Y!V!R!M!H!D!A!=!8!2!-!+!&!!!&!)!-!2!8!:!?!D!H!K!O!T!Y![!a!f!i!n!r!w!y!~#&#*#-#2#7#<#>#C"} }, -- #5@22/#3@0
|
|
{ shape = 3, period = 60, blend = 8, tx = 460, ty = 69.75, sx = 1, sy = 1, rot = 0, a = {0.24, 0.0009765625, 2, "#C#>#9#7#2#-#(##!~!y!u!p!k!i!d!^!Y!V!R!M!H!D!A!=!8!2!-!+!&!!!&!)!-!2!8!:!?!D!H!K!O!T!Y![!a!f!i!n!r!w!y!~#&#*#-#2#7#<#>#C"} }, -- #5@23/#3@0
|
|
{ shape = 3, period = 60, blend = 8, tx = 1115, ty = 411.75, sx = 0.64, sy = 0.64, rot = 0, a = {0.24, 0.0009765625, 2, "#C#>#9#7#2#-#(##!~!y!u!p!k!i!d!^!Y!V!R!M!H!D!A!=!8!2!-!+!&!!!&!)!-!2!8!:!?!D!H!K!O!T!Y![!a!f!i!n!r!w!y!~#&#*#-#2#7#<#>#C"} }, -- #5@24/#3@0
|
|
{ shape = 3, period = 60, blend = 8, tx = 805, ty = 411.75, sx = 0.64, sy = 0.64, rot = 0, a = {0.24, 0.0009765625, 2, "#C#>#9#7#2#-#(##!~!y!u!p!k!i!d!^!Y!V!R!M!H!D!A!=!8!2!-!+!&!!!&!)!-!2!8!:!?!D!H!K!O!T!Y![!a!f!i!n!r!w!y!~#&#*#-#2#7#<#>#C"} }, -- #5@25/#3@0
|
|
{ shape = 24, period = 1, tx = 960, ty = 270, sx = 1, sy = 1, rot = 0, a = 1 }, -- #24@26
|
|
{ shape = 26, period = 30, blend = 8, tx = 960, ty = 270, sx = 1, sy = 1, rot = 0, a = {0.21, 0.0009765625, 1, "jd^ZTOJGA<50-(!(+059?DGLRTZ`dj"} }, -- #28@27/#26@0
|
|
},
|
|
}
|