‫Gostaríamos que a câmera tremesse assim que nosso projétil atingisse, algo assim.
‫E também gostaríamos que sacudisse quando um de nossos lagos morresse.
‫Ei, bem-vindo de volta.
‫Neste vídeo, vamos adicionar outro tipo especial de efeito ao nosso jogo envolvendo sacudir a
‫câmera.
‫Gostaríamos de sacudir a câmera quando o projétil atinge algo, assim como quando um de nossos
‫lagos morre.
‫Isso adicionará apenas mais um toque final ao jogo que fará com que pareça um pouco mais profissional.
‫Então vamos mergulhar agora.
‫Aqui estamos dentro do editor e gostaria de adicionar uma nova classe para nossa trepidação de câmera.
‫O Unreal Engine possui uma classe integrada para agitar a câmera.
‫Agora vou fazer uma nova pasta aqui na pasta blueprints e chamar isso de camera shake.
‫E na pasta de vibração da câmera.
‫Vou clicar com o botão direito e criar um novo blueprint.
‫A razão pela qual estamos fazendo um blueprint é porque essa é uma daquelas coisas que
‫é muito mais fácil de fazer do lado do blueprint, pois há muitas variáveis para ajustar com as trepidações da câmera, e a classe que
‫estamos procurando é a matinée camera agitar para que possamos procurar a vibração da câmera e escolher.
‫Trepidação da câmera matinée.
‫Clique em Selecionar e chamaremos este primeiro movimento da câmera.
‫BP Hit Camera Shake.
‫Agora vamos clicar duas vezes neste novo blueprint e abri-lo e veremos que ele tem um painel
‫de detalhes com muitas variáveis diferentes para escolher.
‫E vamos falar sobre alguns desses parâmetros que existem na classe de trepidação da câmera.
‫Agora, existem alguns aqui, e vamos tocar apenas em alguns que afetam a sensação geral
‫da vibração da câmera.
‫Agora você verá que há uma seção chamada oscilação.
‫E a razão pela qual esta seção é chamada de oscilação é porque uma trepidação da câmera envolve oscilar
‫a câmera.
‫Agora, aqui está a página da Wikipedia para uma onda senoidal.
‫Uma onda senoidal é uma função matemática, e não precisamos entender a matemática por trás de uma onda senoidal.
‫Mas ajuda ver como é uma onda senoidal.
‫Se eu rolar para baixo aqui para a direita, vejo esta onda vermelha aqui e é rotulada como senoidal, uma onda senoidal
‫oscila.
‫Isso significa que ele vai para cima e para baixo ou para frente e para trás.
‫Então, se nossa câmera está sendo empurrada para frente e para trás de maneira suave, dizemos que ela está oscilando.
‫Agora vemos que temos uma duração de oscilação e um tempo de mesclagem e um tempo de mesclagem.
‫A duração afeta quanto tempo o shake vai durar.
‫Agora, esses são valores com os quais você pode experimentar, mas eu já fiz algumas experiências e
‫conheço alguns bons valores aproximados para a vibração da câmera.
‫Quando o projétil atingir algo, teremos uma duração relativamente curta.
‫Agora, isso é em segundos, e vou escolher 0. 2 5 segundos para a duração desta vibração da câmera e
‫para o tempo de mistura e de mistura.
‫Vou usar valores de 0. 05, então 0. 05 para mistura no tempo e 0. 05 para o tempo de mistura.
‫Este é o tempo que leva para misturar dentro e fora da trepidação da câmera, que durará 0. 2 5 segundos.
‫Agora temos diferentes tipos de oscilações.
‫Temos oscilações rotacionais, e elas irão girar a câmera de acordo com essa função de oscilação.
‫Nós temos uma oscilação de localização que movimentará a câmera no espaço e uma oscilação do campo de visão, que
‫afetará o campo de visão, que é basicamente aumentar e diminuir o zoom com a câmera.
‫Agora, as oscilações de rotação e campo de visão são as mais propensas a causar enjoo.
‫Então você pode experimentar com aqueles, se quiser.
‫Mas para esta trepidação da câmera, vamos apenas alterar a oscilação do local.
‫Agora temos três eixos X, Y e Z, e vimos que a onda senoidal vai sacudir algo para frente e para trás.
‫Essas oscilações irão empurrar a câmera para frente e para trás nas direções X, Y e z.
‫Vou clicar nestes menus suspensos para expandi-los e veremos que cada eixo tem uma amplitude, uma frequência,
‫bem como um deslocamento inicial e uma forma de onda.
‫Agora, o deslocamento inicial para a trepidação da câmera é definido como aleatório, e podemos deixá-lo aleatoriamente para
‫que tenhamos menos trepidação previsível da câmera.
‫E a onda senoidal é o tipo de forma de onda usada ao sacudir a câmera.
‫E vimos que tem um movimento suave para cima e para baixo.
‫Agora a amplitude é a quantidade máxima de movimento nesse eixo que a câmera irá mover.
‫Vou definir esses três para terem amplitudes de dez, um X, Y e z e a frequência será a
‫rapidez com que a câmera oscila.
‫Vou definir estes também para serem dez.
‫Agora vamos ver como isso fica assim que implementarmos a vibração da câmera.
‫Mas antes de fazermos isso, vou criar outro movimento de câmera e isso será para quando o
‫peão morrer.
‫Então, vamos clicar com o botão direito, criar uma nova classe de blueprint e procurar por trepidação da câmera e selecionar trepidação da
‫câmera matinée, clique em selecionar.
‫E para isso, vamos chamar isso de BP Depth Camera Shake.
‫Agora, a vibração da câmera da morte será um pouco mais violenta do que a vibração da câmera atingida.
‫A vibração da câmera abalará a câmera quando nosso projétil atingir algo.
‫Mas a vibração da câmera da morte vai sacudir a câmera quando algo morrer.
‫Então, para a duração da oscilação, vou fazer isso um pouco mais.
‫Eu vou 4. 3, 5 segundos e quatro, mistura no tempo e no tempo.
‫Vou definir ambos para 0. 1.
‫Agora, apenas uma nota lateral se mistura dentro e fora do tempo.
‫As porcentagens do tempo integral estão normalizadas entre zero e um?
‫Portanto, o ponto um é 10% da duração total da oscilação.
‫Agora vou definir as amplitudes para 54 X e Y e vou deixar a amplitude Z em zero para que apenas
‫puxemos a câmera em X e Y após a morte.
‫Dessa forma, teremos uma trepidação de câmera um pouco diferente.
‫E para a frequência, vou definir ambos para 20.
‫Portanto, agora temos uma vibração de câmera e é hora de implementar a reprodução dessas vibrações de
‫câmera do lado C++.
‫Agora, para reproduzir uma trepidação da câmera, precisamos de algumas variáveis de trepidação da câmera.
‫Se você estiver usando uma versão mais antiga do Unreal Engine, o Unreal Engine 4. 25 e abaixo especificamente, então a classe
‫para suas variáveis será você.
‫Vibração da câmera.
‫Mas nas versões mais recentes 4. 2, seis e acima.
‫E isso inclui o Unreal Engine cinco.
‫Nós vamos usar você matinê.
‫Vibração da câmera.
‫Então é isso que vamos usar neste vídeo.
‫Agora, as funções para reproduzir uma vibração da câmera também são diferentes.
‫Se você estiver no 4. 2, cinco e abaixo, então a função que você vai usar é a reprodução do cliente.
‫Vibração da câmera.
‫E esta é uma função na classe do controlador do jogador agora em 4. 26 e acima, incluindo 5. 0, que é o que
‫estamos usando.
‫Vamos usar a vibração da câmera inicial do cliente como jogo do cliente.
‫A vibração da câmera agora está obsoleta.
‫Então, como estamos usando o Unreal Engine cinco, usaremos clientes, inicie a vibração da câmera.
‫E se você estiver usando cinco, você seguirá e usará os clientes para iniciar a trepidação da câmera.
‫Mas para a versão mais antiga do motor, especificamente 4. 2, cinco e abaixo, use a classe e a
‫função do lado esquerdo e todos os outros usem a classe e a função à direita.
‫Agora, apenas para mostrar a você, aqui está a base de vibração da câmera na documentação e aqui está a inclusão dela.
‫Então você vai usar esta base de vibração de câmera de barra de câmera para a inclusão.
‫Então, primeiro, eu gostaria de lidar com a trepidação da câmera na classe de projéteis.
‫Então aqui no projétil, vou adicionar uma vibração de câmera.
‫Agora, isso será declarado para a frente.
‫Eu vou fazer um U.
‫Base de vibração da câmera.
‫É um ponteiro.
‫E eu vou chamar este hit de câmera shake agora porque eu gostaria de definir isso a partir de plantas.
‫Já que temos um modelo de vibração da câmera, vou expor isso.
‫Vai ser uma nova propriedade.
‫Vou editá-lo em qualquer lugar e dar-lhe uma categoria.
‫E para isso, vou mantê-lo na seção de combate.
‫Agora estou pronto para jogar a trepidação da câmera.
‫Então, em CP de projéteis, vou colocar isso no acerto aqui no cheque para outro ator.
‫E a primeira coisa que vou fazer é ter certeza de que configurei a vibração da câmera a partir de
‫plantas, o que significa que preciso ter certeza de que a vibração da câmera não é nula.
‫Então, se eu acertar a vibração da câmera, posso iniciar a vibração da câmera.
‫E aqui está um cliente de controlador de jogador iniciar a trepidação da câmera para as versões 4. 26 e acima.
‫Agora observe algumas coisas.
‫Elas envolvem duas subclasses de variáveis, o que significa que precisamos de uma nova classe.
‫Agora criamos blueprints para essas variáveis, o que significa que podemos facilmente criar uma subclasse de
‫uma variável regular aqui.
‫Então eu posso pegar essa classe sua base de vibração da câmera e colocá-la dentro de uma subclasse PT de então vamos dizer subclasse PT de e eu
‫vou manter a declaração de encaminhamento aqui e eu não preciso do asterisco já que a subclasse PT de
‫apenas envolve isso no modelo e porque esse hit camera shake é na verdade uma subclasse PT de eu vou chamá-lo
‫de hit camera shake class e agora no projétil esse CPP em vez de hit camera shake vamos chamar
‫isso de hit camera shake class e agora podemos chamar um cliente iniciar a trepidação da câmera.
‫Agora esta função pertence ao controlador do jogador e estamos aqui no CP do projétil e não temos uma variável
‫para o controlador do jogador, mas temos essa função get primeiro controlador do jogador que existe na classe mundial
‫U para que possamos chamar get world e, em seguida, ligue para obter o controlador do primeiro jogador.
‫Então nós vamos fazer isso.
‫Então, primeiro vamos chamar Git World e de lá vamos chamar get first player controller e de get
‫first player controller, podemos chamar um client start camera shake e veremos que isso leva uma
‫subclasse PT de we 'vamos passar na classe de vibração da câmera e o restante desses parâmetros
‫de entrada têm valores padrão para que possamos omitir as entradas restantes.
‫Então vamos em frente e compilar isso.
‫Então, aqui no editor, estamos prontos para testar isso.
‫Agora criamos o blueprint e a subclasse PT de, mas precisamos definir essa subclasse PT de.
‫Então vamos aos atores e projéteis BP.
‫Eu vou abrir o editor de blueprint completo e ir para a seção de combate e aqui está
‫minha classe t subclasse de hit camera shake de eu posso abrir isso e selecionar hit camera shake e agora isso será definido.
‫Então vou compilar pressione play e vamos ver se a câmera balança.
‫E lá vai.
‫Incrível.
‫Então, em seguida, quero reproduzir uma vibração da câmera quando o pod morrer.
‫Então eu vou entrar no lago de baixo e adicionar uma variável de vibração da câmera aqui.
‫Então aqui embaixo, vamos fazer outra t subclasse de variável.
‫Eu vou para a frente declará-lo.
‫Vai ser sua base de trepidação da câmera e eu vou chamar isso de classe de trepidação da câmera de profundidade.
‫E assim como o nosso outro, vamos fazer desta uma propriedade U.
‫Edit Anywhere Category combat e agora temos uma camera shake class aqui na base pon.
‫Agora eu vou desafiá-lo a tocar o movimento da câmera da morte para o peão quando ele morrer.
‫Então você vai fazer isso quando o -- morrer e isso vai lidar com a destruição, é claro.
‫Portanto, escolha o local correto nesta função para reproduzir esta trepidação da câmera e então compile seu código.
‫Defina a subclasse de valor nas classes de projeto de tanque e torre e teste-a.
‫Pause o vídeo e implemente a câmera da morte.
‫Agite agora.
‫OK.
‫Então, temos nossa classe de vibração de câmera def.
‫Vamos para a base da lagoa CP e eu vou rolar para cima para lidar com a destruição.
‫E a primeira coisa que vou fazer é verificar se a classe de trepidação da câmera de profundidade está definida e,
‫se estiver, podemos realmente reproduzir a trepidação da câmera.
‫Agora não temos um ponteiro para o controlador do jogador aqui, então vou chamar Get
‫World daqui, obter o controlador do primeiro jogador e de lá vou chamar.
‫O cliente inicia a vibração da câmera.
‫E aqui podemos passar em profundidade câmera, agitar aula.
‫E aí temos que.
‫Então vamos compilar isso e vamos voltar para o editor e eu vou abrir a pasta --'s, BP
‫-- tank.
‫E aqui temos a classe de trepidação da câmera de profundidade.
‫Eu vou definir isso para a morte.
‫Câmera, agite, compile e salve e feche.
‫Vou fechar o projétil também.
‫E abra a lagoa da BP, a torre e defina a classe de vibração da câmera de profundidade para a vibração da câmera de profundidade aqui também.
‫Agora podemos testar a morte.
‫Então vamos ver como isso funciona.
‫Kay, vou subir a uma das torres e.
‫Boehm.
‫A vibração da câmera funciona.
‫Agora, a última coisa a verificar é se a câmera treme quando as torres morrem.
‫Então vamos em frente e matar uma das torres.
‫E lá vamos nós.
‫Temos a câmera para agitar.
‫Incrível.
‫Então, em resumo, agora estamos agitando a câmera.
‫Estamos sacudindo quando o projétil atinge alguma coisa e quando uma das lagoas morre.
‫Este é apenas mais um daqueles belos efeitos de polimento que tornam nosso jogo um pouco mais profissional.
‫Falando em polimento em nosso próximo vídeo, vamos polir o jogo e colocá-lo em
‫seu estado de trabalho final para que possamos encerrar esta seção e ter um jogo completo em funcionamento.
‫Vejo você em breve.