Você precisa fazer sacrifícios, não pode ter a mesma imersão quando alguns sons não devem ser ouvidos por todos os jogadores. Alguns mecanismos criaram soluções para esse problema ( exemplo ), mas não consegui encontrar nenhuma informação sobre como ele funciona.
Use estéreo para separar o som
(ideia wiz3kid nos comentários)
Se a tela estiver dividida na vertical, você poderá gerenciar os diferentes sons a serem reproduzidos no lado do player apropriado. Foi descrito aqui (caso de uso 1).
Neste exemplo, os sons são atenuados por -96dB no outro lado, o que equivale a silenciar. (Se meu cálculo estiver correto, -96,3dB é como dividir por 15 milhões). Eu acho que não precisa ser tão brutal. Se você tocar cada som principalmente do lado do jogador que deve ouvi-lo, os jogadores poderão distinguir um som que sai da metade ou não e ainda haverá um pouco de estéreo.
Isso funciona melhor quando há apenas dois jogadores, mas no caso de quatro jogadores, você pode combinar os sons dos jogadores verticalmente para usar o mesmo método.
Selecione os sons tocados
Eu acho que o efeito da cacofonia vem dos sons que são longos. No mario kart, por exemplo, o volume do som à deriva é muito baixo comparado ao som quando um item é escolhido. O som do jogo pode parecer confuso, mas não é tanto, considerando os sons tocados. Poderia ter sido facilmente insustentável.
Portanto, a solução pode ser filtrar os sons longos ou repetidos com muita frequência. Atenuando o ruído geral, os sons importantes serão mais fáceis de distinguir. Eu não acho que seja um problema para um jogador ouvir sons que ele não deveria ouvir desde que possa ouvir facilmente os sons que são importantes para ele.
Em relação ao jogador mais próximo
Neste tópico , todos concordam que os sons devem ser reproduzidos uma vez no total (não uma vez para cada jogador) em relação ao jogador mais interessado, o mais próximo, por exemplo.
Ponto de vista de Tinus
Ligação.
Eu não o conheço, mas ele cria um plugin de unidade para lidar com o áudio em tela dividida. Ele explica o método que ele usaria em uma de suas postagens. Não sei se é uma abordagem válida, pois não entendo a maior parte.
Primeiro, adote a abordagem ingênua, basta sobrepor as perspectivas de audição e enviá-las para a saída estéreo. Isso não funcionará para jogos auditivamente intensos, mas também há muitos jogos para os quais isso deve funcionar.
Em seguida, introduza ferramentas extras com as quais você pode controlar melhor a mistura. Como você os usaria depende do jogo que está fazendo e como você acha que deve soar, mas existem alguns possíveis padrões comuns. Do alto da minha cabeça:
Efeitos de compressor / limitador / alinhamento lateral em ouvintes e saídas estéreo. Já é difícil o suficiente impedir que os jogos Unity sejam densos, e muito menos quando você adiciona vários ouvintes à mixagem. Um simples compressor no final da cadeia de sinal não seria uma solução elegante para esse problema, mas seria uma solução rápida. Talvez eu tente implementar um componente Compressor usando o OnAudioFilterRead, na verdade.
Áudio de alta faixa dinâmica. As entradas mais recentes da série Battlefield usam isso com grande efeito. Novamente, não é uma bala mágica que cura automaticamente o seu mix. Mas o paradigma HDR parece ser uma ferramenta poderosa para ajudá-lo a organizar misturas densas e muito dinâmicas. A seleção e a priorização são tratadas com elegância dessa maneira, o que sem dúvida seria útil também nas configurações de tela dividida. Advertências: o DICE usa software personalizado (não tenho certeza se o FMOD pode ser juramentado por isso) e as demandas na criação de ativos de áudio se tornam mais pesadas.
Permita que artistas de som priorizem sons e tenha algum tipo de mixer que gerencia a prioridade do som entre os ouvintes. Se o jogador 2 realmente precisar ouvir esse foguete que está prestes a atingi-lo, talvez você possa desviar o som do jogador 1.