‫Olá e bem-vindo.
‫Nesta palestra, vamos conectar nosso sistema de saúde ao plano de animação para que eu
‫possa atirar nesse personagem até que ele morra.
‫Vamos mergulhar e ver como isso funciona.
‫Então você quer que esse booleano nos planos de animação seja definido automaticamente a partir do jogo.
‫E se formos para o gráfico de eventos e dermos uma olhada como isso está funcionando atualmente, outras propriedades
‫como esta, como obter velocidade, ficar ativo, transformar, vamos para o peão e estamos fazendo
‫uma função get nele toda vez que queremos atualizar a animação.
‫Então, nós queremos seguir esse modelo onde iremos e saber se nosso jogador está
‫morto ou não.
‫Tanto que precisamos expor alguma funcionalidade, alguma função que pode ser chamada do nosso C++.
‫Então vamos para o C++ e dê uma olhada no que está lá.
‫Podemos criar uma função pública, mas isso não a torna necessariamente acessível.
‫Para fazer a acessibilidade, precisamos ter uma nova função que a torne visível para blueprints e sistema de ferramentas de
‫cabeçalho on rails.
‫Mas temos que dar um passo além do que apenas tê-lo como uma nova função.
‫Então, começamos com a macro de função, mas queremos torná-la chamada de blueprint.
‫Então essa é a opção que podemos usar blueprint callable.
‫No entanto, há outra opção que substitui o blueprint callable, em vez de implicar que é
‫blueprint callable e que é blueprint puro.
‫Agora veremos a diferença entre blueprint pure e Blueprint callable em apenas um segundo.
‫Mas saiba que se você usar o blueprint pure, ele está fazendo o mesmo que o Blueprint Callable e mais alguns.
‫Portanto, está fazendo um pouco mais do que o blueprint callable.
‫E então o que queremos é uma função que retorne booleano que diga se esse personagem está morto
‫ou não.
‫Isso vai ser útil para nós sabermos.
‫E então, finalmente, queremos que isso seja uma função de membro do concerto.
‫Agora, por que quer ser concerto?
‫Porque quando chamamos essa função, não esperamos que ela altere nenhum estado de ask you to character, então podemos dizer
‫com segurança que essa deve ser uma função de concerto.
‫E, na verdade, concerto e blueprint puro geralmente andam juntos porque blueprint pure significa que, se formos para
‫qualquer blueprint, podemos dar uma olhada em algumas notas puras.
‫Este aqui fica com a transformação ativa.
‫Essa é uma nota pura.
‫Obter velocidade é uma nota pura A velocidade definida não é uma nota pura.
‫Você pode ver o que pode estar ligando estes juntos?
‫O que sobre estes faz este não puro e este puro?
‫Bem, de um modo geral, é o fato de que esta é uma pena de execução, um nó puro, é aquele que não tem
‫um pino de execução.
‫E geralmente é seguro dizer que algo não tem um pino de execução quando não tem nenhum impacto na coisa
‫que está chamando apenas em seu resultado.
‫Essencialmente, isso significa que não importa quantas vezes chamemos essa função, ela sempre produzirá
‫o mesmo resultado.
‫Sempre terá o mesmo efeito no programa.
‫É uma função pura.
‫Não muda nada quando é chamado.
‫Então é o mesmo que const, embora seja um pouco mais forte porque o que está dizendo
‫não é apenas que não muda nada aqui no personagem de filmagem, mas não muda nada global,
‫qualquer estado, em qualquer lugar.
‫Ponto final.
‫A única entrada, o único efeito que tem está nas saídas que produz.
‫Então é por isso que estamos escolhendo tornar este projeto puro.
‫Ele elimina a necessidade de um pino de execução, o que o torna muito mais agradável em projetos.
‫E também expressa o fato de que não estamos fazendo nenhuma alteração no estado do nosso jogo quando
‫chamamos essa função.
‫Então vamos em frente e tentar criar uma implementação para isso.
‫Na verdade, eu vou deixar a implementação para vocês como um desafio, e nós
‫vamos ver isso em um gráfico, desculpe, um gráfico de eventos do blueprint de animação.
‫Então, vamos fazer isso com um novo conjunto aqui.
‫Queremos definir a variável booleana is dead no final e queremos obter o dono do peão e queremos conjurá-la porque
‫precisa ser um shooter em um personagem para ter essa propriedade morta.
‫Então queremos lançar também.
‫E neste caso, eu quero lançá-lo para o personagem atirador C++ porque
‫eu não preciso ir até o fim para dizer que é definitivamente uma versão de projeto disso porque essa função você realmente
‫existe no nível C++.
‫Então vamos em frente e lançar.
‫Se formos bem-sucedidos no elenco, estaremos definindo a propriedade is dead.
‫Agora deixe-me colocar alguns nós de redirecionamento aqui para tornar nosso plano um pouco mais
‫bonito.
‫E então o que queremos fazer é usar essa referência de personagem de filmagem, agora
‫que lançamos para um personagem de filmagem, sabemos que deve ter essa propriedade morta, então devemos ser capazes de fazer isso.
‫Depois de compilar e fazer funcionar, você pode obter essa propriedade morta e configurá-la aqui.
‫Então é hora do seu desafio de calcular se estamos mortos ou não.
‫Então retorne o booleano correto da nossa função is dead.
‫Esse é o primeiro passo.
‫Você pode querer usar algumas desigualdades com uma variável de saúde para isso e então conectar nossa variável.
‫O morto é uma variável morta.
‫No projeto de animação, não conseguimos fazer isso.
‫Nós só precisávamos basicamente de uma compilação longe de fazer isso.
‫Pause o vídeo e resolva isso.
‫OK.
‫Bem vindo de volta.
‫Então vamos ao código, antes de tudo.
‫Então, de forma bastante direta, vou retornar uma expressão que retorna um booleano.
‫Então queremos dizer, a saúde é menor ou igual a zero, caso em que estamos de fato mortos?
‫Isso é tão simples quanto uma função de expressão pode ser.
‫Então vamos em frente e construir isso.
‫E uma vez que isso tenha sido compilado, podemos ir até o Unreal e conectá-lo.
‫Então, arrastando o personagem como atirador, somos nós, teremos uma referência de personagem aqui.
‫Então, queremos fazer é morto nos dá esta função morta, você pode ver que não tem pino de execução
‫porque é puro.
‫Então tiramos esse booleano disso e o conectamos à nossa variável is morta.
‫E agora, se continuarmos jogando, devemos ser capazes de matar esse personagem no mundo.
‫Vamos atirar nele até que sua saúde chegue a zero.
‫E aí vai.
‫A animação o matou com sucesso.