Nesta seção, você adicionará sons de passos ao personagem jogador para aumentar o realismo de correr pelo nível. Você usará indicações sonoras para criar sons diferentes com base no tipo de superfície em que o jogador caminha.
Você criará materiais físicos para representar os tipos de superfície. Por exemplo, caminhar sobre metal deve soar diferente de caminhar sobre pedra. Você também criará um ativo de dados personalizado que contém as informações de superfície e som. Usar um ativo de dados facilita a adição de mais tipos de superfície e sons no futuro, sem modificar o código do Blueprint.
Por fim, você criará uma função na biblioteca de funções de Blueprint que já existe no jogo: BPL_FPGame. Por sua vez, essa função chamará uma função dentro do ativo de dados que retorna o efeito sonoro correto com base no tipo de superfície detectado.
Antes de começar
Assimile os tópicos abordados nas seções anteriores de Refinamento artístico para um jogo de aventura de quebra-cabeça e Unreal Engine para novos usuários:
Como criar ativos de indicação sonora e atenuação de som.
Noções básicas de Blueprints, incluindo a criação de variáveis e funções, além da criação e conexão de nós.
Você trabalhará com os seguintes ativos no projeto de amostra e pacote de conteúdo:
Onda sonora S_Metal-1
Onda sonora S_Metal-2
Onda sonora S_Metal-3
Onda sonora S_Stone-1
Onda sonora S_Stone-2
Onda sonora S_Stone-3
Onda sonora S_DefaultStep-1
Onda sonora S_DefaultStep-2
Onda sonora S_DefaultStep-3
Biblioteca de funções de Blueprint BPL_FPGame
Blueprint BP_AdventureCharacter
Blueprint de animação ABP_Unarmed
Como criar indicações sonoras com sons de passos
Primeiro, você criará duas indicações sonoras, um para passos em metal e outro para passos na pedra.
Para criar uma indicação sonora, siga estes passos:
Vá para o Navegador de Conteúdo e navegue até Jogo de aventura > Artista > Áudio.
Clique com o botão direito do mouse na pasta Áudio, selecione Nova pasta e chame-a de Passos.
Na pasta Footsteps, clique com o botão direito e vá para Áudio > indicação sonora. Dê a ele o nome SC_Footsteps_Metal e abra-o. Já existe um nó de saída neste ativo, que reproduz o som com base nos nós conectados a ele.
Clique com o botão direito do mouse em algum lugar do gráfico para adicionar um nó Wave Player.
Selecione o nó Wave Player e use o painel à esquerda para alterar a Onda sonora para S_Metal-1.
Adicionar mais dois nós Wave Player e repita as etapas para selecionar os arquivos Onda sonora S_Metal-2 e S_Metal-3 que você importou em Prepare seu projeto e importe o conteúdo.
1. Clique com o botão direito no gráfico e adicione um nó Random. Clique em Adicionar entrada no nó Random uma vez para adicionar uma terceira entrada.
Conecte cada nó Wave Player a um pin no nó Random.
Conecte o nó Random ao nó Output.
Salve a indicação sonora.
Em seguida, crie dois ativos de indicação sonora: um para randomizar os sons de passos na pedra e outro para os sons de passos padrão:
Crie um ativo de indicação sonora chamado SC_Footsteps_Stone.
Para os nós Wave Player, use o S_Stone-1, S_Stone-2 e Ativos de áudio S_Stone-3que você importou em Prepare seu projeto e importe o conteúdo.
Crie um ativo de indicação sonorachamado SC_Footsteps_Default.
Para os nós Wave Player, use os ativos de áudio S_Default-1, S_Default-2 e S_Default-3.
Como criar materiais físicos
Agora que você criou suas indicações sonoras, você criará dois materiais físicos para representar cada tipo de superfície. Depois, você associará os sons dos passos a esses materiais físicos.
Um material físico é usado para definir a resposta de um objeto físico ao interagir dinamicamente com o mundo. Esses materiais também podem ser usados para identificar diferentes tipos de superfícies durante a jogabilidade.
Por exemplo, neste tutorial, você criará materiais físicos chamados PM_Metal e PM_Stone para representar superfícies de metal e pedra. Você verificará em qual superfície o jogador está caminhando e reproduzirá uma indicação sonora com base nessa informação.
Para criar um material físico, siga estas etapas:
Vá para o Navegador de Conteúdo e navegue até a pasta Jogo de aventura > Artista > Materiais.
Na pasta Materiais, clique com o botão direito, vá para Física e selecione Material físico.
Na janela Escolher classe de material físico, selecione PhysicalMaterial e clicar em Selecionar.
Dê o nome de PM_Metal.
Crie mais um material físico chamado PM_Stone.
Um material físico é um ativo de dados que você pode usar para alterar várias configurações de uma superfície, como atrito. Para esses materiais físicos, não é necessário editar as propriedades nos ativos. Em vez disso, você atribuirá esses ativos a materiais diferentes para alterar seus tipos de superfície individuais.
Como atribuir sons de passos com uma classe de Blueprint de ativo de dados
Em seguida, você criará uma classe de ativo de dados de Blueprint para armazenar os sons de passos e criará uma função que retorna o som de passos correto com base no material físico atribuído ao material de um objeto.
Para configurar um ativo de dados de Blueprint de modo a controlar sons de passos, siga estas etapas:
No Navegador de Conteúdo, vá até a pasta Jogo de aventura > Artista > Áudio > Passos.
Clique com o botão direito e crie uma classe de Blueprint.
Na janela Escolher classe pai, expanda o menu suspenso Todas as classes e pesquise, depois selecione PrimaryDataAsset.
Chame este ativo de BP_DA_FootSteps e abra-o.
No painel Meu Blueprint, adicione uma nova variável:
Dê o nome FootStepSounds.
Selecione-o e no painel Detalhes:
Altere o tipo de variável para Material físico (referência a objeto).
Altere o contêiner para Mapa.
Altere Mapear tipo de valor para Indicação sonora (referência a objeto).
Por padrão, o tipo de variável é booleano. Como não é possível mapear booleanos, o contêiner Mapa não estará disponível se você não alterar o tipo de variável antes.
Adicione outra variável:
Dê o nome DefaultFootSteps.
Mude o tipo para indicação sonora.
Como há apenas uma indicação sonora para o som de passos padrão e ela só será reproduzida se não houver material físico atribuído ao material do objeto, você pode alterar o tipo de contêiner para uma única variável.
Uma variável de mapa é uma lista de pares de dados que vincula um tipo de ativo a outro. A variável FootStepSounds mapeia cada material físico à indicação sonora correspondente.
Para configurar o FootStepSounds para vincular materiais com sons, siga estes passos:
Compile o Blueprint para que você possa editar os valores padrão das suas variáveis.
Selecione a variável FootStepSounds. No painel Detalhes, no valor padrão, adicione um novo elemento.
No campo "Material físico", selecione o ativo PM_Stone.
No campo "Indicação sonora", selecione o ativo SC_Footsteps_Default.
Repita as etapas acima para adicionar um elemento com PM_Metal e SC_Footsteps_Metal atribuídos.
Selecione a variável FootStepSounds. No painel Detalhes, em Valor padrão, adicione SC_Footsteps_Default.
Para criar a lógica do Blueprint, siga estas etapas:
No painel Meu Blueprint, adicione uma nova função chamada fnGetFootStepSounds. Ele abre em uma nova aba com seu próprio gráfico.
Selecione a função e, usando o painel Detalhes, faça o seguinte:
Adicione uma nova entrada chamada PhysicalMaterial com o tipo Physical Material.
Adicione uma nova saída chamada SoundCue com o tipo definido como indicação sonora.
No gráfico, desconecte o fio entre o nó de entrada da função (fnGetFootStepSounds) e o nó Return.
No gráfico da função, arraste a variável FootStepSounds para o gráfico da função e selecione Obter.
Arraste o pin do nó Foot Step Sounds e adicione um nó Find.
No nó Find, conecte o pin da segunda entrada ao pin Physical Material do nó fnGetFootStepSounds. Este é o parâmetro para a entrada que você adicionou anteriormente.
No nó fnGetFootStepSounds, arraste o pin de execução e crie um novo nó Branch. Conecte o pin Condition ao pin de saída (vermelho) na parte inferior do nó Find.
No nó Branch, conecte o pin True ao nó Return .
No nó Return, arraste o pin Sound Cue e conecte-o ao pin de saída superior (azul) do nó Find.
No nó Branch, arraste o pin False e adicione o outro nó Return .
No novo nó Return, arraste o pin Sound Cue e adicione um nó Get Default Foot Steps.
Compile e salve o blueprint.
Essa função verifica se um material físico (entrada da função) é encontrado no mapa FootStepSounds. Se o material físico for encontrado, ele retorna a indicação sonora associada a esse material físico como a variável de saída da função.
Se nenhum material físico for encontrado, a indicação sonora DefautlFootSteps será retornada.
Como definir os sons da passada padrão
Em seguida, você criará um ativo de dados para gerenciar os valores usados pelo Blueprint. Este ativo funciona como uma camada de configuração, permitindo que você adicione, remova ou atualize materiais físicos e indicações sonoras sem modificar ou recompilar o Blueprint. Siga as etapas abaixo:
No Navegador de Conteúdo, vá até a pasta Jogo de aventura > Artista > Áudio > Passos.
Clique com o botão direito e vá em Diversos > Ativo de dados. (Selecione o tipo de ativo de dados com um ícone circular.)
Selecione a classe de dados BP_DA_FootSteps como a instância do ativo de dados.
Dê o nome DA_FootSteps para este ativo e abra-o.
Para Passos padrão, selecione SC_Footsteps_Default.
Expanda Foot Step Sounds e confira se a lista foi preenchida com os dois elementos de mapa FootStepSounds.
Salve o ativo de dados.
Crie uma função para reproduzir sons de passos.
Em seguida, você criará uma função na biblioteca de funções para reproduzir o som de passos. Qualquer classe de Blueprint no projeto pode usar funções em uma biblioteca de funções de Blueprint.
Para criar e configurar uma nova função, siga estas etapas:
No Navegador de Conteúdo, vá para Jogo de aventura > Designer > Blueprints > Núcleo e abra a biblioteca de funções de Blueprints BPL_FPGame.
No painel Meu Blueprint, adicione uma nova função e dê o nome fnBPLPlayFootStepSound para ela.
Selecione a nova função e, no painel Detalhes, adicione uma nova entrada chamada PlayerReference do tipo Pawn.
Para configurar um traçado de linha entre o jogador e o chão, siga estes passos:
Arraste o pin de execução do nó fnBPLPlayFootStepSound e adicione um nó Line Trace By Channel.
No nó Line Trace By Channel, arraste o pin Start e adicione um nó Get Actor Location.
Na lista de ações do nó, lembre-se de desabilitar Sensível ao contexto se tiver problemas para encontrar um nó.
Arraste o pin Target do nó Get Ator Location e adicione um nó Get Player Reference.
Arraste o pin de saída do nó Get Player Reference e adicione um nó Make Array.
Conecte o pin de saída da matriz do nó Make Array ao pin Actors to Ignore do nó Line Trace By Channel.
No nó Get Actor Location, arraste o pin Return Value e adicione um nó Subtract.
Conecte o pin de saída do nó Subtract ao pin End do nó Line Trace By Channel.
No nó Subtract, defina o valor Z para 500.
Isso traça uma linha começando da posição do jogador em 500 unidades para baixo, ignorando o personagem jogador. Na próxima parte, você atribuirá o som de passos correto com base no tipo de superfície informado pelo traçado de linha.
Siga estas etapas para usar o ativo de dados que você criou anteriormente para atribuir o som correto de passos:
No nó Line Trace By Channel, arraste o pin Out Hit e selecione Break Hit Results.
Crie uma variável local, nomeie-a como FootStepsAsset e defina o tipo como BP_DA_FootSteps (Object Reference). Defina o Valor padrão como DA_FootSteps.
Arraste a variável FootStepsAsset para o Event Graph e selecione Get FootStepAsset.
Arraste a partir do nó FootStepsAsset, pesquise e selecione fnGetFootStepSounds.
Conecte o pin de execução do nó LineTraceByChannel com o nó FnGetFootStepSounds. Expanda o nó Break Hit Results e conecte o pin Phys Mat ao pin Physical Material do nó FnGetFootStepSounds.
Arraste a partir do nó FnGetFootStepSounds e procure e selecione Play Sound At Location.
Conecte o pin Sound do nó PlaySoundAtLocation ao pin Sound Cue do nó FnGetFootStepSounds.
Arraste o pin Location do nó PlaySoundAtLocation, pesquise e selecione Get Actor Location. Arraste o pin Target e adicione um nó Get Player Reference.
Salve e compile a função.
Essa função usa a função fnGetFootStepSounds do recurso de dados para passar um material físico e obter uma indicação sonora para reprodução.
Como atualizar o Blueprint de animação com sons de passos
A próxima etapa é modificar o Blueprint de animação do personagem jogador para chamar a função FnBPLPlayFootStepSound quando cada pé do personagem tocar o chão.
A maioria dos personagens Manny, como o usado neste projeto, usa animações que incluem notificações por padrão. As notificações de animação (também conhecidas como Notificações de animação ou apenas Notificações) fornecem uma maneira de criar eventos repetíveis sincronizados com sequências de animação. Esses eventos podem ser sons (como passos para animações de caminhada ou corrida), surgimento de partículas e mais.
Embora as notificações possam ser adicionadas a uma sequência de animação, a maioria das animações de locomoção incluídas nos modelos da Unreal Engine vem com notificações de animação padrão que indicam quando os pés do personagem tocam o chão (FootPlant).
Siga estas etapas para ver as notificações de animação padrão:
No Navegador de Conteúdo, abra o Blueprint de animação usado pelo personagem jogador. Para BP_AdventureCharacter no projeto de amostra, vá para Conteúdo > Personagens > Manequins > Animações > Desarmado e abra ABP_Unarmed.
No canto superior direito, clique no botão Animação (ícone verde de um humano correndo). Isso abre uma das animações do Blueprint em uma nova aba no Unreal Editor.
Para alterar a animação em execução, clique nos três pontos ao lado do botão Animação e selecione uma animação de andar ou correr. Por exemplo, MF_Unarmed_Jog_Fwd.
Dica: você também pode abrir a animação de corrida diretamente no Navegador de Conteúdo.
Na linha do tempo, você verá as notificações de planta do pé:
Você pode adicionar novas notificações e alterar as existentes para criar seu próprio sistema em que deseja executar uma cadeia de eventos. Neste tutorial, você usará as notificações padrão fornecidas com as animações do personagem. Eles são chamados de AN_FootPlant_Right e AN_FootPlant_Left.
Para adicionar as notificações da animação ao Blueprint e reproduzir os sons de passos, siga estas etapas:
Volte para ABP_Unarmed.
Clique com o botão direito no Event Graph e adicione um nó AnimNotify_AN_FootPlant_Left.
Arraste a partir do pin do nó Notify, pesquise e selecione FnBPLPlayFootStepSound.
Adicione um nó AnimNotify_AN_FootPlant_Right e conecte-o ao pin de entrada de execução do nó FnBPLPlayFootStepSound.
No nó FnBPLPlayFootStepSound, arraste o pin Player Reference e adicione um nó Get Player Pawn.
Compile e salve o Blueprint de animação.
Isso reproduzirá o som dos passos sempre que a notificação da planta do pé for acionada no Blueprint de animação.
Se o personagem usar Blueprints de animação adicionais, adicione o código a esses Blueprints de animação também.
Como atualizar o Blueprint de personagem jogável para reproduzir sons de plantas dos pés.
Em seguida, você modificará o Blueprint do jogador e adicionará uma lógica para reproduzir o som quando o jogador cair no chão, como ao aterrissar após uma queda ou um salto. Como você criou a função FnBPLPlayFootStepSound na biblioteca de funções de Blueprint, pode reutilizar essa função no Blueprint do personagem jogador.
Para modificar o Blueprint do jogador, siga estas etapas:
Abra o Navegador de Conteúdo e navegue até a pasta Jogo de aventura > Designer > Blueprints > Personagens.
Abra o Blueprint BP_AdventureCharacter e vá para a aba Gráfico de Eventos.
Clique com o botão direito em uma área vazia do gráfico e adicione um nó Event On Landed.
Arraste o pin de execução do nó EventOnLanded, pesquise e selecione FnBPLPlayFootStepSound.
No nó FnBPLPla FootStepSound, arraste o pin Player Reference e adicione um nó Self.
Compile e salve o blueprint.
Atribua um material físico ao piso.
Em seguida, você vai atribuir um material físico a múltiplas superfícies. Siga as etapas abaixo:
Seleciona uma superfície no nível, como um objeto Piso.
No painel Detalhes, na seção Colisão, altere a substituição de material físico para um dos materiais físicos que você criou anteriormente.
Repita estas etapas para adicionar os dois tipos de materiais físicos a alguns pisos do seu nível.
Alternativamente, você pode adicionar um material físico a uma instância de material fazendo o seguinte:
Abra a instância de material e vá para o painel Detalhes.
Role para baixo até a seção Geral, clique no menu suspenso Material físico e selecione o material físico desejado.
Salve sua instância de material.
Como testar seus passos
Jogue o jogo, caminhe sobre superfícies com materiais físicos e pule para ouvir os sons corretos dos passos.
Se a superfície tiver um material físico atribuído, você ouvirá o som de passos correspondente. Se nenhum material físico for encontrado, você ouvirá o som padrão de passos.
A seguir
No próximo módulo, você aprenderá a criar um efeito visual de fogo e aplicá-lo às armadilhas de fogo usando o sistema de efeitos visuais do Niagara.