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>
34 lines
6.4 KiB
Lua
34 lines
6.4 KiB
Lua
-- GENERATED by scratchpad/lyric/movie_export.py from enso/background/bg_fever_b_004.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] = {960, 544, 480, 272},
|
|
[4] = {600, 544, 300, 272},
|
|
[8] = {600, 544, 300, 272},
|
|
[11] = {904, 544, 452, 272},
|
|
[16] = {960, 544, 480, 272},
|
|
[18] = {960, 544, 480, 272},
|
|
},
|
|
normal = {
|
|
{ shape = 1, period = 80, tx = {726, 0.05, 3, "#-&#+g#*J#).#'o#&R#%6##w#!Z!~>!}!!{c!zF!y*!wk!vN!u2!ss!rV!q:!o{!n_!mB!l&!jg!iJ!h.!fo!eR!d6!bw!aZ!`>!_!!]c![F!Z*!Xk!WN!V2!Ts!SV!R:!P{!O_!NB!M&!Kg!JJ!I.!Go!FR!E6!Cw!BZ!A>!@!!>c!=F!<*!:k!9N!82!6s!5V!4:!2{!1_!0B!/&!-g!,J!+.!)o!(R!'6!%w!$Z!#>!!!"}, ty = 270, sx = 1, sy = 1, rot = 0, a = 1 }, -- #3@0/#1@0
|
|
{ shape = 1, period = 80, tx = {1686, 0.05, 3, "#-&#+g#*J#).#'o#&R#%6##w#!Z!~>!}!!{c!zF!y*!wk!vN!u2!ss!rV!q:!o{!n_!mB!l&!jg!iJ!h.!fo!eR!d6!bw!aZ!`>!_!!]c![F!Z*!Xk!WN!V2!Ts!SV!R:!P{!O_!NB!M&!Kg!JJ!I.!Go!FR!E6!Cw!BZ!A>!@!!>c!=F!<*!:k!9N!82!6s!5V!4:!2{!1_!0B!/&!-g!,J!+.!)o!(R!'6!%w!$Z!#>!!!"}, ty = 270, sx = 1, sy = 1, rot = 0, a = 1 }, -- #3@0/#1@1
|
|
{ shape = 1, period = 80, tx = {-234, 0.05, 3, "#-&#+g#*J#).#'o#&R#%6##w#!Z!~>!}!!{c!zF!y*!wk!vN!u2!ss!rV!q:!o{!n_!mB!l&!jg!iJ!h.!fo!eR!d6!bw!aZ!`>!_!!]c![F!Z*!Xk!WN!V2!Ts!SV!R:!P{!O_!NB!M&!Kg!JJ!I.!Go!FR!E6!Cw!BZ!A>!@!!>c!=F!<*!:k!9N!82!6s!5V!4:!2{!1_!0B!/&!-g!,J!+.!)o!(R!'6!%w!$Z!#>!!!"}, ty = 270, sx = 1, sy = 1, rot = 0, a = 1 }, -- #3@0/#1@2
|
|
{ shape = 4, period = 120, tx = 480, ty = 237, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "-.,V+{+F*k*6)Z)&(J's':&c&*%R$w$B#g#2!V!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"} }, -- #15@1/#6@0/#4@0
|
|
{ shape = 4, period = 120, tx = 480, ty = 237, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-."} }, -- #15@1/#7@0/#4@0
|
|
{ shape = 4, period = 120, tx = 480, ty = 237, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.,V,!+N*w*B)k)6(c(.'V'!&J%w%B$k$6#_#.!V!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"} }, -- #15@1/#7@1/#4@0
|
|
{ shape = 8, period = 120, tx = 847, ty = 237, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,V,!+N*w*B)k)6(c(.'V'!&J%w%B$k$6#_#.!V!!!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.,V,!+N*w*B)k)6(c(.'V'!&J%w%B$k$6#_#.!V!!"} }, -- #15@1/#10@2/#8@0
|
|
{ shape = 11, period = 120, tx = 480, ty = 237, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.,V,!+N*w*B)k)6(c(.'V'!&J%w%B$k$6#_#.!V!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,V,!+N*w*B)k)6(c(.'V'!&J%w%B$k$6#_#.!V!!!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"} }, -- #15@1/#13@3/#11@0
|
|
{ shape = 4, period = 120, tx = 1073, ty = 237, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,V,!+N*w*B)k)6(c(.'V'!&J%w%B$k$6#_#.!V!!!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.,V,!+N*w*B)k)6(c(.'V'!&J%w%B$k$6#_#.!V!!"}, mir = 1 }, -- #15@1/#7@4/#4@0
|
|
{ shape = 8, period = 120, tx = 1440, ty = 237, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "-.,V+{+F*k*6)Z)&(J's':&c&*%R$w$B#g#2!V!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"}, mir = 1 }, -- #15@1/#14@5/#8@0
|
|
{ shape = 8, period = 120, tx = 1440, ty = 237, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-."}, mir = 1 }, -- #15@1/#10@5/#8@0
|
|
{ shape = 8, period = 120, tx = 1440, ty = 237, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.,V,!+N*w*B)k)6(c(.'V'!&J%w%B$k$6#_#.!V!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"}, mir = 1 }, -- #15@1/#10@6/#8@0
|
|
{ shape = 11, period = 120, tx = 1440, ty = 237, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.,V,!+N*w*B)k)6(c(.'V'!&J%w%B$k$6#_#.!V!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,V,!+N*w*B)k)6(c(.'V'!&J%w%B$k$6#_#.!V!!!!$k'V*B-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"}, mir = 1 }, -- #15@1/#13@7/#11@0
|
|
{ shape = 16, period = 80, tx = 480, ty = 270, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "!!!!!!!!!!!!!!!!!!!!!F!g#.#N#s$6$Z${%B%c&*&J&o'2'V'{(>(c)&)J)k*2*R*w+:+_,!,F,g-.,g,F,!+_+:*w*R*2)k)J)&(c(>'{'V'2&o&J&*%c%B${$Z$6#s#N#.!g!F!!!!!!!!!!!!!!!!!!!!!!"} }, -- #21@2/#20@0/#16@0
|
|
{ shape = 18, period = 80, tx = 480, ty = 270, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "-.,g,B,!+Z+6*o*J*&)c)>(w(R(.'g'F'!&Z&6%o%J%*$c$>#w#R#.!k!F!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!F!g#.#N#s$6$Z${%B%c&*&J&o'2'V'{(>(c)&)J)k*2*R*w+:+_,!,F,g-."} }, -- #21@2/#20@0/#18@1
|
|
{ shape = 16, period = 80, tx = 1440, ty = 270, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "!!!!!!!!!!!!!!!!!!!!!F!g#.#N#s$6$Z${%B%c&*&J&o'2'V'{(>(c)&)J)k*2*R*w+:+_,!,F,g-.,g,F,!+_+:*w*R*2)k)J)&(c(>'{'V'2&o&J&*%c%B${$Z$6#s#N#.!g!F!!!!!!!!!!!!!!!!!!!!!!"} }, -- #21@2/#20@1/#16@0
|
|
{ shape = 18, period = 80, tx = 1440, ty = 270, sx = 1, sy = 1, rot = 0, a = {0, 0.0009765625, 2, "-.,g,B,!+Z+6*o*J*&)c)>(w(R(.'g'F'!&Z&6%o%J%*$c$>#w#R#.!k!F!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!F!g#.#N#s$6$Z${%B%c&*&J&o'2'V'{(>(c)&)J)k*2*R*w+:+_,!,F,g-."} }, -- #21@2/#20@1/#18@1
|
|
},
|
|
}
|