Buscar

Aula 09 - Controle de Áudio

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Desenvolvimento de Jogos Digitais II
Aula 9: Controle de Áudio
Apresentação
A audição é um de nossos principais sentidos, servindo tanto para aumentar a imersão como para a localização de
inimigos em um jogo 3D. A geração de recursos de áudio não ocorre na Game Engine, devendo ser utilizadas
ferramentas como o Audacity, e os arquivos gerados são importados para o cenário do jogo, sendo executados em
instantes especí�cos. Por tratar-se de um ambiente 3D, o som espacial é um ótimo recurso de localização para o
jogador.
Objetivo
Analisar ferramentas para criação e edição de arquivos de áudio;
Construir jogos com música e efeitos sonoros por meio da Unreal Engine;
Usar som espacial em malhas de navegação. 
Ferramentas de áudio
O que é som?
Um som é um movimento ondulatório, podendo ser con�gurado a partir de
características de sua onda, como intensidade, frequência e velocidade de
propagação. É necessário um meio físico de propagação, como o ar, e o
conjunto de ondas sonoras presentes no ambiente é combinado e detectado
por nossos ouvidos.
O comportamento de onda faz com que o som possa ser re�etido, absorvido e refratado, de acordo com o formato e
características físicas dos obstáculos que encontra. Não é por menos que os sons detectados por um receptor imerso na
água parecem distorcidos, bem como os estúdios de gravação utilizam espumas em formato adequado para que ocorra o
máximo de absorção de ondas sonoras, evitando efeitos indesejáveis de eco.
 Fonte: Bru-nO / Pixabay.
Um alto-falante tem seu funcionamento baseado em
elementos magnéticos que vibram de forma controlada,
causando a geração de ondas sonoras. Os primeiros jogos
não contavam com sistemas de áudio avançados, mas
apenas com um speaker, um alto-falante simples, cujo
acionamento gerava "cliques" com intensidade e frequência
programadas.
Com um ambiente tão rústico, os sons eram gerados em linguagem Assembly, e mesmo assim tínhamos música, efeitos
sonoros e até voz digitalizada. Hoje em dia, porém, o hardware evoluiu, além de contarmos com diversos editores de áudio,
de�nindo um ambiente muito mais pro�ssional e produtivo.
 Fonte: O autor.
Em termos de trilhas sonoras, um som musical distingue-se de um
ruído por sua periodicidade, quando podemos analisar as
características de tom e timbre. Enquanto
Tom
Está relacionado à frequência da onda,
com notas mais graves para valores
baixos e agudas para valores altos 
Timbre
É de�nido pela frequência fundamental e
conjunto de harmônicos, ou múltiplos da
fundamental, permitindo diferenciar o tipo
de instrumento.
Comentário
A forma de uma onda sonora é obtida a partir de Séries de Fourier, ferramenta que de�ne uma onda complexa pela
combinação da frequência fundamental e harmônicos.
Da mesma forma que uma Game Engine não é voltada para a construção dos modelos 3D, os recursos de áudio também
devem ser criados em ferramentas externas, quando o conhecimento acerca das características físicas do som será
importante durante a utilização.
Existem diversos editores de áudio no mercado, como Sound Forge, Adobe Audition, Twisted Wave, Qtractor e Garage Band,
entre muitos outros, mas o Audacity é a opção gratuita mais popular.
Os editores de áudio, bem como as Game Engines, lidam com diversos formatos de áudio, e cada tipo de arquivo tem maior
aplicabilidade para determinado objetivo ou plataforma.
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
Formato Características
OGG Baseado na tecnologia Vorbis, ocupa pouco espaço, sendo muito indicado na criação de jogos para a plataforma Android.
MIDI Trabalha com a definição de trilhas de tons (partituras), que podem ser adotadas por qualquer instrumento, baseado em uma
amostra de áudio (sample).
MOD Definido para o computador Amiga, é similar ao MIDI, e oferece alta qualidade.
MP3 Apresenta grande nível de compressão e pequena perda de qualidade.
WAV Armazena os dados de áudio sem compressão e sem perda de qualidade.
 Tabela: Principais formatos para arquivos de áudio. Fonte: O autor.
Para a criação de um efeito sonoro, podemos gravar o som de um fenômeno natural, aplicar �ltros para remoção do ruído e
utilizar os efeitos disponíveis no editor de áudio, gerando os samples, ou timbres, que podem ser utilizados na forma original,
ou seguindo as frequências das notas musicais.
Saiba mais
Qualquer som pode ser con�gurado para utilização como um instrumento musical, desde que as escalas sejam seguidas de
forma adequada, o que permite a geração de trilhas sonoras a partir de fenômenos inusitados, como o barulho de uma
explosão.
Um último fator a se considerar é o número de canais utilizados para cada amostra, ou pelo som resultante, quando temos a
opção de mono, tratando de um som plano, emitido por apenas um alto-falante, ou replicado para os lados direito e esquerdo,
e som estéreo, quando podemos diferenciar o que será emitido para cada lado.
 
Em uma mesa de som temos muitos canais de entrada, os quais são combinados para emissão em saídas mono ou estéreo,
e os editores de áudio buscam replicar a funcionalidade do dispositivo físico.
Para a de�nição dos canais de entrada podemos utilizar a criação de faixas no Audacity, pois elas podem ser combinadas,
com diferentes volumes e balanceamento entre os lados direito e esquerdo, com a mixagem ao �nal para mono ou estéreo.
 Figura: Edição de duas faixas no Audacity, antes da mixagem. Fonte: O autor.
No menu de efeitos do Audacity temos opções presentes em instrumentos físicos, como eco, distorção, equalização e
reverberação, comuns em pedaleiras e mesas de som, além de �ltros para redução de ruído, remoção de cliques e
suavização, apenas para citar alguns. Também é oferecido o menu analisar, com ferramentas que permitem a veri�cação de
características como espectro de frequência e contraste.
A gerência dos canais é feita no menu faixas, que permite criá-las, removê-las, ou mixá-las, além de oferecer elementos
operacionais, como mutar todas as faixas. Quanto à opção gerar, está relacionada à geração de sons especí�cos nas faixas,
como tons contínuos ou em escala, batidas para controle de ritmo e ruído.
O projeto pode ser salvo mantendo toda a independência entre as faixas, ou exportado para arquivo de áudio, com a
mixagem das faixas, apresentando MP3, WAV e OGG como formatos preferenciais. O ideal é que o projeto sempre seja salvo
antes da exportação para que possa ser modi�cado posteriormente, ou exportado para outros formatos.
Atenção
A mixagem padrão do Audacity é gerada no modo estéreo, mas a exportação para alguns formatos, como MP3, oferece a
opção de forçar a criação como mono.
Outro formato de grande relevância é o MIDI (Music Instrument Digital Interface), que trata não apenas de um formato de
arquivo, mas da interface padrão para comunicação entre os dispositivos físicos de áudio, como teclados eletrônicos, e o
computador.
A sequência de tons é fornecida pelo teclado, sendo capturada a partir da interface MIDI, e associada, por meio do editor, a
uma amostra de áudio para algum instrumento, o que permite que a mesma música seja executada com som de piano ou
trompete a partir da simples mudança de amostra.
Dica
Embora o Audacity permita importar um arquivo MIDI para uma faixa, ele não tem opções de manipulação ou mixagem para o
formato, o que deve ser feito em editores próprios, como o Midi Editor, uma opção gratuita, disponível no site
https://www.midieditor.org.
 Figura: Área de edição do Midi Editor. Fonte: O autor.
javascript:void(0);
Como tratamos de uma interface física, temos uma quantidade determinada de canais, que no caso são dezesseis, e mesmo
que não ocorra a limitação em termos de software, qualquer editor de MIDI deve trabalhar com essa quantidade, de forma a
manter a compatibilidade em termos de entrada ou saída de sinais para os elementos de hardware.
No editor, os canais são associados às amostras de áudio para os instrumentos, e as trilhas são associadas aos canais,
constituindo mapas de tons para os instrumentos,algo próximo a uma partitura.
Mesmo sem um dispositivo físico, é possível criar músicas no Midi Editor, mas será exigida a con�guração de um dispositivo
virtual, como Microsoft GS Wavetable Synth, a partir do menu Midi..Settings, na opção Midi I/O.
 Figura: Configuração do Midi Editor para execução sem dispositivo físico. Fonte: O autor.
Um tipo de arquivo que segue os mesmos padrões do MIDI é o formato MOD, adotado pelo antigo computador Amiga, com
base em amostras de instrumentos e trilhas de tons. Com grande simplicidade para manipulação e alta qualidade de áudio, é
um formato que, apesar de antigo, ainda é aceito por muitas Game Engines.
Saiba mais
Diversos sites disponibilizam efeitos sonoros e músicas de forma gratuita, livres de direitos autorais, como https://freesfx.co.uk
e https://freesound.org, e sempre podemos basearmo-nos em algumas das amostras disponíveis para construir a trilha sonora
ou de�nir sons para eventos pontuais. O mesmo ocorre com relação ao formato MIDI, em que diversos exemplos gratuitos
podem ser encontrados em sites como https://bitmidi.com.
Sonorização de jogos na Unreal Engine
Ao trabalhar com a Unity 3D temos uma boa gama de formatos para arquivos de áudio que podem ser utilizados
diretamente pelo ambiente, como MP3, OGG, WAV e MOD, entre vários outros. Qualquer arquivo de áudio importado será
considerado como um Audio Clip, sendo executado a partir de um Audio Source, em algum local da cena, e as diversas
fontes de áudio são combinadas, com a possível utilização de componentes do tipo Audio Mixer, culminando com a captura
do som resultante em um Audio Listener, para que seja transmitido ao jogador.
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
javascript:void(0);
javascript:void(0);
javascript:void(0);
Já na utilização da Unreal Engine, apenas os formatos WAV e OGG são importados de forma direta, gerando Assets do tipo
Sound Wave, mas sempre podemos utilizar uma ferramenta como Audacity para converter arquivos de outros formatos,
antes da importação. Finalizando a importação dos Assets, podemos posicioná-los no ambiente por meio de simples arraste
a partir do Content Browser, gerando componentes do tipo Ambient Sound.
 Figura: Configuração do Midi Editor para execução sem dispositivo físico. Fonte: O autor.
Vamos adicionar um cilindro básico a uma cena vazia apenas para conseguir a percepção do local onde ocorre a geração do
som, e adicionar uma música de duração razoável como som ambiente, logo acima do cilindro.
Além de podermos adicionar os sons a partir de movimento de arraste, também podemos utilizar o painel Place Actors, na
opção All Classes, gerando uma instância de Ambient Sound, em que a relação com o Asset de áudio (Sound Wave) precisa
ser con�gurada no painel Details, a partir do atributo Sound.
 Figura: Cilindro com Ambient Sound posicionado acima dele. Fonte: O autor.
Para que o som se repita ao término de cada execução é necessário abrir o editor próprio de Sound Wave, com o duplo clique
sobre o Asset, e marcar a opção Looping, no grupo Sound, do painel Details. Feita a alteração, podemos utilizar o modo de
jogo de primeira pessoa e andar pelo ambiente, observando que a música do jogo se mantém, mas ainda sem qualquer
conotação espacial que permita relacioná-la com a localização da origem.
Para acrescentar características espaciais ao som vamos selecionar o nível AudioComponent, no painel Details, marcar a
opção Override Attenuation, e con�gurar o volume de atenuação, no grupo Attenuation Distance. Manteremos a função de
atenuação Linear, com o formato esférico, ou Sphere, mas iremos alterar o raio interno e a distância máxima de percepção
nos atributos Inner Radius e Falloff Distance. 
 Figura: Definição do volume de influência para a fonte sonora. Fonte: O autor.
Será possível observar o gizmo, com duas esferas concêntricas, de cor laranja, indicando tanto a forma interna, utilizando o
som no volume máximo, como a delimitação da forma externa, onde o som ainda pode ser percebido.
A intensidade do som irá decair a partir da forma interna até chegar a zero, na forma externa, segundo a função de
atenuação, que neste caso é linear, mas pode ser uma função logarítmica, reversa, próxima do comportamento natural, ou,
ainda, trabalhar com uma curva customizada.
Atenção
Se a atenuação for um padrão para várias fontes sonoras, crie um atenuador a partir de Add New, seguido das opções Sounds
e Sound Attenuation. Desmarque o atributo Override Attenuation de Ambient Sound e associe o novo Asset em Attenuation
Settings.
Um componente muito útil, na Unreal Engine, é o Sound Cue, que de�ne um som complexo por meio de um editor de
Blueprints próprio. Para testar suas funcionalidades vamos clicar em Add New, seguido de Sounds e Sound Cue, adotando o
nome SomMisto.
Clicando duas vezes sobre o novo Asset teremos a abertura do editor, onde inicialmente iremos adicionar dois nós do tipo
Wave Player, arrastando a partir do painel Palette, no lado direito do editor. Em seguida, clicamos sobre cada um dos nós, os
associamos com algum áudio presente no Content Browser, além de selecionar a opção Looping, no painel Details.
 Figura: Escolha de dois Assets de áudio no editor de Sound Cue. Fonte: O autor.
Após con�gurar os nós de execução de áudio vamos acrescentar um nó do tipo Mixer, voltado para a mesclagem de sons,
que receberá as saídas oferecidas pelos conectores Output dos executores de áudio. Na sequência acrescentamos um nó do
tipo Attenuation, marcando a opção Override Attenuation, com a escolha de função Log Reverse, formato Box, extensão na
coordenada X em 200, e Falloff de 300.
 Figura: Configuração do nó de atenuação no editor de Sound Cue. Fonte: O autor.
Com todas as con�gurações �nalizadas, completamos as ligações necessárias, conectando a saída do Mixer com a entrada
de Attenuation, e a saída deste com a entrada do nó principal, representado pelo ícone de um alto-falante, com o nome
Output. Com o diagrama completo, basta salvar, arrastar o Asset para a cena, e testar com a execução do jogo.
 Figura: Diagrama completo do Sound Cue. Fonte: O autor.
Algo que você deve ter observado é que a música do jogo é reiniciada a cada vez que saímos e entramos novamente no
volume de atenuação, e o mesmo ocorre para o efeito criado com a combinação de sons, embora possa ser menos
perceptível.
O que ocorre não é um problema da plataforma, mas apenas uma otimização padrão, e o comportamento pode ser alterado,
ao nível do arquivo de áudio, escolhendo-se o valor Play When Silent em Virtualization Mode, ou modo de virtualização, para
que a música continue a ser executada incondicionalmente.
 Figura: Configuração do modo de virtualização para o arquivo de áudio. Fonte: O autor.
Uma característica essencial para a utilização de efeitos sonoros no jogo é a possibilidade de executá-los em locais e
instantes especí�cos, o que podemos fazer por meio de Blueprints ou via programação em linguagem C++. De forma geral,
precisamos de uma colisão com per�l de gatilho, iniciando o �uxo de execução onde ocorre a chamada para Play Sound at
Location.
 
Vamos de�nir uma nova cena, seguindo o modelo padrão, e acrescentar uma malha estática qualquer (Static Mesh), com
mobilidade con�gurada como Movable. Precisaremos também de um componente do tipo Box Trigger, no mesmo local,
para executar um recurso de áudio, ao mesmo tempo em que uma animação sobre a malha estática é iniciada.
Utilizaremos o modo de jogo First Person Game Mode para navegar de forma simples pela cena, e adotaremos uma
animação cinemática para a malha estática, com base em elementos do tipo Sequence, os quais são muito semelhantes ao
recurso de Matinee, oferecido no UDK, em que as chaves de animação são dispostas sobre uma linha do tempo, permitindo
controlar aspectos diversos pela interpolação de valores.
 Figura: Configuração inicial, com os componentes Static Mesh e Box Trigger. Fonte: O autor.
Agora vamos criar uma sequência de animação, clicando em Cinematics,na ToolBar, seguido da opção Add Level
Sequence. Será solicitado o nome do novo Asset, sendo sugerido aqui a criação de um diretório especí�co para a
armazenagem de sequências de animação.
 Figura: Criação de sequência de animação. Fonte: O autor. 
Na janela que se abrirá vamos adicionar uma referência para a malha estática, clicando em Add New, seguido de Actor to
Sequencer e, por �m, o objeto da cena. Imediatamente serão disponibilizadas as linhas do tempo para o atributo Transform
do objeto e seus atributos.
O editor de sequências de animação, ou Sequencer, apresenta uma Toolbar na parte superior contendo as con�gurações
globais, como quantidade de quadros por segundo, assumindo o padrão de 30 fps, e Playback Options, contendo o quadro
inicial (Start) e �nal (End), entre diversas outras opções para a execução da animação.
No lado esquerdo, temos os atributos que serão modi�cados ao longo da linha do tempo, contendo um pequeno círculo, ao
lado de cada atributo, para adição das chaves de animação.
 Figura: Sequência de animação no editor, com o objeto adicionado. Fonte: O autor.
Utilizaremos o valor 120 para o quadro �nal (End), con�gurando a partir de Playback Options, e iremos alterar a rotação do
objeto, com chaves nos quadros 0, 60 e 120, movendo a guia de tempo, um marcador avermelhado acima da numeração de
quadros, para a posição correta, e clicando no círculo para adição da chave em cada posição. No quadro 60 iremos alterar o
valor de Yaw, em Rotation, para 90, e no quadro 120, utilizaremos o valor 0, fazendo com que o objeto seja rotacionado e
retorne à posição original em quatro segundos.
 Figura: Configuração das chaves de animação para rotação do objeto. Fonte: O autor.
Finalizada a con�guração da animação salvamos as alterações, voltamos para a cena do jogo, deixando nossa Trigger
selecionada, e abrimos o �uxo de execução da cena, com o clique na opção Blueprints, da Toolbar, seguida de Open Level
Blueprint. Com o clique do botão direito no Event Graph adicionamos o evento do gatilho, com a opção Add On Actor Begin
Overlap, presente na divisão Collision, abaixo de Add Event for Trigger.
 
Quando o gatilho for ativado, iniciaremos a sequência de animação, junto à execução de um som associado. Começaremos
pelo som, aproveitando o fato de que a Trigger ainda deverá estar selecionada, por meio da adição de um nó do tipo Play
Sound at Location, onde devemos selecionar o som desejado no conector Sound, e um nó do tipo Get Actor Location, que
estará associado à Trigger e deverá ser atribuído ao conector Location do primeiro nó, efetuando a incorporação ao �uxo de
On Actor Begin Overlap.
 Figura: Fluxo parcial do gatilho, com a execução do áudio escolhido. Fonte: O autor.
Em seguida, vamos para a cena do jogo, selecionamos a instância da animação e voltamos para o Event Graph, onde iremos
clicar com o botão direito e escolher Create Reference to, gerando um nó de acesso ao objeto. Em seguida, arrastamos o
mouse a partir do conector de saída do nó de referência, geramos um nó do tipo Play (Sequencer Player), e incorporamos a
animação ao �uxo após a execução do som.
Estando tudo con�gurado, basta compilar o Blueprint, salvar, e executar o jogo, observando como a entrada no gatilho irá
iniciar a execução do som e da imagem simultaneamente, algo que poderá ser utilizado em qualquer jogo para ações
comuns, como a abertura de portas em um ambiente fechado.
 
Inclusive, uma técnica comum é a de�nição de duas animações, uma para abertura e outra para fechamento da porta, com a
ativação dos sons adequados, sendo iniciadas, respectivamente, na entrada e saída do gatilho.
 Figura: Fluxo completo do gatilho, com a execução do áudio e da animação. Fonte: O autor.
Como praticamente tudo na Unreal Engine, da mesma forma que podemos utilizar Blueprints para ativar os recursos de
áudio, a adoção de programação em linguagem C++ também é uma opção. Por exemplo, para executar um som na posição
do ator, podemos invocar o método PlaySoundAtLocation, de UGamePlayStatics, com a passagem do componente de áudio
e a chamada para o método GetActorLocation.
 
void TesteSom::EmitirSom(USoundCue* FireSound)
{
if (FireSound != NULL)
{
UGameplayStatics::PlaySoundAtLocation(this,
FireSound, GetActorLocation());
}
}
 Listagem: Execução de áudio na posição do ator por meio da linguagem C++. Fonte: O autor.
Malhas de navegação e som espacial
As malhas de navegação constituem um excelente meio para introduzir inteligência arti�cial no comportamento dos
personagens. Na prática, o que temos é uma malha que se sobrepõe ao cenário padrão, considerando limitações de altura
para a movimentação do personagem, com o objetivo de limitar o espaço de navegação para o controlador de inteligência
arti�cial.
Unity 3D
A malha de navegação é de�nida por um
componente do tipo NavMesh, as áreas
inacessíveis são con�guradas com a
adição de NavMeshObstacle e os
personagens que irão movimentar-se na
malha precisam receber a classi�cação de
NavMeshAgent.
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online

Unreal Engine
Tudo começa com a de�nição de um
volume de navegação, que deve ser
adicionado por meio da opção
Volumes..Nav Mesh Bounds Volume, a
partir do painel Place Actor, sendo
alternada a visibilidade da área navegável
ao pressionar a tecla "P".
O volume de navegação pode assumir diversos formatos, sendo padrão o uso de uma caixa, e os limites do volume são
apresentados na cor laranja, delimitando o espaço do cenário que será considerado no cálculo da malha de navegação. Já
para a área navegável, calculada de forma automática, a cor verde é utilizada pela Unreal Engine.
 Figura: Volume de navegação e área navegável. Fonte: O autor.
Para o nosso exemplo vamos adicionar o pacote Third Person no grupo Blueprint Feature e con�gurar o Game Mode para
Third Person Game Mode, em World Settings. A utilização de terceira pessoa deixará mais evidentes as decisões tomadas
por outros personagens, no que se refere à movimentação, com base no controlador de inteligência arti�cial.
Agora vamos acrescentar dois Assets, a partir de New Blueprint Class, em que o primeiro será o controlador de inteligência
arti�cial, na opção All Classes..AI Controller, e o segundo tratará do personagem a partir da opção Character. Adotaremos
os nomes MeuControlador, para o elemento do tipo AI Controller, e MeuPersonagem, para o Character.
 Figura: Escolha da malha e da animação para o personagem. Fonte: O autor.
O personagem deve ser con�gurado com a abertura do editor de Blueprints, associando ao nível de Mesh a malha SK
Manequim a partir do atributo Mesh, e o Blueprint de animação ThirdPersonAimBP, no atributo Anim Class. Após associar,
a malha deve ser posicionada em relação ao colisor no formato de cápsula e rotacionada para olhar na direção da seta.
Queremos que os personagens posicionados sobre a malha de navegação persigam o jogador. Para isso, vamos editar o
�uxo de execução do controlador que criamos. A con�guração é muito simples, exigindo um nó do tipo Move to Actor,
chamado na sequência de EventTick, com o conector Goal associado a outro nó, do tipo Get Player Character, além de
atribuir o valor 200 em Acceptance Radius, para que o personagem mantenha uma distância mínima do jogador ao terminar
a perseguição.
 Figura: Fluxo do controlador de inteligência artificial. Fonte: O autor.
Como passos �nais do teste de navegação, associamos o controlador ao personagem, com o acesso à raiz dos
componentes de MeuPersonagem, e escolha de MeuControlador para o atributo AI Controller Class, do grupo Pawn. Em
seguida, com os Blueprints con�gurados e compilados, adicionamos dois personagens sobre a malha de navegação, e já
poderemos observar, durante a execução do jogo, que o jogador será perseguido na área navegável.
 Figura: Associação do controlador, e perseguição do jogador na execução. Fonte: O autor.
Compreendidas as funcionalidades básicas das malhas de navegação e com a perseguição ao jogador implementada,vamos veri�car como o som espacial pode ser utilizado para melhorar a imersão do jogador. Inicialmente, selecione um
arquivo OGG ou WAV com algum som mais estridente e importe-o para a Unreal Engine.
 
Na sequência devemos de�nir um novo Asset do tipo Sound Cue, que deve utilizar o som importado, repetido ciclicamente, e
com uma área de atenuação que traga para o jogador a noção de distância até o inimigo. Na construção do �uxo do
Blueprint vamos adicionar um nó do tipo Wave Player, associado ao som estridente e com o atributo Looping marcado, além
de um nó do tipo Attenuation.
A atenuação merecerá atenção especial, pois deve ser compatível com as dimensões da cena, tendo Override Attenuation
marcado, função de atenuação Linear, formato esférico, com os valores 100 e 1000, respectivamente, para os atributos Inner
Radius e Falloff Distance. Após efetuar as con�gurações necessárias, o nó de atenuação receberá a saída do Wave Player e
será direcionado para o nó principal do Sound Cue, com a descrição Output.
 Figura: Configuração do Sound Cue para o personagem. Fonte: O autor.
Terminada a con�guração do Asset de áudio, vamos associá-lo a MeuPersonagem, clicando em Add Component, no editor
de Blueprints, e escolha da opção Audio. Após acrescentar o componente, ele precisa apenas ser associado ao Sound Cue a
partir do atributo Sound.
 
Executando o jogo poderemos observar que o som acompanha os personagens inimigos, mas ocorrem algumas
disparidades, já que o captador da Unreal Engine é �xado na câmera e não no personagem do jogador. Com isso, em
determinados locais do cenário, veremos que o som irá desaparecer, sem que os personagens estejam distantes, o que
ocorre pelo fato de que a câmera posicionou-se após a zona de atenuação.
Para ter a sensação de imersão desejada, com o som espacial indicando a direção e a distância de cada inimigo, precisamos
alterar o modo de jogo para First Person Game Mode. Devemos lembrarmo-nos de que, para utilizar o modo de primeira
pessoa, precisamos adicionar ao nosso projeto o pacote com o nome First Person no grupo Blueprint Feature.
 Figura: Associação do Sound Cue ao personagem. Fonte: O autor.
Como a perseguição ocorre de forma ininterrupta, também é interessante aumentar a área do solo por meio da ferramenta
de escala sem alterar o volume de navegação, pois a ação irá criar uma borda "segura", onde o jogador pode posicionar-se
sem que seja perseguido. Agora podemos executar o jogo e experimentar a imersão proporcionada pelo som 3D, o que será
intensi�cado com o uso de fones de ouvido.
 
Outra modi�cação que pode aumentar a necessidade da localização pelo som, melhorando a sensação de imersão, seria a
mudança da iluminação do ambiente para um padrão escuro, onde os inimigos não são veri�cados visualmente de forma
tão imediata.
 Figura: Execução no modo de primeira pessoa, com cenário escuro. Fonte: O autor.
O uso de som espacial para localização foi muito bem explorado no jogo God of War, na cena em que ocorre uma
tempestade no deserto, pois as partículas de areia impedem a visualização dos inimigos, sobrando apenas a opção do som
para localização.
Se quiser criar algo similar, com base em nosso exemplo, aproveite as con�gurações efetuadas e importe uma malha de
labirinto, com colisão, refazendo a malha de navegação e utilizando iluminação fraca.
Atividade
1. Ferramentas como Unity 3D e Unreal Engine não são voltadas para a criação de áudio, mas para a gerência de recursos de
áudio em meio à lógica do jogo, sendo necessário utilizar outros softwares para criação dos recursos de mídia. Qual das opções
seguintes de�ne um editor de áudio gratuito e muito popular na área de jogos?
a) 3DS Max
b) Audacity
c) Blender
d) Adobe Audition
e) Ableton Live
2. Quando trabalhamos com áudio, na Unreal Engine, podemos atenuar o som a partir de uma origem por meio das
con�gurações dos atributos presentes no grupo Attenuation Distance. A forma como o volume diminui é con�gurada com base
em uma função, selecionada no atributo Attenuation Function. Entre as opções de funções disponíveis, qual mais se aproxima
do comportamento do som no mundo real?
a) Linear
b) Logarithmic
c) Inverse
d) Log Reverse
e) Natural Sound
3. Jogos que utilizam som espacial para localização permitem explorar os sentidos do jogador, trazendo um aspecto de
jogabilidade que vai além dos dispositivos de entrada, aumentando a sensação de imersão na cena. Basicamente, temos sons
que são atrelados aos personagens, permitindo que sejam detectados antes de serem visualizados e, na Unreal Engine, a área
de movimentação automatizada é gerada a partir de um componente do tipo:
a) Nav Mesh Bounds Volume
b) Third Person Character
c) Sound Cue
d) Sequencer Player
e) First Person Character
Notas
Bones1
São criadas as chaves de animação, ao longo da linha de tempo, para os diversos componentes da hierarquia, e a malha é
aplicada sobre ela, adequando-se ao movimento esperado — como ocorre para nós, quando nossos esqueletos se movem e a
pele segue o movimento que foi imposto.
Referências
CARNALL B U l E i 4 X B E l Bi i h P k P bli hi 2016
CARNALL, B. Unreal Engine 4.X By Example. Birmingham: Packt Publishing, 2016.
COPLE, D. Desenvolvimento de Jogos II. Rio de Janeiro: SESES, 2019.
MONIEM, M. Mastering Unreal Engine 4.X. Birmingham: Packt Publishing, 2016.
SATHEESH, P. Unreal Engine 4 Game Development Essentials. Birmingham: Packt Publishing, 2016.
SHERIF, W.; WHITTLE, S. Unreal Engine 4 Scripting with C++ Cookbook. Birmingham: Packt Publishing, 2016.
Próxima aula
Menus de con�guração para os jogos;
Acompanhamento de informações do jogo (HUD);
Ferramentas de depuração visual como elementos de HUD.
Explore mais
No site da Audacity leia manual completo e on-line do Audacity, com vários tutoriais.
Em raywenderlich veja detalhes sobre a utilização de áudio na Unreal Engine.
Em Vikram Codes leia o artigo sobre criação e uso de malhas de navegação na Unreal Engine.
javascript:void(0);
javascript:void(0);
javascript:void(0);

Outros materiais