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


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 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.


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

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.

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