Soundeffekte
Alle in kit/sfx/ (in die sfx/ jedes Projekts kopiert). In Code erstellt, keine Lizenzprobleme.
Das Papierset wird von tools/make-paper-sfx.ps1 generiert (FFmpeg-Synthese; erneut ausführen, um einen Sound anzupassen).
| Datei | Wo einfügen |
|---|
tick.wav | Jedes Listenelement / Häkchen beim Erscheinen (saubere Stile) |
counter.wav | Während eine Zahl hochzählt (Start des Count-ups) |
chime.wav | Die letzte Karte / Endkarte |
pop.wav | Ein Pill, Badge, Sticker, Kalender-Chip beim Einblenden |
snap.wav | Ein Screenshot oder eine Karte, die einrastet |
star.wav · switch.wav · fill.wav · success.wav | Hervorhebung · Vorher→Nachher-Umschalter · Balkenfüllung · Ziel erreicht |
paper-flip.wav | Seitenwechsel: Bild neu ein-/ausblenden, Szenenwechsel |
paper-drop.wav | Eine Papierkarte landet |
tape-rip.wav | Klebebandstreifen zum Fixieren einer Karte (ein Mal pro Karte, nicht pro Streifen) |
paper-rustle.wav | Erpresserbrief-Buchstaben / ein Haufen Chips |
marker-tick.wav | Marker-Häkchen in einer Listenzeile |
marker-scribble.wav | Mehrere Kreuze / Gekritzel in einer Reihe (~0,85 s) |
stamp.wav | Gummi-Stempel, „VS“-Klatsche, Zählkarten-Klatsche |
paper-slide.wav | Karte, die von der Seite hereingleitet |
thump.wav | Einschlag auf die Schlüsselzeile |
Knackiges UI / Glas-Set (tools/make-crisp-sfx.ps1 [-Project projects\<n>]) — verwende, wenn der Benutzer nach „knackiger“ fragt
| Datei | Wo einfügen |
|---|
crisp-click | Karte / Panel landet |
crisp-pop | Pill, Chip, Badge, Play-Button |
crisp-tick | Listenzeile, kleine Einblendung, Balkenstart |
glass-tap | Flüssigglas-Kachel / App-Logo erscheint |
type-burst | Tippen (0,6 s) |
count-roll | Count-up (1 s) |
whoosh | Bild neu ein-/ausblenden, großer Zoom |
hit | Einschlag |
alert · switch-on · send · sparkle · ding | Grenze/Fehler · Umschalter/Schalter · Senden-Button · Sterne/Hervorhebung · Erfolg / Endkarte |
Regeln
- Kit-Standard (des Erstellers): keine Sounds bei Ein-/Ausblendungen, keine Whooshes, ~20 dB unter der Stimme, wenige Sounds.
- Papierausschnitt-Stil (Benutzer wünscht knackige Papiergeräusche): Sound bei jeder Landung / Klebeband / Tick / Stempel / Flip; weiterhin keine Sounds bei Untertiteln oder Ausblendungen.
- Synchronisiere auf den Frame, in dem das visuelle Ereignis landet, nicht auf den Tween-Start.
Papierausschnitt-Vorlagen-Offsets (aus kit/templates/paper-cut-vertical.html)
| Komponente | Sounds |
|---|
headline(t0) | paper-drop t0+0,35 · tape-rip t0+0,42 |
ransom(t0) | paper-rustle t0 |
checklist(items) | paper-drop items[0].t−0,10 · tape-rip items[0].t−0,05 · marker-tick jedes item.t+0,08 |
counter(t0) | stamp t0+0,17 (vol 0,25) · counter t0+0,2 · tape-rip t0+0,25 |
versus(t0, right.t) | paper-slide t0 · paper-slide right.t · stamp right.t+0,52 |
calendar(t0, crossAt, glowAt, stamp) | paper-drop t0+0,35 · tape-rip t0+0,42 · marker-scribble crossAt · pop glowAt+0/0,12/0,24 · stamp stamp.t |
reframe(t0, t1) | paper-flip t0 · paper-flip t1 |
punch(t0) | thump t0 |
| letzte Karte | chime ~0,5 s nach dem Landen |
So geht's (eine Liste → HTML + schneller Mix)
- Schreibe
projects/<name>/sfx.json: [[time, "sound-name", volume?], ...] (Lautstärke optional; Standardwerte in tools/sfx.mjs).
node tools/sfx.mjs projects/<name> → schreibt <audio>-Tags (eindeutige IDs, echte Dauer, nicht überlappende Spuren) in index.html zwischen <!-- sfx:start --> / <!-- sfx:end -->, sodass jedes zukünftige Rendern sie einbezieht.
- Bereits gerendert? Nicht neu rendern (Rendervorgänge sind langsam):
node tools/sfx.mjs projects/<name> --mix renders/with-cards.mp4 renders/with-sfx.mp4 mischt die Sounds mit FFmpeg auf das vorhandene Audio und kopiert den Videostream (~10 s für einen 3-minütigen Film). Ein Limiter verhindert Übersteuerung.
npx hyperframes lint (erwarte 0 Fehler). Überprüfe die Pegel: ffmpeg -ss <t> -t 1 -i out.mp4 -af volumedetect -f null NUL.
- Kopiere das Ergebnis nach
exports/. Passe durch Bearbeiten der sfx.json an und führe Schritt 3 erneut aus (Sekunden).
Fasse niemals das <video>-Audio an. Der integrierte Player von VS Code kann AAC nicht abspielen; zeige fertige Videos in VLC / dem Standard-Player an.