Federico Torregrossa
  • HomeHome
  • NucleoNucleo
  • PortfolioPortfolio
  • Chi sonoChi sono
  • ContattiContatti

04

←Torna al portfolio

Explorer3D

Ridisegno audio immersivo di un gioco Unity, in ambisonics e binaurale.

Quando

Ottobre 2024 – febbraio 2025

Dove

SAE Institute Milano

Ruolo

Team leader, mix e spazializzazione 3D, repository director

Strumenti

Wwise 2023.1, Unity 2022.3, Resonance Audio, GitHub, rclone

Il suono di Explorer3D è ambisonico, e si può spegnere. Il gioco è un progetto stock di Unity risonorizzato da zero: ogni suono passa per un bus a sedici canali che una decodifica binaurale riduce a due, e dal menu quella decodifica si toglie di mezzo con un tasto. Stessa scena, stesso mix, stesse distanze: cambia solo come arriva alle orecchie.

Quattro mesi di lavoro e una squadra di quattro persone, con un ruolo doppio: il mix e la spazializzazione da una parte, la conduzione del gruppo e l'infrastruttura del progetto dall'altra.

I due video qui sotto sono le registrazioni consegnate all'esame, una con la decodifica accesa e una senza.

Il video

Cambiando si riparte da capo: sono due partite diverse. Il binaurale va sentito in cuffia.

Il tasto qui sopra cambia registrazione, non traccia audio. Sono due partite diverse, una giocata con la decodifica binaurale accesa e una con lo stesso mix in stereo. Il confronto non è fotogramma per fotogramma: è fra due modi di ascoltare la stessa costruzione.

Il binaurale va sentito in cuffia, e non è una raccomandazione di cortesia. La decodifica calcola come un suono arriverebbe alle due orecchie di una testa. In cuffia quel calcolo sostituisce l'ascolto; su due casse la testa c'è già davvero, e il calcolo si somma alla realtà invece di prenderne il posto.

Attorno al gioco si vede la finestra di Unity, ed è così che il progetto è stato consegnato. Le build eseguibili non hanno mai funzionato, né su Mac né su Windows, e la questione è rimasta irrisolta anche con il docente. Il gioco gira dall'editor, e quello che si vede è l'editor.

A un certo punto, nel video, si vede premere il tasto che accende l'ambisonico. Dove sta e che cosa fa esattamente è più avanti.

Come funziona

Il Project Explorer di Wwise con l'albero del progetto: i bus sotto il Master, le work unit della gerarchia degli oggetti e la gerarchia della musica interattiva.
Sotto il Master: Ambienti, Ambix con dentro Boss, Open e Room, poi Musiche e UI. Più in basso le work unit degli oggetti, una per persona.
Il riquadro di configurazione del bus Ambix in Wwise: Bus Configuration «Ambisonics 3rd order», Bus Config. «Ambisonics (16 channels)», Out Config. «Unknown».
La configurazione del bus Ambix. «Out Config. Unknown» non è un errore: la configurazione d'uscita la decide il plugin, e Wwise non la conosce finché non gira.

La regola della catena è una: quello che ha una posizione nel mondo entra nel campo, quello che non ce l'ha resta fuori.

Le sorgenti sono stereo e portano delle coordinate. Quarantacinque nodi della gerarchia dichiarano spazializzazione piena, posizione e orientamento. Non c'è nessun punto in cui qualcuno decide quanto un suono stia a sinistra: la posizione la porta l'oggetto che suona, il resto è calcolo.

Il campo si chiama `Ambix` ed è ambisonico di terzo ordine, sedici canali. Non sono sedici altoparlanti: sono sedici componenti che descrivono un suono che arriva da una direzione, attorno a un punto che è la testa di chi gioca. A scrivere le sorgenti dentro quei canali è Wwise, e lo fa perché il bus di destinazione è ambisonico: la posizione dell'oggetto nella scena diventa la sua posizione nel campo.

Il Resonance rende quei sedici in due. Sta in fondo al bus e calcola come il campo arriverebbe alle due orecchie di una testa vera. È l'ultimo stadio: al Master arrivano già due canali, con sopra soltanto un limitatore.

Sotto il campo ci sono i due riverberi, Room e Open, il chiuso e l'aperto, e si commutano attraversando una soglia nella scena. Musiche e interfaccia invece non entrano nel campo, perché non hanno una posizione: una colonna sonora non viene da dietro un albero. Gli ambienti hanno un campo loro, accanto a questo.

E il campo si fa spazio da solo. Quando Ambix suona abbassa gli ambienti di 6 dB e le musiche di 12, e il bus del boss ne toglie altri 3 a ciascuno. Non è compressione: è una regola di precedenza, scritta una volta, che decide chi si fa da parte quando la scena si riempie.

L'interruttore

Il pannello «Advanced Audio Settings» nel menu del gioco, con un tasto che dice «AMBIX ON» e un tasto «BACK».
Il tasto dentro il gioco, ripreso dalla registrazione binaurale. La scritta dice in che posizione si trova, non cosa succede premendo.

Il confronto non è stato costruito per raccontarlo: è dentro il gioco. In Opzioni, Audio, Avanzate c'è un tasto che dice AMBIX ON oppure AMBIX OFF, e lo può premere chiunque stia giocando, quando vuole, senza uscire.

Dal lato Wwise l'interruttore è un valore solo. Uno state group chiamato Mix_Switch con due posizioni, Ambix e Stereo. Non commuta un preset di mix, non carica un secondo progetto, non duplica niente: cambia un valore, e tutto il resto è già pronto a leggerlo.

E quello che commuta non è un effetto che si accende, è un bypass. Lo state Stereo scrive Bypass sullo slot del Resonance, lo state Ambix non scrive niente e lo lascia lavorare.

Non è il binaurale spento, è lo stesso mix ascoltato senza la testa. Il campo a sedici canali resta dov'è in tutti e due i casi: quello che cambia è se venga reso per due orecchie o ripiegato in due canali dal down-mix normale.

La scheda Effects del bus Ambix in Wwise, con una sola riga: Resonance Audio Renderer.
Il decodificatore binaurale nel suo slot, in fondo al bus Ambix.
La scheda States del bus Ambix in Wwise: sotto Mix_Switch le righe Ambix e Stereo, con la casella Bypass spuntata solo su Stereo.
La stessa tabella che fa tutto. La casella spuntata sulla riga Stereo è l'intero interruttore.

Il gioco parte in stereo. L'evento che avvia gli ambienti porta con sé un cambio di stato che mette Mix_Switch su Stereo, quindi l'ascolto binaurale è una cosa che si accende, non il modo predefinito che si può guastare.

Dal lato Unity il tasto scrive quello stesso valore, e cambia la propria scritta per dire in che posizione si trova. Ci sono anche due eventi Wwise, Ambix_State e Stereo_State, che fanno la stessa identica cosa: due strade allo stesso interruttore, una per chi lo comanda da codice e una per chi lo comanda da un evento.

Il lato Wwise e il tasto in Unity sono di due persone diverse, messi a punto insieme. E la ragione per cui esistono viene prima del gioco: serviva a far sentire agli altri la differenza, in un gruppo dove nessuno aveva mai lavorato in ambisonico.

Il mix

L'editor di attenuazione di Wwise: a sinistra l'elenco delle proprietà pilotate dalla distanza, in basso il grafico della curva del volume su ventiquattro unità.
Una curva di distanza. A sinistra la lista di quello che la distanza può pilotare oltre al volume: mandate ai riverberi, filtri, ampiezza.

Prendiamo una cosa che suona in mezzo alla mappa, e allontaniamoci. Nei primi sei passi non cambia quasi niente, il volume tiene un piano. Poi scende, di sei decibel in dodici passi. A ventiquattro si spegne di colpo, con un taglio a meno duecento, che è il modo di scrivere da qui in poi non c'è più.

Questo per una curva sola, e il progetto ne ha quarantacinque. Stanno dentro trenta attenuazioni: dodici condivise fra più oggetti e diciotto disegnate su misura per uno solo, assegnate in cinquantaquattro punti della gerarchia. In un gioco dove tutto è spazializzato il mix è questo: non una fila di cursori, ma la forma con cui ogni cosa smette di sentirsi.

E la distanza non muove solo il volume. Muove anche il filtro passa-basso, l'ampiezza, la focalizzazione e la diffrazione, in quindici curve su quarantacinque. Un oggetto che si allontana non diventa solo più piano: smette di essere un punto.

La scheda Positioning di un oggetto in Wwise: 3D Spatialization su «Position + Orientation», mix al cento per cento, attenuazione assegnata, posizione 3D su «Emitter».
Come è spazializzato un oggetto singolo. Il mix fra pan e spazializzazione è al cento per cento: nessuna parte del suono viene piazzata a mano.

Lavorare in quattro sullo stesso progetto

Il mix di questo gioco è stato fatto tre volte, e le prime due sono state buttate. Il primo è andato perso in un conflitto di lavoro parallelo. Il secondo ha potuto toccare solo i pochi oggetti già finiti, senza ambienti e senza musiche, cioè senza le due cose che decidono i volumi di tutte le altre.

Il motivo non è il mix: è che quattro persone stavano lavorando sugli stessi due progetti. Wwise e Unity non sono fatti per quello. In Wwise il lavoro vive dentro le work unit, e due persone sulla stessa costringono a scegliere, a ogni salvataggio, fra le modifiche dell'uno e quelle dell'altro. Su GitHub i file di stato di Wwise obbligavano a rifare l'integrazione con Unity a ogni cambio di ramo. E i file audio, su GitHub, non ci stanno proprio.

Tre rimedi, e nessuno è una impostazione da spuntare. Escludere dal versionamento i file che sembrano parte del progetto e non lo sono. Partizionare le work unit, una per persona, col suo nome, e lasciare vuota la predefinita. Portare l'audio su Drive con due eseguibili scritti apposta. Poi spiegarli, perché un sistema che conosce una persona sola non è un sistema.

E alla fine il movimento inverso: tutto il lavoro concluso accorpato in una work unit sola, per poter mixare mentre gli altri finivano le loro. Il terzo mix è cominciato il 3 febbraio, quando le musiche sono arrivate, ed è stato consegnato il 15.

Le scelte

Quattro decisioni che giocando non si vedono.

Gli ambienti hanno un campo loro
Un secondo bus ambisonico accanto al primo e non dentro, così il campo degli oggetti può abbassare quello dell'ambiente senza abbassare anche se stesso.
Gli stati stanno in una pila, non in un interruttore
Entrando in una zona il suo stato va in cima a una lista, uscendo si riapplica quello sotto. Una stanza dentro una rovina, all'uscita, torna alla rovina.
I passi leggono il terreno, non la posizione
Sotto ogni piede parte un raggio che chiede al pavimento di che materiale è. Lo decide la superficie toccata, non una zona disegnata attorno al livello.
Sul boss l'ampiezza cresce e il fuoco cala
Da vicino è un punto preciso, da lontano è una presenza che occupa una porzione di campo.

Crediti

SAE Institute Milano, modulo: Progettazione Multimediale 2, docente: Emiliano Alborghetti. Esame: PM2.S1 Advanced Specialised Project. Lezioni di Andrea Guastadisegni in parallelo.

Niccolò Fatano · Mattia Festa · Francesco Fortunato · Federico Torregrossa

←Lavoro precedenteMuri Invisibili
←Torna al portfolio
→Lavoro successivoAvid Short-Film