diff --git a/assets/characters/pescatori.json b/assets/characters/pescatori.json new file mode 100644 index 0000000..2d0ea82 --- /dev/null +++ b/assets/characters/pescatori.json @@ -0,0 +1,38 @@ +{ + "image": "pescatori.png", + "height": 110, + "frames": { + "work": { + "x": 0, + "y": 0, + "w": 170, + "h": 110, + "ax": 84.0, + "ay": 110 + }, + "talk": { + "x": 172, + "y": 0, + "w": 166, + "h": 112, + "ax": 79.2, + "ay": 112 + }, + "laugh": { + "x": 340, + "y": 0, + "w": 164, + "h": 113, + "ax": 79.7, + "ay": 113 + }, + "proud": { + "x": 506, + "y": 0, + "w": 166, + "h": 121, + "ax": 80.7, + "ay": 121 + } + } +} diff --git a/assets/characters/pescatori.png b/assets/characters/pescatori.png new file mode 100644 index 0000000..57c7c4b Binary files /dev/null and b/assets/characters/pescatori.png differ diff --git a/assets/scenes/coldaia.png b/assets/scenes/coldaia.png new file mode 100644 index 0000000..09961e8 Binary files /dev/null and b/assets/scenes/coldaia.png differ diff --git a/assets/scenes/falegnameria-coldaia.png b/assets/scenes/falegnameria-coldaia.png new file mode 100644 index 0000000..ee6cc93 Binary files /dev/null and b/assets/scenes/falegnameria-coldaia.png differ diff --git a/assets/scenes/gabbiano.png b/assets/scenes/gabbiano.png new file mode 100644 index 0000000..522129b Binary files /dev/null and b/assets/scenes/gabbiano.png differ diff --git a/assets/scenes/mini/coldaia.png b/assets/scenes/mini/coldaia.png new file mode 100644 index 0000000..142e900 Binary files /dev/null and b/assets/scenes/mini/coldaia.png differ diff --git a/assets/scenes/mini/falegnameria-coldaia.png b/assets/scenes/mini/falegnameria-coldaia.png new file mode 100644 index 0000000..e831443 Binary files /dev/null and b/assets/scenes/mini/falegnameria-coldaia.png differ diff --git a/assets/scenes/mini/gabbiano.png b/assets/scenes/mini/gabbiano.png new file mode 100644 index 0000000..bfd53e0 Binary files /dev/null and b/assets/scenes/mini/gabbiano.png differ diff --git a/assets/scenes/mini/mozzete.png b/assets/scenes/mini/mozzete.png new file mode 100644 index 0000000..831c5de Binary files /dev/null and b/assets/scenes/mini/mozzete.png differ diff --git a/assets/scenes/mini/ponticino-mozzete.png b/assets/scenes/mini/ponticino-mozzete.png new file mode 100644 index 0000000..60c03fa Binary files /dev/null and b/assets/scenes/mini/ponticino-mozzete.png differ diff --git a/assets/scenes/mini/via-cipriani.png b/assets/scenes/mini/via-cipriani.png new file mode 100644 index 0000000..e258f58 Binary files /dev/null and b/assets/scenes/mini/via-cipriani.png differ diff --git a/assets/scenes/mini/via-massorondinaio.png b/assets/scenes/mini/via-massorondinaio.png new file mode 100644 index 0000000..2665e8f Binary files /dev/null and b/assets/scenes/mini/via-massorondinaio.png differ diff --git a/assets/scenes/mozzete.png b/assets/scenes/mozzete.png new file mode 100644 index 0000000..f5757f5 Binary files /dev/null and b/assets/scenes/mozzete.png differ diff --git a/assets/scenes/ponticino-mozzete.png b/assets/scenes/ponticino-mozzete.png new file mode 100644 index 0000000..9bf76ba Binary files /dev/null and b/assets/scenes/ponticino-mozzete.png differ diff --git a/assets/scenes/via-cipriani.png b/assets/scenes/via-cipriani.png new file mode 100644 index 0000000..39eb597 Binary files /dev/null and b/assets/scenes/via-cipriani.png differ diff --git a/assets/scenes/via-massorondinaio.png b/assets/scenes/via-massorondinaio.png new file mode 100644 index 0000000..09a144b Binary files /dev/null and b/assets/scenes/via-massorondinaio.png differ diff --git a/assets/voices/andrea-06c5f35df7.mp3 b/assets/voices/andrea-06c5f35df7.mp3 new file mode 100644 index 0000000..0489fb6 Binary files /dev/null and b/assets/voices/andrea-06c5f35df7.mp3 differ diff --git a/assets/voices/andrea-06e1b17635.mp3 b/assets/voices/andrea-06e1b17635.mp3 new file mode 100644 index 0000000..fea846e Binary files /dev/null and b/assets/voices/andrea-06e1b17635.mp3 differ diff --git a/assets/voices/andrea-09ec24ef60.mp3 b/assets/voices/andrea-09ec24ef60.mp3 new file mode 100644 index 0000000..255dd91 Binary files /dev/null and b/assets/voices/andrea-09ec24ef60.mp3 differ diff --git a/assets/voices/andrea-0e9c7a48de.mp3 b/assets/voices/andrea-0e9c7a48de.mp3 new file mode 100644 index 0000000..119cf2e Binary files /dev/null and b/assets/voices/andrea-0e9c7a48de.mp3 differ diff --git a/assets/voices/andrea-146000c293.mp3 b/assets/voices/andrea-146000c293.mp3 new file mode 100644 index 0000000..b675ca8 Binary files /dev/null and b/assets/voices/andrea-146000c293.mp3 differ diff --git a/assets/voices/andrea-1ccd8e2127.mp3 b/assets/voices/andrea-1ccd8e2127.mp3 new file mode 100644 index 0000000..bb59a73 Binary files /dev/null and b/assets/voices/andrea-1ccd8e2127.mp3 differ diff --git a/assets/voices/andrea-22b8efe94b.mp3 b/assets/voices/andrea-22b8efe94b.mp3 new file mode 100644 index 0000000..79344f1 Binary files /dev/null and b/assets/voices/andrea-22b8efe94b.mp3 differ diff --git a/assets/voices/andrea-3b310a5164.mp3 b/assets/voices/andrea-3b310a5164.mp3 new file mode 100644 index 0000000..cd521c0 Binary files /dev/null and b/assets/voices/andrea-3b310a5164.mp3 differ diff --git a/assets/voices/andrea-3cef067df6.mp3 b/assets/voices/andrea-3cef067df6.mp3 new file mode 100644 index 0000000..909e020 Binary files /dev/null and b/assets/voices/andrea-3cef067df6.mp3 differ diff --git a/assets/voices/andrea-5dfec13174.mp3 b/assets/voices/andrea-5dfec13174.mp3 new file mode 100644 index 0000000..48554d9 Binary files /dev/null and b/assets/voices/andrea-5dfec13174.mp3 differ diff --git a/assets/voices/andrea-5e37f70197.mp3 b/assets/voices/andrea-5e37f70197.mp3 new file mode 100644 index 0000000..3e1f8f5 Binary files /dev/null and b/assets/voices/andrea-5e37f70197.mp3 differ diff --git a/assets/voices/andrea-6a873beff6.mp3 b/assets/voices/andrea-6a873beff6.mp3 new file mode 100644 index 0000000..b7589a2 Binary files /dev/null and b/assets/voices/andrea-6a873beff6.mp3 differ diff --git a/assets/voices/andrea-7b3b36edc6.mp3 b/assets/voices/andrea-7b3b36edc6.mp3 deleted file mode 100644 index 7efb5dc..0000000 Binary files a/assets/voices/andrea-7b3b36edc6.mp3 and /dev/null differ diff --git a/assets/voices/andrea-8cd2b5a36d.mp3 b/assets/voices/andrea-8cd2b5a36d.mp3 new file mode 100644 index 0000000..5042874 Binary files /dev/null and b/assets/voices/andrea-8cd2b5a36d.mp3 differ diff --git a/assets/voices/andrea-98dc291bd3.mp3 b/assets/voices/andrea-98dc291bd3.mp3 new file mode 100644 index 0000000..796f4c7 Binary files /dev/null and b/assets/voices/andrea-98dc291bd3.mp3 differ diff --git a/assets/voices/andrea-98ff3bf0a3.mp3 b/assets/voices/andrea-98ff3bf0a3.mp3 new file mode 100644 index 0000000..e0af5bb Binary files /dev/null and b/assets/voices/andrea-98ff3bf0a3.mp3 differ diff --git a/assets/voices/andrea-9d3ec66f60.mp3 b/assets/voices/andrea-9d3ec66f60.mp3 new file mode 100644 index 0000000..e02abad Binary files /dev/null and b/assets/voices/andrea-9d3ec66f60.mp3 differ diff --git a/assets/voices/andrea-a07bf26ea7.mp3 b/assets/voices/andrea-a07bf26ea7.mp3 new file mode 100644 index 0000000..a62a1e7 Binary files /dev/null and b/assets/voices/andrea-a07bf26ea7.mp3 differ diff --git a/assets/voices/andrea-a9903d3ae0.mp3 b/assets/voices/andrea-a9903d3ae0.mp3 new file mode 100644 index 0000000..0e57edc Binary files /dev/null and b/assets/voices/andrea-a9903d3ae0.mp3 differ diff --git a/assets/voices/andrea-c3279de3ab.mp3 b/assets/voices/andrea-c3279de3ab.mp3 deleted file mode 100644 index 8ffe508..0000000 Binary files a/assets/voices/andrea-c3279de3ab.mp3 and /dev/null differ diff --git a/assets/voices/andrea-ccd735c926.mp3 b/assets/voices/andrea-ccd735c926.mp3 new file mode 100644 index 0000000..34bdaa5 Binary files /dev/null and b/assets/voices/andrea-ccd735c926.mp3 differ diff --git a/assets/voices/andrea-d9ba9bd3ad.mp3 b/assets/voices/andrea-d9ba9bd3ad.mp3 new file mode 100644 index 0000000..895c56f Binary files /dev/null and b/assets/voices/andrea-d9ba9bd3ad.mp3 differ diff --git a/assets/voices/andrea-e0c6360b96.mp3 b/assets/voices/andrea-e0c6360b96.mp3 new file mode 100644 index 0000000..49f3950 Binary files /dev/null and b/assets/voices/andrea-e0c6360b96.mp3 differ diff --git a/assets/voices/index.json b/assets/voices/index.json index 73b69b9..39e8729 100644 --- a/assets/voices/index.json +++ b/assets/voices/index.json @@ -203,6 +203,26 @@ "file": "andrea-69337973d0.mp3", "sec": 5.94 }, + "andrea|Quattro ragazzi che affilano canne di bambù col coltellino e ci legano le lenze.": { + "file": "andrea-98ff3bf0a3.mp3", + "sec": 6.41 + }, + "andrea|Oh, che fate?": { + "file": "andrea-22b8efe94b.mp3", + "sec": 1.75 + }, + "pescatori|Si preparano le canne: domattina si va a pescare al lago dell'Anatre, dietro Cardetole!": { + "file": "pescatori-486103d189.mp3", + "sec": 3.74 + }, + "pescatori|Guarda questa: la lenza la regge anche una carpa di dieci chili.": { + "file": "pescatori-afda722e0c.mp3", + "sec": 3.2 + }, + "andrea|(Vedi, mia mamma aveva ragione: in Fortezza si viene a farsi le canne.)": { + "file": "andrea-e0c6360b96.mp3", + "sec": 4.35 + }, "andrea|Nove bastioni, li volle Cosimo I. Per tenere fuori i nemici, dicono. Secondo me per tenere dentro il Regolo.": { "file": "andrea-d31f6e291b.mp3", "sec": 8.71 @@ -507,6 +527,62 @@ "file": "andrea-4d6871c326.mp3", "sec": 4.11 }, + "andrea|Il Rattattù: la gara di canto del paese. Si sale sul palco e ci si sfida tutti, chi stona e chi no.": { + "file": "andrea-a9903d3ae0.mp3", + "sec": 8.33 + }, + "andrea|Quest'anno mi ci iscrivo. Forse.": { + "file": "andrea-146000c293.mp3", + "sec": 2.98 + }, + "andrea|Il Cinema Taiuti. Una sala, un proiettore e le poltroncine che cigolano a tempo.": { + "file": "andrea-3b310a5164.mp3", + "sec": 6.39 + }, + "andrea|A quest'ora è chiuso. Apre la sera, per il film o per il Rattattù.": { + "file": "andrea-5e37f70197.mp3", + "sec": 5.35 + }, + "andrea|Il campo da basket del Circolo, lassù oltre la rete. Prima o poi due tiri ce li faccio.": { + "file": "andrea-8cd2b5a36d.mp3", + "sec": 6.49 + }, + "andrea|La fermata della corriera. Da qui si va dappertutto. Se passa.": { + "file": "andrea-ccd735c926.mp3", + "sec": 5.72 + }, + "andrea|Il ponticino delle Mozzète. Sotto ci passa un fossino che d'estate fa più zanzare che acqua.": { + "file": "andrea-98dc291bd3.mp3", + "sec": 7.21 + }, + "andrea|Terra appena arata. Profuma di campagna e di trattore.": { + "file": "andrea-a07bf26ea7.mp3", + "sec": 4.41 + }, + "andrea|La falegnameria. L'odore di segatura arriva fin qui.": { + "file": "andrea-1ccd8e2127.mp3", + "sec": 3.84 + }, + "andrea|Bussare a una falegnameria? Mi danno una scopa e mi fanno spazzare.": { + "file": "andrea-09ec24ef60.mp3", + "sec": 4.63 + }, + "andrea|Un fienile pieno di rotoballe. Fossi una mucca, sarebbe il paradiso.": { + "file": "andrea-5dfec13174.mp3", + "sec": 4.81 + }, + "andrea|La campagna verso Gabbiano. Da quassù si vede mezzo Mugello.": { + "file": "andrea-06e1b17635.mp3", + "sec": 5.31 + }, + "andrea|Il palio, però, no.": { + "file": "andrea-0e9c7a48de.mp3", + "sec": 1.6 + }, + "andrea|Un casolare vecchio, coi mattoni che spuntano dall'intonaco. Come le mie ginocchia.": { + "file": "andrea-06c5f35df7.mp3", + "sec": 5.66 + }, "andrea|L'ingresso del campeggio. A giudicare dalle bandiere, ci dorme mezzo mondo.": { "file": "andrea-72dede01c0.mp3", "sec": 5.13 @@ -643,13 +719,21 @@ "file": "andrea-0e558e54fe.mp3", "sec": 4.18 }, - "andrea|Le mura della Fortezza medicea, mezze coperte dall'edera. Ne hanno viste più di me.": { - "file": "andrea-7b3b36edc6.mp3", - "sec": 5.93 + "andrea|Il muro di Villa Schifanoia, la villa dei Medici, mezzo coperto dall'edera.": { + "file": "andrea-6a873beff6.mp3", + "sec": 5.07 }, - "andrea|Una casetta piccina, appoggiata alle mura come un gatto al sole.": { - "file": "andrea-c3279de3ab.mp3", - "sec": 3.93 + "andrea|Lassù una volta c'era una torre, per tenere d'occhio chi passava sulla strada per Bologna. Ne ha viste più di me.": { + "file": "andrea-d9ba9bd3ad.mp3", + "sec": 7.34 + }, + "andrea|E la piazzetta si chiama come i Cambray-Digny, gli ultimi signori della villa.": { + "file": "andrea-9d3ec66f60.mp3", + "sec": 4.64 + }, + "andrea|Una casetta piccina, appoggiata al muro della villa come un gatto al sole.": { + "file": "andrea-3cef067df6.mp3", + "sec": 4.1 }, "andrea|Chiusa. E poi non è casa mia.": { "file": "andrea-7fd73fbb77.mp3", diff --git a/assets/voices/pescatori-486103d189.mp3 b/assets/voices/pescatori-486103d189.mp3 new file mode 100644 index 0000000..4bc11fd Binary files /dev/null and b/assets/voices/pescatori-486103d189.mp3 differ diff --git a/assets/voices/pescatori-afda722e0c.mp3 b/assets/voices/pescatori-afda722e0c.mp3 new file mode 100644 index 0000000..c4b09ab Binary files /dev/null and b/assets/voices/pescatori-afda722e0c.mp3 differ diff --git a/docs/IMMAGINI.md b/docs/IMMAGINI.md index 84381c3..3ea93f0 100644 --- a/docs/IMMAGINI.md +++ b/docs/IMMAGINI.md @@ -28,7 +28,7 @@ ne è un'opera derivata. Le foto scattate da Andrea non hanno problemi; quelle p | `campeggio.png` | Codex | `campeggio-ingresso.png` | [DA ANDREA] probabilmente dal sito del campeggio | ? | | `polisportiva-*.png`, `ponte-sieve.png`, `area-feste.png`, `via-provinciale.png`, `comune-asilo.png`, `giardini-poste.png`, `stazione.png` | Codex | foto omonime in `assets/raw/foto/` | Andrea (EXIF, 23 ottobre 2026) | sì | | `via-del-pignone.png` | Codex | `via-del-pignone.png` (murale: `riferimenti/cistola.png`, `murale-maradona.png`) | Andrea | sì (Cistola consenziente) | -| `provinciale-pignone.png`, `piazzetta-cambray-digny.png` | Codex | screenshot di Google Street View | Google | **no**: da rifare con foto di Andrea | +| `provinciale-pignone.png`, `piazzetta-cambray-digny.png`, `via-cipriani.png`, `via-massorondinaio.png`, `mozzete.png`, `ponticino-mozzete.png`, `coldaia.png`, `falegnameria-coldaia.png`, `gabbiano.png` | Codex | screenshot di Google Street View | Google | **no**: da rifare con foto di Andrea | | `cardetole.png` | Codex | `cardetole.jpg` | Andrea (EXIF) | **da decidere**: è la casa vera di Andrea, pubblicarla dice dove abita | | `pieve-interno.png` | Codex | `pieve-interno.png` | Mariano Mirannalti (mandata ad Andrea su WhatsApp) | sì, se Mariano è d'accordo; citarlo nei crediti | | `panorama-intro.png` | Codex | `altre/panorama-intro.png` | da internet (screenshot con l'icona di Google Lens) | **no**, finché non si sostituisce | diff --git a/docs/STATO.md b/docs/STATO.md index 437c7d3..c5201b8 100644 --- a/docs/STATO.md +++ b/docs/STATO.md @@ -204,6 +204,13 @@ I prompt fissi (stile, scene, foglio sprite) sono in `prompts/STILE.md`, escluso Via del Pignone (sfondo di Codex da `assets/raw/foto/via-del-pignone.png`): sul muro di destra il murale di Cistola (Davide Poggi), «il talento di via del Pignone», alla maniera dei murali di Maradona a Napoli (volto da `assets/raw/riferimenti/cistola.png`). Consenso di Davide confermato da Andrea il 2026-10-27. +- Via Pietro Cipriani (fra Piazza e campeggio): Cinema Taiuti aperto con la locandina del Rattattù 2007 (stile da + `assets/raw/riferimenti/rattattu-locandina.png`, scaletta illeggibile), campo da basket del Circolo: **da fare il + gioco del basket** (idea di Andrea, 27 ottobre). +- Fuori paese, dal campo secondario (a destra): le Mozzète → il ponticino → Coldaia → la falegnameria → Gabbiano; + da Via Cipriani, indietro, Via Massorondinaio → campeggio. Sfondi da Street View, battute provvisorie. +- In Fortezza quattro ragazzi inventati si fanno le canne da pesca col bambù per il lago dell'Anatre (sprite di Codex, + `assets/raw/pescatori-sheet.png`, ritagliato 2x2 a mano: work, talk, laugh, proud); battuta finale di Andrea. - Andrea rifatto dalla sua foto del 2007 (`assets/raw/andrea-sheet-prova-2.png`; il vecchio foglio resta in `andrea-sheet.png`). - Strada del campeggio (poi Bosco ai Frati) e strada della scuola: per ora battute, scene da fare con le foto di Andrea. diff --git a/src/story/story.js b/src/story/story.js index 29c54cf..568a70b 100644 --- a/src/story/story.js +++ b/src/story/story.js @@ -215,6 +215,8 @@ export const story = { // [DA ANDREA: chi è] Figura inventata, nessuna persona reale. giocatore_carte: { name: 'Il giocatore di carte', color: '#edc476', sprite: 'assets/characters/giocatore-carte.json' }, andrea: { name: 'Andrea', color: '#ffffff', sprite: 'assets/characters/andrea.json' }, + // Quattro ragazzi inventati (sprite di Codex, idea di Andrea del 27 ottobre): nessuna persona reale. + pescatori: { name: 'I ragazzi delle canne', color: '#b8f08a', sprite: 'assets/characters/pescatori.json' }, vecchietta: { name: 'Vecchietta', color: '#ffd27a', sprite: 'assets/characters/vecchietta.json' }, vecchietto: { name: 'Vecchietto', color: '#9fe3ff', sprite: 'assets/characters/vecchietto.json' }, castello: { name: 'Lo spirito del Trebbio', color: '#c8f0ff' }, @@ -477,7 +479,7 @@ export const story = { }, }, { - id: 'verso_campeggio', name: 'strada verso il campeggio', box: [330, 190, 34, 48], at: [345, 234], exit: { scene: 'campeggio', at: [200, 345], face: 'right' }, + id: 'verso_campeggio', name: 'Via Cipriani, verso il cinema e il campeggio', box: [330, 190, 34, 48], at: [345, 234], exit: { scene: 'via_cipriani', at: [300, 345], face: 'up' }, }, { id: 'verso_piazzetta', name: 'Piazzetta Cambray Digny, verso Via de\' Medici', box: [0, 196, 146, 54], at: [92, 250], exit: { scene: 'piazzetta', at: [510, 274], face: 'down' }, @@ -501,7 +503,22 @@ export const story = { walk: [[110, 284], [300, 280], [330, 272], [348, 274], [400, 292], [442, 294], [640, 352], [640, 360], [0, 360], [0, 315], [60, 310], [105, 295]], depth: [[272, 0.55], [360, 1.15]], entry: [175, 352], + speakers: { pescatori: [150, 225] }, + // Quattro ragazzi sull'erba si fanno le canne da pesca col bambù. + people: [{ who: 'pescatori', at: [150, 322], idle: 'work', talk: ['work', 'talk'], blink: 'laugh', every: 6, size: 1.25 }], hotspots: [ + { + id: 'pescatori', name: 'ragazzi con le canne', box: [92, 236, 120, 86], at: [240, 334], face: 'left', default: 'talk', + actions: { + look: [{ say: 'Quattro ragazzi che affilano canne di bambù col coltellino e ci legano le lenze.' }], + talk: [ + { say: 'Oh, che fate?' }, + { say: 'Si preparano le canne: domattina si va a pescare al lago dell\'Anatre, dietro Cardetole!', who: 'pescatori', pose: 'talk' }, + { say: 'Guarda questa: la lenza la regge anche una carpa di dieci chili.', who: 'pescatori', pose: 'proud' }, + { say: '(Vedi, mia mamma aveva ragione: in Fortezza si viene a farsi le canne.)' }, + ], + }, + }, { id: 'mura', name: 'bastione', box: [420, 0, 220, 290], actions: { @@ -856,7 +873,186 @@ export const story = { }, ], }, - // L'ingresso del campeggio: dalla Piazza a diritto; poco dopo, a destra, si sale al Bosco ai Frati. + // Via Pietro Cipriani, fra Via Massorondinaio (alle spalle, verso il campeggio) e la Piazza (in fondo, col Circolo 4 Maggio arancione). + // A destra il Cinema Taiuti, aperto come nel 2007, col cartellone del Rattattù; lassù il campo da basket del Circolo. + via_cipriani: { + name: 'Via Pietro Cipriani', + map: [22, 64], + background: 'assets/scenes/via-cipriani.png', + walk: [[40, 360], [40, 320], [60, 280], [100, 272], [150, 276], [300, 300], [360, 318], [640, 345], [640, 360]], + depth: [[272, 0.45], [360, 1.15]], + entry: [300, 345], + hotspots: [ + { + id: 'rattattu', name: 'cartellone del Rattattù', box: [460, 152, 58, 110], at: [480, 336], face: 'up', + actions: { + look: [{ say: 'Il Rattattù: la gara di canto del paese. Si sale sul palco e ci si sfida tutti, chi stona e chi no.' }, { say: 'Quest\'anno mi ci iscrivo. Forse.' }], + }, + }, + { + id: 'cinema', name: 'Cinema Taiuti', box: [420, 40, 220, 220], at: [520, 340], face: 'up', + actions: { + look: [{ say: 'Il Cinema Taiuti. Una sala, un proiettore e le poltroncine che cigolano a tempo.' }], + open: [{ say: 'A quest\'ora è chiuso. Apre la sera, per il film o per il Rattattù.' }], + }, + }, + { + id: 'campo_basket', name: 'campo da basket del Circolo', box: [250, 110, 170, 80], at: [340, 316], face: 'up', + actions: { + look: [{ say: 'Il campo da basket del Circolo, lassù oltre la rete. Prima o poi due tiri ce li faccio.' }], + }, + }, + { + id: 'alla_piazza', name: 'in fondo, la Piazza', box: [80, 230, 120, 50], at: [120, 280], exit: { scene: 'piazza', at: [345, 240], face: 'down' }, + }, + { + id: 'al_campeggio', name: 'indietro, verso il campeggio', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'via_massorondinaio', at: [30, 300], face: 'right' }, + }, + ], + }, + // Via Massorondinaio: a sinistra si riprende Via Cipriani (verso la Piazza), a diritto si va al campeggio. + via_massorondinaio: { + name: 'Via Massorondinaio', + map: [17, 74], + background: 'assets/scenes/via-massorondinaio.png', + walk: [[0, 360], [0, 266], [200, 258], [400, 240], [520, 226], [566, 226], [552, 250], [545, 290], [600, 360]], + depth: [[226, 0.4], [360, 1.2]], + entry: [300, 330], + hotspots: [ + { + id: 'a_via_cipriani', name: 'a sinistra, Via Cipriani', box: [0, 262, 40, 80], at: [16, 300], face: 'left', exit: { scene: 'via_cipriani', at: [300, 345], face: 'up' }, + }, + { + id: 'al_campeggio', name: 'a diritto, verso il campeggio', box: [496, 196, 74, 34], at: [535, 232], exit: { scene: 'campeggio', at: [200, 345], face: 'right' }, + }, + ], + }, + // Le Mozzète (Via Donatello): in fondo il campo secondario, in basso a destra si scende al ponticino. + mozzete: { + name: 'Le Mozzète', + map: [72, 92], + background: 'assets/scenes/mozzete.png', + walk: [[0, 360], [0, 280], [40, 232], [120, 212], [300, 200], [335, 198], [350, 210], [420, 270], [640, 330], [640, 360]], + depth: [[198, 0.3], [360, 1.2]], + entry: [320, 330], + hotspots: [ + { + id: 'fermata', name: 'fermata della corriera', box: [450, 170, 110, 90], at: [470, 300], face: 'right', + actions: { + look: [{ say: 'La fermata della corriera. Da qui si va dappertutto. Se passa.' }], + }, + }, + { + id: 'al_secondario', name: 'in fondo, il campo secondario', box: [300, 176, 60, 30], at: [330, 206], exit: { scene: 'polisportiva', at: [628, 290], face: 'left' }, + }, + { + id: 'al_ponticino', name: 'giù a destra, il ponticino delle Mozzète', box: [580, 316, 60, 44], at: [612, 345], face: 'right', exit: { scene: 'ponticino_mozzete', at: [300, 196], face: 'down' }, + }, + ], + }, + // Il ponticino delle Mozzète: lassù la congiunzione con le Mozzète, indietro si va verso Coldaia. + ponticino_mozzete: { + name: 'Il ponticino delle Mozzète', + map: [78, 88], + background: 'assets/scenes/ponticino-mozzete.png', + walk: [[0, 360], [0, 300], [200, 270], [280, 190], [320, 186], [380, 230], [520, 290], [640, 310], [640, 360]], + depth: [[186, 0.3], [360, 1.2]], + entry: [300, 340], + hotspots: [ + { + id: 'parapetto', name: 'parapetto del ponticino', box: [460, 230, 120, 50], at: [470, 300], face: 'right', + actions: { + look: [{ say: 'Il ponticino delle Mozzète. Sotto ci passa un fossino che d\'estate fa più zanzare che acqua.' }], + }, + }, + { + id: 'alle_mozzete', name: 'lassù, le Mozzète', box: [270, 166, 60, 30], at: [300, 196], exit: { scene: 'mozzete', at: [612, 345], face: 'left' }, + }, + { + id: 'a_coldaia', name: 'indietro, verso Coldaia', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'coldaia', at: [450, 345], face: 'up' }, + }, + ], + }, + // Coldaia: dietro il ponticino delle Mozzète; avanti la falegnameria e poi Gabbiano. + coldaia: { + name: 'Coldaia', + map: [84, 89], + background: 'assets/scenes/coldaia.png', + walk: [[230, 360], [300, 250], [318, 200], [290, 166], [330, 162], [460, 205], [640, 268], [640, 360]], + depth: [[162, 0.3], [360, 1.2]], + entry: [450, 345], + hotspots: [ + { + id: 'campo_arato', name: 'campo arato', box: [0, 160, 220, 130], at: [280, 330], face: 'left', + actions: { + look: [{ say: 'Terra appena arata. Profuma di campagna e di trattore.' }], + }, + }, + { + id: 'alla_falegnameria', name: 'avanti, verso la falegnameria', box: [280, 140, 60, 34], at: [305, 168], exit: { scene: 'falegnameria_coldaia', at: [300, 340], face: 'up' }, + }, + { + id: 'al_ponticino', name: 'indietro, il ponticino delle Mozzète', box: [220, 334, 420, 26], at: [450, 354], exit: { scene: 'ponticino_mozzete', at: [300, 340], face: 'up' }, + }, + ], + }, + // La falegnameria di Coldaia, col fienile delle rotoballe; a diritto si va a Gabbiano. + falegnameria_coldaia: { + name: 'La falegnameria', + map: [90, 91], + background: 'assets/scenes/falegnameria-coldaia.png', + walk: [[0, 360], [0, 300], [100, 260], [160, 220], [185, 220], [230, 250], [640, 250], [640, 360]], + depth: [[220, 0.35], [360, 1.2]], + entry: [300, 340], + hotspots: [ + { + id: 'falegnameria', name: 'falegnameria', box: [160, 176, 120, 44], at: [220, 260], face: 'up', + actions: { + look: [{ say: 'La falegnameria. L\'odore di segatura arriva fin qui.' }], + open: [{ say: 'Bussare a una falegnameria? Mi danno una scopa e mi fanno spazzare.' }], + }, + }, + { + id: 'fienile', name: 'fienile', box: [290, 90, 320, 140], at: [440, 280], face: 'up', + actions: { + look: [{ say: 'Un fienile pieno di rotoballe. Fossi una mucca, sarebbe il paradiso.' }], + }, + }, + { + id: 'a_gabbiano', name: 'a diritto, verso Gabbiano', box: [140, 190, 64, 32], at: [172, 222], exit: { scene: 'gabbiano', at: [300, 340], face: 'up' }, + }, + { + id: 'a_coldaia', name: 'indietro, verso Coldaia', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'coldaia', at: [305, 170], face: 'down' }, + }, + ], + }, + // La strada di Gabbiano, in mezzo alla campagna del Mugello. + gabbiano: { + name: 'Gabbiano', + map: [95, 93], + background: 'assets/scenes/gabbiano.png', + walk: [[0, 360], [0, 300], [200, 260], [400, 215], [430, 186], [445, 186], [520, 240], [640, 280], [640, 360]], + depth: [[186, 0.3], [360, 1.2]], + entry: [300, 340], + hotspots: [ + { + id: 'valle', name: 'campagna', box: [150, 140, 260, 60], at: [330, 300], face: 'up', + actions: { + look: [{ say: 'La campagna verso Gabbiano. Da quassù si vede mezzo Mugello.' }, { say: 'Il palio, però, no.' }], + }, + }, + { + id: 'casolare', name: 'casolare', box: [0, 30, 140, 220], at: [150, 320], face: 'left', + actions: { + look: [{ say: 'Un casolare vecchio, coi mattoni che spuntano dall\'intonaco. Come le mie ginocchia.' }], + }, + }, + { + id: 'alla_falegnameria', name: 'indietro, verso la falegnameria', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'falegnameria_coldaia', at: [172, 224], face: 'down' }, + }, + ], + }, + // L'ingresso del campeggio: dalla Piazza per Via Cipriani e Via Massorondinaio; poco dopo, a destra, si sale al Bosco ai Frati. campeggio: { name: 'Ingresso del campeggio', map: [12, 84], @@ -884,7 +1080,7 @@ export const story = { id: 'bosco_ai_frati', name: 'salita verso il Bosco ai Frati', box: [570, 250, 70, 110], at: [628, 320], exit: { scene: 'bosco_ai_frati', at: [320, 345], face: 'right' }, }, { - id: 'verso_piazza', name: 'torna in Piazza', box: [150, 290, 100, 70], at: [175, 345], exit: { scene: 'piazza', at: [345, 240], face: 'left' }, + id: 'verso_piazza', name: 'Via Massorondinaio, verso la Piazza', box: [150, 290, 100, 70], at: [175, 345], exit: { scene: 'via_massorondinaio', at: [530, 236], face: 'down' }, }, ], }, @@ -1127,7 +1323,7 @@ export const story = { }, ], }, - // Piazzetta Cambray Digny, in cima a Via del Pignone: a sinistra Via de' Medici, a diritto la Piazza. + // Piazzetta Cambray Digny, in cima a Via del Pignone, sotto Villa Schifanoia: a sinistra Via de' Medici, a diritto la Piazza. piazzetta: { name: 'Piazzetta Cambray Digny', map: [40, 38], @@ -1137,15 +1333,15 @@ export const story = { entry: [320, 330], hotspots: [ { - id: 'mura', name: 'mura della Fortezza', box: [60, 110, 230, 170], at: [180, 300], face: 'up', + id: 'villa_schifanoia', name: 'Villa Schifanoia', box: [60, 110, 230, 170], at: [180, 300], face: 'up', actions: { - look: [{ say: 'Le mura della Fortezza medicea, mezze coperte dall\'edera. Ne hanno viste più di me.' }], + look: [{ say: 'Il muro di Villa Schifanoia, la villa dei Medici, mezzo coperto dall\'edera.' }, { say: 'Lassù una volta c\'era una torre, per tenere d\'occhio chi passava sulla strada per Bologna. Ne ha viste più di me.' }, { say: 'E la piazzetta si chiama come i Cambray-Digny, gli ultimi signori della villa.' }], }, }, { id: 'casetta_bianca', name: 'casetta bianca', box: [296, 196, 160, 90], at: [380, 292], face: 'up', actions: { - look: [{ say: 'Una casetta piccina, appoggiata alle mura come un gatto al sole.' }], + look: [{ say: 'Una casetta piccina, appoggiata al muro della villa come un gatto al sole.' }], open: [{ say: 'Chiusa. E poi non è casa mia.' }], }, }, @@ -1353,6 +1549,9 @@ export const story = { { id: 'al_principale', name: 'indietro, verso il campo principale', box: [0, 330, 640, 30], at: [100, 354], exit: { scene: 'polisportiva_principale', at: [620, 330], face: 'left' }, }, + { + id: 'alle_mozzete', name: 'a destra, verso le Mozzète', box: [610, 226, 30, 100], at: [628, 290], face: 'right', exit: { scene: 'mozzete', at: [330, 206], face: 'down' }, + }, { id: 'barondeduke', name: 'il BaronDeDuke', box: [212, 245, 36, 55], at: [190, 316], face: 'right', default: 'talk', give: { diff --git a/tools/voci.json b/tools/voci.json index dba6f73..7dec8c2 100644 --- a/tools/voci.json +++ b/tools/voci.json @@ -49,5 +49,9 @@ }, "ing_tozzi": { "speaker": "Badr Odhiambo" + }, + "pescatori": { + "speaker": "Dionisio Schuyler", + "filtro": "asetrate=24000*1.08,aresample=24000,atempo=1.04" } }