Vous devez faire des sacrifices, vous ne pouvez pas avoir la même immersion lorsque certains sons ne sont pas censés être entendus par tous les joueurs. Certains moteurs ont intégré des solutions à ce problème ( exemple ) mais je n'ai trouvé aucune information sur son fonctionnement.
Utilisez la stéréo pour séparer le son
(idée wiz3kid dans les commentaires)
Si l'écran est divisé verticalement, vous pouvez gérer les différents sons à jouer du côté du bon joueur. Il a été décrit ici (cas d'utilisation 1).
Dans cet exemple, les sons sont atténués de -96 dB de l'autre côté, ce qui équivaut à la coupure du son. (Si mon calcul est correct, -96,3 dB équivaut à diviser par 15 millions). Je pense que cela ne doit pas être aussi brutal. Si vous jouez chaque son principalement du côté du joueur qui est censé les entendre, les joueurs pourront distinguer un son venant de leur moitié ou pas et il y aura toujours un peu de stéréo.
Cela fonctionne mieux lorsqu'il n'y a que deux joueurs, mais dans le cas de 4 joueurs, vous pouvez combiner les sons des joueurs verticalement pour utiliser la même méthode.
Sélectionnez les sons joués
Je pense que l' effet cacophonie vient des sons longs. Dans mario kart par exemple, le volume sonore dérivant est très faible par rapport au son lorsqu'un élément est cueilli. Le son du jeu peut sembler désordonné, mais ce n'est pas tellement compte tenu des sons qui sont joués. Cela aurait pu facilement être inaudible.
Par conséquent, la solution pourrait être de filtrer les sons longs ou répétés très souvent. En atténuant le bruit général, les sons importants seront plus faciles à distinguer. Je ne pense pas que ce soit un problème pour un joueur d'entendre des sons qu'il n'est pas censé entendre tant qu'il peut facilement entendre les sons qui sont importants pour lui.
Par rapport au joueur le plus proche
Dans ce fil, ils conviennent tous que les sons doivent être joués une fois au total (pas une fois pour chaque joueur) par rapport au joueur le plus concerné, le plus proche par exemple.
Le point de vue de Tinus
Lien.
Je ne le connais pas mais il fait un plugin d'unité pour gérer l'audio en écran partagé. Il explique la méthode qu'il utiliserait sur l'un de ses postes. Je ne sais pas si c'est une approche valable car je ne comprends pas la majeure partie.
Optez d'abord pour l'approche naïve, superposez simplement les perspectives d'écoute et envoyez-les à la sortie stéréo. Cela ne fonctionnera pas pour les jeux à intensité auditive, mais il y a aussi beaucoup de jeux pour lesquels cela devrait convenir.
Ensuite, introduisez des outils supplémentaires avec lesquels vous pouvez mieux contrôler le mixage. La façon dont vous les utiliserez dépend du jeu que vous créez et de la façon dont vous pensez que cela devrait sonner, mais il existe certains modèles communs possibles. Du haut de ma tête:
Effets compresseur / limiteur / Sidechaining sur les écouteurs et les sorties stéréo. Il est assez difficile d'empêcher l'écrêtage des jeux Unity denses, et encore moins lorsque vous ajoutez plusieurs écouteurs au mix. Un simple compresseur à la fin de la chaîne de signaux ne serait pas une solution élégante à ce problème, mais ce serait une solution rapide. Je pourrais essayer de mettre en œuvre un composant Compressor en utilisant OnAudioFilterRead, en fait.
Audio à plage dynamique élevée. Les entrées les plus récentes de la série Battlefield l'utilisent à bon escient. Encore une fois, ce n'est pas une solution miracle qui guérit automatiquement votre mix. Mais le paradigme HDR semble être un outil puissant pour vous aider à organiser des mixages denses et très dynamiques. L'abattage et la priorisation sont traités de manière élégante de cette façon, ce qui serait sans aucun doute utile pour les configurations d'écran partagé. Mises en garde: DICE utilise un logiciel personnalisé (je ne sais pas si FMOD pourrait être soumis à jury pour cela), et les demandes de création d'actifs audio deviennent plus lourdes.
Autorisez les artistes du son à prioriser les sons et disposez d'une sorte de mélangeur qui gère la priorité du son entre les auditeurs. Si le joueur 2 a vraiment besoin d'entendre cette fusée qui est sur le point de le frapper, vous pouvez peut-être esquiver le son du joueur 1.