Nouveauté de Wwise Spatial Audio 2023.1 | Zones de réverbération

Nouveautés / Audio spatialisée / Outils et conseils pour Wwise

Introduction aux Zones de réverbération

Wwise 23.1 introduit une nouvelle fonctionnalité à Wwise Spatial Audio appelée Zones de réverbération (Reverb Zones). Une Zone de réverbération est une région située à l'intérieur d'une Room et qui ne se connecte pas à d'autres Rooms par des Portals, mais qui utilise plutôt la géométrie pour définir où les transitions doivent se produire. En tant que variante de Rooms et de Portals, ces zones vous permettent de délimiter des espaces avec leurs propres réverbérations et propriétés propres aux Rooms, mais pour lesquels l'usage de Rooms personnalisées ne serait pas adapté, ou bien se heurterait aux contraintes impliquées par l'utilisation des Portals.

Cet article présente différents scénarios hypothétiques de projets de jeux où les Zones de réverbération peuvent être l'outil adéquat pour résoudre certains problèmes de conception, et met en lumière quelques pièges courants pouvant entraîner des résultats indésirables. Bien que j'utilise Unreal Engine, avec lequel vous pouvez facilement placer une Zone de réverbération de la même manière que vous placeriez un Spatial Audio Volume, je m'efforcerai de parler de manière générale, considérant que les mêmes principes s'appliquent à n'importe quel moteur de jeu. Ces exemples donnent une vue d'ensemble, mais n'entrent pas dans les détails techniques.

Bienvenu au héros

Imaginons que nous réalisions un jeu d'aventure. Votre Protagoniste de l'aventure se réveille dans une cabane, quelque part dans les bois. Il s'agit d'une configuration simple de Rooms et de Portals : L'extérieur est constitué d'une Room sur mesure que j'ai appelée SAV_Forest. La cabane est constituée d'une autre Room. Les deux sont reliées par un Portal. Un Event est attribué à la Room SAV_Forest pour jouer un son d'ambiance extérieure, et ce son d'ambiance peut être entendu depuis l'intérieur de la cabane, à travers le Portal. C'est assez simple.

Comme l'essentiel de l'aventure va surtout se passer dehors, notre Chasseur de quêtes professionnel va bien sûr se promener à l'extérieur et suivre un chemin à travers les bois jusqu'à atteindre une clairière.

whole_map_overview cabin_in_the_woods

 

Quelque chose se cache dans la clairière

 

Cette clairière constitue une situation différente de celle de la cabane, car elle n'est pas vraiment une « pièce » en soi. Il n'y a pas d'entrée ni de sortie claire, pas d'endroit logique où placer un Portal, mais il serait cependant raisonnable de s'attendre à ce que cet espace sonne différemment. On pourrait le concevoir comme une Room sans murs. Dans cette situation, l'objectif est de faire disparaître l'ambiance de la forêt au fur et à mesure que l'on pénètre dans la clairière. Le résultat devrait sonner comme si l'ambiance de la forêt se coupait.

La clairière est représentée par une Zone de réverbération, de la même manière qu'une Room serait normalement utilisée, mais sans aucun Portal. Le fait de donner à cette zone un parent, la Room SAV_Forest, signifie que la forêt et la clairière continuent de fonctionner comme un seul espace en termes de propagation du son. Dans la clairière, il y a un arbre géant avec une géométrie. Dans le cadre de cette Grande aventure, une Créature étrange, représentée par un émetteur, est cachée derrière l'arbre géant. Comme le son de cet Adversaire sournois peut subir de la diffraction autour de la géométrie de l'arbre, et à travers les limites de la Zone de réverbération (parce qu'il n'y a pas de « murs »), le Monstre miniature peut être entendu avant d'être vu - avant même que l'on entre dans la Zone de réverbération. Sans quoi, il pourrait se faufiler jusqu'à notre Personnage principal du jeu.

creature_behind_the_tree

La Zone de réverbération possède une « Transition Region Width » (largeur de région de transition) de 150 cm. Cette Transition Region est comparable à la profondeur d'un Portal et influence quelques détails des plus subtils concernant les transitions à l'intérieur et à l'extérieur de la zone - tels que l'équilibre des envois auxiliaires entre les Rooms ou l'interpolation de la « Room Transmission Loss » (perte de transmission de la Room), que nous n'utilisons pas dans cet exemple - voir la note ci-dessous.

Il est important de noter que le sol d'une Zone de réverbération est également une surface transparente par défaut, ce qui signifierait que le son ambiant de la forêt pourrait se propager à travers le sol et être plus fort que prévu. Une surface transparente est une surface dont la Transmission Loss est égale à 0. La Transition Region d'une Zone de réverbération ne se trouve qu'autour de ces surfaces transparentes. Ainsi, pour empêcher toute propagation indésirable à travers le sol, cette surface doit avoir une Transmission Loss géométrique. Dans Unreal, j'ai fait cela en cochant l'option « Enable Surface » (Activer Surface) dans la catégorie « Surface Properties » (Propriétés de Surface) dans le panneau des détails, lorsque la surface du sol est sélectionnée. Si « Enable Surface Reflector Set » (Activer la Personnalisation des Réflexions de Surface) n'est pas cochée (ce qui est le cas par défaut), une surface activée aura une Transmission Loss de 1, et une surface désactivée aura une Transmission Loss de 0 (ce qui la rendra transparente). Si l'option « Enable Surface Reflector Set » est cochée, une propriété supplémentaire sera disponible pour spécifier exactement la valeur de Transmission Loss que vous souhaitez appliquer pour chaque surface. Dans le SDK, cela serait spécifié par AkAcousticSurface::transmissionLoss, utilisé pour chaque surface lors de l'utilisation de AK::SpatialAudio::SetGeometry. Chaque surface se comporte de la même manière, donc la même chose peut s'appliquer au « plafond » de la Zone de réverbération. Dans ce cas, le volume utilisé pour la clairière est suffisamment grand et le plafond est suffisamment éloigné pour ne pas poser de problème.

properties_panel_1

Remarque : j'ai mentionné deux types distincts de Transmission Loss. Il existe une différence importante entre la « Room Transmission Loss » et la Transmission Loss géométrique. La Transmission Loss appartenant à la géométrie est utilisée dans les Zones de réverbération pour décider quelles surfaces sont transparentes. AK::SpatialAudio::SetRoom vous permet également de spécifier une Transmission Loss appartenant à la Room elle-même, indépendamment de la géométrie. Lorsqu'on utilise la géométrie, la Room Transmission Loss ne s'applique qu'aux room tones (sons assignés directement à une Room) et au signal réverbéré (la chaîne de bus auxiliaires/réverbérations de Rooms provenant à la fois des room tones et des émetteurs normaux). Dans ces exemples, la Room Transmission Loss est toujours égale à 0. C'est également la valeur par défaut lors de l'ajout d'un actor de type AkReverbZone dans Unreal.

La capture d'écran ci-dessous montre à quoi ressemble une Zone de réverbération dans le Game Object 3D Viewer. L'émetteur peut être vu sur le côté opposé de l'arbre géant (pour simplifier, la géométrie de l'arbre est juste une capsule). Un chemin de transmission est bloqué par l'arbre, et un chemin de diffraction contourne l'arbre, mais passe dans le périmètre de la Zone de réverbération (là où se trouveraient les « murs »). Une case à cocher dans les options du Game Object 3D Viewer permet d'afficher les Transition Regions (« Show Transition Regions »). Lorsqu'elle est activée, les Transition Regions sont représentées par les boîtes bleues que l'on voit ici. Notez que ces boîtes sont une approximation - en pratique, comme pour un Portal, la zone d'influence réelle sera arrondie puisqu'elle est basée sur la distance par rapport à chaque surface.

sound_in_the_clearing

Lorsque le listener se déplace dans la Zone de réverbération, le son ambiant joué dans la Room SAV_Forest parente est atténué par la distance entre le listener et les « murs » de la Zone de réverbération (selon les courbes du ShareSet d'atténuation de ce son). Plus on avance à l'intérieur de la zone, plus l'ambiance de la forêt s'estompe. Un autre son pourrait être joué dans la Zone de réverbération et serait, de la même manière, également atténué par la distance en dehors de la zone.

En route vers la ville

Puisque notre Chasseur d'expérience professionnel est extrêmement talentueux et que le joueur fait preuve d'une grande habileté, la Créature de la forêt est facilement éliminée (ou raisonnée ?) et nous pouvons partir de cette clairière. En continuant sur le chemin, nous arrivons à une clairière encore plus grande, au centre de laquelle se trouve une petite ville. Ici, nous pouvons mettre en place une version plus élaborée de ce que nous avons vu dans la première clairière.

Toute cette zone est déjà encapsulée dans la Room extérieure de forêt SAV_Forest, mais cette fois-ci, il y a plus de couches imbriquées. La clairière dans laquelle se trouve la ville peut être découpée comme nous l'avons déjà vu. Je l'ai appelée RZ_Meadow. La ville elle-même est une Zone de réverbération à part entière que j'ai appelée RZ_Town. Pour les deux Zones de réverbération, je me suis assuré qu'il y avait une Room parente et une Transition Region Width appropriés, et je me suis assuré de configurer chaque surface selon que je souhaite ou non que le son se propage à travers cette surface (en m'assurant principalement que le sol ne soit pas transparent). La Room SAV_Forest est maintenant le parent de la zone RZ_Meadow, elle-même parent de la zone RZ_Town.

zone_ception

C'est le bon moment pour se rappeler de définir une Room Priority (priorité de Room) appropriée pour chaque Room et Zone de réverbération, afin de s'assurer que les Game Objects soient contenus dans la bonne pièce. La Room SAV_Forest a la priorité la plus basse, puis vient RZ_Meadow, et enfin RZ_Town avec la priorité la plus haute. Les nombres réels sont arbitraires, tant qu'ils sont dans le bon ordre.

Dans cette disposition, les sons peuvent se propager à travers toutes les couches de cette hiérarchie et chaque Zone de réverbération peut avoir son propre son qui lui est affecté. La zone RZ_Meadow applique le même effet de coupure sur la Room SAV_Forest que nous avons vu précédemment, et la zone RZ_Town l'applique aux deux autres. Lorsque notre Participant principal atteint la ville, l'ambiance de la forêt est fortement atténuée, voire disparaît complètement. Simultanément, vous entendez la zone RZ_Town en approchant, en direction des bâtiments au centre de la clairière, encore une fois atténuée par la distance en dehors de RZ_Town. La ville peut être approchée de n'importe quelle direction, sans qu'il soit nécessaire de placer soigneusement des Portals à des entrées spécifiques.

Un son assigné à un Game Object situé à l'intérieur de la ville se propage à l'extérieur vers le listener comme si les « murs » de la Zone de réverbération n'existaient pas. Si vous regardez ce son dans le Voice Inspector, vous verrez que les réverbérations de toutes les couches hiérarchiques de Rooms s'appliquent sur le chemin réverbéré de ce son. Tous les bus de Rooms concernés sont chaînés ensemble. (Pour plus de détails, je vous recommande de consulter le récent article de blog sur la Révision du modèle d'envois auxiliaires ).

chained_verbs2

Donneur de quête sur le patio

Notre héros avec plusieurs noms parle à tout le monde en ville, et entre peut-être par effraction dans leurs maisons pour y casser des poteries, comme le veut la tradition, et on lui dit inévitablement pour des raisons d'intrigue, de parler à quelqu'un dans un bar voisin pour obtenir des Informations secrètes sur une quête. Ce PNJ, cependant, est assis à l'extérieur d'un bar, dans un patio couvert. Ce patio est un autre cas d'utilisation pertinent pour une Zone de réverbération, puisqu'on peut s'attendre à ce qu'il ait son propre effet de réverbération, subtil mais distinct, tout en étant à l'extérieur de la Room qui constitue le bar. J'ai appelée cette Zone de réverbération RZ_Patio.

walrus_room_outside

Cette Zone de réverbération particulière présente des différences significatives par rapport aux précédentes. Ce qu'elle a en commun, c'est qu'elle possède une Room parente (RZ_Town) et une Transition Region Width. Outre le fait que cette Zone de réverbération dispose de son propre bus auxiliaire de Room, qui a un effet de réverbération distinct, les différences les plus importantes concernent la façon dont elle est placée et la répartition de ses surfaces transparentes.

Comme précédemment, le sol ne doit pas être transparent car il ne serait pas logique que le son se propage à travers le plancher. Cependant, cette fois-ci, il y a deux surfaces supplémentaires à prendre en compte. Le plafond de ce patio est couvert, ce qui signifie que, tout comme le sol, il serait inattendu que quelque chose se propage dans ou hors de cette zone à partir de cette direction.

opaque_surfaces

Il existe également une surface qui repose sur le mur extérieur du bar et qui possède un Portal vers la Room représentant l'intérieur du bar. Cette surface ne doit pas non plus être transparente pour deux raisons. La première est que, bien entendu, il y a un mur à cet endroit. Cela signifie que le son ne doit pas se propager à travers cette surface et que la Transition Region de cette Zone de réverbération ne doit pas couvrir cette zone. Comme nous l'avons déjà mentionné, une Transition Region n'existe qu'autour d'une surface transparente. La deuxième raison est que, comme nous l'avons mentionné, il y a un Portal dans cette surface qui relie l'intérieur du bar de manière directe à la zone RZ_Patio, et de manière indirecte à la zone RZ_Town. Un Game Object ne peut se trouver simultanément que dans une seule zone de transition entre des Rooms, que ce soit à travers un Portal ou à travers une Transition Region d'une Zone de réverbération.

Comme il ne peut y avoir qu'une seule transition à la fois, le placement de cette Zone de réverbération présente un défi supplémentaire. Cette zone se trouve en bordure de la ville, ce qui la place à proximité de la transition entre RZ_Town et RZ_Meadow. Afin d'éviter des effets indésirables, les Transition Regions ne devraient pas se chevaucher, de la même manière que les extensions des Portals ne devraient pas se chevaucher. Dans ce cas, il y a suffisamment de place pour soit éloigner le bar en entier du bord de la ville, soit pour étendre la Zone de réverbération de la ville afin que ces deux transitions ne se chevauchent pas.

profiler town overview

Avec cette Zone de réverbération en place, le Donneur de quête (j'entends par là, un émetteur) peut être placé à l'intérieur de cette zone, et être affecté par la réverbération unique qui s'applique à la zone du patio, tout en restant à l'extérieur du bar, comme s'il était dans la Room RZ_Town pour les besoins de propagation. Tout son provenant de l'intérieur du bar (qu'il s'agisse d'un room tone assigné à la Room ou de la voix de quelqu'un qui vous crie dessus à travers la porte) se propagera à travers le Portal, comme d'habitude. Après le Portal, la hiérarchie de Rooms, composée des Zones de réverbération et de leurs parents, est traitée comme s'il s'agissait d'un seul grand espace à des fins de propagation.

Partir à l'aventure n'est pas de tout repos, il est temps de prendre un verre

Puisqu'il s'agit d'une ligne hypothétique bien réfléchie de Quêtes parfaitement réelles pour une Super aventure de jeu vidéo, disons que notre Donneur de quête situé sur le patio trouve que nous avons fait assez d'aventures pour la journée et nous recommande d'aller boire un verre à l'intérieur. C'est une excellente idée et, sans nul doute, le protagoniste va aller jusqu'au bout de sa mission. Des points d'expérience sont attribués à tout va. De super éléments de UI apparaissent à l'écran. Bien joué. Cependant, le bar lui-même n'est qu'une Room normale et non une Zone de réverbération. Mais pourquoi s'agit-il d'une Room normale et non d'une Zone de réverbération ayant certaines surfaces transparentes ?

En fait, une Zone de réverbération est une Room, mais avec quelques propriétés supplémentaires. Il y a quelques différences clés entre les deux qui devraient influencer le choix d'utiliser l'une plutôt que l'autre. J'ai délibérément choisi des situations où opter pour une Zone de réverbération est le choix évident, mais il y a d'autres cas où il serait préférable d'utiliser une Room standard.

L'une des principales différences réside dans la Room parente. Lorsque vous associez ensemble des Zones de réverbération parentes, vous créez une hiérarchie de Rooms qui sont traitées comme un espace unique pour des raisons de simulation et de propagation. Théoriquement, vous pourriez créer des espaces entièrement constitués de Zones de réverbération, mais en faisant cela, vous renonceriez aux avantages d'avoir des Rooms et des Portals, ce qui pourrait rapidement poser des problèmes de performance. Spatial Audio est typiquement capable d'utiliser le réseau de Rooms et de Portals pour éviter de recalculer l'intégralité du chemin entre un émetteur et un listener chaque fois que l'un de ces objets se déplace ou change ; mais sans ce réseau, l'intégralité du chemin devrait être calculée à chaque fois. Dans les exemples que j'ai donnés ici, la différence serait négligeable, mais dans un niveau plus grand, avec une géométrie plus complexe, le coût serait plus élevé.

Un autre détail important qui différencie les Zones de réverbération est qu'elles nécessitent une géométrie, ce qui n'est pas le cas des Rooms. Comme entrer et sortir d'une Zone de réverbération dépend de Transition Regions plutôt que de Portals, il doit y avoir une géométrie pour définir l'endroit où ces transitions auront lieu.

De manière très générale, une Room normale est préférable dans la plupart des cas que l'on pourrait décrire comme « une pièce » - un espace clos ou presque clos, ou un espace avec une entrée clairement définie. Les pièces d'une maison ou d'un immeuble de bureaux. Un garage. Des couloirs.

Une Zone de réverbération devient appropriée lorsqu'elle divise un espace plus grand, ou lorsqu'un espace n'est pas entièrement clos, ou encore lorsque les contraintes liées à l'emplacement d'un Portal rendent les transitions entre les Rooms difficiles. Pour reprendre les exemples de la Documentation SDK, il peut s'agir de l'espace situé sous un viaduc d'autoroute, d'un balcon couvert ou, comme nous l'avons vu plus haut, du découpage d'un espace extérieur.

Merci d'avoir joué

Notre quête est terminée. Nous avons coché toutes les cases, parlé à tous les PNJ, combattu (ou non) tous les monstres, cassé toutes les poteries et, espérons-le, appris en passant quelque chose d'utile sur les Zones de réverbération.

Thomas Hansen

Développeur logiciel

Audiokinetic

Thomas Hansen

Développeur logiciel

Audiokinetic

Thomas est un développeur logiciel basé à Gatineau, au Québec. Il s'est joint à l'équipe de recherche et développement d'Audiokinetic en 2022. Il a travaillé en développement de jeux et a contribué à une grande variété de projets, allant de jeux indépendants à des productions AAA pour consoles. Thomas est également multi-instrumentiste passionné et membre de plusieurs groupes de musique à Ottawa et à Gatineau.

Commentaires

Laisser une réponse

Votre adresse électronique ne sera pas publiée.

Plus d'articles

Amélioration de l'intégration Wwise dans Unreal

L'introduction du workflow de gestion d’assets de type Event-Based Packaging (EBP) incluse dans...

29.6.2022 - Par Guillaume Renaud

Réintroduction de Wwise Audio Lab (WAL)

Wwise Audio Lab (WAL) est un environnement 3D open-source semblable à un jeu vidéo, développé avec...

15.7.2022 - Par Damian Kastbauer

Visualiser les variations issues de la synthèse croisée d'Impacter

Bienvenue à nouveau dans notre série d'articles sur le plugiciel Impacter. Dans les deux articles...

24.11.2022 - Par Ryan Done

Comment créer automatiquement des ressources VO temporaires à l'aide de WAAPI et TTS

Introduction L'automatisation est une approche couramment utilisée sur de grands projets.Dans une...

11.5.2023 - Par Huang Chao

Nouveauté de Wwise Spatial Audio 2023.1 | Révision du modèle d'envois auxiliaires

Si vous avez parcouru la liste des nouvelles fonctionnalités de Wwise 2023.1, et en effet, il y en a...

15.12.2023 - Par Nathan Harris

Wwise 2024.1 Nouveautés

Wwise 2024.1 est en ligne et peut être installé à partir de l'Audiokinetic Launcher. Voici un résumé...

8.11.2024 - Par Audiokinetic

Plus d'articles

Amélioration de l'intégration Wwise dans Unreal

L'introduction du workflow de gestion d’assets de type Event-Based Packaging (EBP) incluse dans...

Réintroduction de Wwise Audio Lab (WAL)

Wwise Audio Lab (WAL) est un environnement 3D open-source semblable à un jeu vidéo, développé avec...

Visualiser les variations issues de la synthèse croisée d'Impacter

Bienvenue à nouveau dans notre série d'articles sur le plugiciel Impacter. Dans les deux articles...