As funcionalidades de áudio da Unreal Engine 5 são compatíveis com projetos com vários requisitos de áudio. A importação do áudio pode ser realizada navegando até uma pasta de conteúdo, clicando no botão Importar ou navegando até a pasta por meio do explorador do seu sistema operacional. Em seguida, a engine cria um arquivo .uasset com o seu som. A Unreal Engine oferece suporte para arquivos .wav, .ogg, .flac, .aif, .opus e .mp3 . Os arquivos podem ter uma profundidade de bits de 16 ou 24 e qualquer taxa de amostragem. Internamente, a Unreal Engine armazena os arquivos de áudio importados em um formato .wav não compactado de 16 bits .
Para saber mais sobre a Engine de áudio na Unreal, consulte a seguinte documentação:
Audio Engine Overview (Visão geral da engine de áudio)
Importing Audio Files (Importar arquivos de áudio)
Audio In Unreal Engine 5 (Áudio na Unreal Engine 5)
Indicações sonoras são objetos utilizados para reproduzir sons durante a execução. Indicações sonoras selecionam a partir de um conjunto de arquivos de áudio que representam o mesmo conceito. Por exemplo, você pode ter uma indicação sonora para "Vento" e, durante a execução, a indicação sonora escolheria entre vários arquivos de áudio com sons de vento para reprodução. Um exemplo disso no Parrot é a indicação sonora de respingos de água: Content/Sound/SFX/WaterSplash/CUE_WaterSplashSound
Classes de som são tipos de ativos usados pelo mecanismo de áudio para agrupar vários sons e, em seguida, alterar os parâmetros de todas as ondas sonoras relevantes ao mesmo tempo. O Parrot tem MainSoundClass, que combina Music e SFX.
As combinações de classes de som podem aplicar limites de volume e são aplicadas automaticamente sempre que qualquer som de uma classe de som é reproduzido.
Implementação específica para o Parrot
No Parrot, a maioria dos sons utilizados são indicações sonoras que contêm um único som. O volume e o tom são definidos por indicação sonora, com o volume geral controlado por uma classe de som padrão e misturas de som para as configurações. Para otimizar isso para música, o Parrot possui um Subsistema de áudio personalizado.
Exemplo de coleta
Coletas são um exemplo de indicação sonora simples que são reproduzidas uma vez e depois são eliminadas. Coletas usam efeitos de som de moeda da opengameart.org. Os ativos de origem importados estão localizados em Content/Assets/OpenGameArt/8bitCoinSounds. As indicações sonoras criadas para cada um desses arquivos estão em Content/Sound/SFX/Pickups. Chame Reproduzir som 2D com a indicação sonora desejada em BP_PickupBase quando o evento de coleta é iniciado.
Todas as Coletas são compatíveis com efeitos visuais (VFX) e efeitos sonoros (SFX) e devem ser destruídas ao entrar em contato. Isso pode ser feito na classe BP_PickupBase.
É possível utilizar Reproduzir som 2D aqui, pois o som não precisa ser espacialmente relevante no mundo. Se o som precisar ser espacialmente relevante, você pode utilizar a opção Reproduzir som no local.
Loops musicais
A música funciona de maneira muito semelhante às indicações sonoras padrão. Importar os arquivos de som e configurar as indicações sonoras é semelhante ao processo de efeitos sonoros. Porém, existem algumas etapas adicionais:
No próprio ativo de som importado, certifique-se de que o modo de virtualização esteja definido como Reproduzir em silêncio. Isso é importante para a música, pois permite que o usuário respeite as configurações de volume. Sem ele, quando o volume estiver silenciado, o som será destruído e não será mais reproduzido quando você restaurar o volume.
Na própria indicação sonora, clique no nó da trilha e certifique-se de que a opção Looping esteja ativada.
Configurações de som
Todas as configurações no Parrot estão relacionadas a vários volumes de som.
Em Content/Sound/Settings, existe um ativo de classe de som chamado MainSoundClass. Em Classes secundárias, você pode direcionar sua classe de som para qualquer outra classe de som relevante. As classes filhas padrão incluem SFX e Music.
Na mesma pasta, existe um ativo chamado DefaultSoundMix. É possível definir Efeitos de classe de som nas configurações de MainSoundClass. Certifique-se de que a opção Aplicar a secundárias esteja habilitada.
Em cada indicação sonora, certifique-se de que a classe esteja definida na categoria apropriada. Para coletas, utilize a classe SFX.
Para modificar as configurações da sua mixagem em tempo de execução, é possível utilizar o nó Set Sound Class Mix Override com o nó Push Sound Mix Modifier. Isso aplica todas as alterações que você fez.
Este é um exemplo de Blueprint, mas no Parrot, isso geralmente é feito em C++ no Subsistema de áudio.
Subsistema de áudio do Parrot
Esta seção explica o que a implementação do Subsistema de áudio realiza. Para saber por que o Parrot possui um subsistema para áudio, consulte Subsistemas no Parrot.
O Subsistema de áudio do Parrot é uma classe C++ chamada UParrotAudioSubsystem. Ele compartilha a duração da instância do jogo, pois as configurações de volume podem ser alteradas a qualquer momento no menu principal ou no menu de pausa. Quando uma reprodução está ocorrendo, o subsistema de áudio também fica atento às alterações no estado do jogo. Em seguida, é possível alterar a faixa de música quando um nível começa, quando um nível é concluído ou quando o jogador sai dos limites.
WBP_SettingScreen mostra o Subsistema de áudio em ação. Os valores do controle deslizante do UMG (Unreal Motion Graphics UI Designer) são transmitidos ao subsistema em C++. O mixador de som em tempo de execução é atualizado sempre que os valores são alterados. O tempo de Fade In é zero, para que as alterações de volume sejam aplicadas imediatamente.
As configurações são salvas com o nó Save Audio Settings.
Consulte detalhes sobre como a serialização funciona para salvar essas configurações em Serialização em Parrot.
A música no Parrot é feita quase inteiramente em C++. Devido à estrutura do Parrot, em que cada mapa é um nível, existe uma classe AParrotWorldSettings. É possível utilizá-lo para definir quaisquer dados específicos do mundo, como a música do nível. O Subsistema de áudio consulta as configurações globais e obtém a faixa necessária. Para reagir às alterações de estado após o início do jogo, vincule-se ao Estado do jogo Parrot em WorldBeginPlay.