Estudo de caso – Usando som espacial no RoboRaid

Este artigo descreve os desafios que a Equipe de Experiência do Microsoft HoloLens enfrentou ao criar áudio para o atirador em primeira pessoa da realidade misturada roboRaid.

A tecnologia

O som espacial é um dos recursos mais interessantes do Microsoft HoloLens, permitindo que os usuários percebam o que está acontecendo ao seu redor quando os objetos não estão na linha de visão.

No RoboRaid, o uso mais óbvio e eficaz do som espacial é alertar o jogador sobre algo que está acontecendo fora de sua visão periférica. Por exemplo, o Violador pode entrar de qualquer uma das paredes digitalizadas na sala. Se você não estiver de frente para o local em que ele está entrando, poderá perdê-lo. Para alertá-lo sobre essa invasão, você ouvirá um pouco de áudio distinto vindo de onde o Violador está entrando, o que permite que você saiba que precisa agir rapidamente para interrompê-lo.

Nos bastidores

A criação de som espacial para aplicativos HoloLens é tão nova e exclusiva que os problemas podem ser difíceis de resolver porque não há projetos anteriores a serem referenciados. Esperamos que esses exemplos dos desafios de áudio que enfrentamos ao criar o RoboRaid ajudem você a criar áudio para seus próprios aplicativos.

Esteja atento à tributação da CPU

O som espacial pode ser exigente na CPU. Para uma experiência ocupada como RoboRaid, era crucial manter o número de instâncias de som espacial abaixo de oito a qualquer momento. Normalmente, era tão fácil quanto definir o limite de instâncias para eventos de áudio diferentes. Todas as instâncias que ocorrem depois que o limite é atingido são encerradas. Por exemplo, quando os drones geram, seus gritos sã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 muitos, já que não há como seu cérebro acompanhar esses muitos eventos de áudio semelhantes. Isso liberou recursos para outros eventos de som espacial, como explosões inimigas ou inimigos se preparando para atirar.

Recompensando um dodge bem-sucedido

A mecânica de esquiva é uma das mecânicas de jogo mais importantes no RoboRaid, e também algo que achamos que era realmente único para a experiência do HoloLens. Como tal, queríamos fazer esquivas bem sucedidas muito gratificantes para o jogador. Temos o Doppler "zunindo" para soar convincente bastante cedo no desenvolvimento. Inicialmente, meu plano era usar um loop e manipulá-lo em tempo real usando volume, tom e filtro. A implementação para isso seria muito elaborada. Antes de confirmar recursos para criar isso, criamos um protótipo barato usando um ativo com o efeito Doppler assado apenas para descobrir como ele se sentia. Nosso talentoso desenvolvedor fez isso para que esse ativo de zunição jogasse de volta exatamente 0,7 segundo antes que o projétil tivesse passado pela orelha do jogador e os resultados parecessem incríveis! Desnecessário dizer que abandonamos a solução mais complexa e implementamos o protótipo.

(Para obter mais informações sobre como criar um ativo de áudio com o efeito Doppler interno, consulte 100 Whooshes em 2 minutos.)
Esquivar-se com sucesso do projétil de um inimigo recompensa o jogador com um som satisfatório.

Abandonando sons ineficazes

Originalmente, queríamos tocar um som de explosão atrás do jogador uma vez que eles se esquivaram com sucesso do projétil inimigo, mas decidimos abandonar isso por várias razões. Primeiro, não parecia tão eficaz quanto o SFX que usamos para o dodge. Quando o projétil bater em uma parede atrás de você, algo mais teria acontecido no jogo que mascararia esse som. Segundo, não tivemos colisão no chão, então não conseguimos que a explosão tocasse quando o projétil atingiu o 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éteis. Isso não só fez uma grande bagunça na mistura, como também introduziu um estalo terrível porque estava batendo muito forte na CPU.

Comunicando um clique

Uma questão interessante que encontramos no HoloLens foi como era difícil comunicar efetivamente que um jogador havia sido atingido. O que torna uma experiência de realidade misturada bem sucedida é a sensação de que a história está acontecendo com você. Isso significa que você tem que acreditar que você está lutando contra uma invasão robô alienígena em sua própria sala de estar.

Os jogadores obviamente não sentirão nada quando forem atingidos, então tivemos que encontrar uma maneira de convencer o jogador de que algo ruim aconteceu com eles. Em jogos convencionais, você pode ver uma animação que permite que você saiba que seu personagem levou um sucesso, ou a tela pode piscar vermelho e seu personagem pode grunhir um pouco. Como esses tipos de indicações não funcionam em uma experiência de realidade misturada, decidimos combinar a indicação visual com um som exagerado que indica que você sofreu danos. Criei um som grande, e o fiz tão proeminente na mistura que abaixou tudo. Então, para se destacar ainda mais, adicionamos um breve som de aviso como se um submarino nuclear estivesse afundando.
Quando um jogador é atingido no RoboRaid, ele vê uma indicação visual, mas também recebe uma indicação de áudio exagerada que diz que eles tomaram danos.

Obtendo um som grande de alto-falantes pequenos

Os alto-falantes do HoloLens são pequenos e leves para atender às necessidades do dispositivo, portanto, você não pode esperar ouvir muito low-end. Semelhante ao desenvolvimento para smartphones ou dispositivos de jogos portáteis, designers de som e compositores precisam estar atentos ao conteúdo de frequência de seu áudio. Eu sempre projeto sons ou escrevo músicas com intervalo de frequência total porque usar fones de ouvido é uma opção para os usuários. No entanto, para garantir a compatibilidade com os alto-falantes do HoloLens, eu executo um teste ocasionalmente colocando um EQ no master de qualquer DAW em que eu esteja trabalhando. A configuração de EQ consiste em um filtro de passagem alta em torno de 600 Hz a 700 Hz (não muito íngreme) e filtro de passagem baixa em torno de 10K (íngreme). Isso deve dar uma ideia aproximada de como seus sons serão reproduzidos no dispositivo.

Se você está confiando no baixo para dar a sensação de mudança de acordes em sua música, você pode descobrir que sua música perde completamente o senso de raiz ao aplicar essa configuração de EQ. Para remediar isso, eu adiciono outra camada ao baixo que é uma oitava mais alta (com algumas harmônicas ricas) e misturei-a para ter a sensação de raiz de volta. Às vezes, usar distorção para aumentar as harmônicas dará conteúdo de frequência suficiente na faixa superior para fazer nosso cérebro pensar que há algo debaixo dele. Isso é verdade para sfx como impactos, explosões ou sons para momentos especiais, como os super ataques de um chefe. Você realmente não pode confiar no low-end para dar ao jogador uma sensação de impacto ou peso. Assim como acontece com a música, usar distorção para dar alguma crise definitivamente ajudou.

Fazendo com que suas indicações de áudio se destaquem

Naturalmente, todos da equipe queriam música bombástica, armas altas e explosões loucas; mas eles também queriam ser capazes de ouvir narração ou quaisquer outras indicações de áudio críticas ao jogo.

Em um jogo de console com toda a frequência, você tem mais opções para dividir as frequências, dependendo da importância do som. Para RoboRaid, eu estava limitado no número de intervalos de frequências que eu poderia curvar-se a partir de sons. Se você usar filtro de passagem baixa e se curvar demais da extremidade superior do espectro, não terá mais nada no som porque não há muito low-end.

Para fazer o RoboRaid soar tão grande quanto possível no dispositivo, tivemos que diminuir o alcance dinâmico de toda a experiência e fizemos uso extensivo do ducking criando uma hierarquia clara de importância para diferentes tipos de sons. Eu defina o pato de -2 dB para -6 dB dependendo da importância. Eu pessoalmente não gosto de se esquivar óbvio em jogos, então passei muito tempo ajustando o tempo de esmaecimento e a quantidade de atenuação de volume. Configuramos ônibus separados para som espacial, som não espacial, VO e barramento seco sem reverberação para música. Em seguida, criamos ônibus de alta prioridade, críticos e não críticos para que os ativos fossem configurados para ir para seus ônibus apropriados.

Espero que os profissionais de áudio lá fora tenham tanta diversão e emoção trabalhando em seus próprios aplicativos quanto eu fiz trabalhando no RoboRaid. Mal posso esperar para ver (e ouvir!) o que as pessoas talentosas fora da Microsoft criarão para o HoloLens.

Faça você mesmo

Um truque que descobri para fazer certos eventos (como explosões) soarem "maiores", como se estivessem enchendo a sala, era criar um ativo mono para o som espacial e misturá-lo com um ativo estéreo 2D, a ser reproduzido em 3D. É preciso algum ajuste, pois ter muita informação no conteúdo estéreo diminuirá a direcionalidade dos ativos mono. No entanto, acertar o equilíbrio resultará em sons enormes que farão com que os jogadores virem a cabeça na direção certa.

Você pode experimentar grandes sons por conta própria usando os ativos de áudio abaixo:

Cenário 1

  1. Baixe roboraid_enemy_explo_mono.wav e defina para reproduzir por meio do som espacial e atribuí-lo a um evento.
  2. Baixe roboraid_enemy_explo_stereo.wav e defina para reproduzir em estéreo 2D e atribua ao mesmo evento acima. Como esses ativos são normalizados para o Unity, atenuar o volume de ambos os ativos para que ele não seja recortar.
  3. Toque os dois sons juntos. Mova sua cabeça para sentir o quão espacial ela soa.

Cenário 2

  1. Baixe roboraid_enemy_explo_summed.wav e defina para reproduzir por meio do som espacial e atribuir a um evento.
  2. Reproduza esse ativo sozinho e compare-o com o evento do Cenário 1.
  3. Tente um equilíbrio diferente de arquivos mono e estéreo.

Confira também