Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Fluxos de áudio

Introdução

Como você já deve ter lido em Barramentos de áudio, um som é enviado para cada barramento a partir de um nó AudioStreamPlayer. Existem diferentes tipos de AudioStreamPlayers. Cada um carrega um AudioStream e o reproduz.

AudioStream

Um fluxo de áudio é um objeto abstrato que emite som. O som pode vir de muitos lugares, mas é mais comumente carregado a partir do sistema de arquivos. Os arquivos de áudio podem ser carregados como AudioStreams e colocados dentro de um AudioStreamPlayer. Você pode encontrar informações sobre formatos suportados e diferenças em Importando amostras de áudio.

Existem outros tipos de AudioStreams, como o AudioStreamRandomizer. Este escolhe um fluxo de áudio diferente de uma lista de fluxos cada vez que é reproduzido, e aplica uma variação aleatória de tom e volume. Isso pode ser útil para adicionar variedade a sons que são reproduzidos com frequência.

AudioStreamPlayer

../../_images/audio_stream_player.webp

Este é o reprodutor de stream padrão não posicional. Pode tocar em qualquer ônibus. Em configurações de som 5.1, ele pode enviar áudio para mixagem estéreo ou alto-falantes frontais.

O Tipo de Reprodução (Playback Type) é uma configuração experimental e pode mudar em versões futuras do Godot. Ele existe para que as exportações para a Web usem amostras baseadas na Web Audio-API em vez de transmitir todos os sons por streaming para o navegador, ao contrário da maioria das plataformas. Isso evita que o áudio fique distorcido em exportações Web de thread única. Por padrão, apenas a plataforma Web usará amostras. Alterar essa configuração não é recomendado, a menos que você tenha um motivo explícito. Você pode alterar o tipo de reprodução padrão para a web e outras plataformas nas configurações do projeto em Audio > General (as configurações avançadas devem estar ativadas para ver a configuração).

AudioStreamPlayer2D

../../_images/audio_stream_2d.webp

Esta é uma variante do AudioStreamPlayer, mas emite som em um ambiente posicional 2D. Quando próximo à esquerda da tela, o movimento panorâmico irá para a esquerda. Quando perto do lado direito, ele vai para a direita.

Nota

Area2Ds pode ser usado para desviar o som de qualquer AudioStreamPlayer2Ds que eles contêm para barramentos específicos. Isso torna possível criar barramentos com diferentes qualidades de reverb ou som para lidar com a ação que acontece em uma determinada parte do seu mundo de jogo.

../../_images/audio_stream_2d_area.webp

AudioStreamPlayer3D

../../_images/audio_stream_3d.webp

Esta é uma variante do AudioStreamPlayer, mas emite som em um ambiente posicional 3D. Dependendo da localização do reprodutor em relação à tela, ele pode posicionar o som em estéreo 5.1 ou 7.1 dependendo da configuração de áudio escolhida.

Semelhante ao AudioStreamPlayer2D, uma Area3D pode redirecionar o som para um barramento de áudio.

../../_images/audio_stream_3d_area.webp

Ao contrário do 2D, a versão 3D do AudioStreamPlayer possui algumas opções mais avançadas:

Barramentos de reverberação

Aviso

Este recurso não é suportado na plataforma web se o modo de reprodução do AudioStreamPlayer estiver definido como Sample, que é o padrão. Ele só funcionará se o modo de reprodução estiver definido como Stream, ao custo de um aumento na latência se as threads não estiverem ativadas.

Veja Reprodução de áudio na documentação de Exportação para a Web para mais detalhes.

O Godot permite que fluxos de áudio 3D que entram em um nó Area3D específico enviem áudio seco e úmido para barramentos separados. Isso é útil quando você tem várias configurações de reverberação para diferentes tipos de salas. Isso é feito ativando este tipo de reverberação na seção Reverb Bus das propriedades da Area3D:

../../_images/audio_stream_reverb_bus.webp

Ao mesmo tempo, é criado um layout especial de barramentos onde cada Area3D recebe as informações de reverberação de cada Area3D. Um efeito Reverb precisa ser criado e configurado em cada barramento de reverberação para concluir a configuração do efeito desejado:

../../_images/audio_stream_reverb_bus2.webp

A seção Reverb Bus da Area3D também possui um parâmetro chamado Uniformity. Alguns tipos de ambientes refletem sons mais do que outros (como um armazém), então a reverberação pode ser ouvida quase uniformemente por todo o ambiente, mesmo que a fonte esteja distante. Ajustar esse parâmetro pode simular esse efeito.

Doppler

Aviso

Este recurso não é suportado na plataforma web se o modo de reprodução do AudioStreamPlayer estiver definido como Sample, que é o padrão. Ele só funcionará se o modo de reprodução estiver definido como Stream, ao custo de um aumento na latência se as threads não estiverem ativadas.

Veja Reprodução de áudio na documentação de Exportação para a Web para mais detalhes.

Quando a velocidade relativa entre um emissor e um ouvinte muda, isto é percebido como um aumento ou diminuição do tom do som emitido. Godot pode rastrear mudanças de velocidade nos nós AudioStreamPlayer3D e Câmera. Ambos os nós têm esta propriedade, que deve ser habilitada manualmente:

../../_images/audio_stream_doppler.webp

Ative-o configurando-o de acordo com a forma como os objetos serão movidos: use Idle para objetos movidos usando _process, ou Physics para objetos movidos usando _physics_process. O rastreamento ocorrerá automaticamente.