‫Olá e bem-vindo a esta palestra.
‫Vamos brincar com deslocamentos AIM que permitirão que nossa malha mova seus braços para cima e para baixo.
‫À medida que apontamos para cima e para baixo, vamos mergulhar e ver do que se trata.
‫Então, no momento, se mirarmos para cima e para baixo, você pode ver que os braços de nossos personagens
‫não estão realmente fazendo nada e a arma não está realmente parecendo que deveria estar apontando para cima e atirando e acertando
‫o local que estamos realmente acertando. .
‫Então, como vamos mudar isso?
‫Bem, é uma mudança para um projeto de animação.
‫Então vamos em frente e abrir o blueprint de animação como ponto de partida e encaixá-lo em nossa janela principal.
‫E então quero apresentar a você um novo tipo de ativo de animação que não vimos antes.
‫Vimos espaços de mistura, vimos animações.
‫A próxima coisa que quero mostrar a vocês é algo chamado de compensação de animação e, particularmente, de compensação de
‫mira.
‫Então, se procurarmos a palavra-chave A0 em animações, estamos procurando por essas com um pequeno sublinhado azul
‫chamado deslocamentos AIM.
‫E há alguns deles.
‫O que me interessa é o combate AOE, que deve estar por aqui em algum lugar.
‫Eles eram cinzas, combates ociosos.
‫Você entra, seleciona isso, então você verá que temos algo muito parecido com o nosso espaço de mistura.
‫Exceto que desta vez se você mover o pequeno botão verde, o que está acontecendo é que ele está mudando
‫a direção que a malha de nossos personagens está apontando.
‫Então, se formos para a esquerda, ele aponta a arma para a esquerda, nós para a direita, ele
‫aponta a arma para a direita.
‫E da mesma forma com para cima e para baixo, se você vai para cima, então ele olha para cima,
‫você para baixo, ele olha para baixo e tenta derrubar.
‫Agora, a diferença com esta e outras animações que vimos é que isso é conhecido como animação
‫aditiva.
‫Se você for ao painel de detalhes, poderá ver que é aditivo porque diz configurações
‫aditivas e há essa pose baseada em animação que está baseando tudo isso.
‫Basicamente, o que significa quando é aditivo é que essa animação pode ser adicionada em cima de suas
‫outras animações.
‫Então está dizendo, eu posso fazer isso mirando enquanto você está correndo.
‫Posso adicionar as informações sobre onde meus braços se moveram em relação à sua pose de corrida e adicioná-los no topo.
‫Então, como isso se parece?
‫Se formos ao plano de animação, o que queremos fazer é adicionar essa informação depois de adicionarmos todas essas informações
‫sobre locomoção e provavelmente não antes da morte, porque a morte deve ser a última coisa.
‫Então, queremos após a locomoção.
‫Portanto, temos todas as nossas animações em execução que queremos adicionar.
‫Além disso, um pouco de informação sobre onde nossos braços devem ser movidos para que possamos mirar
‫corretamente.
‫Então, para fazer isso, podemos clicar com o botão direito do mouse e adicionar o deslocamento da mira.
‫Também podemos fazer isso no navegador de ativos e procurar por A0.
‫E então, como eu disse, estamos procurando por essa versão de combate, que é um lugar diferente neste navegador.
‫Curiosamente, se eu arrastar isso, o que você obtém é algo com um pino de entrada que diz Qual
‫é o aviso básico pago?
‫A base de planos do Locomotion não tinha um pino de entrada porque está
‫fornecendo a você toda a animação, enquanto esse deslocamento de mira porque é uma animação aditiva, requer algo para adicionar em cima.
‫Então você precisa dar uma pose base que virá de nossa locomoção, e então vamos
‫inserir isso em nossa falsa pose da mistura, se estamos mortos ou não, porque estamos apenas mostrando isso
‫se não estivermos mortos.
‫E então eu quero mostrar a vocês que se eu mudar o tom para um ou talvez para 180, na verdade, e ir
‫em frente e compilar, então você pode ver que ele está olhando para cima.
‫Agora, outro truque que quero fazer aqui é no gráfico de eventos.
‫No momento, temos uma situação bastante irritante em que não podemos fazer algo na visualização do
‫anim porque está sendo substituído por zeros pelo nosso gráfico de eventos.
‫Uma maneira fácil de corrigir isso é simplesmente verificar aqui se o dono do peão que temos aqui
‫é válido.
‫Ou seja, é nulo?
‫Então, se put for válido aqui e aquele com o ponto de interrogação nos fornecer automaticamente esses nós de
‫execução e se passarmos por um nó de execução de animação de atualização e apenas definir as coisas se isso for válido, então o
‫que acontecerá é que quando você não estiver realmente jogando e não há um peão lá para
‫nos dar a informação, ele vai nos permitir colocá-la.
‫A Anim Preview adicionada.
‫Então agora eu posso mudar a velocidade e você pode ver que ele começa a correr com seu deslocamento de mira configurado alto.
‫Então, vamos definir isso para que nosso tom seja realmente uma variável aqui.
‫Então eu vou clicar com o botão direito do mouse em pitch e promover para variável e trazer essa variável aqui para
‫baixo, que está visível e mudar seu nome para pitch.
‫Ou, de fato, vamos ser mais específicos, esse é o tipo de mira.
‫Então, agora, se formos em frente e compilarmos, definimos nossa mira padrão por acidente.
‫Queremos definir isso para zero por padrão.
‫Eu vou em frente e compilar isso.
‫E agora se formos em frente e mudarmos a velocidade e depois mudarmos o passo da mira.
‫Você pode ver que podemos apontar para cima e podemos apontar para baixo, que é exatamente o que queremos.
‫Agora, o problema aqui é que ainda não está sendo definido em um jogo.
‫Se subirmos e descermos, nada disso vem de informações de nossa rotação de controle e nossa mira.
‫Então, precisamos voltar ao nosso gráfico de eventos e obter algumas dessas informações aqui.
‫Agora, vou apenas apimentar um pouco as coisas aqui porque isso está ficando muito longo.
‫E o que eu quero fazer é, fora desse pino válido, colocar um nó de sequência
‫que me permitirá espalhar as coisas um pouco na direção vertical também.
‫Então, o nó de sequência, em primeiro lugar, vai definir a velocidade e o ângulo aqui.
‫Então acho que podemos mudar essas coisas para o elenco para filmar um personagem.
‫Acho que podemos reduzir ainda mais verticalmente, conectando com esse pino de sequência e o pino de
‫objeto para tentar obter -- em um nó.
‫Então podemos adicionar outro pino na sequência.
‫E desta vez quero obter duas informações do nosso dono do peão.
‫A primeira será uma rotação de controle.
‫Então vamos fazer uma rotação de controle de obtenção.
‫Mas isso não será suficiente porque como uma rotação de controle, se dividirmos o pino, você pode ver que
‫temos um tom aqui e podemos tentar definir esse tom.
‫Vamos dar uma chance a isso.
‫Então, se eu fizer um pitch definido e conectar o nó de execução ao nó de execução de nossa sequência, adicionando um
‫pouco de redirecionamento a isso, o que acontecerá se compilarmos, salvarmos, clicar em play e depois apontar para
‫cima funciona bem.
‫Apontar para baixo não vira.
‫Então as coisas começam a ficar ainda mais estranhas.
‫Agora, o que está acontecendo é que essa rotação de controle é totalmente global e, portanto, não leva em
‫consideração a direção que nosso jogador já está enfrentando.
‫Então, para levar isso em consideração, precisamos ir ao peão novamente e obter a rotação do ator.
‫E então o que queremos encontrar é a rotação entre a rotação do ator e a rotação de controle.
‫E a maneira como fazemos isso é que vou desconectar o tom AM.
‫Quebre esse link e clique com o botão direito e recombinar os pinos da estrutura é quero fazer um delta entre
‫esses dois para que eu possa tirar a rotação do controle e procurar o Delta.
‫E Delta é basicamente uma maneira elegante de dizer subtração entre rotadores.
‫Então, o que queremos fazer é pegar nossa rotação de controle e subtrair a rotação base, que será
‫nossa rotação de ator.
‫Então isso é B então vai ser A menos B se você passar o mouse, é isso que a rotação delta faz.
‫E basicamente queremos dizer: Sim, quero a rotação de controle, mas retire todas essas
‫informações sobre nossa rotação ativa.
‫Então, eu posso saber se estamos mirando para cima e para baixo em relação à direção que o personagem está enfrentando.
‫E então, se eu dividir o valor de retorno oculto disso e usar o pitch de lá, veremos
‫que tudo funciona conforme o esperado.
‫Quando olho para cima meu nome, quando olho para baixo, estou mirando para baixo e não importa para que lado
‫estou enfrentando no mundo, esse sempre será o caso.
‫Então é quase isso para a nossa rotação de mira.
‫O único problema é que, no momento, Ally é incapaz de mirar assim.
‫Então, se eu for e colocar um personagem de atirador nas escadas aqui e depois tentarmos esmurrá-lo,
‫tentar fazê-lo vir até nós.
‫Aqui ele vem.
‫Você pode ver que ele está apenas atirando na parede.
‫Ele não está tentando mirar, o que é um pouco triste.
‫Então, o que está acontecendo, se formos para nosso aliado e nossa árvore de comportamento, você pode ver que estamos definindo
‫um foco padrão para um local.
‫E, por padrão, se você definir um foco para um local, o Unreal não atualizará sua rotação de
‫controle da mesma forma que não fará o tom.
‫Então isso é um pouco triste.
‫Ok, então o que precisamos fazer é ir ao nosso quadro-negro e alterar a localização do player para ser apenas
‫uma referência ao player, em vez disso precisamos alterar esse vetor para ser um objeto.
‫Então agora o que temos é uma chave de tabuleiro em branco para o jogador, que é um objeto,
‫e podemos mudar a classe base para o ator se quisermos, embora não seja particularmente importante.
‫E então o que isso significa está acabado na árvore de comportamento, podemos mudar as coisas para que,
‫em vez de mover para aplicar o local, estejamos nos movendo para o ator jogador.
‫Podemos definir o foco para ser o ator jogador e atualizar a localização do jogador se a cena agora
‫precisar apontar para um ator jogador também.
‫Agora, isso ainda não funcionará porque nossa localização do player de atualização se a cena estiver tentando
‫definir um local para essa chave.
‫Então, um pequeno mini desafio para você, veja se consegue atualizá-lo.
‫Então, em vez de definir o local nesse serviço de árvore de comportamento, estamos definindo o vídeo de pose do ator real
‫e tentamos.
‫OK.
‫Bem vindo de volta.
‫Então, vamos entrar no código do Visual Studio e procurar o serviço ASC em particular.
‫É a localização do player de sublinhado de serviço, se vista.
‫E vamos mudar isso para um conjunto de valor definido como vetor.
‫Vai ser definido o valor como objeto, simples assim.
‫Temos as opções de tipos no quadro-negro e é isso que vamos dizer aqui.
‫Agora, obviamente, vai reclamar que o que estamos tentando dizer é um vetor em vez de um objeto.
‫Então, vamos apenas remover a localização do ator get e passar o player, e em vez disso, limpar o valor
‫é o mesmo de antes.
‫Então, podemos simplesmente voltar ao editor, clicar, compilar e ver se essa nova configuração está funcionando com Aiming
‫for the High.
‫Kate, vamos mergulhar.
‫Aperte o play.
‫Vá e encontre aquele ar nas escadas.
‫Faça-os tentar vir e olhar para nós.
‫Vamos.
‫Eu tenho mais uma coisa que esqueci da árvore de comportamento para atualizar é que o jogador pode ver no momento foi redefinir
‫a tecla do quadro-negro para o ator próprio queremos que seja jogador basicamente é o jogador definido vamos lá e fazer
‫essa mudança porque no momento o eu não estava vindo nos perseguir agora ele está
‫nos perseguindo e de fato, se você pulou, você pode ver que a rotação da mira desse cara
‫está mudando.
‫Vamos subir as escadas e ver se ele pode atirar das escadas em nós.
‫Excelente.
‫Ele mudou sua rotação e, de fato, está atirando diretamente em nós.
‫Ambos são.
‫Nós o vimos perdendo a saúde e logo morrerá.
‫Ok, é isso para esta palestra.
‫Adicionamos um deslocamento de mira e atualizamos nosso ar para que ele possa usá-lo para mirar também.
‫Na próxima palestra, vamos fazer algo sobre essa corrida engraçada no ar.
‫Eu vou ver isso.