31 de julio, 2013
Artículo indiespensable
Indiespensable
Dev Lavde #10 — Sonido (Cara B)
Dev Lavde #10 — Sonido (Cara B)

Irónicamente, cuando el sonido de un juego está mal hecho se nota, y cuando está bien pasa inadvertido. Me da por pensar que hemos llegado a tal punto en la simulación del sonido que sólo nos damos cuenta si algo va mal y caemos en el valle inquietante: Desfases, chirridos, extraños cambios de volumen en la voz de los personajes de Assassin’s Creed (Ubisoft, 2007)… Si los gráficos fuesen absolutamente realistas ocurriría lo mismo: sólo veríamos los fallos, porque el resto sería como mirar a la vida misma, ¿no? En cualquier caso, no siempre fue así, y la prueba es que hay toda una generación influenciada por esas secuencias de ruidos maravillosamente ordenados que componen la música chiptune. Entonces, ¿cómo funciona el sonido digital hoy en día, que se oye tan bien?

El sonido está tan integrado en nuestra naturaleza como seres humanos, que siempre hemos intentado capturar su esencia. A lo largo de los años se han inventado infinidad de imaginativas formas de registrar, almacenar y reproducir el sonido y la música: desde medios manuales tan sencillos como una partitura manuscrita, pasando por una variada gama de dispositivos de grabación analógicos (de los que las veneradas casettes fueron su máximo exponente), hasta los medios digitales de los que disponemos hoy en día. Actualmente podemos almacenar y reproducir sonido, prácticamente intacto, desde casi cualquier dispositivo electrónico. No será perfecto, pero se acerca mucho. Para algunos sería un sueño hecho realidad. E introducir sonido en un videojuego puede ser tan sencillo como arrastrar un fichero de un lado a otro, pero no siempre es así.

Sonido digital

Sin entrar en el detalle de cómo funciona un micrófono, para capturar o grabar sonido digital necesitamos un dispositivo que reaccione a las vibraciones del aire produciendo una señal eléctrica. Esta señal es una señal con forma de onda analógica, por lo que para manejarla en un procesador digital, hay que convertirla a datos binarios mediante un proceso conocido como digitalización. La digitalización implica dos fases: muestreo y cuantificación.

El muestreo consiste en tomar muestras de la señal periódicamente, a una frecuencia determinada (frecuencia de muestreo). Idealmente, la frecuencia de muestreo debe ser como mínimo el doble de la frecuencia de la señal a muestrear (criterio de Nyquist), o no se podrá recomponer la onda. Por ejemplo, para grabar correctamente la voz humana necesitaríamos una frecuencia de muestreo de 20 kHz (20.000 muestras por segundo). Es bastante normal que para grabar sonidos o música se muestree a 44.100 Hz o 48.000 Hz. Ambos modos superan el doble de la máxima frecuencia perceptible por el ser humano, lo que, en teoría, permitiría recomponer cualquier sonido audible.

MuestreoLa cuantificación consiste en obtener un valor (binario, en este caso) de la muestra tomada. Básicamente, se obtiene la amplitud de la muestra, que suele ser un número comprendido en el rango de voltaje de alimentación del sistema, y después se codifica en una cifra binaria. Cuantos más bits tenga ese número binario, más precisión tendrá y menor serán las pérdidas producidas. Es corriente codificar a 16 o 32 bits. Eso es lo que, en definitiva, ocupará cada muestra en la memoria. Debido al alto número de muestras y el tamaño de estas, muchas veces se hace necesario comprimir la señal para reducir su tamaño, que es para lo que sirven los formatos de audio comprimido como mp3 y ogg.

Para reproducir el sonido hay que seguir el proceso inverso. Las muestras digitales se transforman mediante un proceso de conversión digital-analógica, que consiste en, primero, mantener el valor de cada muestra el tiempo que transcurre hasta la siguiente, resultando una señal escalonada, y después, pasar esa señal por un filtro de reconstrucción para obtener una curva suavizada. Por último podemos aplicar el resultado en un dispositivo que vibre en función de una señal eléctrica, como un altavoz. Hay que tener en cuenta que a la hora de reproducir un sonido digital, es necesario saber a qué frecuencia está muestreada la señal, ya que necesitamos el tiempo entre muestras. Si usamos una frecuencia distinta, el sonido se reproducirá más rápido o más lento, dependiendo de la frecuencia escogida, y eso hará que suene más agudo o más grave.

Total, que para muestrear y reproducir sonidos a esas frecuencias tan elevadas y con una resolución tan fina, es necesaria cierta capacidad de proceso, y no siempre estuvo a disposición de los desarrolladores de videojuegos. Lejos quedan los días donde tener una Sound Blaster 16 nos permitía flipar con la música de Day of the Tentacle (Lucas Arts, 1993). Hoy casi cualquier máquina es capaz de reproducir y mezclar sonidos a frecuencias de muestreo elevadas.

Sonido estéreo o multicanal

No tenemos dos orejas para resultar más atractivos a los homínidos de sexo opuesto (bueno, no sólo para eso). El tener dos orejas y dos oídos nos permite detectar la posición de la fuente de sonido con bastante precisión. Si el origen de un ruido está a la derecha, alcanzará antes al oído derecho, por lo que llegará al izquierdo con un pequeño desfase y con menor intensidad por la atenuación que produce la cabeza. El cerebro, que lleva años adaptándose a estos cambios mínimos entre lo percibido en un oído y otro, reconocerá inmediatamente la procedencia del sonido.

Es por ello, que se inventaron los sonidos en stereo. Si se graban distintos sonidos para cada oído, con un par de auriculares se puede simular bastante bien este efecto. Para ello necesitamos dos canales, es decir, tenemos que reproducir a la vez dos sonidos por distinto sitio.

Sin embargo eso no sirve para obtener una localización espacial completa. El ser humano es capaz de detectar también si un sonido se produce delante, detrás, arriba o abajo. Y para ello intervienen las orejas. Los pliegues de las orejas actúan como filtro direccional, atenuando o amplificando los sonidos que provienen de distintas direcciones. Lo malo es que esto no se puede simular, ya que cada individuo tiene unas orejas con una forma única, y su percepción está adaptada a ellas. Si cambiáramos de orejas no localizaríamos bien el sonido.

Para dar una sensación de sonido envolvente, la solución actual pasa por poner unos cuantos altavoces más. Así llegó el sonido 5.1. Este sonido utiliza 5 canales (frontal central, frontal izquierdo, frontal derecho, trasero izquierdo, trasero derecho) para que podamos localizar el sonido sin problemas. Además el “.1” corresponde con un sexto canal exclusivo para sonidos graves, normalmente reproducido en un subwoofer, que es un altavoz adaptado para un rango de frecuencias más bajas. Actualmente se puede hablar, sin vacilar demasiado, de 7.1 (dos canales extra laterales) o 9.1 (otros dos canales más para el techo).

Sonido posicional y ambiental

A la hora de incluir sonido en un videojuego, se suele diferenciar entre sonido ambiental y sonido posicional. El sonido ambiental es aquel que no procede de ningún lugar específico, como el sonido de la lluvia, el murmullo de un bar, o la música. El sonido posicional, en cambio, es el que se emite con una localización espacial, por ejemplo, un grito, el sonido de una hoguera, o el disparo de un arma.

Sonidos-en-Unity1Normalmente, para el sonido ambiental se suelen usar pistas en estereo o multicanal, y suele usarse sonido comprimido para reducir el uso de memoria, ya que suelen ser pistas más largas. Simplemente basta con reproducirlo en el momento adecuado y fundirlo con otras pistas si es necesario.

El sonido posicional (que también se denomina algunas veces 3D), es algo bastante más complejo, e intervienen ciertos factores. Hay que simular las atenuaciones con la distancia de los sonidos, el efecto Doppler y la velocidad de propagación, e incluso rebotes y oclusión cuando hay paredes u objetos en la escena. Y si fuéramos muy minuciosos, todos estos factores dependen de la humedad, la temperatura, la altitud, etc. Por supuesto, también hay que tener en cuenta la orientación del receptor (la cámara normalmente), y la de los emisores, que no tienen por qué ser omnidireccionales. El motor de sonido debe encargarse de simular todos los efectos necesarios para el juego, filtrando, variando la frecuencia, intensidad y el canal por el que se reproducirá el sonido. Para este tipo de sonidos se suelen usar sonidos monoaurales, y sin compresión.

En resumen

Para trabajar con el sonido de un videojuego tenemos que familiarizarnos con conceptos como frecuencia de muestreo, compresión, canales, etc. sobretodo si pretendemos editar y mezclar sonidos en programas como Audacity, lo que será imprescindible si trabajamos en un equipo pequeño o en solitario. También es importante entender las limitaciones de la tecnología y del ser humano. Por ejemplo, si vamos a usar el micrófono de un smartphone para recoger sonidos en el juego, es importante saber cual es su ancho de banda, es muy posible que no recoja sonidos más allá de unos 8-10 kHz si está pensado para recoger voz humana. Tampoco nos olvidemos de que, por muy tentador que sea hacer sonidos envolventes 9.1, no todo el mundo tiene nueve altavoces conectados al PC o la televisión, y no tiene mucho sentido si se trata de un juego para consola portátil o tableta.

Los motores de juego suelen tener ya integrado un sistema de audio que permite hacer los efectos más comunes para sonidos posicionales, de forma más o menos transparente, pero si vamos a trabajar con el sonido sin la ayuda de un motor, necesitaremos conocer librerías como OpenAL o FMOD, que faciliten al programador la tarea de reproducir sonidos localizados en entornos tridimensionales.

Acerca de Enrique Hervás


Humano Nivel 32. Diseñador y Programador de videojuegos Nivel 6. De esos a los que sus padres prohibieron jugar a "las maquinitas" por estar demasiado enganchados. No sabían lo que les esperaba. Actualmente trabajo como Game Designer en Exient, e intento no olvidarme de mi pasado indie de Game Jams y jueguitos con Join2 Games


COMMENT