Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

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 peuvent être chargés comme AudioStreams et placés dans un AudioStreamPlayer. Vous trouverez des informations sur les formats pris en charge et leurs différences dans Importer des échantillons audio.

Il existe d'autres types d'AudioStream, 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 joués souvent.

AudioStreamPlayer

../../_images/audio_stream_player.png

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

../../_images/audio_stream_2d.png

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

../../_images/audio_stream_3d.png

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.

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.