segunda-feira, 15 de junho de 2015

Tocando sons com Blueprints

Efeitos sonoros e músicas precisam estar no formato ".WAV" para poderem ser importados para a Unreal Engine 4. Para fazer a importação, basta clicar no botão "Import" do Content Browser e escolher o arquivo ".WAV". Após a importação será criado um elemento do tipo "Sound Wave" que já pode ser utilizado no jogo.

Para a criação de sons complexos que possam ser modificados dinamicamente durante o jogo é preciso criar um "Sound Cue". Existe o editor de "Sound Cue" que possui diversas ações que permitem combinar vários "Sound Wave" em um único "Sound Cue" com efeitos interessantes.

Existe uma forma bem simples de tocar um som em Blueprints. Basta usar a ação "Play Sound at Location":


Nesta ação basta escolher no combo box o som que será tocado. Este som pode ser um "Sound Wave" ou um "Sound Cue". No parâmetro "Location" pode ser usado a posição do Ator relacionado ao som. Imagine que o exemplo acima é um Blueprint de algum tipo de explosivo. Quando o jogador encostar no explosivo, será tocado o som no local em que o Blueprint se encontra.

Para músicas de fundo ou sons do cenário, podemos usar um ator do tipo "AmbientSound". Como exemplo vamos criar uma música de fundo usando o Sound Wave "Starter_Music01" do Starter Content, que fica na pasta "StarterContent/Audio":

Clique para aumentar

Arraste o Sound Wave "Starter_Music01" e solte em qualquer lugar do Nível. Pronto, o editor irá automaticamente criar um ator do tipo "AmbientSound":


Na aba "Details" é possível mudar o som que está sendo usado e definir se é para usar "Spatialization" (espacialização) e "Attenuation" (atenuação). "Spatialization" posiciona o som no espaço 3D. "Attenuation" define como o som diminui ou pára, a medida que o jogador se afasta da posição de origem do som. Para músicas de fundo não é necessário "Spatialization" nem "Attenuation".


A melhor forma para termos controle sobre sons e músicas, é utilizando "Audio Component" dentro dos Blueprints. Como exemplo, imagine que temos duas músicas. Uma é a música que toca durante o jogo e a outra é uma música de vitória que toca quando o objetivo for alcançado. 

Para adicionar uma música clique no botão "Add Component" de um Blueprint e escolha "Audio". Crie dois "Audio Component" com o nome "GameMusic" e "VictoryMusic". Para cada um deles, na aba "Details", selecione no combobox "sound" a música que será usada e desmarque a propriedade "AutoActivate" para que a música não comece a tocar automaticamente.

Foi criado um Evento Customizado com o nome "Victory" que deve ser chamado quando o objetivo do jogo for alcançado. A imagem abaixo mostra como ficou a transição entre as músicas:

Clique para aumentar

O "GameMusic" inicia no começo do jogo. Quando o evento "Victory" é acionado usamos a ação "Fade Out" para diminuir gradativamente o volume do "GameMusic" até parar em 2 segundos. A ação "Fade In" aumenta gradativamente o volume da "VictoryMusic" até seu volume normal em 2 segundos.