Caso prático - Utilizar som espacial no RoboRaid

Este artigo descreve os desafios que a Equipa de Experiência Microsoft HoloLens enfrentou ao criar áudio para o atirador na primeira pessoa da realidade mista RoboRaid.

A tecnologia

O som espacial é uma das funcionalidades mais emocionantes do Microsoft HoloLens, permitindo que os utilizadores percebam o que se passa à sua volta quando os objetos não estão na linha de visão.

No RoboRaid, o uso mais óbvio e eficaz do som espacial está a alertar o jogador para algo que acontece fora da sua visão periférica. Por exemplo, o Breacher pode entrar a partir de qualquer uma das paredes digitalizadas na sala. Se não estiver virado para a localização onde está a entrar, poderá não o ter visto. Para alertá-lo para esta invasão, irá ouvir um pouco de áudio diferente vindo de onde o Breacher está a entrar, o que lhe permite saber que precisa de agir rapidamente para o impedir.

Nos bastidores

A criação de som espacial para aplicações holoLens é tão nova e única que os problemas podem ser difíceis de resolver porque não existem projetos anteriores a referenciar. Esperemos que estes exemplos dos desafios de áudio que enfrentamos ao criar o RoboRaid o ajudem a criar áudio para as suas próprias aplicações.

Tenha em atenção a tributação da CPU

O som espacial pode ser exigente na CPU. Para uma experiência movimentada como RoboRaid, foi crucial manter o número de instâncias de som espacial para menos de oito em qualquer momento. Normalmente, era tão fácil como definir o limite de instâncias para diferentes eventos de áudio. Todas as instâncias que ocorrem após o limite ser atingido são eliminadas. Por exemplo, quando os drones geram, os seus gritos estão limitados a três instâncias a qualquer momento. Considerando que apenas cerca de quatro drones podem gerar ao mesmo tempo, três gritos são suficientes, uma vez que não há maneira do seu cérebro controlar tantos eventos de áudio semelhantes. Isto libertou recursos para outros eventos de som espacial, como explosões inimigas ou inimigos que se preparavam para disparar.

Recompensar um desvio bem-sucedido

A mecânica de esquivar-se é uma das mecânicas de gameplay mais importantes do RoboRaid, e também algo que sentimos ser verdadeiramente exclusivo da experiência do HoloLens. Como tal, queríamos fazer desvios bem sucedidos muito gratificantes para o jogador. Conseguimos que o Doppler "whizz-by" soe convincente bastante cedo no desenvolvimento. Inicialmente, o meu plano era utilizar um ciclo e manipulá-lo em tempo real com volume, tom e filtro. A implementação deste procedimento seria muito elaborada. Antes de comprometer recursos para construir isto, criámos um protótipo barato usando um recurso com o efeito Doppler assado apenas para descobrir como se sentia. O nosso talentoso programador conseguiu fazê-lo para que este recurso de whizz-by jogasse exactamente 0,7 segundos antes do projétil ter passado pela orelha do jogador e os resultados terem sido fantásticos! Escusado será dizer que abandonámos a solução mais complexa e implementámos o protótipo.

(Para obter mais informações sobre como criar um recurso de áudio com o efeito Doppler incorporado, consulte 100 Whooshes em 2 Minutos.)
Evitar com sucesso o projétil de um inimigo recompensa o jogador com um som satisfatório.

A abandonar sons ineficazes

Inicialmente, queríamos tocar um som de explosão atrás do jogador depois de se terem esquivado com sucesso ao projétil inimigo, mas decidimos abandonar isto por várias razões. Primeiro, não se sentiu tão eficaz como o sFX que usámos para o desvio. Quando o projétil bater numa parede atrás de ti, algo mais teria acontecido no jogo que mascararia esse som. Segundo, não tivemos colisão no chão, por isso não conseguimos que a explosão tocasse quando o projétil bateu no chão em vez das paredes. E, finalmente, houve o custo da CPU do som espacial. O inimigo Escorpião de Elite (que pode rastejar dentro da parede) tem um ataque especial que dispara cerca de oito projécteis. Não só isso fez uma grande confusão na mistura, como também introduziu crepitações horríveis porque estava a atingir a CPU com demasiada força.

Comunicar um sucesso

Um problema interessante que encontrámos no HoloLens foi a dificuldade em comunicar eficazmente que um jogador tinha sido atingido. O que torna uma experiência de realidade mista bem sucedida é a sensação de que a história está a acontecer contigo. Isso significa que tens de acreditar que estás a lutar contra uma invasão de robôs alienígenas na tua própria sala de estar.

Os jogadores obviamente não vão sentir nada quando forem atingidos, por isso tivemos de encontrar uma maneira de convencer o jogador de que algo de mau lhes aconteceu. Nos jogos convencionais, poderá ver uma animação que lhe permite saber que a sua personagem foi atingida ou o ecrã poderá piscar a vermelho e a sua personagem poderá grunhê-la um pouco. Uma vez que estes tipos de deixas não funcionam numa experiência de realidade mista, decidimos combinar a deixa visual com um som exagerado que indica que sofreu danos. Criei um grande som, e tornou-o tão proeminente na mistura que se esquivou a tudo. Então, para que se destacasse ainda mais, adicionámos um pequeno som de aviso como se um submarino nuclear estivesse a afundar-se.
Quando um jogador é atingido no RoboRaid, vê uma deixa visual, mas também recebe uma deixa de áudio exagerada que lhes diz que se danificaram.

Obter som grande a partir de altifalantes pequenos

Os altifalantes do HoloLens são pequenos e leves de acordo com as necessidades do dispositivo, pelo que não pode esperar ouvir demasiado low-end. Semelhante ao desenvolvimento de smartphones ou dispositivos de jogos portáteis, os designers de som e os compositores têm de estar atentos ao conteúdo de frequência do áudio. Desenho sempre sons ou escrevo música com intervalo de frequência total porque utilizar auscultadores é uma opção para os utilizadores. No entanto, para garantir a compatibilidade com os altifalantes do HoloLens, faço ocasionalmente um teste ao colocar um EQ no mestre de qualquer DAW em que esteja a trabalhar. A definição EQ consiste num filtro de alta passagem de cerca de 600 Hz a 700 Hz (não muito íngreme) e filtro de passagem baixa a cerca de 10 K (íngreme). Isto deve dar-lhe uma ideia aproximada de como os seus sons serão reproduzidos no dispositivo.

Se estiver a contar com o baixo para dar a sensação de mudança de acorde na sua música, poderá descobrir que a sua música perde completamente a sensação de raiz quando aplica esta definição de EQ. Para remediar isto, adicionei outra camada ao baixo que é uma oitava mais alta (com algumas harmónicas ricas) e misturei-a para recuperar a sensação de raiz. Às vezes, usar distorção para aumentar a harmónica dará conteúdo de frequência suficiente na gama superior para fazer o nosso cérebro pensar que há algo por baixo dela. Isto aplica-se a SFX como impactos, explosões ou sons para momentos especiais, como os super ataques de um chefe. Não se pode confiar no low-end para dar ao jogador uma sensação de impacto ou peso. Tal como com a música, usar distorção para dar alguma crise definitivamente ajudou.

Destacar as suas sugestões de áudio

Naturalmente, todos na equipa queriam música bombástica, armas altas e explosões loucas; mas também queriam ser capazes de ouvir voiceover ou quaisquer outras pistas de áudio críticas para o jogo.

Num jogo de consola com uma gama completa de frequências, tem mais opções para dividir frequências consoante a importância do som. Para RoboRaid, estava limitado no número de intervalos de frequências que podia curvar-me dos sons. Se utilizar o filtro de passagem baixa e se curvar demasiado a partir da extremidade superior do espectro, não terá mais nada no som porque não existe muito low-end.

Para fazer com que o RoboRaid soe o mais grande possível no dispositivo, tivemos de reduzir o intervalo dinâmico de toda a experiência e fizemos um uso extensivo de pato ao criar uma hierarquia clara de importância para diferentes tipos de sons. Definai o pato de -2 dB para -6 dB, dependendo da importância. Pessoalmente, não gosto de fugir óbvio nos jogos, por isso passei muito tempo a ajustar o tempo de desvanecimento e a quantidade de atenuação do volume. Configurámos barramentos separados para som espacial, som não espacial, VO e barramento seco sem reverência para música. Depois, criámos autocarros de alta prioridade, críticos e não críticos para que os activos fossem criados para irem para os autocarros adequados.

Espero que os profissionais de áudio lá fora tenham tanta diversão e excitação a trabalhar nas suas próprias aplicações como eu fiz a trabalhar no RoboRaid. Mal posso esperar para ver (e ouvir!) o que os talentosos fora da Microsoft vão criar para o HoloLens.

Faça-o por si mesmo

Um truque que descobri para fazer com que certos eventos (como explosões) soem "maiores", como se estivessem a encher a sala, era criar um elemento mono para o som espacial e misturá-lo com um elemento estéreo 2D, para ser reproduzido em 3D. É necessária alguma otimização, uma vez que ter demasiada informação no conteúdo estéreo diminuirá a direcionalidade dos recursos mono. No entanto, acertar o equilíbrio resultará em sons enormes que farão com que os jogadores virem a cabeça na direcção certa.

Pode experimentar sons grandes utilizando os recursos de áudio abaixo:

Cenário 1

  1. Transfira roboraid_enemy_explo_mono.wav e defina para reproduzir através do som espacial e atribua-o a um evento.
  2. Transfira roboraid_enemy_explo_stereo.wav e defina para reproduzir novamente no estéreo 2D e atribua ao mesmo evento acima. Uma vez que estes recursos são normalizados para o Unity, atenua o volume de ambos os recursos para que não sejam recortar.
  3. Reproduzir ambos os sons juntos. Mova a cabeça para sentir o quão espacial soa.

Cenário 2

  1. Transfira roboraid_enemy_explo_summed.wav e defina para reproduzir através do som espacial e atribua a um evento.
  2. Reproduza este recurso por si só e, em seguida, compare-o com o evento do Cenário 1.
  3. Experimente um equilíbrio diferente de ficheiros mono e estéreo.

Ver também