Riprodurre un suono quando succede qualcosa è il primo livello dell'audio di gioco. Il secondo è far sì che il suono racconti dove succede e come sta andando la partita. Un passo alle spalle, un'esplosione lontana dietro un muro, una musica che si fa più intensa quando arrivano i nemici: sono informazioni che il giocatore usa, spesso senza rendersene conto.
Audio posizionale in 2D
Anche in un gioco bidimensionale la posizione delle sorgenti sonore conta. Due parametri bastano per ottenere un buon risultato.
Panning
Il panning distribuisce il suono tra il canale sinistro e quello destro in base alla posizione orizzontale della sorgente rispetto all'ascoltatore, di solito la telecamera o il personaggio.
pan = limita((sorgente.x - ascoltatore.x) / raggio_pan, -1, 1)
Un valore di −1 significa tutto a sinistra, 1 tutto a destra. Per evitare che il volume complessivo cali al centro, si usa una legge di panning a potenza costante, che distribuisce i guadagni seguendo seno e coseno invece di una semplice proporzione lineare.
Attenuazione con la distanza
Un suono lontano deve essere più debole. Le curve più usate:
| Curva | Comportamento | Uso |
|---|---|---|
| Lineare | Il volume cala uniformemente fino a zero alla distanza massima | Giochi 2D, controllo semplice |
| Inversa | Il volume cala rapidamente vicino alla sorgente, poi lentamente | Simile al comportamento fisico, giochi 3D |
| Personalizzata | Curva disegnata a mano | Suoni importanti che devono restare udibili |
In ogni caso conviene definire una distanza minima, entro cui il volume è pieno, e una distanza massima, oltre la quale il suono non viene nemmeno riprodotto. Questo secondo limite libera voci preziose.
Audio posizionale in 3D
Nei giochi tridimensionali il motore audio calcola posizione e orientamento di sorgenti e ascoltatore. Oltre a panning e attenuazione entrano in gioco altri effetti.
- Effetto Doppler: una sorgente che si avvicina suona leggermente più acuta, una che si allontana più grave. Va dosato con cura: un Doppler realistico su un'auto da corsa è efficace, su un personaggio che cammina è inutile o fastidioso.
- Spazializzazione binaurale: con le cuffie, filtri basati sulla forma della testa e delle orecchie permettono di percepire anche l'altezza e la provenienza da davanti o da dietro.
- Riverbero di ambiente: lo stesso passo suona diverso in una cattedrale, in un corridoio o all'aperto. Si definiscono zone con impostazioni di riverbero proprie e si passa gradualmente dall'una all'altra.
Occlusione e ostruzione
Un suono dietro un muro non dovrebbe arrivare come se il muro non ci fosse. Le soluzioni pratiche:
- si lancia un raggio dalla sorgente all'ascoltatore;
- se incontra geometria solida, si applica un filtro passa-basso e una riduzione di volume, perché i muri lasciano passare soprattutto le frequenze basse;
- per evitare cambi bruschi, i parametri del filtro si interpolano nel tempo.
Si parla di occlusione quando la sorgente è completamente separata, per esempio in un'altra stanza, e di ostruzione quando un ostacolo è in mezzo ma il suono può aggirarlo, come una colonna. Per molti giochi indipendenti un semplice raggio con filtro è già un grande passo avanti.
Musica adattiva
La musica lineare suona sempre allo stesso modo, qualunque cosa faccia il giocatore. La musica adattiva cambia in risposta al gioco. Gli approcci principali sono due e spesso si combinano.
Strati verticali
Il brano è composto da più tracce sincronizzate, della stessa durata, che suonano sempre insieme: per esempio percussioni, basso, archi, melodia. Il gioco regola il volume di ciascuna in base alla situazione:
- esplorazione: solo archi e un pad leggero;
- nemici nelle vicinanze: entrano le percussioni;
- combattimento: tutte le tracce a pieno volume.
Poiché le tracce sono sempre sincronizzate, i cambi avvengono con dissolvenze morbide e senza salti ritmici.
Segmenti orizzontali
Il brano è diviso in sezioni, come introduzione, esplorazione, tensione, combattimento, vittoria. Il gioco decide quale sezione suonare dopo quella attuale. Per non interrompere la musica a metà battuta, il passaggio avviene al prossimo punto di transizione valido, per esempio alla fine della battuta o della frase, eventualmente attraverso un breve segmento di raccordo.
Collegare la musica allo stato del gioco
Il punto delicato è decidere quando cambiare. Un indicatore di «intensità», calcolato da numero di nemici, distanza, salute del giocatore o fase di un boss, è più robusto di molti eventi separati. Due accorgimenti:
- isteresi: la musica sale di intensità rapidamente ma scende con un ritardo, per evitare alternanze continue quando un nemico entra ed esce dal raggio;
- durata minima: uno stato musicale resta attivo per qualche secondo prima di poter cambiare di nuovo.
Gli strumenti di middleware audio professionali offrono editor visuali per questi comportamenti, ma con un motore che permetta di sincronizzare più tracce si ottengono ottimi risultati anche con codice proprio.
In sintesi
- Panning e attenuazione con la distanza bastano a dare posizione ai suoni in 2D.
- Nei giochi 3D si aggiungono Doppler, spazializzazione binaurale e riverbero di ambiente.
- Occlusione e ostruzione si simulano con un raggio e un filtro passa-basso.
- La musica adattiva usa strati verticali sincronizzati, segmenti orizzontali o entrambi.
- Un indicatore di intensità con isteresi guida i cambi musicali senza alternanze fastidiose.