Système de chat vocal GME de Suspects : Mystery Mansion

Contenu sonore pour les jeux vidéo

Introduction

Cet article de blogue traite du système de chat vocal dans le jeu Suspects : Mystery Mansion, réalisé par Wildlife Studios. Nous sommes Leo Perantoni (concepteur sonore technique) et Felippe Lopes (programmeur audio).

Nous avons eu la responsabilité de remplacer l'API du système vocal existant par GME. Les principales raisons étaient d'améliorer la qualité audio et d'offrir la possibilité de contrôler le signal passant par les canaux vocaux en utilisant les structures internes de flux de signal et de spatialisation de Wwise, ainsi que ses chaînes d'effets.

Suspects est un jeu social de déduction offrant un chat vocal natif, de nombreux modes de jeu uniques ainsi que des mises à jour régulières de contenu.

Configurer correctement le chat vocal de notre jeu était un vrai défi, car il comporte de nombreuses règles circonstancielles qui affectent la manière dont il fonctionne. Par exemple, mixer et faire correspondre le chat vocal 2D et 3D avec des joueurs-euses écoutant différents canaux en fonction de leur état de jeu : un-e joueur-euse mort-e écoute les joueurs-euses vivants-es en 3D avec une atténuation, et écoute les autres joueurs-euses morts-es en 2D sans atténuation, tandis que les joueurs-euses vivants-es ne peuvent écouter que les autres joueurs-euses vivants-es. Cela peut devenir très confus !

Nous allons voir comment nous avons implémenté le chat vocal en utilisant le plugiciel GME de Tencent pour Wwise.

Plusieurs façons d'utiliser GME

Dans Suspects, il existe de nombreux systèmes qui contrôlent l'état du chat vocal :

  • Les actions des joueurs-euses telles que le mute et unmute, pour eux-elles-mêmes et pour les autres
  • Les actions du jeu, comme le début et la fin d'une réunion d'urgence
  • Des actions du système telles que la confiance et la sécurité

Tous ces systèmes peuvent tenter de modifier l'état du chat vocal en même temps. Exemple : Le-la joueur-euse veut couper son micro, le système de silence dit qu'il-elle ne doit pas écouter les autres joueurs-euses, et le système de confiance et de sécurité dit que personne ne doit pouvoir parler.

Par conséquent, pour résoudre cette approche de systèmes superposés, nous avons utilisé une conception basée sur l'intention. Chaque système déclare ses intentions d'état souhaité pour chat vocal. Ces états souhaités sont ensuite fusionnés et appliqués au contrôle du chat vocal en utilisant un seul canal/une seule salle.

Lobby / Réunions d'urgence

Dans le lobby ou lors d'une réunion d'urgence, les joueurs-euses peuvent discuter entre eux-elles dans un espace 2D. Pour faire cela, nous utilisons les Events normaux de réception et d'envoi. Dans cet état de jeu, les joueurs-euses peuvent couper et rétablir le son d'autres joueurs-euses spécifiques (en utilisant le système d'état) ou d'eux-elles-mêmes.

Nous avons utilisé les Events de GME AddAudioBlockList et RemoveAudioBlockList pour gérer ces actions des joueurs-euses, et nous avons stocké localement la liste des joueurs-euses muets-ettes afin de pouvoir appliquer les mêmes actions dans tous les autres types de chat vocal.

Chat du mode Fantôme

Lorsqu'un-e joueur-euse est éjecté-e ou tué-e par un-e imposteur-e, il-elle entre dans le chat en mode fantôme avec tous-tes les autres joueurs-euses morts-es. Les fantômes peuvent entendre les autres fantômes (ainsi que les autres joueurs-euses vivants-es selon le mode de jeu choisi), mais si une réunion d'urgence est convoquée, ils-elles ne peuvent entendre que la discussion des joueurs-euses vivants-es dans la réunion.

Pour faire cela, nous ne désactivons le mute des joueurs-euses morts-es que pendant le match afin qu'ils-elles puissent se parler en 2D, et nous les mettons à nouveau en mute si une réunion d'urgence commence.

Mode de jeu Chit Chat

Dans le mode Chit Chat, les joueurs-euses peuvent parler aux autres joueurs-euses à proximité. Pour implémenter cette fonctionnalité, nous avons procédé comme suit :

1. Appel de l'Event GME SetRangeAudioRecvRange avec la valeur du radius de proximité.
2.
Création d'un Event de réception 3D avec une atténuation dans Wwise.
3.
Création de cet Event pour tous les autres joueurs-euses vivants-es dans le lobby.
4. Appel de l'Event GME SetReceiveOpenIDWithGameObjectID avec le même userID utilisé au moyen de SetUserID.

Après toutes ces étapes, nous étions prêts à démarrer un match de Chit Chat. À chaque déplacement du joueur-euse, nous mettons à jour la position locale dans GME en utilisant SetSelfPosition .

Réunions d'urgence en mode Chit Chat

La différence entre une réunion d'urgence dans le mode Chit Chat par rapport au mode de jeu standard est que nous devons basculer entre des Events de réception 3D (mode Chit Chat) aux Events de réception 2D (mode de jeu standard) avant de désactiver le mute des joueurs-euses. La même chose se produit lorsque la réunion se termine et que nous appelons l'Event GME SetReceiveOpenIDWithGameObjectID avec une valeur vide.

Chat fantôme en mode Chit Chat

Cette situation était la plus délicate à réaliser. Les fantômes peuvent parler et écouter les autres fantômes dans un espace 2D et écouter les joueurs-euses vivants-es dans un espace 3D avec une atténuation en même temps.

Pour implémenter le chat fantôme en mode Chit Chat, nous avons procédé comme suit :

1. Appel de l'Event de réception 2D.
2.
Arrêt des Events de réception 3D uniquement pour les joueurs-euses morts-es.
3. Appel de l'Event GME SetReceiveOpenIDWithGameObjectID avec une valeur vide uniquement pour les joueurs-euses morts-es.

Comme la liste des joueurs-euses en mute était gérée localement, les joueurs-euses vivants-es n'entendaient jamais ce qui se disait dans le chat fantôme.

L'image ci-dessous montre un exemple très courant du chat vocal de Suspects. Toutes les interactions se déroulent dans un seul canal et sont contrôlées du côté client.

img1

Situations complexes de chat vocal
  • Les joueurs-euses A et B sont vivants-es et ne peuvent se parler qu'entre eux-elles.
  • Les joueurs-euses C et D sont morts-es, ils-elles peuvent se parler et n'écoutent que les joueurs-euses A et B.
  • Les joueurs-euses E et F sont vivants-es, hors de la zone d'atténuation des joueurs-euses A et B, et ne peuvent que se parler.

Intégration Wwise

La configuration de Wwise pour les effets audio de GME a été très simple. Après avoir importé le plugiciel dans notre session Wwise, la Work Unit créée était presque prête à être utilisée. Nous n'avons eu qu'à la personnaliser un peu puisque nous avions des besoins différents pour le chat vocal circonstanciel.

La structure de base fonctionne comme suit, de haut en bas :

  •  Objet audio avec l'effet Tencent GME Send instancié à la fin de la chaîne d'effets
  • Objet audio avec l'effet Tencent GME Receive (c'est votre « auditeur » qui reçoit le signal provenant de l'effet Send).
  • Audio Device principal comprenant l'effet Tencent GME Session (cet effet crée des Rooms et des user ID)

img2

La qualité de voix obtenue à partir des réglages d'usine est déjà très convaincante, mais comme nous avions affaire à des salles comptant jusqu'à 10 joueurs-euses qui pouvaient tous-toutes s'écouter en même temps, nous devions contrôler cette dynamique d'une manière ou d'une autre. L'un des principaux problèmes du chat vocal est l'imprévisibilité de son comportement. Les joueurs-euses peuvent être très silencieux-euses ou très bruyants-es, se trouver dans un environnement calme ou avec beaucoup de bruit. Nous avons décidé d'utiliser certains plugiciels de Wwise afin de mieux gérer ces situations imprévisibles.

D'après nos tests et selon la direction que nous voulions, nous avons décidé d'utiliser un Wwise Parametric EQ pour gérer certaines fréquences agressives qui revenaient constamment, et pour accentuer les aigus afin de compenser le son étouffé de certains microphones. Nous avons également utilisé le Wwise Peak Limiter à plusieurs endroits tout au long du cheminement du signal afin de gérer les situations où plusieurs joueurs-euses se crient dessus. Enfin, juste avant l'effet Tencent GME Send, nous avons mis l'effet Wwise Meter pour contrôler un effet visuel lumineux autour des sprites des personnages en fonction du volume de leur voix, afin que les joueurs-euses puissent facilement reconnaître qui est en train de parler.

Dans Unity, nous lisons la valeur du Wwise Meter en utilisant GetRTPCValue et envoyons la valeur au serveur, où elle est répliquée sur le client de l'autre joueur-euse, contrôlant ainsi l'effet lumineux.

img3

Après l'envoi de l'effet Tencent GME Send, il y a deux objets audio comprenant l'effet Tencent GME Receive : un pour le chat 2D sans atténuation ni Speaker Panning, et un pour le chat 3D avec atténuation et spatialisation, qui est traité comme un émetteur standard. La dernière étape est l'effet Tencent GME Session dans l'objet de sortie du système principal.

Une chose que nous envisageons de faire à l'avenir, et qui est rendue possible par le système GME, est l'utilisation d'un traitement audio plus créatif dans le cheminement du signal du chat vocal. Par exemple, ajouter un peu de retard et de réverbération à l'envoi GME si vous êtes dans le chat fantôme (canal des joueurs-euses morts-es). GME nous permet d'implémenter très facilement ce genre de choses.

Pour citer un autre exemple d'utilisation créative du chat vocal : vous pourriez mélanger une voix sans effet et une voix avec un effet radio en fonction de la distance avec un-e coéquipier-ère. Cela pourrait être facilement réalisé avec GME en contrôlant le paramètre dry/wet d'un effet avec un RTPC de distance. Au seuil du RTPC passant de la voix sans effet à la voix radio, vous pourriez déclencher un son de clic radio pour rendre le tout plus immersif.

img4

Et voilà le côté Wwise de l'implémentation.

Conclusion

GME est très utile pour faire des itérations rapides avec le chat vocal, et le fait d'avoir tous les outils pour le faire à l'intérieur de Wwise est vraiment efficace pour contrôler la qualité de la voix en temps réel.

Nous tenons à remercier l'équipe audio de Wildlife pour tout le soutien et les sessions de playtest du chat vocal, l'équipe de Suspects pour le soutien d'ingénierie et d'assurance qualité, et notre chère communauté Suspects. Nous espérons que vous apprécierez tous le nouveau chat vocal.

Essayez GME pour Wwise

 

Leo_Perantoni

 

LEO PERANTONI

Leo Perantoni est concepteur sonore technique chez Wildlife Studios, et il est basé à Rio de Janeiro, au Brésil. Il travaille en audio de jeu vidéo depuis 13 ans et a été impliqué dans des studios de développement locaux travaillant sur des jeux vidéo pour toutes les plateformes, allant du mobile à la VR.

https://leoperantoni.com/
https://twitter.com/leoperantoni

Felippe Lopes

Felippe Lopes

Felippe Lopes est ingénieur du son chez Wildlife Studios, et il est basé à São Paulo, au Brésil. Il développe des jeux pour mobiles et consoles depuis 2017.

 @floppes__

Commentaires

Laisser une réponse

Votre adresse électronique ne sera pas publiée.

Plus d'articles

Hitman 2 : Améliorer la réverbération sur les processeurs modernes

La popularisation des processeurs à six et huit cœurs signifie qu'une puissance de traitement...

19.5.2022 - Par Stepan Boev

Découverte du nouveau plugiciel Impacter

Aperçu Impacter est un nouveau plugiciel source inspiré par l'esprit du plugiciel original SoundSeed...

3.11.2022 - Par Ryan Done

Ce que les utilisateurs ayant profité de l'accès anticipé ont dit à propos de Strata

À l'origine de Strata Les créateurs de banques de sons produisent et distribuent leur contenu à peu...

1.12.2022 - Par Simon Ashby

Créer un effet de Doppler avec Wwise

On appelle effet Doppler la modification de la fréquence d'une onde relativement à un observateur se...

19.1.2023 - Par Xu Wei (徐巍)

Concevoir des sons de moteurs de course avec REV

Concevoir des sons de moteur a toujours été un aspect complexe de la conception sonore de jeux...

26.1.2023 - Par Xu Wei (徐巍)

Derrière le son de It Takes Two | Discussion avec l'équipe audio d'Hazelight

It Takes Two de Hazelight Studios est un jeu de plateforme et d'action-aventure intégralement...

30.3.2023 - Par Hazelight

Plus d'articles

Hitman 2 : Améliorer la réverbération sur les processeurs modernes

La popularisation des processeurs à six et huit cœurs signifie qu'une puissance de traitement...

Découverte du nouveau plugiciel Impacter

Aperçu Impacter est un nouveau plugiciel source inspiré par l'esprit du plugiciel original SoundSeed...

Ce que les utilisateurs ayant profité de l'accès anticipé ont dit à propos de Strata

À l'origine de Strata Les créateurs de banques de sons produisent et distribuent leur contenu à peu...