Caso práctico: uso de sonido espacial en RoboRaidCase study - Using spatial sound in 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 RoboRaid de primera persona de realidad mixta.This article describes challenges the Microsoft HoloLens Experience Team faced while creating audio for the RoboRaid mixed-reality first-person shooter.

La tecnologíaThe tech

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 en torno a ellos cuando los objetos no se encuentran en la línea de visión.Spatial sound is one of the most exciting features of Microsoft HoloLens, letting users perceive what's going on around them when objects aren't in the line of sight.

En RoboRaid, el uso más obvio y eficaz del sonido espacial es avisar al jugador de algo que ocurre fuera de su visión del periférico.In RoboRaid, the most obvious and effective use of spatial sound is alerting the player to something happening outside of their peripheral vision. Por ejemplo, el violador puede entrar en cualquiera de las paredes digitalizadas de la habitación.For example, the Breacher can enter from any of the scanned walls in the room. Si no está orientado a la ubicación en la que está escribiendo, puede que se lo pierda.If you're not facing the location where it's entering, you might miss it. Para avisarle de esta invasión, oirá un poco de audio procedente del punto en el que está introduciendo el incumplimiento, lo que le permite saber que debe actuar rápidamente para detenerlo.To alert you to this invasion, you'll hear a distinct bit of audio coming from where the Breacher is entering, which lets you know you need to act quickly to stop it.

Entre bambalinasBehind the scenes

Crear sonido espacial para aplicaciones de HoloLens es tan nuevo y único que los problemas pueden ser difíciles de resolver, ya que no hay proyectos pasados a los que hacer referencia.Creating spatial sound for HoloLens apps is so new and unique that problems can be difficult to solve because there aren't any past projects to reference. Afortunadamente, estos ejemplos de los desafíos de audio que nos enfrentamos al hacer RoboRaid le ayudarán a crear audio para sus propias aplicaciones.Hopefully, these examples of the audio challenges we faced while making RoboRaid will help you as you create audio for your own apps.

Tenga en cuentan el uso de la CPUBe mindful of taxing the CPU

El sonido espacial puede ser exigente en la CPU.Spatial sound can be demanding on the CPU. En el caso de una experiencia ocupada como RoboRaid, era fundamental mantener el número de instancias de sonido espacial en menos de ocho en un momento dado.For a busy experience like RoboRaid, it was crucial to keep the number of spatial sound instances to under eight at any given time. Normalmente, era tan sencillo como establecer el límite de instancias para diferentes eventos de audio.Usually, it was as easy as setting the limit of instances for different audio events. Se eliminan todas las instancias que se producen después de alcanzar el límite.Any instances that happen after the limit is reached are killed. Por ejemplo, cuando se genera drones, sus Screams se limitan a tres instancias en un momento dado.For example, when drones spawn, their screams are limited to three instances at any given time. Considerar solo cuatro drones se puede generar a la vez, hay tres screamss, ya que no hay forma de que su cerebro pueda realizar un seguimiento de los muchos eventos de audio de sonido similar.Considering only about four drones can spawn at once, three screams are plenty since there’s no way your brain can keep track of that many similar-sounding audio events. Esto liberó recursos para otros eventos de sonido espacial, como explosiones de enemigo o enemigos en preparación para disparar.This freed up resources for other spatial sound events, like enemy explosions or enemies preparing to shoot.

Recompensar una sobreexposición correctaRewarding a successful dodge

El mecánico de dodging es una de las mecánicas de juego más importantes de RoboRaid y también algo que pensamos que era verdaderamente exclusiva de la experiencia de HoloLens.The dodging mechanic is one of the most important gameplay mechanics in RoboRaid, and also something that we felt was truly unique to the HoloLens experience. Por lo tanto, queríamos realizar grandes sobreexposicións en el reproductor.As such, we wanted to make successful dodges very rewarding to the player. Obtuvimos el Doppler "Whizz-by" para que suene bastante atractivo en el desarrollo.We got the Doppler "whizz-by" to sound compelling fairly early on in the development. Inicialmente, mi plan era usar un bucle y manipularlo en tiempo real mediante el volumen, el paso y el filtro.Initially, my plan was to use a loop and manipulate it in real-time using volume, pitch, and filter. La implementación de esto iba a ser muy elaborada.The implementation for this was going to be very elaborate. Antes de confirmar los recursos para compilar esto, creamos un prototipo barato con un recurso con el efecto Doppler que preparamos en solo para averiguar cómo creía.Before committing resources to build this we created a cheap prototype using an asset with the Doppler effect baked in just to find out how it felt. Nuestro desarrollo de talentos lo hizo de modo que este recurso Whizz se reproduciría exactamente el 0,7 segundo antes de que el proyectil pase por los oídos del jugador y los resultados se sentían sorprendentes.Our talented dev made it so that this whizz-by asset would play back exactly 0.7 second before the projectile will have passed by the player’s ear and the results felt amazing! No es necesario decir que se ha reparado la solución más compleja y se ha implementado el prototipo.Needless to say, we ditched the more complex solution and implemented the prototype.

(Para obtener más información sobre la creación de un recurso de audio con el efecto Doppler integrado, vea 100 Whooshes en 2 minutos). (For more information about creating an audio asset with the Doppler effect built in, see 100 Whooshes in 2 Minutes.)
Dodging correctamente las recompensas de un enemigo en el jugador con un sonido Whizz satisfactorio.Successfully dodging an enemy's projectile rewards the player with a satisfying whizz-by sound.

Deszanjar sonidos ineficacesDitching ineffective sounds

Originalmente, habíamos querido jugar un sonido de explosión detrás del jugador una vez que ha sobrepasado correctamente el proyectil del enemigo, pero hemos decidido deshacerse por varios motivos.Originally, we had wanted to play an explosion sound behind the player once they’ve successfully dodged the enemy projectile, but we decided to ditch this for several reasons. En primer lugar, no se sienta tan efectivo como Whizz-by SFX que usamos para la inexposición.First, it didn’t feel as effective as the whizz-by SFX we used for the dodge. En el momento en que el proyectil llega a una pared detrás, se habría producido algo más en el juego que enmascararía ese sonido.By the time the projectile hits a wall behind you, something else would have happened in the game that would mask that sound. En segundo lugar, no teníamos colisiones en el piso, por lo que no pudimos reproducir la explosión cuando el proyectil alcanzó el piso en lugar de las paredes.Second, we didn’t have collision on the floor, so we couldn’t get the explosion to play when the projectile hit the floor instead of the walls. Y, por último, el costo de CPU del sonido espacial.And finally, there was the CPU cost of spatial sound. El enemigo de Elite Scorpion (uno que puede rastrear dentro de la pared) tiene un ataque especial que alcanza los ocho proyectiles.The Elite Scorpion enemy (one that can crawl inside the wall) has a special attack that shoots about eight projectiles. No solo hizo que un gran desorden en la combinación, sino que también presentaba entrecortados, porque hacía que la CPU estuviera demasiado duro.Not only did that make a huge mess in the mix, it also introduced awful crackling because it was hitting the CPU too hard.

Comunicar una visitaCommunicating a hit

Un problema interesante que hemos encontrado en HoloLens era lo difícil que era comunicar de forma eficaz que se había alcanzado un reproductor.An interesting issue we ran into on the HoloLens was how difficult it was to effectively communicate that a player had been hit. Lo que hace que una experiencia de realidad mixta sea correcta es la sensación de que se está produciendo la historia.What makes a mixed reality experience successful is the feeling that the story is happening to you. Esto significa que debe creer que está lidiando una invasión del robot extranjero en su propia habitación.That means you have to believe YOU are fighting an alien robot invasion in your own living room.

Obviamente, los jugadores no sentirán nada cuando se alcancen, por lo que tuvimos que encontrar una manera de convencer al jugador de que ha sucedido algo mal.Players obviously won't feel anything when they get hit, so we had to find a way to convince the player that something bad happened to them. En los juegos convencionales, es posible que vea una animación que le permita saber que el personaje ha tenido un golpe, o que la pantalla puede parpadear en rojo y que el carácter podría resultar un poco.In conventional games, you might see an animation that lets you know your character has taken a hit, or the screen might flash red and your character might grunt a little. Dado que estos tipos de indicaciones no funcionan en una experiencia de realidad mixta, decidimos combinar la indicación visual con un sonido exagerado que indica que ha sacado el daño.Since these types of cues don't work in a mixed reality experience, we decided to combine the visual cue with an exaggerated sound that indicates you've taken damage. He creado un gran sonido y lo hemos destacado en la combinación de que ha sobrepuesto todo.I created a big sound, and made it so prominent in the mix that it ducked everything down. A continuación, para que se resalte aún más, hemos agregado un breve sonido de advertencia como si se hubiera receptora un subproceso nuclear.Then, to make it stand out even more, we added a short warning sound as if a nuclear sub was sinking.
Cuando se alcanza un jugador en RoboRaid, se ve una indicación visual, pero también se obtiene una señal de audio exagerada que indica que han sufrido daños.When a player gets hit in RoboRaid, they see a visual cue, but also get an exaggerated audio cue that tells them they've taken damage.

Obtener sonido grande de pequeños altavocesGetting big sound from small speakers

Los oradores de HoloLens son pequeños y ligeros para adaptarse a las necesidades del dispositivo, por lo que no se puede esperar que escuche demasiado bajo.HoloLens speakers are small and light to suit the needs of the device, so you can’t expect to hear too much low-end. De forma similar al desarrollo para dispositivos smartphones o dispositivos de juegos de mano, los diseñadores y Composers de sonido deben tener en cuenta el contenido de la frecuencia de su audio.Similar to developing for smart phones or handheld gaming devices, sound designers and composers have to be mindful of the frequency content of their audio. Siempre se diseñan sonidos o se escribe música con un intervalo de frecuencia completo porque la utilización de auriculares es una opción para los usuarios.I always design sounds or write music with full frequency range because wearing headphones is an option for the users. Sin embargo, para garantizar la compatibilidad con los hablantes de HoloLens, ejecuto una prueba ocasionalmente colocando un EC en el patrón de cualquier DAW en el que estoy trabajando.However, to ensure compatibility with HoloLens speakers, I run a test occasionally by putting an EQ in the master of any DAW I happen to be working in. La configuración de ECUALIZAción está formada por un filtro de paso alto de alrededor de 600 Hz a 700 Hz (no demasiado pronunciada) y un filtro de paso bajo alrededor de 10 000 (con pendiente).The EQ setting consists of a high-pass filter around 600 Hz to 700 Hz (not too steep) and low-pass filter at around 10K (steep). Esto le dará una idea aproximada de cómo se reproducirán los sonidos en el dispositivo.That should give you an approximate idea of how your sounds will play back on the device.

Si se basa en graves para dar la sensación de cambiar el valor de cuerda en la música, es posible que la música pierda por completo el sentido de la raíz al aplicar esta configuración de EC.If you're relying on bass to give the sense of chord changing in your music, you may find that your music completely loses the sense of root when you apply this EQ setting. Para solucionarlo, agregué otra capa al graves que es una octava superior (con algunos armónicos ricos) y la combina para obtener el sentido de la raíz.To remedy this, I added another layer to the bass that is one octave higher (with some rich harmonics) and mixed it to get the sense of root back. A veces, el uso de la distorsión para aumentar el valor de los armónicos proporcionará suficiente contenido de frecuencia en el intervalo superior para que nuestro cerebro piense que hay algo debajo.Sometimes using distortion to amp up the harmonics will give enough frequency content in the upper range to make our brain think that there’s something underneath it. Esto es así para SFX como impactos, explosiones o sonidos para momentos especiales, como los ataques de superusuario de un jefe.This is true for SFX like impacts, explosions, or sounds for special moments, such as a boss' super attacks. En realidad, no puede confiar en el low-end para dar al jugador una sensación de impacto o peso.You really can’t rely on the low-end to give the player a sense of impact or weight. Al igual que con la música, el uso de distorsión para dar una información a algo muy útil.As with music, using distortion to give some crunch definitely helped.

Destaque las señales de audioMaking your audio cues stand out

Naturalmente, todos los miembros del equipo querían bombasticr música, armas de alto volumen y explosiones de loco; pero también querían ser capaces de oír VoiceOver o cualquier otra pista de audio crítica del juego.Naturally, everyone on the team wanted bombastic music, loud guns, and crazy explosions; but they also wanted to be able to hear voiceover or any other game-critical audio cues.

En un juego de consola con una gama completa de frecuencia, tiene más opciones para dividir las frecuencias en función de la importancia del sonido.On a console game with full range of frequency, you have more options to divide frequencies up depending on the importance of the sound. En el caso de RoboRaid, se limitaba el número de intervalos de frecuencias que podía curvar de los sonidos.For RoboRaid, I was limited in the number of ranges of frequencies I could curve out from sounds. Si usa un filtro de paso bajo y una curva demasiado en el extremo superior del espectro, no quedará nada en el sonido porque no hay mucho más bajo.If you use low-pass filter and curve out too much from the higher end of the spectrum, you won’t have anything left on the sound because there’s not much low-end.

Para que el sonido RoboRaid sea tan grande como en el dispositivo, tuvimos que reducir el intervalo dinámico de toda la experiencia y realizar un uso extensivo de la misma creando una jerarquía clara de importancia para los diferentes tipos de sonidos.To make RoboRaid sound as big as it can on the device, we had to lower the dynamic range of the whole experience and made extensive use of ducking by creating a clear hierarchy of importance for different types of sounds. Configuro la cadena de-2 dB a-6 dB en función de la importancia.I set the ducking from -2 dB to -6 dB depending on the importance. Personalmente no me gusta la untonía obvia en los juegos, por lo que he dedicado mucho tiempo a optimizar el tiempo de transición y salida y la cantidad de atenuación del volumen.I personally don’t like obvious ducking in games, so I spent a lot of time tuning the fade in/out timing and the amount of volume attenuation. Se configuran buses independientes para sonido espacial, sonido no espacial, VO y bus seco sin reverberación para música.We set up separate busses for spatial sound, non-spatial sound, VO, and dry bus without reverb for music. Después, creamos buses de alta prioridad, críticos y no críticos para que los recursos se configuraran para ir a los buses adecuados.Then, we created high priority, critical, and non-critical busses so the assets were set up to go to their appropriate busses.

Espero que los profesionales de audio salgan del trabajo en sus propias aplicaciones mientras trabajaba en RoboRaid.I hope audio professionals out there will have as much fun and excitement working on their own apps as I did working on RoboRaid. No puedo esperar para ver (y oír) el contenido de las personas con talento ajenos a Microsoft para HoloLens.I can’t wait to see (and hear!) what the talented folks outside Microsoft will come up with for HoloLens.

Hágalo usted mismoDo it yourself

Un truco que he descubierto para realizar determinados eventos (como explosiones) suena "más grande", al igual que están llenando el salón, era crear un recurso mono para el sonido espacial y combinarlo con un recurso estéreo 2D para reproducirlo en 3D.One trick I discovered to make certain events (such as explosions) sound "bigger"—like they're filling up the room—was to create a mono asset for the spatial sound and mix it with a 2D stereo asset, to be played back in 3D. Lleva cierto ajuste, ya que tener demasiada información en el contenido estéreo disminuirá la direccionalidad de los recursos mono.It does take some tuning, since having too much information in the stereo content will lessen the directionality of the mono assets. Sin embargo, el hecho de obtener el equilibrio tiene como resultado grandes sonidos que permitirán a los jugadores activar sus cabezales en la dirección correcta.However, getting the balance right will result in huge sounds that will get players to turn their heads in the right direction.

Puede probar los sonidos de gran tamaño con los recursos de audio siguientes:You can try out big sounds yourself using the audio assets below:

Escenario 1Scenario 1

  1. Descargue roboraid_enemy_explo_mono. wav y establézcalo para que se reproduzca a través de un sonido espacial y asígnelo a un evento.Download roboraid_enemy_explo_mono.wav and set to play back through spatial sound and assign it to an event.
  2. Descargue roboraid_enemy_explo_stereo. wav y establézcalo en reproducción en estéreo 2D y asígnelo al mismo evento que el anterior.Download roboraid_enemy_explo_stereo.wav and set to play back in 2D stereo and assign to the same event as above. Dado que estos recursos se normalizan en Unity, atenuar el volumen de ambos recursos para que no se recorte.Because these assets are normalized to Unity, attenuate volume of both assets so that it doesn’t clip.
  3. Reproducir ambos sonidos juntos.Play both sounds together. Mueva el dedo para sentir cómo suena espacial.Move your head around to feel how spatial it sounds.

Escenario 2Scenario 2

  1. Descargue roboraid_enemy_explo_summed. wav y establézcalo para reproducirlo a través de un sonido espacial y asignarlo a un evento.Download roboraid_enemy_explo_summed.wav and set to play back through spatial sound and assign to an event.
  2. Reproduzca este recurso y compárelo con el evento del escenario 1.Play this asset by itself then compare it to the event from Scenario 1.
  3. Pruebe un equilibrio diferente de archivos mono y estéreo.Try different balance of mono and stereo files.

Consulte tambiénSee also