# Video dimostrativo del prototipo — scaletta Prima ripresa: 23 ottobre 2026, sul gioco com'era quel giorno (37 test verdi, scene fino al Trebbio). Si rifà ogni volta che il prototipo cresce: si aggiorna il copione `video/demo-prototipo.mjs`, poi gli stessi comandi. ## Cosa si vede (durata attesa 7-8 minuti, tetto 10) Solo sottotitoli in italiano in alto (le battute del gioco sono già nei fumetti) e la colonna sonora del gioco rimontata sopra il video (la VM registra lo schermo, non l'audio). | # | Capitolo | Cosa fa l'omino | Didascalia | | --- | --- | --- | --- | | 1 | Titolo | schermata del titolo con la dedica, musica del titolo | titolo del gioco, «demo del prototipo» | | 2 | Introduzione | le quattro righe sopra il panorama, un clic per riga | — | | 3 | Piazza Colonna | arriva, guarda la colonna e il manifesto, prova ad andare al Fiocco di Neve | come si gioca: clic = azione più sensata, i verbi a destra | | 4 | I vecchietti | dialogo: le due leggende del Regolo, il Palio di quest'anno, «niente di strano stanotte?» | i dialoghi a scelte | | 5 | La squama | guarda sotto la panchina, prende la squama, la guarda, la offre ai vecchietti | l'inventario, «dai… a» | | 6 | Campeggio e Bosco ai Frati | due scene di passaggio, bandierine e tiglio | il paese a gradini | | 7 | Pieve e oratorio | chiesa, campanile, statua; palco e tavolate dell'oratorio | — | | 8 | Villa Adami e la salita | la villa, il leone di terracotta, la strada della scuola | — | | 9 | Fortezza | bastione, porta incatenata, le impronte | — | | 10 | Trebbio | viale dei cipressi, la torre fa da psicologo e dà l'indizio | gli aiuti del castello | | 11 | Il finale | torna alla Fortezza, usa la squama sulle impronte, schermata di fine | fine del prototipo, dedica | ## Come si rigira Dalla cartella `~/Workspaces/qemu/qemu-iso-lab` (la catena del «cameraman», gemello `30_Note/video-dimostrativi.md`): ```zsh virsh --connect qemu:///system start lubuntu-studio IP=$(virsh --connect qemu:///system domifaddr lubuntu-studio --source lease | awk '/ipv4/{sub("/.*","",$4); print $4}') TOUR_VM=manzolo@$IP tools/tour/session.sh # copia del gioco nella VM e server su 127.0.0.1:8000 (SRC= per girare su una copia ferma) ~/Workspaces/misc/LeggendaDelRegolo/video/prepara-ripresa.sh manzolo@$IP PW=$(ls -d ~/.npm/_npx/*/node_modules/playwright | head -1)/index.mjs TOUR_VM=manzolo@$IP PLAYWRIGHT_MODULE=$PW node tools/tour/rec.mjs ~/Workspaces/misc/LeggendaDelRegolo/video/demo-prototipo.mjs --dry # prova a vuoto ~/Workspaces/misc/LeggendaDelRegolo/video/prepara-ripresa.sh manzolo@$IP # azzera prima della ripresa vera TOUR_VM=manzolo@$IP PLAYWRIGHT_MODULE=$PW node tools/tour/rec.mjs ~/Workspaces/misc/LeggendaDelRegolo/video/demo-prototipo.mjs python3 ~/Workspaces/misc/LeggendaDelRegolo/video/monta.py artifacts/tour/out/demo-prototipo virsh --connect qemu:///system shutdown lubuntu-studio ``` `monta.py` accorcia le didascalie, lancia `build.py`, rimonta la musica dai cambi registrati in `musica.json` e scrive `video/out/demo-prototipo.mp4` (escluso da git). ## Trappole - Il gioco va servito **dentro** la VM (`prepara-ripresa.sh`): niente rete fra host e VM da sistemare. - Le battute del gioco durano `sayTime` (circa 18 caratteri al secondo): il copione non le salta, aspetta che finiscano. - Una pressione più lunga di 450 ms sulla scena vale «guarda»: i clic di `mv.py` sono brevi, non usare trascinamenti. - Il salvataggio sta nel `localStorage` del profilo della VM: il `setup` del copione lo svuota, sennò compare «Continua». ## La partita completa (25 ottobre 2026) Copione `video/partita-completa.mjs`: il primo capitolo intero, dal pomeriggio alla sera (circa 10 minuti e mezzo), seguendo `src/story/solution.js` capitolo per capitolo, più il libro dell'oratorio in primo piano e i vecchietti che a sera sparlano di Andrea. Si gira con gli stessi comandi della demo (`mbot studio up`, `mbot studio session`, `prepara-ripresa.sh`, `rec.mjs … --dry`, di nuovo `prepara-ripresa.sh`, `rec.mjs …`), poi: ```zsh python3 video/monta.py ~/Workspaces/qemu/qemu-iso-lab/artifacts/tour/out/partita-completa ``` - **L'audio**: la VM registra solo lo schermo. Il copione annota dentro la pagina ogni cambio di musica e ogni voce che parte (con l'orologio della VM) in `video/out/partita-completa-audio.json`; `monta.py` rimonta la colonna sonora dai file del gioco: musica bassa (`VOLUME_SOTTO`), voci piene. Il fruscio della pagina non c'è. - **Il ritaglio** (`TAGLIO` in `monta.py`) va rimisurato quando cambia l'impaginazione: `convert -trim` su una schermata della prova a vuoto. - **Per Telegram** (50 MB al massimo): due passate x264 `-tune animation` a 470 kbit/s → circa 45 MB. ## Il trailer e la extended (29 ottobre 2026) Copioni `video/trailer.mjs` (circa 1 min 30 s) e `video/trailer-extended.mjs` (circa 3 min 25 s, col giro completo del paese e i giochi giocati da soli). Niente clic: la scena è a tutto schermo, le scritte e gli stacchi al nero sono elementi aggiunti nella pagina, e la musica la sceglie il copione (`out/-audio.json`). Nel finale si cercano solo gli occhi gialli: il palio non si mostra (Andrea: si capirebbe dov'è). - Prova locale, senza VM: `OUT=/tmp/prova COPIONE=./trailer.mjs node video/prova-locale.mjs` (una schermata per battuta, e i tempi). - Ripresa: come la partita completa, poi `python3 video/monta.py --trailer`. - Il gioco va in pausa da solo dopo un minuto senza tocchi: il copione manda un finto `pointermove` ogni 10 s. - Una camminata lascia `game.task` in sospeso, e cambiando scena di colpo il gioco non si ferma più: si azzera. - Le battute saltate lasciano spezzoni di voce nel registro: prima di montare si tolgono quelli sotto il mezzo secondo (attenzione a «Let it be.», che dura un secondo ed è giusta).