Étude de cas - Utilisation du son spatial dans RoboRaid

Cet article décrit les défis auxquels l’équipe Microsoft HoloLens Experience a fait face lors de la création d’audio pour le jeu de tir à la première personne roboRaid.

La technologie

Le son spatial est l’une des fonctionnalités les plus intéressantes de Microsoft HoloLens, permettant aux utilisateurs de percevoir ce qui se passe autour d’eux quand les objets ne sont pas dans la ligne de vue.

Dans RoboRaid, l’utilisation la plus évidente et la plus efficace du son spatial est d’avertir le joueur de quelque chose qui se passe en dehors de sa vision périphérique. Par exemple, le breacher peut entrer à partir de n’importe quel mur scanné dans la pièce. Si vous n’êtes pas face à l’emplacement où il entre, vous risquez de le manquer. Pour vous alerter de cette invasion, vous entendrez un élément audio distinct provenant de l’endroit où le Breacher entre, ce qui vous permet de savoir que vous devez agir rapidement pour l’arrêter.

Dans les coulisses

La création d’un son spatial pour les applications HoloLens est tellement nouvelle et unique que les problèmes peuvent être difficiles à résoudre, car il n’y a pas de projets passés à référencer. Nous espérons que ces exemples des défis audio auxquels nous avons fait face lors de la création de RoboRaid vous aideront à créer de l’audio pour vos propres applications.

Veillez à taxer le processeur

Le son spatial peut être exigeant sur le processeur. Pour une expérience occupée comme RoboRaid, il était essentiel de maintenir le nombre d’instances sonores spatiales à moins de huit à tout moment. En règle générale, il était aussi simple de définir la limite d’instances pour différents événements audio. Toutes les instances qui se produisent une fois la limite atteinte sont tuées. Par exemple, lorsque des drones génèrent, leurs cris sont limités à trois instances à un moment donné. Si l’on considère que seulement environ quatre drones peuvent se reproduire à la fois, trois cris sont nombreux, car il n’y a aucun moyen pour votre cerveau de garder le suivi de nombreux événements audio similaires. Cela a libéré des ressources pour d’autres événements sonores spatiaux, comme les explosions ennemies ou les ennemis qui se préparent à tirer.

Récompense d’une esquive réussie

La mécanique d’esquive est l’une des mécaniques de jeu les plus importantes dans RoboRaid, et aussi quelque chose qui nous a semblé vraiment unique à l’expérience HoloLens. En tant que tel, nous voulions faire des esquives réussis très gratifiants pour le joueur. Nous avons obtenu le Doppler « whizz-by » pour sonner convaincant assez tôt dans le développement. Au départ, mon plan était d’utiliser une boucle et de la manipuler en temps réel à l’aide du volume, du pitch et du filtre. L’implémentation de cette opération allait être très élaborée. Avant d’engager des ressources pour construire cela, nous avons créé un prototype bon marché à l’aide d’un actif avec l’effet Doppler cuit juste pour savoir ce qu’il ressentait. Notre développeur talentueux a fait en sorte que cet atout whizz-by jouer exactement 0,7 seconde avant le projectile aura passé par l’oreille du joueur et les résultats se sont sentis étonnants! Inutile de dire que nous avons abandonné la solution plus complexe et implémenté le prototype.

(Pour plus d’informations sur la création d’une ressource audio avec l’effet Doppler intégré, consultez 100 Whooshes en 2 minutes.)
Esquiver avec succès le projectile d’un ennemi récompense le joueur avec un son de whizz-by satisfaisant.

Abandon des sons inefficaces

À l’origine, nous voulions jouer un son d’explosion derrière le joueur une fois qu’ils ont réussi à esquiver le projectile ennemi, mais nous avons décidé d’abandonner cela pour plusieurs raisons. Tout d’abord, il ne s’est pas senti aussi efficace que le whizz-by SFX que nous avons utilisé pour l’esquive. Au moment où le projectile heurte un mur derrière vous, il se serait passé quelque chose d’autre dans le jeu qui masquerait ce son. Deuxièmement, nous n’avons pas eu de collision sur le sol, donc nous n’avons pas pu faire jouer l’explosion lorsque le projectile a touché le sol au lieu des murs. Et enfin, il y avait le coût du processeur du son spatial. L’ennemi scorpion d’élite (celui qui peut ramper à l’intérieur du mur) a une attaque spéciale qui tire environ huit projectiles. Non seulement cela a fait un énorme gâchis dans le mélange, mais il a également introduit un craquement horrible parce qu’il frappait le processeur trop fort.

Communication d’un accès

Un problème intéressant que nous avons rencontré sur l’HoloLens a été la difficulté de communiquer efficacement qu’un joueur avait été touché. Ce qui fait le succès d’une expérience de réalité mixte, c’est le sentiment que l’histoire vous arrive. Cela signifie que vous devez croire que vous combattez une invasion de robot extraterrestre dans votre propre salon.

Les joueurs ne ressentent évidemment rien quand ils se font frapper, donc nous avons dû trouver un moyen de convaincre le joueur qu’il leur est arrivé quelque chose de mal. Dans les jeux conventionnels, vous pouvez voir une animation qui vous permet de savoir que votre personnage a pris un coup, ou l’écran peut clignoter en rouge et votre personnage peut grogner un peu. Étant donné que ces types de signaux ne fonctionnent pas dans une expérience de réalité mixte, nous avons décidé de combiner le signal visuel avec un son exagéré qui indique que vous avez subi des dommages. J’ai créé un gros son, et l’a rendu si important dans le mix qu’il a tout esquissé. Ensuite, pour le faire ressortir encore plus, nous avons ajouté un court son d’avertissement comme si un sous-marin nucléaire coulait.
Quand un joueur est touché dans RoboRaid, il voit un signal visuel, mais aussi un signal audio exagéré qui lui indique qu’il a subi des dommages.

Obtention d’un gros son à partir de petits haut-parleurs

Les haut-parleurs HoloLens sont petits et légers pour répondre aux besoins de l’appareil, vous ne pouvez donc pas vous attendre à entendre trop de bas de page. À l’instar du développement pour les téléphones intelligents ou les appareils de jeu portables, les concepteurs et compositeurs sonores doivent être conscients du contenu de fréquence de leur audio. Je conçois toujours des sons ou j’écris de la musique avec une plage de fréquences complète parce que le port du casque est une option pour les utilisateurs. Toutefois, pour garantir la compatibilité avec les haut-parleurs HoloLens, j’exécute un test de temps en temps en plaçant un QE dans le master de tout DAW dans lequel je travaille. Le paramètre EQ se compose d’un filtre passe-haut autour de 600 Hz à 700 Hz (pas trop raide) et d’un filtre passe-bas à environ 10 000 (raide). Cela devrait vous donner une idée approximative de la façon dont vos sons seront lus sur l’appareil.

Si vous vous appuyez sur la basse pour donner l’impression que les accords changent dans votre musique, vous constaterez peut-être que votre musique perd complètement le sens de la racine lorsque vous appliquez ce paramètre EQ. Pour remédier à cela, j’ai ajouté une autre couche à la basse qui est une octave plus haute (avec quelques harmoniques riches) et l’ai mélangée pour obtenir le sens de la racine en arrière. Parfois, l’utilisation de la distorsion pour ampliser les harmoniques donnera suffisamment de contenu de fréquence dans la plage supérieure pour faire croire à notre cerveau qu’il y a quelque chose en dessous. Cela est vrai pour les SFX comme les impacts, les explosions ou les sons pour des moments spéciaux, comme les super attaques d’un patron. Vous ne pouvez vraiment pas compter sur le bas de l’extrémité pour donner au joueur un sens de l’impact ou du poids. Comme pour la musique, l’utilisation de la distorsion pour donner un peu de crunch a certainement aidé.

Faire ressortir vos signaux audio

Naturellement, tout le monde dans l’équipe voulait de la musique bombastique, des fusils forts et des explosions folles; mais ils voulaient également pouvoir entendre la voix off ou tout autre signal audio critique pour le jeu.

Sur un jeu console avec une gamme complète de fréquences, vous avez plus d’options pour diviser les fréquences en fonction de l’importance du son. Pour RoboRaid, j’étais limité dans le nombre de plages de fréquences que je pouvais courber à partir des sons. Si vous utilisez le filtre passe-bas et que vous courbez trop à partir de l’extrémité supérieure du spectre, vous n’aurez plus rien sur le son, car il n’y a pas beaucoup de bas de gamme.

Pour que RoboRaid sonne aussi grand que possible sur l’appareil, nous avons dû réduire la plage dynamique de l’ensemble de l’expérience et utiliser largement le canardage en créant une hiérarchie claire d’importance pour différents types de sons. J’ai défini le canardage de -2 dB à -6 dB en fonction de l’importance. Personnellement, je n’aime pas les canards évidents dans les jeux, donc j’ai passé beaucoup de temps à régler le minutage d’entrée/sortie de fondu et la quantité d’atténuation du volume. Nous avons mis en place des bus distincts pour le son spatial, le son non spatial, la VO et le bus sec sans réverbération pour la musique. Ensuite, nous avons créé des bus hautement prioritaires, critiques et non critiques afin que les ressources soient configurées pour accéder aux bus appropriés.

J’espère que les professionnels de l’audio là-bas auront autant de plaisir et d’excitation à travailler sur leurs propres applications que je l’ai fait sur RoboRaid. J’ai hâte de voir (et d’entendre !) ce que les gens talentueux en dehors de Microsoft vont trouver pour HoloLens.

Faites-le vous-même

Une astuce que j’ai découvert pour que certains événements (tels que les explosions) sonnent « plus gros », comme s’ils remplissent la salle, a été de créer un élément mono pour le son spatial et de le mélanger avec un élément stéréo 2D, à lire en 3D. Il faut un certain réglage, car le fait d’avoir trop d’informations dans le contenu stéréo diminuera la direction des ressources mono. Cependant, obtenir le bon équilibre se traduira par des sons énormes qui permettront aux joueurs de tourner la tête dans la bonne direction.

Vous pouvez essayer vous-même les grands sons à l’aide des ressources audio ci-dessous :

Scénario 1

  1. Téléchargez roboraid_enemy_explo_mono.wav et définissez pour lire le son spatial et l’affecter à un événement.
  2. Téléchargez roboraid_enemy_explo_stereo.wav et définissez pour lire en stéréo 2D et affecter au même événement que ci-dessus. Étant donné que ces ressources sont normalisées en Unity, atténuez le volume des deux ressources afin qu’il ne soit pas clipé.
  3. Jouez les deux sons ensemble. Déplacez votre tête pour sentir à quel point elle sonne spatiale.

Scénario 2

  1. Téléchargez roboraid_enemy_explo_summed.wav et définissez-le pour lire le son spatial et l’affecter à un événement.
  2. Jouez cette ressource par elle-même, puis comparez-la à l’événement du scénario 1.
  3. Essayez d’équilibrer différents fichiers mono et stéréo.

Voir aussi