Caso práctico: Uso del sonido espacial en RoboRaid
En este artículo se describen los desafíos a los que se enfrenta el equipo de experiencia de Microsoft HoloLens al crear audio para el tirador en primera persona de realidad mixta RoboRaid.
La tecnología
El sonido espacial es una de las características más emocionantes de Microsoft HoloLens, lo que permite a los usuarios percibir lo que sucede a su alrededor cuando los objetos no están en la línea de visión.
En RoboRaid, el uso más obvio y eficaz del sonido espacial es alertar al jugador de algo que sucede fuera de su visión periférica. Por ejemplo, el vulnerador puede entrar desde cualquiera de las paredes escaneadas de la sala. Si no se encuentra frente a la ubicación en la que entra, es posible que la pierda. Para alertarle de esta invasión, escuchará un poco de audio distinto procedente de donde entra el vulnerador, lo que le permite saber que necesita actuar rápidamente para detenerlo.
En segundo plano
La creación de sonido espacial para aplicaciones de HoloLens es tan nueva y única que los problemas pueden ser difíciles de resolver porque no hay proyectos anteriores a los que hacer referencia. Con suerte, estos ejemplos de los desafíos de audio a los que nos enfrentamos al crear RoboRaid le ayudarán a crear audio para sus propias aplicaciones.
Tenga en cuenta los impuestos de la CPU
El sonido espacial puede ser exigente en la CPU. Para una experiencia ocupada como RoboRaid, era fundamental mantener el número de instancias de sonido espacial a menos de ocho en un momento dado. Normalmente, era tan fácil como establecer el límite de instancias para diferentes eventos de audio. Se eliminan todas las instancias que se producen después de alcanzar el límite. Por ejemplo, cuando se generan drones, sus gritos se limitan a tres instancias en un momento dado. Teniendo en cuenta que solo cuatro drones pueden aparecer a la vez, tres gritos son suficientes, ya que no hay manera de que el cerebro pueda realizar un seguimiento de esos muchos eventos de audio similares. Esto liberó recursos para otros eventos sonoros espaciales, como explosiones enemigas o enemigos que se preparaban para disparar.
Recompensar un éxito de esquivar
La mecánica de esquivar es una de las mecánicas de juego más importantes de RoboRaid, y también algo que nos pareció realmente único para la experiencia de HoloLens. Como tal, queríamos hacer esquivas exitosas muy gratificantes para el jugador. Hemos conseguido que el Doppler "whizz-by" suene atractivo bastante al principio del desarrollo. Inicialmente, mi plan era usar un bucle y manipularlo en tiempo real mediante el volumen, el tono y el filtro. La implementación para esto iba a ser muy elaborada. Antes de comprometer los recursos para crear esto, creamos un prototipo barato con un recurso con el efecto Doppler horneado en solo para averiguar cómo se sentía. Nuestro talentoso desarrollo lo hizo para que este recurso whizz-by jugara exactamente 0,7 segundos antes de que el proyectil hubiera pasado por la oreja del jugador y los resultados se sintieron increíbles! No hace falta decir que abandonamos la solución más compleja e implementamos el prototipo.
(Para obtener más información sobre cómo crear un recurso de audio con el efecto Doppler integrado, consulte 100 Whooshes en 2 minutos).
Deshacerse de sonidos ineficaces
Originalmente, queríamos reproducir un sonido de explosión detrás del jugador una vez que hayan esquivado con éxito el proyectil enemigo, pero decidimos deshacernos de esto por varias razones. En primer lugar, no se sentía tan eficaz como el whizz-by SFX que usamos para la dodge. En el momento en que el proyectil golpea una pared detrás de ti, algo más habría sucedido en el juego que enmascararía ese sonido. En segundo lugar, no tuvimos colisión en el piso, así que no pudimos hacer que la explosión jugara cuando el proyectil impactó en el suelo en lugar de las paredes. Y, por último, se produjo el costo de CPU del sonido espacial. El enemigo escorpión de élite (uno que puede arrastrarse dentro de la pared) tiene un ataque especial que dispara alrededor de ocho proyectiles. No solo eso hizo un gran desastre en la mezcla, también introdujo agrietamiento horrible porque estaba golpeando la CPU demasiado duro.
Comunicación de un acierto
Un problema interesante que encontramos en HoloLens era lo difícil que era comunicar de forma eficaz que un jugador había sido golpeado. Lo que hace que una experiencia de realidad mixta tenga éxito es la sensación de que la historia te está sucediendo. Eso significa que tienes que creer que estás luchando contra una invasión de robots alienígenas en tu propia sala de estar.
Obviamente, los jugadores no sentirán nada cuando se les golpee, así que tuvimos que encontrar una manera de convencer al jugador de que les pasó algo malo. En los juegos convencionales, es posible que veas una animación que te permita saber que tu personaje ha dado un golpe, o que la pantalla puede parpadear en rojo y que el personaje gruñe un poco. Dado que estos tipos de señales no funcionan en una experiencia de realidad mixta, decidimos combinar la indicación visual con un sonido exagerado que indica que has sufrido daños. Creé un gran sonido, y lo hice tan prominente en la mezcla que agachaba todo. A continuación, para que destacara aún más, agregamos un breve sonido de advertencia como si un submarino nuclear se estuviera hundiendo.
Obtener un gran sonido de altavoces pequeños
Los altavoces HoloLens son pequeños y ligeros para satisfacer las necesidades del dispositivo, por lo que no puede esperar escuchar demasiado de gama baja. De forma similar al desarrollo para teléfonos inteligentes o dispositivos de juegos portátiles, los diseñadores de sonido y compositores tienen que tener en cuenta el contenido de frecuencia de su audio. Siempre diseño sonidos o escribo música con rango de frecuencia completa porque usar auriculares es una opción para los usuarios. Sin embargo, para garantizar la compatibilidad con los altavoces de HoloLens, en ocasiones hago una prueba colocando un EQ en el maestro de cualquier DAW en la que esté trabajando. El ajuste eq consta de un filtro de paso alto alrededor de 600 Hz a 700 Hz (no demasiado empinado) y filtro de paso bajo en alrededor de 10 K (empinado). Esto debería darte una idea aproximada de cómo se reproducirán tus sonidos en el dispositivo.
Si usted está confiando en el bajo para dar la sensación de cambio de acorde en su música, usted puede encontrar que su música pierde completamente la sensación de raíz cuando se aplica esta configuración eq. Para remediar esto, agregué otra capa al bajo que es una octava más alta (con algunos armónicos ricos) y la mezclé para obtener la sensación de raíz de vuelta. A veces, el uso de distorsión para amperar los armónicos dará suficiente contenido de frecuencia en el rango superior para hacer que nuestro cerebro piense que hay algo debajo de él. Esto es cierto para SFX como impactos, explosiones o sonidos para momentos especiales, como los superataques de un jefe. Realmente no puedes confiar en el extremo bajo para dar al jugador una sensación de impacto o peso. Al igual que con la música, el uso de distorsión para dar algo de crujido definitivamente ayudó.
Hacer que las indicaciones de audio destaquen
Naturalmente, todos los miembros del equipo querían música bombas, armas fuertes y explosiones locas; pero también querían ser capaces de escuchar señales de audio críticas para el juego.
En un juego de consola con una amplia gama de frecuencias, tienes más opciones para dividir las frecuencias en función de la importancia del sonido. Para RoboRaid, estaba limitado en el número de rangos de frecuencias que podía curvar a partir de sonidos. Si usas filtro de paso bajo y curvas demasiado desde el extremo superior del espectro, no te quedará nada en el sonido porque no hay mucho de gama baja.
Para hacer que RoboRaid suene tan grande como pueda en el dispositivo, tuvimos que reducir el rango dinámico de toda la experiencia e hicimos un amplio uso del pato creando una jerarquía clara de importancia para diferentes tipos de sonidos. He establecido el pato de -2 dB a -6 dB dependiendo de la importancia. Personalmente no me gusta el pato obvio en los juegos, así que pasé mucho tiempo ajustando el tiempo de entrada y salida y la cantidad de atenuación de volumen. Configuramos autobuses independientes para sonido espacial, sonido no espacial, VO y autobús seco sin reverberación para la música. A continuación, creamos buss de alta prioridad, críticos y no críticos para que los recursos se configuraran para ir a sus autobuses adecuados.
Espero que los profesionales de audio por ahí tengan tanta diversión y emoción trabajando en sus propias aplicaciones como lo hice trabajando en RoboRaid. No puedo esperar a ver (¡y escuchar!) lo que la gente talentosa fuera de Microsoft se le ocurre a HoloLens.
Por cuenta propia
Un truco que descubrí para hacer que ciertos eventos (como las explosiones) sonen "más grandes", como si estuvieran llenando la sala, era crear un recurso mono para el sonido espacial y mezclarlo con un recurso estéreo 2D, que se reproduciría en 3D. Se necesita un ajuste, ya que tener demasiada información en el contenido estéreo disminuirá la direccionalidad de los recursos mono. Sin embargo, conseguir el equilibrio correcto dará lugar a sonidos enormes que harán que los jugadores giren la cabeza en la dirección correcta.
Puede probar grandes sonidos usted mismo usando los recursos de audio siguientes:
Escenario 1
- Descargue roboraid_enemy_explo_mono.wav y establezca para reproducirlo a través del sonido espacial y asignarlo a un evento.
- Descargar roboraid_enemy_explo_stereo.wav y establecer para reproducir en estéreo 2D y asignar al mismo evento que anteriormente. Dado que estos recursos se normalizan en Unity, atenúa el volumen de ambos recursos para que no se recorte.
- Reproducir ambos sonidos juntos. Mueve la cabeza para sentir lo espacial que suena.
Escenario 2
- Descargue roboraid_enemy_explo_summed.wav y establezca para reproducirlo a través del sonido espacial y asignarlo a un evento.
- Reproduzca este recurso por sí mismo y compárelo con el evento del escenario 1.
- Pruebe con un equilibrio diferente de archivos mono y estéreo.