Compendium - Utilizando áudios no Godot

No Godot é possível reproduzir áudio tanto para projetos em 2D quanto em 3D. Para isso precisamos antes saber quais são os formatos de áudio que a ferramenta consegue reproduzir:

WAV: esse formato ocupa mais espaço na memória do projeto, mas em compensação usa pouco processamento do dispositivo. Esse formato é mais indicado para pequenos efeitos sonoros;

OGG: Já esse ocupa muito pouco no espaço na memória, mas necessita de mais processamento do dispositivo para ser executado. Ele é mais indicado para músicas de fundo ou longas sequências de efeitos sonoros.

Baixando e importando áudios

Agora que sabemos quais formatos podemos utilizar com o Godot, vamos agora ver como baixar e importar esses arquivos para dentro da ferramenta. Um ótimo site em que é possível baixar efeitos sonoros é o http://soundbible.com/. Basta pesquisar o nome do efeito (em inglês) e o site fornecerá várias opções.

Caso também queira, é possível baixar músicas no youtube. Mas antes é necessário seguir alguns passos:

1° - Para baixar o áudio, basta ir no link do vídeo do youtube e inserir as letras ss na frente do youtube. Por exemplo:

2° - Assim que você apertar o Enter, será redirecionado a uma página de download do vídeo. Basta escolher a opção “Download” para o vídeo ser baixado.

3° - Depois precisamos converter o vídeo baixado para algum formato que o godot aceita. Então podemos acessar o site https://convertio.co/pt/

Clique no botão vermelho ”Selecionar arquivos” e escolha o vídeo baixado.

4° - Na nova janela que aparecer, selecione a opção OGG em audio e depois peça para o site converter o arquivo. Por fim baixe o arquivo convertido para ser utilizado no Godot.

Utilizando os áudios dentro do Godot

Com os áudios baixados, podemos agora programar para que eles sejam executados dentro do Godot. Para isso vamos precisar utilizar o node AudioStreamPlayer.

Stream: o arquivo que será tocado pelo Godot;

Volume Db: o nível de volume que o áudio vai ter. 0 significa que ele vai ter o nível padrão;

Pitch Scale: essa função altera a velocidade do som, fazendo com que ele fique mais lento ou devagar;

Playing: se marcado o áudio começa a tocar dentro do editor do Godot;

Autoplay: essa opção é marcada caso seja necessário iniciar o áudio assim que a cena iniciar. É útil para músicas de fundo por exemplo;

Stream Paused: quando é necessário pausar uma execução do áudio;

Mix Target: se houver mais de dois auto falantes conectados, com o mix você pode configurar como será a saída do áudio;

Bus: Com isso é possível selecionar slots de mixagem de áudio dentro do Godot. Cada áudio pode ser tratado com diferentes tipos de slots adicionando efeitos em cada faixa de som.

Para iniciarmos, insira uma faixa de áudio dentro da opção Stream. Para ouvir a faixa basta selecionar a opção Playing do node.

 Algo importante a se mencionar é que os áudios possuem propriedades de importação no Godot. Para ver essas propriedades basta clicar no arquivo principal e procurar a aba IMPORT. Se o áudio for uma música de fundo, a opção LOOP deve estar checada. Se não for, ela deve estar desmarcada. Depois clique em Reimport para o Godot atualizar o arquivo.

Programando para tocar o áudio

Via script podemos utilizar o node StreamPlayer para tocar sons. Um exemplo básico é tocar o áudio se uma tecla for pressionada com o play():

Também é possível parar a execução do áudio com o stop():

Se for necessário pausar a execução, pode ser utilizado a função stream_pause com os valores true e false:

Agora caso seja necessário tocar mais de um áudio, podemos armazenar todos dentro de uma única variável (array) e depois chamar qualquer áudio a qualquer hora. Vamos criar um exemplo no Godot que toque 3 sons diferentes para cada tecla que pressionarmos. No código foi criado uma variável que carrega todos os áudios antes de serem tocados. Essa variável é conhecida como Array, ou seja, ela pode guardar mais de uma informação. Ela se torna acessível devido ao export na guia Inspector, e dentro da guia definimos o tamanho da array junto com o path de cada áudio.

Com os áudios inseridos dentro da Array, podemos chamá-los via script:

Cada elemento dentro de uma array possui uma identificação, o index. A contagem do index sempre começa do zero, ou seja, do primeiro elemento. E para utilizar um objeto dentro de uma array identificamos com o [ e o index do objeto.

Com a função stream passamos como informação a array, mas antes precisamos carregar o áudio com a função load(). Por fim pedimos ao node tocar o áudio carregado com o play() novamente.