Flux audio

Introduction

Comme vous l'avez peut-être déjà lu dans Bus audio, le son est envoyé à chaque bus via un nœud AudioStreamPlayer. Il existe différents types de AudioStreamPlayers. Chacun charge un AudioStream et le lit.

Flux audio

Un flux audio est un objet abstrait qui émet un son. Le son peut provenir de plusieurs endroits, mais il est le plus souvent chargé depuis le système de fichiers. Les fichiers audio tels que WAV (.wav) ou Ogg Vorbis (.ogg) peuvent être chargés comme AudioStreams et placés dans un AudioStreamPlayer.

Voici une comparaison des deux types de fichiers pour vous aider à choisir celui qui convient le mieux à votre cas d'utilisation :

  • Les fichiers WAV sont assez volumineux, mais utilisent peu de puissance CPU pour les lire. Des centaines d'entre eux peuvent être joués simultanément avec peu d'impact sur les performances. Ce format est généralement préférable pour les effets sonores courts.
  • Les fichiers Ogg Vorbis sont beaucoup plus petits, mais utilisent beaucoup plus de puissance CPU pour les lire, de sorte que seuls quelques-uns peuvent être lus en même temps (surtout sur mobile). Ce format convient bien à la musique, aux longues séquences d'effets sonores et à la voix à des débits binaires relativement faibles.

Gardez à l'esprit que si les fichiers WAV peuvent contenir des informations de boucle dans leurs métadonnées, les fichiers Ogg Vorbis n'en contiennent pas. Si vous souhaitez boucler un fichier Ogg Vorbis, vous devez le configurer à l'aide des options d'importation :

../../_images/audio_stream_import1.png

Il existe d'autres types d'AudioStreamPlayer, comme AudioStreamRandomPitch. Celui-ci effectue un ajustement aléatoire de la hauteur du son à chaque fois qu'il est joué. Ceci peut être utile pour ajouter des variations aux sons qui sont lus souvent.

AudioStreamPlayer

C'est le lecteur de flux standard non positionnel. Il peut jouer sur n'importe quel bus. Dans les configurations de son 5.1, il peut envoyer de l'audio au mixage stéréo ou aux enceintes avant.

AudioStreamPlayer2D

C'est une variante de l'AudioStreamPlayer, il émet des son pour un environnement 2d. Quand il est proche du bord gauche de l'écran, le "Panning" va vers la gauche. Quand il est proche du droit, le "Panning" le suit.

Note

Les Area2D peuvent être utilisés pour dévier le son depuis n'importe lequel des AudioStreamPlayer2D qu'elles contiennent jusqu'à certains bus spécifiques. Cela rend possible de créer des bu avec différentes réverbération ou qualité sonore pour gérer les actions qui se produisent à certains endroits spécifiques de votre monde de jeu.

../../_images/audio_stream_2d_area.png

AudioStreamPlayer3D

Il s'agit d'une variante d'AudioStreamPlayer, mais qui émet du son dans un environnement positionnel 3D. Selon l'emplacement du joueur par rapport à l'écran, il peut positionner le son en stéréo, 5.1 ou 7.1 selon la configuration audio choisie.

Similairement à un AudioStreamPlayer2D, une Area peut dévier le son vers un bus audio.

../../_images/audio_stream_3d_area.png

Contrairement à sa version 2D, l'AudioStreamPlayer a quelques options plus avancée :

Bus de réverbération

Godot permet aux flux audios 3D qui entrent dans la zone d’un nœud Area donné, d'envoyer l’audio à différents bus, en appliquant l’effet (wet) ou pas (dry). Ceci est utile quand vous avez plusieurs configurations de réverbérations pour différents type de pièces. L'effet est obtenu en activant ce type de réverbération dans la section Reverb bus des propriétés de l'Area :

../../_images/audio_stream_reverb_bus.png

Au même moment, une disposition de bus spéciale est crée où chaque Area reçoit l'information des réverbérations depuis chacune des Area. Un effet de réverbération a besoin d'être crée et configuré dans chaque bus de réverbération pour finir la mise en place de l'effet désiré :

../../_images/audio_stream_reverb_bus2.png

La section Reverb bus de l'Area a aussi un paramètre nommé Uniformity. Certains types de pièces réfléchissent plus les sons que d'autres (comme un entrepôts par exemple), donc la réverbération peut être entendu quasi-uniformément à travers la pièce, même si la source de son est très éloignée. Jouer avec ce paramètre peut simuler cet effet.

Effet Doppler

Lorsque la vitesse relative entre une source et un récepteur de son change, ceci est perçu comme une augmentation ou diminution de la fréquence du son émis. Godot peut garder la traces de ces changements de vitesse dans les nœuds AudioStreamPlayer3D et Camera. Chacun de ces nœuds ont cette propriétés qui doit être activé manuellement :

../../_images/audio_stream_doppler.png

Activez-le en le paramétrant en fonction de la façon dont les objets seront déplacés : utilisez Idle pour les objets déplacés avec _process, ou Physics pour les objets déplacés avec _physics_process. Le suivi se fera automatiquement.