Audio pour les jeux
Découvrez comment développer et incorporer de la musique et des sons dans votre jeu DirectX, et comment traiter les signaux audio pour créer des sons dynamiques et positionnels.
Pour la programmation audio, nous vous recommandons d’utiliser la bibliothèque XAudio2 dans DirectX ou les API windows Runtime Audio Graphs . Nous utilisons XAudio2 ici. XAudio2 est une bibliothèque audio de bas niveau qui fournit un traitement et un mélange de signaux pour les jeux, et prend en charge un large éventail de formats.
Vous pouvez également implémenter des sons et une lecture musicale simples avec Microsoft Media Foundation. Microsoft Media Foundation est conçu pour la lecture de fichiers multimédias et de flux, à la fois audio et vidéo, mais peut également être utilisé dans les jeux, et est particulièrement utile pour les scènes cinématiques ou les composants non interactifs de votre jeu.
Concepts en un clin d’œil
Voici quelques concepts de programmation audio que nous utilisons dans cette section.
- Les signaux sont l’unité de base de la programmation sonore, analogue aux pixels dans les graphiques. Les processeurs de signal numérique (DSP) qui les traitent sont comme les nuanceurs de pixels de l’audio de jeu. Ils peuvent transformer des signaux, les combiner ou les filtrer. En programmant les DSP, vous pouvez modifier les effets sonores et la musique de votre jeu avec autant de complexité que nécessaire.
- Les voix sont les composites submixés de deux signaux ou plus. Il existe 3 types d’objets vocaux XAudio2 : source, sous-mélange et voix de mastering. Les voix sources fonctionnent sur les données audio fournies par le client. Les voix sources et de sous-mélange envoient leur sortie à une ou plusieurs voix de sous-mélange ou de mastering. Les voix de sous-mixage et de mastering mélangent l’audio de toutes les voix qui les alimentent, et fonctionnent sur le résultat. La maîtrise des voix écrit des données audio sur un appareil audio.
- Le mélange est le processus de combinaison de plusieurs voix discrètes, telles que les effets sonores et l’audio d’arrière-plan qui sont lus dans une scène, dans un seul flux. Le sous-mélange est le processus de combinaison de plusieurs signaux discrets, tels que les sons de composant d’un bruit moteur et la création d’une voix.
- Formats audio. Les effets sonores et musicaux peuvent être stockés dans divers formats numériques pour votre jeu. Il existe des formats non compressés, tels que WAV, et des formats compressés tels que MP3 et OGG. Plus un échantillon est compressé , généralement désigné par son débit de bits, où le taux de bits est inférieur, plus la compression est perdue , plus la fidélité est pire. La fidélité peut varier selon les schémas de compression et les taux de bits, donc faites des expériences pour trouver ce qui fonctionne le mieux pour votre jeu.
- Taux d’échantillonnage et qualité. Les sons peuvent être échantillonné à différents taux, et les sons échantillonné à un taux inférieur ont une fidélité beaucoup plus faible. Le taux d’échantillonnage pour la qualité cd est de 44,1 Khz (44100 Hz). Si vous n’avez pas besoin d’une haute fidélité pour un son, vous pouvez choisir un taux d’échantillonnage inférieur. Des tarifs plus élevés peuvent être appropriés pour les applications audio professionnelles, mais vous n’en avez probablement pas besoin, sauf si votre jeu exige un son de fidélité professionnelle.
- Émetteurs sonores (ou sources). Dans XAudio2, les émetteurs sonores sont des emplacements qui émettent un son, qu’il s’agit d’un simple blip d’un bruit d’arrière-plan ou d’une piste rock snarling jouée par un jukebox in-game. Vous spécifiez des émetteurs par coordonnées mondiales.
- Écouteurs sonores. Un écouteur sonore est souvent le joueur, ou peut-être une entité IA dans un jeu plus avancé, qui traite les sons reçus d’un écouteur. Vous pouvez submixer ce son dans le flux audio pour la lecture au lecteur, ou vous pouvez l’utiliser pour effectuer une action spécifique dans le jeu, comme réveiller un garde IA marqué comme écouteur.
Considérations sur la conception
L’audio est une partie extrêmement importante de la conception et du développement de jeux. De nombreux joueurs peuvent rappeler un jeu médiocre élevé à un statut légendaire juste en raison d’une bande sonore mémorable, ou d’un excellent travail vocal et mixage sonore, ou production audio exceptionnelle globale. La musique et le son définissent la personnalité d’un jeu, et établissent le motif principal qui définit le jeu et le rend hors d’autres jeux similaires. L’effort que vous consacrez à la conception et au développement du profil audio de votre jeu vaut bien la peine.
L’audio 3D positionnel peut ajouter un niveau d’immersion au-delà de celui fourni par des graphiques 3D. Si vous développez un jeu complexe qui simule un monde, ou qui exige un style cinématique, envisagez d’utiliser des techniques audio positionnelles 3D pour vraiment dessiner le joueur dans.
Feuille de route de développement audio DirectX
Ressources conceptuelles XAudio2
XAudio2 est la bibliothèque de mixage audio pour DirectX et est principalement destinée au développement de moteurs audio hautes performances pour les jeux. Pour les développeurs de jeux qui souhaitent ajouter des effets sonores et de la musique d’arrière-plan à leurs jeux modernes, XAudio2 offre un graphique audio et un moteur de mixage avec une faible latence et la prise en charge des mémoires tampons dynamiques, de la lecture synchrone précise de l’échantillon et de la conversion de débit source implicite.
Sujet | Description |
---|---|
La rubrique fournit la liste des fonctionnalités de programmation audio prises en charge par XAudio2. |
|
Cette rubrique fournit des informations sur les concepts clés XAudio2, les versions XAudio2 et le format audio RIFF. |
|
Cette rubrique fournit une vue d’ensemble des concepts audio courants avec lesquels un développeur audio doit être familiarisé. |
|
Cette rubrique contient une vue d’ensemble des voix XAudio2, qui sont utilisées pour submixer, utiliser et maîtriser les données audio. |
|
Cette rubrique traite des rappels XAudio 2, qui sont utilisés pour empêcher les interruptions dans la lecture audio. |
|
Cette rubrique traite des graphiques de traitement audio XAudio2, qui prennent un ensemble de flux audio du client comme entrée, les traitent et fournissent le résultat final à un appareil audio. |
|
La rubrique traite des effets audio XAudio2, qui prennent des données audio entrantes et effectuent une opération sur les données (par exemple, un effet de réverbération) avant de le transmettre. |
|
Cette rubrique traite du streaming audio avec XAudio2. |
|
Cette rubrique couvre X3DAudio, une API utilisée conjointement avec XAudio2 pour créer l’illusion d’un son provenant d’un point dans l’espace 3D. |
|
Cette section contient la référence complète pour les API XAudio2. |
Ressources « how to » XAudio2
Sujet | Description |
---|---|
Découvrez comment initialiser XAudio2 pour la lecture audio en créant une instance du moteur XAudio2 et en créant une voix de mastering. |
|
Guide pratique pour charger des fichiers de données audio dans XAudio2 |
Découvrez comment remplir les structures requises pour lire des données audio dans XAudio2. |
Découvrez comment lire des données audio précédemment chargées dans XAudio2. |
|
Découvrez comment définir des groupes de voix pour envoyer leur sortie à la même voix submixée. |
|
Découvrez comment utiliser des rappels vocaux sources XAudio2. |
|
Découvrez comment utiliser des rappels de moteur XAudio2. |
|
Guide pratique pour créer un graphique de traitement audio de base |
Découvrez comment créer un graphique de traitement audio, construit à partir d’une voix de mastering unique et d’une voix source unique. |
Guide pratique pour ajouter ou supprimer dynamiquement des voix d’un graphe audio |
Découvrez comment ajouter ou supprimer des voix de sous-mélange d’un graphique qui a été créé en suivant les étapes décrites dans How to : Build a Basic Audio Processing Graph. |
Découvrez comment appliquer une chaîne d’effets à une voix pour permettre le traitement personnalisé des données audio pour cette voix. |
|
Découvrez comment implémenter IXAPO pour créer un objet de traitement audio XAudio2 (XAPO). |
|
Découvrez comment ajouter la prise en charge des paramètres d’exécution à un objet XAPO en implémentant l’interface IXAPOParameters . |
|
Découvrez comment utiliser un effet implémenté comme XAPO dans une chaîne d’effets XAudio2. |
|
Découvrez comment utiliser l’un des effets inclus dans XAPOFX dans une chaîne d’effets XAudio2. |
|
Découvrez comment diffuser en continu des données audio dans XAudio2 en créant un thread distinct pour lire une mémoire tampon audio et utiliser des rappels pour contrôler ce thread. |
|
Découvrez comment utiliser X3DAudio pour fournir les valeurs de volume et de hauteur pour les voix XAudio2 ainsi que les paramètres de l’effet de réverbération intégré XAudio2. |
|
Guide pratique pour regrouper des méthodes audio en tant que jeu d’opérations |
Découvrez comment utiliser des jeux d’opérations XAudio2 pour effectuer un groupe d’appels de méthode en même temps. |
Découvrez comment définir le niveau de journalisation de débogage pour XAudio2. |
Ressources Media Foundation
Media Foundation (MF) est une plateforme multimédia pour la diffusion en continu de l’audio et de la lecture vidéo. Vous pouvez utiliser les API Media Foundation pour diffuser en continu des données audio et vidéo encodées et compressées avec un large éventail d’algorithmes. Il n’est pas conçu pour les scénarios de jeu en temps réel ; Au lieu de cela, il fournit des outils puissants et une prise en charge étendue des codecs pour une capture et une présentation plus linéaires des composants audio et vidéo.
Sujet | Description |
---|---|
Cette section contient des informations générales sur les API Media Foundation et les outils disponibles pour les prendre en charge. |
|
Cette rubrique présente certains concepts que vous devrez comprendre avant d’écrire une application Media Foundation. |
|
Cette section décrit la conception générale de Microsoft Media Foundation, ainsi que les primitives multimédias et le pipeline de traitement qu’il utilise. |
|
Cette rubrique explique comment utiliser Microsoft Media Foundation pour effectuer une capture audio et vidéo. |
|
Cette rubrique explique comment implémenter la lecture audio/vidéo dans votre application. |
|
Cette rubrique répertorie les formats multimédias pris en charge par Microsoft Media Foundation en mode natif. (Les tiers peuvent prendre en charge des formats supplémentaires en écrivant des plug-ins personnalisés.) |
|
Cette rubrique explique comment utiliser Microsoft Media Foundation pour effectuer l’encodage audio et vidéo et créer des fichiers multimédias. |
|
Cette rubrique explique comment utiliser les fonctionnalités des codecs Audio et Vidéo Windows Media pour produire et consommer des flux de données compressés. |
|
Cette section contient des informations de référence pour les API Media Foundation. |
|
Cette section répertorie les exemples d’applications qui montrent comment utiliser Media Foundation. |
Types de supports XAML Windows Runtime
Si vous utilisez l’interopérabilité DirectX-XAML, vous pouvez incorporer les API multimédias XAML Windows Runtime dans vos applications UWP à l’aide de DirectX avec C++ pour des scénarios de jeu plus simples.
Sujet | Description |
---|---|
Élément XAML qui représente un objet qui contient l’audio, la vidéo ou les deux. |
|
Découvrez comment incorporer du contenu audio et vidéo de base dans votre application plateforme Windows universelle (UWP). |
|
Découvrez comment lire un fichier multimédia stocké localement dans votre application UWP. |
|
Découvrez comment diffuser en continu un fichier multimédia avec une faible latence dans votre application UWP. |
|
Découvrez comment utiliser le contrat Play To pour diffuser en continu des médias à partir de votre application UWP vers un autre appareil. |