feat(logo): timeline lineal de 7 fases amb glitch tail i durades al YAML

This commit is contained in:
JailDesigner committed 2026-05-07 16:44:34 +02:00
1 parent 7d5a4cee8e
commit f10671d9c0
7 files changed
+204 -76

No files matched your search

+29 -6
View File
@@ -360,14 +360,37 @@ namespace Defaults {
} // namespace HeatHaze
} // namespace Title
// Escena LOGO (logotip de l'editora). El revelat del logo a la
// fase SCAN imita un escaneig CRT amb una banda lluminosa que
// baixa de dalt a baix, glitch al voltant de la banda i bursts
// VHS ocasionals damunt la part ja revelada. Quan la banda toca
// el peu del logo, un flash blanc breu remata l'efecte i s'entra
// a MIDDLE (logo estable).
// Escena LOGO (logotip de l'editora). La timeline és lineal i
// composta per fases independents amb durades configurables des
// del YAML (`logo.timeline.*`). L'efecte CRT de revelat (scan
// line + glitch tail) ho gestiona `Effects::ScanReveal` i les
// seves constants viuen al sub-namespace `Scan` d'aquí baix.
namespace Logo::Timeline {
// Negre inicial abans que comence el revelat. Permet entrar
// a l'escena des d'una transició/fade extern sense talls.
constexpr int BLACK_INTRO_MS = 2000;
// Silenci amb logo estable abans d'arrencar la música del
// títol — espai per "respirar" entre el glitch i la pista.
constexpr int HOLD_SILENT_MS = 1000;
// Logo estable amb música del títol sonant. Quan acaba,
// comença el fade-out.
constexpr int HOLD_WITH_MUSIC_MS = 2500;
// Fade lineal a negre.
constexpr int FADE_OUT_MS = 500;
// Negre final amb música encara sonant — la TitleScene
// continuarà la pista de manera idempotent.
constexpr int BLACK_OUTRO_MS = 1000;
} // namespace Logo::Timeline
// Constants del revelat CRT pròpiament dit. La banda lluminosa
// baixa de dalt a baix amb glitch al seu voltant i bursts VHS
// ocasionals damunt la part ja revelada. Quan la banda toca el
// peu del logo, un flash blanc remata l'efecte; després un
// "tail" manté el logo visible amb bursts durant `TAIL_GLITCH_MS`
// abans que `isFinished()` retorne true.
namespace Logo::Scan {
constexpr int DURATION_MS = 1500;
constexpr int TAIL_GLITCH_MS = 1500;
constexpr int BAND_HEIGHT_PX = 4;
constexpr int BAND_ALPHA = 200;
// Pulse de brillantor sinusoidal sobre l'alpha base de la