background: cabinet backdrops for the collab presets #48

Merged
GanYiZhong merged 2 commits from GanYiZhong/YataiDONNijiiro:feat/arcade-collab-packs into main 2026-10-13 04:52:34 +02:00
2 Commits
Author SHA1 Message Date
TaikoZhongandClaude Opus 5.5 8d13c3a393 background: fix the collab bands and backdrops found by a frame compare
Every exported part was compared frame by frame with the cabinet renderer,
which showed:

- donbg bands: the state groups were taken as the first three root sprites
  (normal / fever / miss) and root-level shapes were dropped, so mario's
  and lovelive's bands lost their sky plate and layers (black band with
  smeared notes).  Groups now come from the root's own `normal` / `fever`
  label frames: shown on the normal frame -> normal; fever only -> fever;
  shown in both and above every fever layer -> top (drawn over the
  crossfade).  Root shapes are included.
- backdrops whose root timeline moves its children (mario's scrolling
  stage) are dumped through the root, so the scroll is kept.
- a normal backdrop's switched-off layer (alpha 0 on the root, e.g. imas's
  spotlight cones) stays hidden.
- loops longer than the old 2700-frame dump (mario 3840, i7 natsu 1604) are
  dumped twice over and kept exact instead of being cut at 1920 frames.
- colour-multiply placements (tinted spotlights, bands) carry cr/cg/cb and
  are drawn with `color`; the donbg miss-streak darkening now multiplies an
  existing colour instead of replacing it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 17:05:39 +08:00
TaikoZhongandClaude Opus 5.5 f239bc156c background: cabinet backdrops for the collab presets
Collab songs (#SCENEPRESET) now get their own cabinet backdrop, replayed by
the same objects as the default backdrop instead of the parent's collab art:

  miku, toho, gumi, ia, lovelive, i7 (id7 / tri / rev / natsu), imas
  (765 / cg / ml / sidem), yo-kai (base / matsuri / hatsukoi / tokoroten /
  yougota), mario, a3

Each preset is a pack in bg_data/collab_packs.lua naming its parts: donbg
band (1P and 2P), normal and clear backdrops, troupe, stand under the
troupe, drumroll effect and soul-max crowd.  Shared parts (the i7, imas
and yo-kai families) are shared the way the cabinet shares them.  A pack is
used only when every part it names is present, otherwise the preset falls
back to the collab script as before.  Packs also apply in 2P (donbg bands).

The objects take a part name where they took a random index:
DonBG.create_named, BGNormal.create_named, BGFever.create_named,
ArcadeDancerGroup.new("<name>"), Fever.Anim.new("<name>").  New:
renda_clip.lua (each hit replays one of the effect's parts along its own
path), and a beat-synced BGAnim for the whole-troupe dancer movies (i7,
a3).  Collab troupes stand in fixed positions (lead in the centre) and
grow from 1 to the full troupe with the gauge.

Exported placements may now mirror: bg_anim, donbg and dancer data carry a
mirror flag (drawn with mirror = horizontal and the origin moved to the
other side of the png).  Existing data has no flag and draws as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 15:55:05 +08:00