Blueprint do Unreal Engine 5: curso para criação de tanques e artilharia | Navid Ansari | Skillshare

Playback Speed


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Blueprint do Unreal Engine 5: curso para criação de tanques e artilharia

teacher avatar Navid Ansari

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      00 Promo

      2:07

    • 2.

      01 Create and import

      3:43

    • 3.

      02 Tank gamemode

      2:19

    • 4.

      03 Wheel setup

      6:34

    • 5.

      04 Engine setup

      4:17

    • 6.

      05 Look up and down

      3:54

    • 7.

      06 Look left and right

      1:15

    • 8.

      07 Going forward

      3:37

    • 9.

      08 Going backward

      2:59

    • 10.

      09 Wheel animation

      3:05

    • 11.

      10 End wheels

      5:49

    • 12.

      11 Tank tracks

      9:09

    • 13.

      12 Tank track position

      6:39

    • 14.

      13 Going left and right

      3:07

    • 15.

      14 Track animation for turn in place

      5:42

    • 16.

      15 Handbrake

      1:50

    • 17.

      16 rotate turrent joint

      2:23

    • 18.

      17 Calculate delta rotation

      3:26

    • 19.

      18 Gun pitch

      2:51

    • 20.

      19 Crosshair widget

      3:32

    • 21.

      20 Crosshair location

      6:37

    • 22.

      21 Tank projectile

      3:15

    • 23.

      22 Fire gun of tank

      2:49

    • 24.

      23 Gun visual effect

      3:18

    • 25.

      24 Add torque when firing

      4:00

    • 26.

      25 Fire recoil

      5:25

    • 27.

      26 Reload progress bar

      7:14

    • 28.

      27 Projectile explosion

      5:30

    • 29.

      28 Engine sound

      8:33

    • 30.

      29 Tank tracks sound

      4:43

    • 31.

      30 Tank UI widget

      5:19

    • 32.

      31 Import Arty files

      2:44

    • 33.

      32 Blueprint for Arty

      2:34

    • 34.

      33 Distance to tank

      4:43

    • 35.

      34 Target in range

      2:25

    • 36.

      35 Rotate arty

      1:57

    • 37.

      36 Predict where tank will be after one second

      4:16

    • 38.

      37 Arty Rotation

      4:10

    • 39.

      38 Arty projectile

      7:07

    • 40.

      39 Arty fire VFX

      4:08

    • 41.

      40 Arty gun motion

      5:13

    • 42.

      41 Apply damage in radius

      3:58

    • 43.

      42 Tank Health system

      7:08

    • 44.

      43 Health bar

      5:56

    • 45.

      44 Destroy tank

      3:30

    • 46.

      45 Arty get radial damage

      3:12

    • 47.

      46 Arty get destroyed

      3:57

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

31

Students

--

Projects

Sobre este curso

Neste curso, vamos aprender tudo sobre como criar um jogo de tanques. Começamos definindo o motor, as rodas e depois começamos com o movimento do tanque

vamos adicionar som e muitos efeitos visuais ao nosso jogo

então, teremos uma interface de usuário para ter barra de saúde, barra de recarga e rotação da interface de usuário Turret

em seguida, vamos adicionar artilharia como inimiga que pode prever o movimento do tanque e atirar contra ele

Meet Your Teacher

Teacher Profile Image

Navid Ansari

Teacher

Hello, I'm Navid.

See full profile

Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Promoção 00: Neste curso, vamos criar um jogo de tanques. Primeiro, paramos com o motor e as rodas. Assim, podemos mover nosso tanque. Em seguida, teremos as rodas Animations. Usaremos o plano de animação e plugin de caos para nosso tanque Então, temos animações legais. Teremos um ponto de virada boa animação. Teremos freios de mão. Então, sempre que estamos nos movendo, podemos parar muito mais rápido. Podemos fazer muitas manobras com nosso tanque. Em seguida, vamos tentar disparar a arma do nosso tanque. Então, onde quer que a maioria esteja mirando, podemos atirar lá. Teremos muitos efeitos visuais para disparar nossa arma. Alguns efeitos angor e alguns recuos. Então, sempre que nossa arma estiver disparando, a arma do nosso tanque vai para frente e para frente. E sempre que dispararmos nossa arma, haverá uma força de impulso aplicada ao corpo do nosso tanque Em seguida, optaremos pelo som. Portanto, sempre que nosso tanque estiver em movimento, devemos ter o som certo. Por exemplo, se você começar devagar quando o tanque estiver parado, deve haver um som do motor em marcha lenta e ele está se movendo Com base na velocidade, o som do motor deve mostrar Parece que está se movendo mais rápido, certo? O motor está funcionando, certo? Deveríamos ouvir esse som. seguir, usaremos uma interface de usuário, por exemplo, a interface cruzada, à direita dela, veremos se nossa arma está recarregada ou não e, no lado esquerdo, veremos a saúde do nosso tanque E no canto inferior esquerdo do nosso jogo, veremos que a rotação de nossa torre ou tanque pode ser destruída, então vamos implementar isso também Depois disso, precisamos de um inimigo para poder atirar em nós, certo? Então, para fazer isso, criaremos uma artilharia que possa atirar em Ele pode prever onde estaremos depois de quatro segundos, por exemplo, e atirará lá , atingirá nosso tanque e também poderemos destruir essa artilharia Nesta artilharia, temos muitos efeitos visuais. Por exemplo, a onda de choque de que toda vez que a artilharia dispara, deveria haver um efeito visual para a onda de choque abaixo dela e, depois disso, também haverá um recuo para esta Então, a arma desce e sobe sempre que a artilharia dispara. E não podemos destruir a artilharia. Então, sem mais delongas, vamos começar este curso. 2. 01 Criar e importar: Nesta seção, aprendemos como criar um jogo de tanques. Para fazer isso, estou usando o ARL Engine 5.5 0.3. Então, baixe isso, e minha recomendação é usar a mesma versão estou usando, porque os desenvolvedores do ARL Engine mudam coisas, mudam muito os nomes dos nós, usam a mesma versão que eu estou usando Abra o AIL Engine, vá para Jogos e, aqui, clique em Blank. Queremos começar do zero. Coloque isso onde quiser, e eu quero chamar esse projeto de tanque ou o que você quiser chamá-lo. Eu não preciso mudar nada. O modelo é mais do que suficiente, a qualidade predefinida é máxima, a plataforma de destino, o desktop, e não precisamos do conteúdo inicial Cabeça create para criar o projeto. Enquanto ele está sendo criado na descrição deste vídeo, há um arquivo Zip chamado Tang dot Zep, certo Você pode ver isso aqui. Faça o download, coloque-o na área de trabalho, clique com o botão direito nele e extraia tudo se você estiver no Windows 11. Mas se você não estiver no Windows 11, basta abri-lo no Windows 10 ou usar o WinRAR para extraí-lo ou copiá-lo, certo? Temos uma pasta chamada Tank, arraste e solte. Coloque-o na área de trabalho, para que seja extraído. Vamos colocá-lo aqui. Não precisamos mais disso. Agora, vá para o projeto que ele criou aqui, vá para a gaveta de conteúdo Clique nessa pasta de conteúdo, com o botão direito, clique nela, mostrando o explorador. Então você vai para uma pasta de conteúdo como esta. Verifique se você está na pasta de conteúdo. Depois disso, você pode clicar nessa pasta do tanque, controlar C para copiá-la e Control V para colá-la aqui, e pronto. Você tem todo o ácido necessário no motor Aga. Vá para os ativos do tanque. Você pode ver que temos algumas imagens. Temos alguns sons que você deseja usar. Nós temos um veículo. Por exemplo, é esse. Tem uma malha esquelética. Então, deixe-me abri-lo aqui. Você pode ver que este é o tanque que você deseja usar, e também existem outras coisas, como alguns gráficos da Nia Então, sabe o que mais? Precisamos editar, acessar os plug-ins e, aqui, procurar o caos e descer aqui até chegar ao plug-in do veículo do caos, habilitá-lo, está aqui e garantir que você reinicie o projeto completamente. É muito importante reiniciar o projeto. Outra coisa que eu quero que você faça, vá para Editar, vá para as preferências do Editor e, aqui, pesquise o local aberto e o local de abertura do editor de ativos, quero que esteja na janela principal. Então, o que quer que abrirmos será aberto aqui, não em outro monitor ou algo assim, certo? Em seguida, em nosso nível, controle principal é salvar o nível. E aqui, eu quero criar uma nova pasta e quero chamá-la de níveis. Queremos que seja organizado. E aqui, você pode chamá-lo do que quiser. Vou chamá-lo de novo mapa, salve a cabeça. E nenhum mapa adicional será salvo como Novo Mapa e será aberto. Agora, vá para editar, vá para a configuração do projeto e, aqui, vá para mapas e modos e altere inicial do Editor e a substituição do mapa modelo do Editor para Novo Ambos para o New Map. Então, sempre que abrirmos o projeto, ele abrirá esse nível automaticamente. Agora, todos os ativos estão dentro do motor ARIO, e o ARIEL Engine está pronto para criar mais de um jogo de tanques. Nós podemos fazer. 3. 02 Modo de jogo do tanque: Não é a primeira coisa a fazer, precisamos criar um plano para mais de um tanque Então, podemos colocá-lo lá, certo? Então, para fazer isso, vá para a gaveta de conteúdo e aqui na pasta do tanque, quero criar uma pasta e quero chamá-la blueprint porque quero que tudo seja organizado Então, no Blueprint, eu quero clicar com o botão direito do mouse, ir para a classe Blueprint, e aqui, ir para todas as classes aqui e pesquisar por veículo com rodas Isso faz parte do plug-in, o plug-in caos que habilitamos. Então você precisa cortar a cabeça, e eu quero chamá-lo de tanque BP, certo Clique com um ponto para abri-lo. E você pode ver que o vidro principal é um peão de veículo com rodas. E tem um componente de movimento do veículo dentro dele, e temos uma malha na qual podemos decidir qual malha deve estar lá, certo? Então clique nele e, em um recurso de malha esquelética, escolha entre o tanque N O. E esse é o nosso tanque, certo? Certifique-se de escolher NENHUM tanque, pois temos três deles. Você precisa apenas escolher N em um tanque, não no outro. Agora, com isso feito, vamos compilar, salvar E o que eu quero fazer é ir até a gaveta de conteúdo e criar um modo de jogo Então clique com o botão direito aqui, vá para a classe Blueprint e aqui, escolha a base do modo de jogo Eu quero chamá-lo de BP. Modo de jogo Tank. Vou clicar nele para abri-lo. E a única coisa que você precisa fazer aqui para a classe punk padrão é mudá-la para BP Agora temos um modo de jogo que podemos usar, certo? Então, para usar isso, podemos editar a configuração do projeto e acessar mapas e modos e, aqui, alterar o modo de jogo padrão para o modo de jogo de tanque BP Agora, se formos salvar e salvar tudo e fechar a configuração do projeto, não, com isso feito, vamos jogar. Você pode ver que o tanque está aqui. E se você ejetar, você pode ir e olhar para o tanque Isso não parece bom, certo? Mas vamos corrigir isso. Não se preocupe com isso, certo? Não. Nosso modo de jogo e nosso plano estão funcionando bem Agora, vamos ver como podemos fazer isso funcionar. 4. 03 Configuração da roda: Primeiro e primeiro, queremos definir as rodas. Mas o problema é que tem muita roda. Você pode ver isso aqui. O que eu quero fazer é abrir a malha esquelética primeiro aqui Basta abri-lo assim. Clique com o botão direito e você pode abrir o esqueleto daqui ou pode simplesmente ver a árvore esquelética aqui, certo Então, aqui, temos algumas rodas. Se procurarmos por isso, será mais fácil. Então, procure por roda e você verá que temos essa roda. Vamos ver essa roda que não podemos vê-la completamente, temos a roda nove. Você pode vê-lo aqui, podemos girá-lo, certo? No final, queremos fazer isso maneira certa e também temos as coisas certas. Este era para rodas esquerdas e este para rodas direitas. Mas temos juntas de trilhos. Você pode ver isso aqui, você pode ver, nós podemos movê-lo. Parece assim. Não queremos fazer isso. Mas, como filhos disso, também temos rodas, e essa é a roda. Novamente, queremos movê-los. Então, todas essas rodas, queremos defini-las dentro do nosso projeto, mas não no componente de movimento do veículo Um veículo usado para o caos. Então, aqui, clique no anúncio e pesquise componente de movimentação de veículos com rodas do caos E isso nos permite ter mais de quatro rodas. Podemos ter quantas rodas quisermos. Então, aqui, quanto temos? Temos um, dois, três, quatro, cinco, seis, sete, oito e nove. Para multiplicar por nove, é 18, certo? Então, vamos adicionar 18 aqui. Na configuração da roda, quando clicamos no movimento do veículo KaOS, certo? Então, vamos adicioná-lo lá. É isso mesmo. 18 rodas. E se você expandir um deles primeiro, precisamos de uma classe de roda, depois de um nome de osso. Para o nome do osso, podemos simplesmente ir aqui. Vamos fazer a roda esquerda primeiro, a roda esquerda, essa primeiro, copiar o nome do osso e colocá-lo aqui, certo? É isso mesmo. Agora, para a classe de rodas, precisamos criá-la. Então, para criar isso, eu quero usar o tanque no Blueprint Clique com o botão direito do mouse na classe Create Blueprint novamente aqui, caos. Desça. Roda de veículo Chaos. Basta escolher aquela roda de veículo CVW Four Chaos. Eu quero chamá-lo de roda de tanque. Ok, pronto. Se não clicarmos nele para abri-lo, temos algumas opções que podemos alterar. O cilindro da malha de colisão é mais do que suficiente, mas o raio da roda, você pode obtê-lo no liquidificador, Mas aqui, eu quero colocar 36. Você pode simplesmente jogar com isso. Depois disso, quero que essas rodas sejam afetadas pelo freio de mão porque precisamos do freio mão, queríamos poder mudar a rotação com o motor, certo, e precisamos que o ABS também esteja habilitado. É isso mesmo. Vamos compilar, salvar. E outra coisa que eu quero ter aqui, temos a escala da barra de rolagem que é até rolar, então não vai rolar muito fácil Então, eu quero aumentar isso para um. No máximo, para que não role. É tudo o que precisamos fazer para isso. Não, podemos usar essa parte interna ou a roda montada aqui. Basta clicar aqui e você pode usar esta seta aqui para configurá-la lá. Roda de tanque CVW, certo? Fizemos isso por este. Não, vamos fazer isso pelo outro. Se você for aqui, fizemos isso para a roda esquerda 01. Queremos fazer isso para a roda esquerda 02. Eu quero ir atrás um do outro. Um, dois, três, quatro, certo? Então, esse de novo, coloque aqui com o Controle V. É isso aí. Esse é bom. Agora, a árvore das rodas. Vamos dar uma olhada nisso. A árvore da roda está aqui. Copie o nome do osso, clique com o botão direito do mouse, copie o nome do osso e coloque aqui e clique aqui para colocar as rodas lá. Nós fizemos os três. Queremos fazer os quatro. Podemos simplesmente aumentá-lo com isso porque a nomenclatura é boa Então, podemos simplesmente colar isso. Nós fizemos isso 43. Agora, podemos mudar isso para quatro e clicar aqui. Então, será mais rápido, certo? Esse é o quarto. Esse é o quinto. Então, vamos fazer isso rápido e clicar aqui. Esse está pronto. Temos nove deles. Então vamos até chegarmos aos nove. Neste 16, clique aqui para colocar as rodas lá, coloque aqui. Este é sete. Novamente, coloque as rodas lá. Certifique-se de fazer isso bem. Não cometa nenhum erro aqui , pois isso lhe causará muitos problemas. Este é para oito e coloque as rodas lá, e este é para nove e coloque as rodas lá. Não, fizemos a roda esquerda. Vamos fazer a roda certa. Para fazer isso, precisamos fazer as rodas certas agora, clicar com o botão direito nesta, copiar nome do osso e colocá-lo aqui. Isso é para a roda direita. Coloque a turma lá e pronto. Não, são dois. Então, vamos colocá-lo lá e colocar a turma aqui também. Há três aulas lá. Se você não expandi-lo, às vezes você pode cometer algum erro. Então, deixe como está. São quatro e coloque a turma lá também. Mais uma vez, coloque-o aqui. Esse 15 e coloque esse aí. Eu fiz isso por cinco. Agora são seis. É isso aí. E vamos fazer isso aqui. Sete lá. E agora, aqui, oito, e aqui, isso é nove, e está acabado, certo? D verifique tudo para ter certeza de não cometer nenhum erro. Assim, você também pode ver que tudo está bem com as rodas certas. Agora, com isso feito, as rodas estão configuradas. Precisamos configurar o motor e tudo mais. Veja se podemos fazer isso a seguir. 5. 04 Configuração do motor: Não, precisamos fazer a configuração do motor. Para fazer isso, clique novamente no movimento de veículos com rodas do veículo KaoS Na configuração do motor, você pode ver que temos uma curva aqui que podemos dizer como o torque pode ser alterado, como o motor pode girar, certo? Então, o que eu quero fazer é adicionar uma chave aqui no momento zero, deixe-me aumentá-la para que você possa vê-la melhor. Às vezes zero, eu quero que seja zero e outra chave aqui. Na quinta vez, eu queria ir para um. Então, o que isso significa, se eu clicar aqui, você pode ver melhor. Então, o que isso significa, significa que do zero ao torque máximo, leva 5 segundos porque o tanque não pode ir tão rápido com muita força, certo? Leva tempo para atingir a velocidade máxima do torque, certo? Eu quero mudar o torque máximo para 2.500 porque a massa sobre o tanque é grande É por isso que estou colocando esse valor lá, mas você pode simplesmente testar com isso. E o motor está em marcha lenta, eu quero colocá-lo em 800 Em seguida, quero descer até chegarmos à massa. Uma massa dessas não é muita coisa. É por isso que eu quero mudar para 5.000, certo? 5.000, pois isso é bom. Você pode aumentá-lo e testar com ele mais tarde, certo? Em seguida, quero ir para o controle de torque. Se você entrar no Arcade Control, controle de torque, certifique-se de ativá-lo E como queremos ser capazes de mudar o ya, quero colocar algum valor nele, como 2,5. Podemos alterá-lo mais tarde e você pode testar com isso. Isso é tudo, por não, para este. Não, a próxima coisa que eu quero fazer clicar em ou mesclar, e aqui, ir para física, simular física e pedir para ele simular a Agora, vamos compilar, ir para o nosso nível e executar. Não, você pode ver , está funcionando melhor. Você pode ver agora que as rodas estão no lugar certo e estão se segurando corretamente. Isso é bom. A próxima coisa que você quer acrescentar adicionar uma câmera, um braço de mola, tudo isso, certo? Então clique em Adicionar primeiro, adicione um braço de mola. Basta adicionar um braço de mola aqui como filho da malha. Agora, vamos subir aqui. O comprimento do braço alvo, eu quero aumentar isso para, um, dois, 50, certo? Então, estará lá atrás, certo? Podemos adicionar uma câmera para que você possa vê-la melhor. Adicione a câmera como filha de uma mola R, você pode vê-la. Não, eu também quero adicionar algum deslocamento a Y e Z. Claro, você pode decidir o que quer fazer, mas, nesse caso, acho que parece melhor. E eu quero aumentar um pouco o meio. Você pode ver agora que está aos pés do nosso tanque. Então, vou trazer esse braço de mola até a localização Z. A 100, por exemplo, não, você pode vê-lo no meio do tanque Isso é bom. A próxima coisa que eu quero usar a rotação do controle de peões Portanto, sempre que mudarmos a rotação do controle, essa rotação do braço da mola também mudará. Então, com a maioria, também podemos dar uma olhada. Em seguida, para melhorar a aparência, quero ativar a câmera e a rotação também. Então, parece muito melhor. E é isso, é tudo o que precisamos fazer. Vamos compilar, salvar e executar o jogo Não, você pode ver isso. Isso parece incrível, eu acho, certo? Podemos diminuí-lo um pouco. Nós adicionamos muitas compensações a ele. Então, desligue Z, vamos diminuí-lo, que possamos ver melhor o tanque Agora, você pode ver, eu acho que isso parece bom. Eu quero que fique assim. Mas se você quiser colocá-lo exatamente na parte de trás do tanque, você pode fazer. Basta excluir esse deslocamento. Exclua o deslocamento Y, certo? Agora, se eu correr, você pode ver que está na parte de trás do tanque, mas acho que dessa forma parece muito melhor com Color of Duty e Battlefield Game, certo? R n ou Tank está pronto para escrever algum código. Vamos fazer isso no próximo vídeo. 6. 05 Olhar para cima e para baixo: A próxima coisa que você quer fazer com nosso tanque é ser capaz de olhar para cima e para baixo, nosso tanque é ser capaz de olhar para cima e para para a esquerda e para a direita. Vamos ver se podemos fazer isso. Para fazer isso, precisamos de informações aprimoradas. Então, vamos até o tanque aqui. Quero clicar com o botão direito do mouse, criar uma nova pasta e chamá-la de entrada. Está bem? E aqui, primeiro e primeiro, eu quero ir até a entrada e criar um contexto de mapeamento de entrada. Eu quero chamá-lo de tanque IMC, certo? E eu vou clicar nele para abri-lo. Estará aberto aqui. Podemos simplesmente fechar esses, certo? Depois disso, vamos até a gaveta de conteúdo, clique com o botão direito do mouse, vá para Entrada novamente e vá para a ação de entrada Eu quero chamar esse que eu olho para cima para baixo, por olhar para cima e para baixo com a maioria. Clique neste para abrir o tipo de valor porque, quer estejamos olhando para cima ou para baixo, precisamos alterá-los para flutuar ou acessar um Você pode simplesmente salvá-lo, fechá-lo. Agora, aqui no tanque IMC, precisamos mapeá-lo. Clique aqui para adicionar o mapeamento, e o que você deseja adicionar é olhar para cima e para baixo. E como queremos fazer isso, queremos fazer com o alce Y. Então vá até o alce aqui e escolha Most Y. Pronto. Com isso, quero ir para o BP Tank. E no início do jogo, eu quero primeiro obter o controle do player , porque você quer dizer ao controlador do player. Para usar essa entrada aprimorada, certo? Então, obtemos a entrada aprimorada dessa forma e adicionamos o contexto de mapeamento a ela, certo? O contexto de mapeamento que criamos juntos. Então, vamos conectá-lo lá. Selecione ácido, o IMC agradece. Agora, com isso, clique com o botão direito aqui, podemos simplesmente pesquisar por I L up, down, certo? É isso mesmo. Agora, com isso feito. Vamos apenas mostrá-lo com as impressoras para ver se está funcionando bem ou não com valor da ação conectado à string interna Se atropelarmos o jogo, não com o máximo, eu posso subir, descer. Você pode ver que às vezes nos dá um valor entre menos dois e dois entre menos dois e dois porque não pode obter mais de um Então, não com isso, queremos mudar o tom do nosso controlador. Então, o braço de mola e a câmera também mudarão o tom, porque clicamos em um braço de mola e pedimos que ele use a rotação do controle do peão, Assim, podemos alterar o tom do nosso controlador para alterar o tom de um braço de mola. E o tom, como você sabe, é a rotação em torno do eixo Y para olhar para cima e para baixo, certo? Então, aqui, podemos simplesmente dizer adicionar controlador. Entrada Pch, certo? E o valor, podemos simplesmente conectar o valor da ação aqui. Vamos apenas compilar e executar. Não, você pode ver, eu posso olhar para cima e para baixo. Mas o problema com isso é que está invertido. Se você quiser que seja invertido, continue com isso, mas eu não quero que seja invertido Eu posso multiplicar isso por menos um, mas posso ir para o IMC aqui e aqui, adicionar um modificador do tipo de Dessa forma, é muito mais fácil de fazer. Agora, com isso feito, não, vamos apenas rodar nosso jogo, você pode ver, eu posso olhar para cima e para baixo, e está funcionando bem. Não, eu quero te dar um desafio. Tente fazer o look para a esquerda e para a direita. Apenas pense sobre isso. Rotação em torno do eixo Z, que é chamada de Ya. Crie uma ação de entrada e implemente-a no tanque BP para que possamos olhar para a esquerda e para a direita Você tenta fazer isso. Faremos isso no próximo vídeo. 7. 06 Olhar para a esquerda e para a direita: Não por olhar para a esquerda e para a direita. Como você sabe, precisamos adicionar uma ação de entrada para isso também. Então, clicando com o botão direito aqui, vá para a entrada, crie a ação de entrada e eu quero chamá-la, eu olho para a esquerda, certo, ok? E, como você sabe, o tipo de valor, queremos que seja o eixo um D float porque estamos olhando para a esquerda ou para a direita Portanto, acessar um anúncio é mais do que suficiente. Certifique-se de salvar, vá para o tanque IMC e adicione-o lá, mapeie lá, certo? Então, queremos fazer da esquerda para a direita, e queremos fazer isso com o mouse X. É isso aí Agora podemos ir até nosso tanque de BP e aqui, procurar por um Look à esquerda e à direita, o evento Agora, para olhar para a esquerda e para a direita, é uma rotação em torno do eixo Z que é chamada de Ya. Precisamos adicionar a entrada do controlador Ya com o valor que isso nos dará. Este evento nos dará. Com isso, vamos compilar, executar, agora você pode ver, podemos olhar para a esquerda, podemos olhar para a esquerda, direita para cima e para baixo, e isso parece bom Agora vamos ver como podemos nos mover sobre o tanque. 8. 07 Seguindo adiante: Agora vamos ver como podemos realmente seguir em frente. Eu posso avançar e retroceder em uma ação de entrada, mas será difícil para iniciantes entenderem isso É por isso que eu quero usar duas ações de entrada, uma delas para avançar e outra para retroceder Então, para fazer isso, eu quero ir para a gaveta de conteúdo e aqui, eu quero clicar com o botão direito do mouse em Ir para entrada e criar uma ação de entrada E esse, eu quero chamá-lo de atacante. É isso mesmo. D clicará nele para abri-lo. O tipo de valor, queremos que seja o eixo um d, um flutuante à direita É isso mesmo. Agora, no tanque IMC, queremos mapeá-lo Então clique aqui para adicionar um novo mapeamento. Clique aqui. Queremos mapear o I para frente. Então, quando queremos seguir em frente? Clique aqui, Heat. Quando ouvimos TL You em nosso teclado, queremos seguir em frente com nosso tanque. Então, vamos ver como podemos fazer isso. Aqui, se eu escrever, clicar e pesquisar por I forward, eu tenho um evento para seguir em frente, eu encaminho quando clicamos em W, certo? Portanto, esse valor de ação nos dará um valor de 0-1 e, como podemos avançar, há um nó dentro do componente de movimento de veículos com rodas caóticas que podemos usar E é chamado de set Trottle input. Você pode ver que há dois deles aqui. Um é para o componente de movimentação do veículo. Como temos mais de quatro rodas em nosso tanque, é por isso que usamos componente de movimentação de veículos com rodas caóticas Então, temos dois deles. Precisamos usar a entrada de rotação definida para o componente de movimento de veículos com rodas caóticas Então clique aqui e pronto. É aqui que você deseja usar o componente de movimentação de veículos com rodas caóticas, certo? Então, o acelerador, queremos usar esse valor de ação. Não, se você passar o mouse sobre esse nó, verá que ele configura a entrada do usuário para o acelerador do veículo. O alcance Portanto, não precisa de um valor entre menos um e um. Ele precisa apenas de um valor 0-1. Se você colocar um, ele avançará. Se você colocar zero, ele não avançará, certo? Então, não, mas dê uma olhada. Se você executar o jogo we, não, se eu apertar W, você pode ver que está avançando, e você pode ver que a velocidade é demais. E se eu deixar a entrada, novamente, ela avançará. Olha isso. É lindo. Está voando agora, certo? Então, agora, vamos ver como podemos pará-lo. Para parar com isso, sempre que soltarmos a tecla Dolly em nosso teclado, isso acontecerá E queremos definir a entrada do acelerador com isso para zero. Então, copie e cole essa entrada do acelerador definido com o controle C control V para colá-la aqui Sempre que soltamos a tecla W, queremos colocar o acelerador É isso aí, comece a compilar e execute. Agora, se eu T, ele avançará, mas se eu soltá-lo, ele esperará, certo? Então, novamente, podemos seguir em frente e, se o lançarmos, ele esperará. E agora, parece bom, certo? Está se movendo bem, então é isso. É isso que queremos que aconteça. Agora, vamos ver como podemos retroceder porque agora, se pressionarmos S em nosso teclado, ele não retrocederá, mas podemos avançar, Então, no próximo vídeo, vamos retroceder 9. 08 Indo para trás: Não, por retroceder. Vamos até a gaveta de conteúdo e criar uma ação de entrada para ela Vá para a ação de entrada de entrada, e esta é para retroceder, então vou chamá-la de I para trás, clique com o botão direito nela para operar o tipo de valor, você quer que seja ases um D porque estamos retrocedendo, certo Então isso é bom. Agora adicione mapeamento ou IMC e mapeie D indo para trás, I para trás Aqui, clique aqui, cabeça S, então você coloca S lá. Então, sempre que pressionarmos S em nosso teclado, esse I para trás passará um para a saída, certo? Então, vamos ver como isso aconteceu. Eu clico com o botão direito aqui, procuro por I ao contrário, certo E agora, com isso, vamos usar um anel de teste de impressão e conectá-los aqui. Você pode ver que quando eu pressiono SN ou o teclado, ele nos dará um. É isso mesmo. É isso que queremos que aconteça. Existe um nó para retroceder nesse movimento caótico de veículos com rodas Então pegue isso e o nó está configurado para quebrar a entrada. Eu sei que é para quebrar, por que o estamos usando para reverter, não sei por que eles o chamam de quebrar Portanto, também podemos usá-lo como pausa. Então, conecte o pino de execução, conecte o valor da ação, certo? Não, novamente, se você passar o mouse sobre isso, poderá ver que é o valor 0-1 Se você colocar um lá, ele retrocederá e, se você colocar zero lá, ele parará Ele não vai mais se mover e não pode obter um valor negativo, certo? Então é isso. Vamos apenas compilar, salvar e executar o jogo. Agora, se você tivesse SN ou teclado, você pode ver que está retrocedendo Mas está retrocedendo. De novo e de novo e de novo, e não vai parar. Vamos voar um pouco com ele, garçom. Então chegamos às montanhas aqui. Ah, você pode ver. Isso não parece bom. Então, não, novamente, como fizemos aqui para seguir em frente, precisamos fazer isso para trás também Sempre que a conclusão acontecer, isso significa que lançamos o SK em nosso teclado. Assim, podemos copiar essa entrada de quebra definida com controle C, controle V, colá-la aqui e alterar a quebra para zero Sempre que lançamos S em nosso teclado, vamos apenas compilar e executar Se eu apertar S, você pode ver, estou retrocedendo, e se eu soltar S, você pode ver que ele vai esperar Novamente, se eu bater em W, posso seguir em frente. Eu posso retroceder e você pode ver as animações. Parece bom. Mas não, é hora de realmente girar as rodas e esses trilhos, certo? No momento, não está se movendo. Nenhum deles está se movendo, então precisamos movê-los. Vamos ver como podemos movê-los no próximo vídeo. 10. 09 Animação de roda: Nenhum tanque superior está se movendo para frente e para trás, mas não há movimento nas rodas É por isso que não parece bom. Vamos ver como podemos animar as rodas. Para fazer isso, você pode ver que, se você clicar na malha, essa é uma malha esquelética na qual podemos decidir uma classe anim para Então, para fazer isso, eu quero ir para a gaveta de conteúdo, ir para a pasta Blueprint na pasta Tank e clicar com o botão direito do mouse para criar uma classe de planta, ir para todas as classes e pesquisar do veículo É isso mesmo. É filha de uma instância, mas é chamada de instância de animação do veículo. Selecione para criá-lo. Eu quero chamá-lo de ABP Tank. Está bem? Projeto ABP para animação. Clique nele. Para abri-lo, ele dirá que não há nenhum esqueleto aqui Você quer escolher? Você diz que sim. E aqui, escolha nosso esqueleto para nosso tanque. Vá para ok, não, será aberto desse jeito. Certifique-se de salvar tudo. Como sempre, precisamos de espaço de malha, de pose. Portanto, temos acesso a todas as informações sobre ossos. E depois disso, para que essas rodas possam se mover, precisamos adicionar um controlador de roda para veículo com rodas. É isso mesmo. Isso é tudo que você precisa fazer. Um motor Ao fará o resto por você. E saiba com isso, não deixe de economizar, vá até BP Tank, clique na malha e escolha a classe anim ABP Isso não é uma compilação completa, exceto um jogo atropelado Se eu for até as rodas, se eu for W, não, você pode ver que todas as rodas estão se movendo, certo? Tudo parece bom. retroceder. Você pode ver. Se eu voltar atrás, você pode ver que está funcionando bem Um problema que você pode ver aqui, se eu W, e esperando aqui, todas as rodas não estão movendo essas duas no final dos trilhos. Você pode ver que eles estão se movendo e nada podemos fazer para detê-los. Se você retroceder novamente, ele está se movendo. Se não estamos nos movendo, eles também estão se movendo. Então, qual é o problema? É como um bug que aconteceu com essa senhorita esquelética O que eu quero fazer para consertar isso é simplesmente ir até um esqueleto, ir para o projeto de animação, ir até um esqueleto, descobrir, fazer essas Eu procuro a roda um e nove no lado esquerdo e as rodas um e nove no lado direito não estão funcionando bem. Você pode ver que cada rotação não importa se você está girando ou não, se estamos nos movendo ou Então, precisamos encontrar uma maneira de consertar essas rodas. Para corrigir isso, vou criar outro vídeo só para isso. Então, vamos ver como podemos corrigir isso no próximo vídeo. 11. 10 Rodas de ponta: Não, para consertar as rodas que estão se movendo mesmo que o tanque não esteja se movendo, podemos consertá-las. Para consertá-los, primeiro clique no movimento do veículo com rodas caóticas Vá para a configuração do volante. Temos quatro rodas, duas à esquerda e duas à direita, que apresentam problemas. Então, vamos encontrá-los. A junta 01 da roda esquerda. E se você descer, a roda esquerda 09 junta. Então, a roda esquerda 01 e a roda esquerda 09 , não estão funcionando com essa configuração de roda. Então, precisamos excluí-lo daqui. Para excluí-lo, basta acessar esse índice, clicar aqui e excluí-lo Agora, você pode vê-lo começar na junta da roda esquerda 02, e precisamos deletar, contrair isso é dois, três, quatro, cinco, seis, sete, oito, nove, se expandirmos isso, essa é a junta da roda esquerda 09. Se você for aqui, poderá ver que a junta da roda esquerda 09 e a junta da roda direita 09 devem ser excluídas desta lista. As configurações da roda, certo? Então, aqui, novamente, vá para o Índice sete neste momento e exclua isso, certo? Com isso, novamente, roda direita 01 junta. Se você for aqui, queremos que ele também o desative. Eu vou para a roda direita 01 junta. Este é outro que não está funcionando bem, e esta é a roda direita, junta 09. Esses dois também devem ser excluídos dessa configuração de roda. Então, roda direita, 01 junta, queremos ir aqui e deletá-la assim. Agora, no final disso, deixe-me aplaudir tudo. Temos a junta 09 da roda direita. Novamente, queremos excluir isso também. Agora, com isso ligado, se você compilar, salvar e executar o jogo e se mover, poderá ver que todas as rodas estão se movendo, mas esta não está se Esse é um bom passo na direção certa. Agora, vamos ver como podemos realmente movê-los. Para mover isso, precisamos ir para o tanque ABP, e aqui, eu quero usar algumas notas para fazer isso Saiba que se você atropelar o jogo, todas as rodas estão se movendo corretamente, mas as duas rodas nas duas extremidades não estão funcionando bem. Assim, podemos copiar a rotação dessas rodas do meio e colá-la nas rodas finais. Então, vamos ver como podemos fazer isso. Existe um nódulo chamado osso de cópia. Está bem? Este osso de cópia precisa de um osso fonte, se você for aqui, osso fonte, e ele precisa de um osso alvo. Você pode ver isso, certo? Mas precisamos apenas copiar a rotação. Vamos fazer isso com as pessoas certas. Depois disso, faremos isso pelos outros. Queremos copiar a rotação de um osso, um desses ossos médios para os ossos finais. Podemos fazer isso, podemos decidir um dos ossos do meio. Procure a roda se formos aqui. Por exemplo, vamos usar a roda direita, junta 02. Está bem? E o osso alvo, o osso no qual queremos colar a rotação da roda direita zero até a junta , é deixe-me procurá-lo. Roda. É chamada de junta 01 da roda direita. E eu dupliquei isso uma vez aqui, e desta vez, eu quero copiar a rotação para a junta 09 junta da roda RT 09 Agora, com isso, vamos testá-lo. Tínhamos compilado o jogo Save and Run Over. Agora, no lado direito, se eu tivesse te contado, você pode ver que esse osso está girando com os outros ossos Essa roda, essa roda no final da pista, está girando como as outras rodas que estão no meio Isso estava funcionando bem. Você pode ver agora que o direito está funcionando, mas precisamos fazer isso para o nódulo ósseo esquerdo. Para fazer isso, podemos simplesmente copiar e colar esses dois nós e fazer isso para o esquerdo. Então, desta vez, queremos procurar rodas novamente. Mas desta vez, eu quero fazer isso para a roda esquerda, zero, dois, junta, dois, roda esquerda 01 junta. Aquele que não funciona bem, certo? Novamente, para este, queremos copiá-lo da roda esquerda, junta 02, que sabemos que está funcionando bem. E o osso alvo, você quer fazer isso para a roda esquerda, articulação 09. Apenas tenha cuidado com esse LF para a esquerda e RT para a direita. Se você cometer um erro aqui, não funcionará muito bem e será difícil encontrar a causa. Não, eu preciso de um lápis de execução. Vamos dar isso desse jeito para cá. E não, vamos começar a compilar. Se você atropelar o jogo, não para a esquerda, se eu tivesse, você pode ver que está funcionando bem, como as outras rodas podem ver que tudo está funcionando bem e bonito. Ele vai para frente e para trás, como as outras rodas, as rodas do meio, tudo está funcionando bem O único problema que temos aqui é que os trilhos não estão se movendo. As rodas estão se movendo, mas os trilhos não estão se movendo. E movê-los, na verdade, é muito difícil. É por isso que precisamos encontrar uma solução alternativa para eles. Vamos ver como podemos fazer isso a seguir. 12. 11 Trilhas de tanque: Agora queremos mover as trilhas reais com rodas. Como podemos fazer isso porque nosso tanque pode passar por cima de coisas, e essas trilhas podem ter flexibilidade. Não há uma maneira clara de fazer esse tipo de coisa. Os truques que os animadores fazem nesse tipo de coisa são com materiais Então, se eu clicar na malha, você pode ver que há o elemento um e o elemento dois, apenas para faixas, um para a faixa direita e um para a faixa esquerda que, por padrão, funcionou errado. Vamos clicar aqui. Também temos a faixa esquerda. Então, o elemento dois é para trilha esquerda e o elemento um é para a trilha direita. Portanto, certifique-se de corrigir isso porque, por padrão, os dois eram o caminho certo. E se você abrir esses elementos, por exemplo, o caminho certo, vamos clicar nessa lupa, e eu clicarei aqui, você pode ver que há um deslocamento nós RT para o correto porque estamos no caminho certo Com esse deslocamento, nós RT, podemos nos mover sobre trilhas Então parece que está se movendo. Agora, aqui, toda vez que estou mudando isso, por exemplo, para dois, você pode ver isso bem, mas há uma maneira de consertarmos isso. Vamos colocá-lo em zero. Eu não quero guardar nada aqui. Para você ver melhor, o que eu quero fazer é clicar com o botão direito do mouse em um deles e criar uma instância de material a partir dele. Você não precisa fazer isso. Eu só quero te mostrar uma coisa. Não clique nele para abri-lo. Agora, aqui, se você acessar valores dos parâmetros do Global Scholar, poderá alterar o deslocamento VRT E com isso, se eu alterar o valor, você pode ver que as faixas estão se movendo. Então é assim que queremos mover as faixas com parâmetros no material. Você não precisa fazer isso. Eu só queria te mostrar. Você pode simplesmente excluir isso se tiver feito isso. Então, agora com isso feito, vamos ver como podemos usá-lo. Para fazer isso, eu quero ir ao evento porque em cada quadro, queremos mudar o offset VRT ou offset VLT Então, para fazer isso, quero criar o evento personalizado porque não quero fazer bagunça aqui Então, vou descer aqui e clicar com o botão direito do mouse em pesquisar evento personalizado. E eu quero chamá-lo de Track. Animação, ok? Animação de trilhas E agora, com essa dica aqui, podemos chamá-la até mesmo de tiqu Então, podemos dizer animação de faixa. É exatamente como colocar o que quisermos conectar aqui para até mesmo tik É exatamente o mesmo. É simplesmente mais limpo fazer isso dessa maneira. Então não, com isso feito. Com base na velocidade do nosso tanque, queremos mudar o offset VRT e o offset VLT, certo Então, não, com isso, primeiro, devemos obter a velocidade do nosso tanque. Para fazer isso, podemos obter o componente de movimento caótico do veículo e avançar uma velocidade em MPH, certo? É isso mesmo. Vamos usar uma sequência de caracteres de impressora para mostrá-la à sua sequência de caracteres de impressora. E conecte-o assim a aqui. Se você atropelar o jogo, verá que, se eu tivesse te contado, o valor pode ficar muito grande. Por exemplo, agora, são 43, certo? A velocidade máxima sobre o veículo ou tanque. Então, se colocarmos esse valor lá, vamos ver o que vai acontecer. Precisamos pegar a malha. Está bem? E nele, dizemos definir valor do parâmetro acadêmico no material. É isso mesmo. Let's está conectado ao pino de execução e o nome do parâmetro é muito importante. Então, vamos descobrir isso muito rápido. Vá para um desses. Vamos fazer isso primeiro no caminho certo. Vou clicar aqui. É chamado de offset VRT Podemos simplesmente copiá-lo assim, controlar, copiar e colar aqui. Apenas conectando esses dois aqui, vamos dar uma olhada. Se você seguir em frente, você pode ver se eu te disse, você pode ver que está se movendo, certo? Sabendo aqui, você pode ver que se eu me movo, ele está se movendo com mais de rodas. Mas se você aumentar a velocidade, vamos ver o que acontece. Se você aumentar a velocidade, poderá ver as trilhas, é como se estivessem cambaleando, certo? Não está funcionando bem. Por que isso está acontecendo, está acontecendo porque esse VRT de compensação precisa de um valor variável Sempre, ele deve ser alterado para que você possa ver a correção. E para fazer isso, preciso criar uma variável. Então, aqui, vamos criar uma variável. Eu quero chamar isso de track, offset. Ok. E o tipo que eu quero que seja um flutuador e com isso, por padrão, é zero Se você compilar, você pode ver, eu posso adicionar esse valor sempre ao deslocamento da faixa, adicioná-lo assim a esse valor e definir o deslocamento da faixa novamente aqui com esse novo valor de que cada quadro será alterado, e conectado assim a aqui e usar o deslocamento da faixa no final para o valor do Agora vamos ver o que vai acontecer. Se você correr e seguir em frente. Você pode ver se eu tinha te contado. Novamente, está se movendo, mas o movimento é muito agora. Você pode ver. Novamente, também temos um pouco de estruturação. Parece melhor. O esquerdo não está funcionando. Parece melhor, mas o movimento é demais. Se pararmos, você pode ver que estou parando, mas, novamente, está se movendo. Posso ver que está se movendo. O motivo é que esse valor que adicionamos ao deslocamento de rastreamento é demais. Às vezes, chega a 42. Precisamos limitar isso. Como podemos limitá-lo, podemos mapeá-lo. Por exemplo, aqui, posso dizer mapa ao alcance com uma pinça Não, quero dizer que se o valor estava entre -70 e 70, forneça um valor pequeno de -0,5 e 0,5 O que acontecerá se os conectarmos aqui? O que vai acontecer? Se o SPD for 70, ele nos dará 0,5 na saída, certo? Mas se o SPD for -70, significa que está retrocedendo a todo vapor O valor que esse nó nos dará A será -0,5. Portanto, limitamos o valor que adicionamos ao deslocamento da faixa com base na velocidade de cada quadro Então, dessa forma, podemos manipulá-lo mais. Vamos compilar, salvar e executar o jogo e saber se eu apertar W, você pode ver que parece muito melhor, e não precisamos chegar a esse valor mais alto E se pararmos, vamos dar uma olhada. Se pararmos, é como se fosse o contrário. Você pode ver, é como se fosse ao contrário. Então, precisamos reverter esse valor. Então, sempre que a velocidade máxima estiver acontecendo, precisamos passar -0,5 aqui E sempre que a velocidade de avanço for 70, queremos ultrapassar 0,5, certo? Dessa forma, ele se moverá corretamente. Se você executou o jogo novamente e disse que não, você pode ver que está funcionando bem. E parece bom. É como se estivesse sincronizado, certo? Se você parar, você pode ver que está mais sincronizado. Se você quiser trabalhar mais com ele para adicionar mais detalhes, poderá alterar esses valores. Por exemplo, se eu colocar 0,4 aqui para o máximo e mínimo -0,4, por exemplo, você pode ver o efeito Com este grampo de alcance, temos mais controle sobre ele Agora, você pode ver que parece um pouco melhor. Você deve trabalhar com esses valores até alcançar o resultado desejado. Com isso, fizemos isso para o VRT offset , mas queremos fazer isso para o VLT offset, para o esquerdo É por isso que eu quero copiar e colar isso aqui, conectado assim. E desta vez queremos fazer isso por compensação. TENENTE. Então coloque L lá. Agora, você pode ver que é um VLT deslocado. Não, vamos compilar, salvar e executar. Agora, para a esquerda, olhe para isso. Você pode ver que parece bom. Ambas as faixas estão funcionando bem. Agora, você pode ver, tudo parece bem. Não, eu quero te mostrar outra coisa. Outro problema. E a seguir nós 14. 13 Por direita e esquerda: Não, queremos poder ir para a esquerda e para a direita. Vamos ver como podemos fazer isso agora. Para fazer isso, primeiro e primeiro, precisamos da ação de entrada. Então vá para Tank, vá para a entrada. E aqui, clique com o botão direito do mouse, vá para Entrada e crie uma ação de entrada. Eu quero chamá-lo, eu vou para a esquerda. Certo. Está bem? Clique nele para abrir o tipo de valor, queremos que seja o eixo um d porque estamos indo para a direita ou para a esquerda. Isso é mais do que suficiente. Você pode salvá-lo e fechá-lo. Não, precisamos mapeá-lo, então vá para o tanque IMC e aqui adicione o novo mapeamento e clique aqui e agora queremos mapear, vá para a esquerda e para a direita Para ir para a esquerda e para a direita, queremos usar o teclado D e A, certo? Então, sempre que encontramos Dan aqui, queremos ir para a direita e precisamos de outro. Então, para A, sempre que atingimos A, queremos ir de elevador. Então, por padrão, não, sempre que pressionarmos D ou A, o IA vai para a esquerda e para a direita, ele passa por um. Mas sempre que atingimos D, queremos passar um, e sempre que atingimos A, queremos passar menos um Então, precisamos de um modificador para A aqui. Então clique aqui, adicione o modificador do tipo de negação. Então, isso nos dará um valor negativo quando atingirmos A. Isso é mais do que suficiente. Vamos até o tanque da BP Quer criar algum espaço aqui. E depois de voltar atrás, o que eu quero fazer é clicar com o botão direito aqui, pesquisar por A, ir para a esquerda e para a direita Vá para a esquerda e para a direita. Não, sempre que ouvimos D ou A, queremos mudar o estilo do nosso tanque, certo? Portanto, é a rotação em torno do eixo Z. E como podemos fazer isso, há um nó dentro do componente de movimento de veículos com rodas caóticas aqui que é chamado de entrada set Ya, certo? E podemos simplesmente conectar o gatilho a ele com o valor da ação. Mas sempre que soltamos D ou A em nosso teclado, queremos colocar o Ya em zero. Então, podemos simplesmente copiar e colar isso e colocá-lo em zero sempre que soltarmos D ou A em nosso teclado e colocá-lo em zero. É isso mesmo. É só testar isso. Se atropelarmos o jogo, você pode ver, podemos ir para a esquerda e podemos ir para a direita. Isso está funcionando bem. Mas você pode ver que quando vamos para a direita e para a esquerda no mesmo lugar, você pode ver que os trilhos não estão se movendo, mas as rodas estão se movendo. Então isso é bom. Podemos usar o movimento das rodas para mover os trilhos. Mas se nos movermos assim e tentarmos ir para a direita e para a esquerda, você pode ver, podemos fazer isso, e isso parece incrível, certo? Portanto, nenhum tanque de óleo pode ir para a esquerda e para a direita. Mas o problema que temos aqui é que os trilhos não se movem sempre que viramos. Vamos ver como podemos corrigir o próximo vídeo. 15. 14 Animação de faixas para a reviravolta: Agora vamos ver como podemos nos mover sobre trilhos quando estamos virando de lugar. Para fazer isso, primeiro precisamos saber quando estamos nos adaptando, certo? Então, como eu quero fazer isso sempre que nos aprofundamos em nossa palavra-chave, queremos salvar esse valor de ação para ir para a esquerda e para a direita. Então, clique com o botão direito nesta e promova-a para uma variável. E eu quero chamá-lo de Ya value. Certo? Esse valor, queremos salvá-lo sempre que tivermos D ou A em nosso teclado, certo? Só com esse valor, o que eu quero fazer. Nesta animação de faixa que tivemos antes aqui, deixe-me criar um espaço como este, trazê-lo um pouco para a direita e abaixar um pouco todos eles, para que tenhamos mais espaço. Agora, aqui, queremos verificar o valor de ya. Se o valor de ya fosse igual a zero, isso significa que não estamos pressionando D ou A no teclado, certo? Então, se for igual a zero, faça tudo isso. Faça todas essas coisas normais que você estava fazendo antes, certo? Deixe-me trazer isso até aqui. Mas se esse valor de ya não for igual a zero, significa que estamos pressionando D ou A em nosso teclado Nesse caso, com base no movimento da roda, forma como ela está girando, também queremos girar os trilhos E tudo o que podemos fazer é que precisamos desses nós também, desses nós, certo? Então, primeiro, vamos fazer isso da maneira certa, compensar o VRT que é o caminho certo, copiá-lo e colá-lo aqui Em caso de quedas, isso significa que estamos batendo em D ou A. Para a pista certa, quero pegar uma das rodas que estão dentro dessa configuração de roda e obter seu ângulo de rotação e usá-la na pista certa Qual deles queremos usar? Você pode usar o que quer que esteja escrito corretamente. Isso é para a esquerda. Podemos descer, por exemplo, a décima, a direita aqui Então, podemos pegar essa roda, verificar seu ângulo de rotação e colocá-la como valor do parâmetro aqui. Vamos ver como podemos fazer isso. Ou fazer isso porque esse componente caótico de movimento de veículos com rodas tem a roda montada dentro dele É apenas uma matriz que podemos obtê-la onde quisermos, certo? Então, coloque esse movimento caótico de veículos com rodas aqui, pegue rodas Você pode ver que é apenas uma matriz. Essas rodas são exatamente essas rodas que montamos aqui. Isso nos dará tudo isso. E precisamos comprar um deles. O número dez é mais do que suficiente. Então, vamos colocar apenas o número dez lá porque sabemos que a roda número dez na extensão é a certa para o lado direito, certo? Então, com isso, se obtivermos o ângulo de rotação, o que acontecerá, isso nos dará o ângulo de rotação da nossa roda no lado direito. Então, podemos simplesmente conectá-lo aqui. Vamos ver o que vai acontecer. Se corrermos e chegarmos perto, se eu for para a direita, você pode ver que as rodas estão se movendo, mas estão se movendo muito rápido. Você pode ver que está se movendo muito rápido. Então, para que não se mova tão rápido, o que podemos fazer multiplicar isso por um valor, por exemplo, 0,01, à direita, e conectá-lo ao valor do perímetro Agora, se você compilar e executar, não, vamos dar uma olhada Se você for para a direita, não, verá que está mais sincronizado. Mas, novamente, a velocidade é demais agora, podemos diminuí-la ainda mais. Então, se eu colocar outro zero por quatro, por exemplo, 0,004, vamos ver o que vai acontecer Se você correr de novo, será um pouco mais lento, dá para ver Não, parece muito melhor. Podemos diminuí-lo ainda mais colocando 35 lá. Então é 0,00 35, certo? Então, se você correr novamente, verá que parece muito melhor, mas você pode jogar com esse valor até alcançar o resultado desejado. Então, agora que fizemos isso para a pista certa, queremos fazer isso para a pista esquerda também. Então, podemos simplesmente copiar tudo isso e colar aqui, certo? E conecte o pino de execução aqui. primeira coisa que queremos é mudar o VRT para heel t, porque desta vez queremos fazer isso para a pista esquerda, e desta vez, a roda que queremos pegar, queremos ter uma roda no lado esquerdo Então, se você clicar nesse veículo com roda caótica, por exemplo, o de índice, é a roda esquerda. Então, podemos colocar um aqui para obter esse ângulo de rotação da roda. Então não, só com isso, vamos correr. Se você for para a direita, verá que está funcionando bem. Se você for para a esquerda , está funcionando bem. E no lado esquerdo, novamente, está funcionando bem. Você pode ver isso. Para ir para a direita e para a esquerda, está funcionando bem e bem. Isso é bom. Não, podemos nos mover. Nós podemos ir para a direita. Nós podemos ir para a esquerda. E se mantivermos um teto aqui, podemos ir para a direita. Podemos ir para a esquerda e tudo está funcionando bem. Isso está lindo. 16. Freio de mão: A próxima coisa que você quer fazer é poder frear de mão, usar um freio de mão, para que possamos reduzir o peso muito mais rápido, Então, para fazer isso, novamente, precisamos de outra entrada. Então vá para as entradas aqui, clique com o botão direito, crie a ação de entrada Eu quero chamá-lo de IA Hand Break. Está bem? Você não precisa mudar nada dentro dele. Podemos simplesmente mapeá-lo. Então, aqui, vamos subir, adicionar um novo mapeamento, descer, para que você possa vê-lo aqui. Eu freio de mão e quando queremos que isso aconteça sempre que pressionarmos o espaço em nosso teclado? É isso mesmo. Vamos ao nosso BPT, certifique-se de salvar tudo Aqui, vamos apenas implementar o freio de mão IA, um freio de mão, certo, o evento E aqui, há um nó interno ou componente de movimento do veículo com roda caótica que é chamado de entrada de freio manual ajustado, certo? Então, basta conectar a partida sempre que pressionarmos a barra de espaço, essa partida acontecerá e queremos usar o freio de mão Novamente, copie e cole aqui. Sempre que soltarmos a barra de espaço do teclado, essa conclusão acontecerá e queremos soltar o freio de mão. É isso mesmo. Vamos apenas clicar em compilar, salvar e executar o jogo Se avançarmos e atingirmos o espaço aqui, você pode ver que está esperando muito mais rápido. Novamente, você pode ver isso. Podemos fazer muitas coisas com essa barra de espaço. Vamos fazer uma rotação, certo? Então, deriva. Se atingirmos o espaço e formos para a esquerda e para a direita, você pode ver e ele será interrompido. Isso parece bom. Agora, também temos um freio de mão. 17. 16 juntas rotate torrent: Não há próxima coisa que você queira fazer. Queremos ser capazes de disparar a arma do nosso tanque, certo? Mas para fazer isso primeiro, precisamos ser capazes de movê-lo. Então, para movê-lo, vamos até uma malha esquelética para examiná-lo Primeiro, quero procurar uma arma. Está bem? Temos uma loja de armas aqui. Com isso, podemos girá-lo, certo? Podemos girá-lo para cima e para baixo. Então, para subir e descer, precisamos mudar o tom da junta do canhão. Essa verde é inclinação, rotação em torno do eixo Y, certo? Então, primeiro, suba e desça, precisamos mudar o tom da arma. Mas para ir para a esquerda e para a direita, vamos procurar Turretno. Há uma junta de torre que podemos usar para olhar para a esquerda e para a direita. Você pode ver isso. Podemos olhar para a esquerda e para a direita com esta junta de torre. Portanto, precisamos mudar a junta da torre ou a rotação em torno do eixo Z. Então, para fazer isso, como você sabe, precisamos ir para o tanque ABP no plano de animação Primeiro e primeiro, vamos ver como podemos fazer a esquerda e a direita. Para fazer isso, vamos abrir um espaço aqui. Precisamos usar osso modificado, certo? Osso modificado para mudar o material ósseo. Primeiro, o osso que você deseja modificar é chamado de junta de torre Então, procure por Turret e coloque o Torrent Joint lá. Não queremos alterar a tradução, então não a exponha como um alfinete Não queremos mudar a escala, então não exponha isso como um alfinete, mas queremos mudar a rotação, certo? Eu quero que ele o acrescente à existência. Então, qualquer rotação que tenha, nós adicionamos a ela, certo? Em seguida, quero clicar com o botão direito do mouse nessa rotação, dividir um pino de traçado. É isso aí, compilação principal. Agora, se você alterar o ya ou a rotação em torno dos 90 do Z, verá que a verá aqui. Então, novamente, se você mudar isso para 45 e começar a compilar, você pode ver que é 45 Então, com esse nó, estamos fazendo isso, mas como podemos calcular qual deve ser essa rotação. Vou criar outro vídeo só para isso, para que você possa voltar a ele sempre que precisar se lembrar dele. Então eu vou te ver na próxima 18. 17 Calcular rotação delta: Não, para calcular qual deve ser a rotação da junta da torre, como deveria ser, devemos acessar o gráfico de eventos E a primeira coisa aqui é pegar o tanque em si, o tanque BP Então, devemos ver para onde a câmera está olhando e mudar o tamanho da torre, para que ela veja para lá que estamos olhando com nossa câmera, certo? Ou com nosso controle ou com nosso mouse. Então, com isso, precisamos começar a jogar para pegar o tanque. Então, pesquise o evento, comece a jogar, e podemos trazer nosso dono do peão aqui e lançá-lo para o BP Tank, certo E agora, com isso, temos acesso ao tanque BP. Se clicarmos com o botão direito do mouse nela, promova-a para uma variável. Não, eu quero renomeá-lo para tanque BP, não como tanque BP E aqui, a primeira coisa que eu quero fazer obtê-lo e verificar se é válido. Isso é muito importante para verificar se é válido. Se você não fizer isso, sempre haverá muitos erros. A primeira coisa que quero fazer aqui obter a rotação do controle, obter a rotação do controle. O que essa rotação de controle de obtenção nos dá, ela nos dará a rotação que nossa câmera está vendo. E depois disso, eu quero ter a rotação do ator, certo? Então, o que essa rotação do ator nos dará, ela nos dará a rotação do nosso ator, da malha do sótão do nosso tanque, onde está voltado, certo? Então, com esses dois nós, queremos obter a diferença entre eles. A diferença entre para onde nosso tanque está olhando e quando nossa câmera ou nosso mouse estão olhando, certo? Queremos obter essa diferença e colocá-la lá para que tenhamos a rotação correta, certo? Então o nó é o rotador Delta, o rotador Delta de A para B. Isso nos dará a diferença entre a rotação do nosso tanque e a rotação que deveria ter quando nossa câmera está olhando para ele, certo Então, com isso, eu posso simplesmente pegar isso, quebrá-lo. Está bem? Precisamos do ya para nossa torre Então, vou clicar com o botão direito do mouse nela, promovê-la a uma variável e quero chamar essa torre de Ya Está bem? Torre, você. Agora, verificamos se o tanque BP é válido. Queremos configurar a torre ya, salvá-la aqui e saber que, no gráfico de anéis, podemos usá-la aqui com este nó, apenas conectando-a à rotação Z da junta da nossa torre Vamos verificar se, se você atropelar o jogo, se olhar para a esquerda e para a direita, você pode ver, olhando para a direita, olhando para a esquerda, estamos nos movendo sobre a torre com o mouse e a câmera Você pode ver como está bom. A próxima coisa que queremos fazer é subir e descer. Para fazer isso, novamente, podemos usar esse rotador Delta, o tom dele Porque queremos subir e descer, girar em torno do eixo Y. Então você tenta fazer isso. Vamos fazer isso na próxima vez juntos. 19. Tono da arma 18: Não, por mudar o tom da arma para subir e descer. Para fazer isso, temos um tom aqui em que podemos clicar com o botão direito do mouse, promovê-lo a uma variável, e eu quero chamá-lo de tom de arma, certo? Então, o que isso nos dará é a diferença de tom entre onde a malha estética está olhando e onde a câmera está olhando. E com isso, podemos usar essa diferença de tom para mudar a junta do canhão do tanque superior, certo? Ele precisa do pino de execução. Então, vamos dar isso assim. Eu seguro o Controle e o agarro assim , coloco aqui e o conecto assim. É muito mais limpo fazer isso dessa maneira. Agora, devemos ir ao gráfico anim e usar uma dessas notas Controle C Control V para colá-lo aqui. O que precisamos mudar nesta nota copiada, precisamos mudar apenas o osso Podemos simplesmente procurar uma arma e colocar a junta lá. É isso mesmo. Precisamos mudar o tom para que possamos pegar o tom da arma, colocá-lo aqui e organizar um pouco. Não, vamos dar uma olhada nisso. Se você está no nosso jogo, não, você pode ver, ou a arma pode olhar para cima e para baixo. Você pode ver. Mas o problema é que, se você olhar para ele, se você for ao nosso mapa e olhar dessa forma, terá um destino. Não, você pode ver que a arma está dentro do corpo do nosso tanque. Então, precisamos prendê-lo, certo? Esse jeito não é bom. Então, como podemos prendê-lo. Se formos aqui, quero aumentar um pouco para que você possa ver melhor. Quero ir a um editor de pré-visualização e mudar o tom da arma Você pode ver que pode ir até esse ponto, por exemplo, que o valor é 39, então podemos fixá-lo em 40, por exemplo 40 é bom. Não para descer, vamos descer. Podemos ir até isso, certo, -13. Então, 40 a -30. E com isso, podemos simplesmente prender aqui, usar uma pinça. Braçadeira. Se subirmos, fixe o valor flutuante, certo E o mínimo é -13 e o máximo é 14 Portanto, não permitimos que seja menor que -13 ou maior que 14, certo? Vamos compilar e saber que, se eu for até nosso novo mapa, correr e descer, você verá que ele não passará pelo corpo do nosso tanque, e não pode subir muito, você pode ver, não vai subir muito Isso está funcionando bem. Mas não, para atirar ou atirar, precisamos de uma cruz. Vamos ver como podemos criar uma cruz. 20. 19 Widget de mira: Para que possamos atirar ou atirar em nosso tanque, precisamos ter um cruzador. Vamos ver como podemos criar isso. Se formos para a gaveta de conteúdo, quero ir para a pasta Tank e, aqui, clicar com o botão direito do mouse, criar uma nova pasta e quero chamá-la de Widgets E aqui, clique com o botão direito do mouse, vá para a interface do usuário e crie um Widget Blueprint Com esse esquema de widget ou widget de usuário, queremos criar ou cruzar Então clique no widget do usuário, e eu quero chamá-lo de WBP crosshair Boneca, clique nela para abri-la. E aqui queremos criar nossa mira. Então, primeiro e primeiro, precisamos adicionar um painel de tela à nossa hierarquia, certo? Agora, você pode ver que temos um painel de tela, e a única coisa negativa que você deseja adicionar aqui é uma imagem. Então arraste e desenhe uma imagem dentro desse painel Canvas, e a imagem que você deseja colocar lá, podemos simplesmente clicar nela em aparências no pincel na imagem Queremos escolher a imagem da mira. Você pode ver que está aqui, mas está se alongando Você pode ver que o tamanho não é bom. Podemos pedir que ele o redimensione de acordo com o conteúdo. Agora, você pode ver isso aqui. Em seguida, quero mudar o tamanho porque agora, o tamanho dele, você pode ver que é muito grande. Para alterar o tamanho, temos o tamanho da imagem. Podemos dividi-lo por dois. Aqui, podemos dizer dividir por dois, e ele calculará para nós, certo? Divida Y por dois também. Não, você pode ver que o tamanho está muito melhor agora. A próxima coisa que eu quero fazer é colocá-la no meio da tela. No momento, é um canto superior esquerdo. Para colocá-lo no meio de uma tela, precisamos primeiro mudar o ponto de ancoragem para o meio e mudar a posição X para zero e a posição Y para zero também Mas, como você pode ver, ele se alinhará ao ponto de ancoragem, mas no canto superior esquerdo Você pode ver que queremos alinhá-lo no meio. Como podemos fazer isso, podemos fazer isso com alinhamento. Se você colocar 0,5 e 0,5 para alinhamento, ele o colocará no meio da tela Agora, você pode ver que está no meio de uma tela, certo? Só com isso, vamos ver como podemos usá-lo. Comece a compilar, salve. Agora, se você for ao nosso tanque de BP, quero clicar em ou mesclar e adicionar uma planta de widget Então, adicione um widget aqui. Eu quero chamar isso de mira, certo? Com isso, clique nele, a primeira coisa que você quer mudar é o espaço, queremos que seja uma tela, para que não fique por trás das coisas, sempre podemos ver se você colocar em uma tela. A classe de widget que você deseja criar é chamada LUBP Procure-o e coloque-o lá. Agora, com isso ligado, vamos atropelar o jogo. Você pode ver que a mira está exatamente aqui. Não está no meio da tela, mas você pode ver aqui. Se eu for aqui, você pode ver melhor. E é isso, se eu apertar F, você pode ver isso aqui. Não, queremos mudar o posicionamento dela para ficar exatamente onde nossa arma está olhando. Você pode ver a nota certa ou a arma está olhando dessa maneira. Está olhando dessa maneira, mas nossa cruz está aqui. Então, primeiro, queremos verificar para onde nossa arma está olhando e queremos mudar a posição desse cruzador para essa posição Vamos ver o que podemos fazer isso. Próximo. 21. 20 Locação com foco: Não, para posicionamento ou cruz, precisamos de um traçado de linha para ver para onde a arma está olhando, certo? Então colocamos a mira lá. Para fazer isso, eu quero ir ao nosso tanque BP, e aqui, eu quero clicar em Ormsh, abrir o plano de animação. Nós não precisamos disso. O que eu quero descobrir neste projeto de animação é que é um esqueleto porque queremos ver para onde a arma está olhando, então é por isso que precisamos de um soquete na ponta dessa Se procurarmos uma arma aqui, você pode ver que temos uma arma nas juntas, certo? Então você pode vê-lo voltado para onde nossa arma está olhando. Então, queremos usar esse soquete, rotação e localização para ver para onde a arma está voltada ou olhando Então, mudamos a posição ou a mira com ela, certo? Portanto, o nome desse soquete é muito importante. Então, clique com o botão direito do mouse, renomeie e clique com o botão direito do mouse novamente e copie o nome Precisamos agora, se você for ao BP Tank, quero atualizar a posição da cruz em cada quadro É por isso que precisamos fazer isso com o eventq. Mas eu não quero fazer isso aqui porque podemos bagunçar o caminho do EventQeecution É por isso que eu quero criar um evento personalizado, certo? Aqui, vamos criar um evento personalizado, e eu quero chamá-lo de atualizar posição cruzada, certo? Agora que temos esse evento. Eu quero subir e colocá-lo no evento T. Então, aqui, depois da animação da faixa, eu quero dizer atualização. Posição do cruzador. É isso mesmo. Não, o que quer que conectemos à posição do cruzador de atualização, é como conectá-la ao evento, certo Com isso, precisamos de um traçado de linha, traçado de linha por canal, certo? Esse traçado de linha nos ajuda a ver para onde nossa arma está apontando ou olhando, certo? Eu preciso de uma posição inicial e final. Para começar, podemos obter nossa malha e, com essa malha, podemos obter a localização do soquete, certo? A localização do soquete que você deseja obter, copiamos do esqueleto, é chamada de soquete Gun one Joint, e podemos colocá-la para Mas, para a localização final, isso é muito importante. Para a localização final, queremos ver qual é o vetor dianteiro de nossa arma, um soquete de junta e adicionar a ele, certo? Então, podemos ver o que está na frente desse soquete da junta da arma. Então, para fazer isso, primeiro, precisamos obter o vetor dianteiro do soquete de uma junta do canhão Essa tomada está aqui. Precisamos do vetor direto disso, certo? Então, podemos obter a rotação do soquete, ok? E a rotação do soquete que você deseja obter é um soquete de articulação do canhão, certo Com uma rotação, podemos obter o vetor dianteiro. O que isso nos dará, nos dará o vetor dianteiro desse soquete para onde nossa arma está apontando, certo Porque um vetor direto tem comprimento de um. Não é suficiente. É por isso que queremos multiplicá-lo por um grande valor, e eu quero multiplicá-lo por um valor muito grande Eu não quero fazer isso desse jeito. Posso clicar com o botão direito neste e alterá-lo para um flutuador Não, eu posso colocar um valor como 1 milhão, certo? Agora, com isso, ele nos dará uma localização ao lado de nossa arma, um soquete comum Mas a próxima coisa que você quer fazer com isso é adicioná-lo à localização do soquete de uma junta da pistola Nós adicionamos a ele, então ele tem o deslocamento porque, por padrão, é da localização 000 da nossa palavra Então esse é o nosso local final para você ver melhor. Quero habilitar o desenho do tipo de livro em um quadro. E feito isso, se você atropelar o jogo, não, você pode ver que ele está iniciando um traçado de linha da ponta da arma até onde está olhando. Você pode ver que parece bom. Ou está atingindo alguma coisa ou se você vai para o céu, não está atingindo nada, certo Se houver aquele quadrado vermelho no final, significa que atingiu alguma coisa, mas se não houver nenhum quadrado vermelho no final, significa que não atingiu nada. E podemos verificar isso com esse golpe de saída. Então, solte o dragão, quebre. Não, temos um bloqueio. Podemos verificar com um galho para ver se atingiu alguma coisa ou não, certo? Então, se atingir alguma coisa, essa verdade acontecerá, e podemos pegar nossa mira e definir a localização da palavra, definir a localização da palavra, certo Em que local até o local em que atingiu aquela coisa, certo? Então, esse ponto de impacto é o local em que esse traçado de linha atingiu algo. Mas se não atingiu nada, o que você quer fazer? Queremos definir novamente a localização da mira com o Controle C e o Controle, copiamos esses dois se não atingir nada, queremos definir a localização dessa mira para rastrear a extremidade, aquela localização final, essa localização final, Isso é exatamente o mesmo que este. Agora, feito isso, se você clicar em compilar e, aqui, alterar o tipo de debuc de sorteio para nenhum e executar o jogo, você pode ver que a mira está se movendo sem sair, e fica incrível . Se você for para Sky, novamente, ela apontará para onde nossa arma está olhando E se cairmos, não importa para onde estamos olhando. A mira está mudando sua posição corretamente. Você pode ver, podemos subir e descer, e você pode ver bem, certo? 22. 21 Projétil de tanque: Não, para atirar ou armar, precisamos de um projétil real Então, para criar isso, vamos até a gaveta de conteúdo na pasta Blueprint, quero clicar com o botão direito do mouse, criar uma classe de blueprint do tipo de ator e chamá-la de bloco do projeto de tanque BP Ok, projétil de tanque BP. Vou clicar nele para abri-lo. A primeira coisa que quero fazer aqui adicionar uma colisão esférica, certo? Eu quero colocar isso como raiz aqui. O raio da esfera, eu quero diminuí-lo para 16, certo, porque é muito grande por padrão E com isso, clique na colisão esférica, e aqui, clique em adicionar e procure por uma malha estática esférica, certo? É isso mesmo. O tamanho é muito grande. Deixe-me renomeá-lo para malha estática esférica, certo? E o tamanho disso, eu quero diminuí-lo. Ao clicar aqui, quero diminuí-lo para 0,25, fique dentro dessa seção de colisão Não, o que eu quero fazer é deixar isso muito melhor porque, no momento, é apenas uma malha branca estática, certo? Então, para fazer isso, eu quero ir para a gaveta de conteúdo, ir para a pasta Tank e, aqui, criar uma nova pasta, e eu quero chamá-la de materiais materiais, certo? Clique duas vezes nele para abri-lo. Clique com o botão direito aqui, crie um material. Eu quero chamá-lo de projétil de tanque. Está bem? Cachorro, clique nele para abri-lo. Agora aqui temos nosso material. Para alterar a cor base, basta clicar aqui e alterar a cor. Mas a melhor maneira de fazer isso é com Tri Vctor constante que é como uma cor, e podemos conectá-lo à cor base Agora aqui, mudando a cor para vermelho, podemos mudar isso para vermelho, e isso nos dará vermelho aqui, certo. Agora, com isso, vamos salvar e ir até nosso projétil de tanque e trocar o material por projétil de tanque Não, você pode ver que é vermelho, mas eu quero que brilhe um pouco Para que algo brilhe dentro de um material, podemos multiplicar a cor base por um valor muito grande, como 100, e conectá-la à cor emissiva Uma cor missiva nos dará um brilho. Certifique-se de clicar em Aplicar e salvar. E saiba que se você for até o Tank Projétil, você pode ver que ele está brilhando Não, com isso feito, a aparência é boa, mas não está se movendo. Vamos adicionar um movimento de projétil aqui para que ele se mova Pesquise o movimento do projétil e coloque-o lá para ver a velocidade inicial, eu quero colocá-lo em 25.000 e o traje máximo quero colocá-lo em 30.000 É isso mesmo. Certifique-se de compilar e salvar. Só com isso. Se você clicar aqui, poderá ver o vetor direto com isso. Se clicarmos na simulação, não, você pode ver como ficou. Você pode ver. Não, temos um projétil de tanque 23. 22 Pistola de fogo do tanque: Saiba que temos um projétil. Vamos ver como podemos usá-lo. Para usá-lo, precisamos de uma ação de entrada. Então, vamos até a gaveta de conteúdo, vá até a entrada e, aqui, clique com o botão direito do mouse para criar uma ação de entrada, certo? Eu quero chamar isso de incêndio, certo? Não clique nele para abri-lo. Você não precisa alterar nada aqui, salve-o e feche-o. Não, precisamos mapeá-lo. Vamos abrir o tanque IMC e aqui, adicionar outro mapeamento, descer porque ele o criará aqui embaixo Você quer fazer isso para o iAfre, quando queremos que aconteça sempre que pressionarmos o botão mais à esquerda Botão mais à esquerda, coloque-o lá e salve-o. Agora, se você for ao BP Tank aqui embaixo , clique com o botão direito do mouse em pesquisar por AFire, Com isso, sempre que pressionamos o IFR, queremos desovar ou Portanto, procure um ator de span da turma. O ator que você deseja criar é chamado de BP. Projétil de tanque, certo? O posicionamento que você deseja criar está na ponta da nossa arma. E como podemos fazer isso, se você se lembra, usamos um soquete lá, então podemos colocar nossa malha aqui também, obter nossa malha e obter a transformação Get socket Pesquise por Get socket transform, o espaço de transferência deve ser uma palavra e o nome do soquete, podemos simplesmente copiar e colar isso em um soquete de junção Controle C para copiá-lo e colá-lo para este, certo? A transformação disso é muito importante para nós, pois se você tivesse compilado um jogo Runo para salvar, não, vamos apertar o botão mais à esquerda Você pode ver que isso é legal. Mas podemos fazer isso muito rápido, e há um problema. Você pode ver que sempre que atiramos em nossa arma, a posição da mira também está mudando O motivo é porque essa mira está colidindo com Então, vamos ver como podemos corrigir isso. Para corrigir isso, quando estamos definindo a posição de nossa mira, queremos ignorar os projéteis Então, como podemos fazer isso, podemos obter todos os atores de uma classe de tipo de projétil de tanque BP Isso nos dará uma matriz de todos os projéteis, e podemos fazer com que esse traçado de linha os ignore. Só assim, se compilarmos e executarmos, não, dá para ver que quando fotografamos a mira não muda em nada de posição Não, estamos atirando ou atirando, mas há um problema. Podemos ter muitos deles. Isso é um problema. 24. 23 Efeito visual da arma: Há muitos problemas com o disparo ou a arma. Uma delas é que podemos atirar um atrás do outro muito rápido. Então, precisamos de um sistema de recarga. Para fazer isso, quero criar um booleano e chamá-lo de can shoot E com essa variável que é um Bollen, queremos verificar se devemos ser capazes de atirar ou não Por padrão, queremos que ele esteja ativado. Então, poderemos atirar, certo? Vamos criar um pouco de espaço. Primeiro, verificamos se tiro foi verdadeiro com o galho, ok? Se pudermos filmar um caso verdadeiro, você pode atirar, certo? Mas depois de atirar, você não deve mais ser capaz de atirar. Então, definimos como falso, mas precisamos torná-lo verdadeiro em algum momento, certo? Então, usamos um cronômetro. Então, use um cronômetro por evento, certo? Depois de 2 segundos, queremos dizer que você deve ser capaz de atirar novamente, certo? Precisa de um evento. Então, vamos criar um evento personalizado para isso. E eu quero chamá-lo, pode atirar de novo ou o que você quiser chamar. Não, depois de 2 segundos, esse evento acontecerá, e queremos fazer a lata disparar novamente, certo? Só com isso, se clicarmos em compilar, salvar e executar, não, você pode ver se eu atiro, depois de 2 segundos, podemos filmar novamente. Você pode ver cada dois segundos, nós podemos atirar. Isso é tudo que precisamos fazer. Não há próxima coisa que queiramos fazer. Sempre que atiramos, não há visualização do disparo, certo? Precisamos de um pouco de fumaça. Então, para fazer isso, depois de gerarmos ou projetarmos o que você quer fazer Vamos abrir um pouco de espaço aqui. E aqui, o que eu quero fazer é criar uma dose de Niágara Então, digamos que o sistema de desova está conectado. Desta vez, quero usar anexo. Agora, com isso, precisamos escolher nosso sistema Nagara para desovar E o sistema Nagara que você deseja gerar é chamado NS e é dez T 72 B. Basta dizer que não, queremos anexá-lo a Eu quero anexá-lo à nossa malha. Então pegue a malha e conecte-a para prendê-la ao ponto. Não, é necessário anexar o nome do ponto, o nome do soquete que podemos obter daqui, certo? Arma um, soquete na ponta da nossa arma, coloque-a aqui E com isso, o tipo de localização, queremos alterá-lo para manter a posição da palavra, e precisamos alterar a localização e a rotação. E como podemos obter isso, podemos obtê-lo da transformação do soquete ponta do orgun no soquete que está na ponta do orgun, possamos quebrá-lo, quebrá-lo e usar a localização e a rotação dele aqui quebrá-lo e usar a localização e . É isso mesmo. Isso é tudo que precisamos fazer. Vamos apenas compilar e executar Agora, se você atirar, você pode ver que há uma fumaça presa na ponta da arma. Então, depois disso, se mudarmos a rotação da torre superior, você pode ver que a fumaça parece muito boa Você pode ver isso. Isso parece bom. cada 2 segundos, podemos atirar por cima da arma, e agora temos efeitos visuais para eles. 25. 24. Adicione torque ao disparar: Não, eu quero adicionar mais afixo para fogo ou arma. Vamos ver como podemos fazer isso. Para fazer isso, quero abrir mais espaço aqui. Em primeiro lugar, quero adicionar um som e usar o span sound no local. A localização, podemos apenas usar a localização do nosso ator. Consiga um ator. Localização, isso é mais do que suficiente porque é o som. Não precisamos colocá-lo na ponta da arma. Claro, você também pode fazer isso. O som que queremos tocar é chamado de sinal IS Cannon Fire, certo? É isso mesmo. Não, com isso, é compilar. Salve e execute. Claro. E isso soa incrível, certo? É isso mesmo. Agora eu quero adicionar mais efeitos a ele. Sempre que ultrapassamos o limite, queremos adicionar um pouco de torque para trás, Deixe-me mostrar para você. Você vai entender isso. Novamente, precisamos de mais espaço aqui. O nó com o qual podemos fazer isso é chamado Torque em raio com ou malha Então, adicionamos torque à malha superior, certo? Não, primeiro, ele precisa de um torque. Digamos que cada vez 100, certo? Para qual osso? Deixe-me ir para Okeleton. Quero adicioná-lo ao conjunto de cartas. Então, clique com o botão direito nele, copie o nome do osso e adicione-o aqui. E com isso, queremos mudar a aceleração. Então habilite isso. Agora, com isso, se formos compilar e rodar, se filmarmos, você pode ver isso avançar Está na direção errada, mas está funcionando bem. Se formos para a direita, novamente, você pode ver porque colocamos 100 no y, não importa onde estamos filmando. Isso vai seguir em frente. Você pode ver que podemos mudar isso para -100 e na compilação. Não, com isso, se devêssemos, não, você pode ver que vai retroceder sempre que deveríamos Se formos para a direita e atirarmos novamente, ele retrocederá, certo? Isso não parece bom. Se for bom para você, tudo bem. Você pode usá-lo, mas eu quero mostrar para você verificar a direção em que estamos atirando e adicionar um pouco de torque para trás, certo? Então, para fazer isso, precisamos calcular esse torque de onde para onde ele deveria estar, certo? Para fazer isso, novamente, eu quero usar over mesh, ok? Eu quero obter a transformação do soquete. Quero transformar o soquete da torre superior para ver para onde a torre superior está olhando Aqui, quero pesquisar torre para copiar o nome junta da torre, copiar nomes de ossos Com isso, obtemos a transformação da junta superior da torre. Onde está sua mandíbula, para onde está olhando. Agora, com isso, há um nó chamado direção de transformação. Procure a direção da transformação. E com isso, queremos adicionar um pouco de torque ao Y, por exemplo, -25 porque 100 é demais, e usar isso como torque Só com isso, se você tivesse compilado, salvo e executado, não, se estivermos olhando para frente e filmando, você pode ver que isso vai retroceder um pouco Mas se formos para a direita e atirarmos , não, você pode ver que está indo dessa maneira. Novamente, se recuarmos e atirarmos, você pode ver que ele avançará Novamente, se você for pelo lado esquerdo, ele deve ir para a direita. Consegue ver? Não, também nas direções, se você adicionar algum torque ao corpo do nosso tanque. E isso, eu acho, parece incrível. 26. 25 Recuo do fogo: Não, eu quero fazer ou demitir Ogun parecer muito melhor. E quem eu quero fazer isso, eu quero fazer isso com um plano de animação. Vamos ver. Se formos até nossa malha esquelética e procurarmos uma junta de arma, deixe-me mostrar algo para você Aqui, o que eu quero fazer toda vez que estamos longe de uma arma, eu quero mudar a posição da arma desta forma. Então, toda vez que disparamos, queremos que essa arma vá para frente e para frente desse jeito, certo? Isso parece bom, certo? Vamos ver como podemos fazer. Para fazer isso, eu quero ir para o tanque ABP e, novamente, vamos abrir um pouco de espaço Eu quero usar um desses nós. Então, é chamado de modificar osso. Nós o usamos muito. Eu não quero mudar a rotação. Então, vamos simplesmente girar e não expô-la como um pino. Não quero alterar a escala, então não a exponha como um alfinete Eu quero apenas mudar a tradução. Portanto, acrescente à existência e altere o espaço de tradução para o espaço do osso original. Quero escolher ou modificar essa é a nossa arma. Junta de arma. Agora, com isso, o que eu quero fazer é clicar com o botão direito do mouse na tradução e dividir as faixas. Queremos mudar o X. Vamos ver. Vá aqui, alteramos o X two -20 e iniciamos a compilação, você pode ver que ele entrará Depois disso, se você colocar 20 lá dentro, ele sairá. Você pode ver que se você colocar zero lá, ele ficará na posição correta. Então, queremos mudar a localização X disso, certo? Então, precisamos mudar a tradução. X sempre que estamos atirando por cima de uma arma, e como podemos fazer isso, precisamos de uma variável para tradução, X dessa arma, certo? Então, para fazer isso, eu quero ir para o BP Tank. E sempre que disparamos sobre uma arma, aqui, eu quero usar uma linha do tempo, então adicione uma linha do tempo para mudar a posição dessa arma, certo? Então, na linha do tempo, eu quero chamar isso de recuo Relembre o cronograma. E cada vez que disparávamos, queríamos jogar do início, não apenas jogar, jogar do início, certo? E, não, vamos entrar nessa linha do tempo e criá-la O comprimento dele, eu queria ser 0,12, certo? É mais do que suficiente. Adicione uma trilha de fluxo e, aqui, é apenas 0,12 Clique com o botão direito do mouse para adicionar a chave no momento zero. Queremos que seja zero, certo? E adicione outro quadro-chave aqui. E no tempo 0,12, queríamos chegar a um E para que pareça muito melhor, deixe-me clicar aqui para ampliar. Quero selecionar os dois, clicar com o botão direito em um deles e clicar em Auto. Então, isso nos dará uma curva, curva bonita como essa. Agora, o nome dessa faixa, eu quero que seja valor de recuo, certo? E agora, o cronograma está bom. Vamos apenas ir ao evento. Temos valor de recuo Podemos clicar com o botão direito do mouse nela, promovê-la a uma variável e a nomenclatura é boa Vamos dar a ele o pino de execução e pronto. Temos um valor de recuo que mudará de 0 a 1 em 0,12 segundos Então, só com isso, vamos compilar e salvar, vá para o ABP Precisamos obtê-lo primeiro, vá para o gráfico de eventos. E aqui, temos o tanque de BP no final, queremos colocar o tanque de BP aqui e obter o valor de recuo Recuo obtém o valor do recuo. E com isso, quero promovê-lo para variável. A nomenclatura é boa. O valor do recuo é mais do que suficiente Vamos dar isso e saber que, feito isso, sabemos que o valor do recuo é o valor 0-1 Então, precisamos multiplicá-lo por algum valor. Então, obterei o valor do recuo, multiplicarei por, por exemplo, -25 e conectarei Agora, vamos ver o que acontecerá se compilarmos e executarmos. Agora, se atirarmos, você pode ver que a arma vai retroceder. Basta olhar para isso. Você pode ver. Se filmarmos aqui, é claro, você pode ver corretamente, mas está acontecendo. Você pode ver isso agora. Se atirarmos, ele vai retroceder, certo? Sempre que atirarmos, ele retrocederá. Não, isso parece bom, mas podemos acrescentar mais. Então, se formos para o nosso tanque de BP e nesse recuo, podemos adicionar mais, certo Por exemplo, vamos mudar para 0,3, certo? Então, em 0,12, segundo, ele alcançará um, ele voltará E depois disso, queremos levar algum tempo para voltar ao zero. Então, adicione outra chave. Então, no tempo 0,3, queremos que ele volte a zero, e ele também tenha uma curva. E você pode ver que acabamos adicionar outro ponto em nossa linha do tempo, podemos adicionar mais animação a ela, certo? Então, agora, digamos que se você atropelar o jogo e atirar, você pode ver? Não, isso parece muito melhor. Ele vai retroceder e depois disso, seguir em frente. Você pode ver isso? Isso parece incrível. 27. 26 Recarregue a barra de progresso: A próxima coisa que você quer fazer, sempre que atirarmos ou atirarmos, parece bom, mas não temos nenhum sistema de recarga, certo? Não sabemos quando podemos atirar ou atirar, então precisamos adicionar um sistema de recarga Para fazer isso, quero ir até nossa mira WBP e adicioná-la aqui, um sistema de Para fazer isso, eu quero usar uma barra de progresso. Então, adicione uma barra de progresso ao nosso painel Canvas e você poderá ver que ela está no canto superior esquerdo. Precisamos colocá-lo no meio. Então, coloque-o no meio, mude a posição X e a posição Y para zero. Novamente, o alinhamento, queremos que esteja no meio. Portanto, 0,5 para X e Y de alinhamento, você pode ver: Não, a barra de progresso está no meio ou na tela Eu quero mudar o tamanho X para 15 e o tamanho Y para 100, certo? E eu quero posicioná-lo 90 unidades para a direita. É isso no lado direito. Agora, com a porcentagem, você pode ver, ela mudará da esquerda para a direita, se for de zero a um, certo? Se for zero, significa que está vazio. Se for um, significa que está cheio, certo? Mas eu não quero esse tipo de preenchimento de barra da esquerda para a direita. Eu quero que seja de baixo para cima, certo? Agora, se você alterar essa porcentagem, poderá ver como ela se parece. Nas aparências, quero mudar a cor. Eu quero colocá-lo em algum lugar aqui. Então, cor cinza como essa. Não, acho que parece bom. Vamos mudar a porcentagem. Acho que parece bom, mas você decide qual cor quer usar. Não, quero nomear essa barra de progresso para recarregar. E queremos que seja uma variável para que possamos alterá-la dentro do nosso tanque de BP. Não, temos nossa barra de progresso para recarregar. Eu quero ir para o gráfico, e aqui, eu quero usar interfaces para atualizar essa barra de progresso de recarga, diretamente para interfaces, eu quero ir para a gaveta de conteúdo, ir para a pasta Tank e clicar com o botão direito aqui, criar uma nova pasta, e eu quero chamá-la de interfaces, Clique nele para abri-lo aqui, clique com o botão direito, vá para o Blueprint e eu quero adicionar a interface do Blueprint Quero chamá-la de interface BPI for Blueprint e vou chamá-la de interface crosshair Está bem? Interface Crosshair Clique nele para abri-lo. Eu estou aqui. A função que você deseja criar é chamada set reload progress Barra. Defina a barra de progresso de recarga e ela precisa de uma entrada Então, vamos adicionar uma entrada do tipo float. E eu quero chamar esse valor de recarga de entrada, certo? Valor de recarga Então, o que é essa interface? Essa interface é uma forma de comunicação entre dois tanques Blueprint Blueprint e Blueprint Crosse e Blueprint Crosse Então, vamos ver como podemos usá-lo. Para usá-lo, precisamos implementar essa interface dentro do blueprint de destino Por exemplo, DBP crosshair, aqui, precisamos ir para a configuração Temos interfaces aqui. Precisamos adicioná-lo. É chamada de interface BPI crosshair. Agora, com a implementação de nossa interface de mira BPI, ele criará um evento para nós chamado SetOAdggress Bar que SetOAdggress Então, com essa interface, podemos adicioná-la a qualquer planta que temos e, com ela, podemos nos comunicar entre duas plantas Vamos apenas clicar nesta barra de progresso de recarga definida. Ele criará um evento para nós chamado evento, definirá a barra de progresso de recarga E com isso, podemos obter a barra de progresso de recarga e definir uma porcentagem nela Defina a porcentagem, certo, com o valor que obtemos desse valor de recarga A porcentagem, como você sabe, é um valor de 0 a 1. Não, com isso feito, se você for ao nosso tanque de BP, vamos para o gráfico Avent. E aqui, tínhamos um cronograma para o recuo. Quero criar outro cronograma para recarregar. Então, vou adicionar um nó de sequência aqui. Então, temos vários pinos de execução e, em seguida, zero, estamos apenas jogando a linha do tempo ou recuo e, em seguida, um, queremos adicionar outra Para recarregar, basta chamá-lo de reload, certo, que você deseja jogar desde Então segure a tecla Control e desconecte-a da reprodução e coloque-a, jogue desde o início e de dentro aqui porque o tempo de recarga é de 2 segundos, a duração deve ser de 2 Adicione a faixa de fluxo da trilha que eu quero chamar esse valor de recarga, certo? E eu quero adicionar um quadro-chave no tempo zero, queremos que seja zero Adicione outro quadro-chave no segundo tempo, queríamos ir para um Se você clicar aqui e aqui, poderá vê-lo corretamente. Queremos que seja linear, então isso é mais do que suficiente. Agora, vamos ao gráfico de eventos novamente. Não, com isso, isso nos dará um valor de recarga. E com isso, podemos obter nossa mira porque a barra de progresso de recarga está dentro ou está cruzada aqui, certo Está aqui. Não. Queremos obter o widget de usuário disso, widget de usuário, obter o widget de usuário primeiro E depois disso, podemos definir a recarga. Barra de progresso, certo? A função que criamos dentro das interfaces web. Com isso, podemos comunicar entre esses dois projetos o tanque BP e o cruzamento WBP Ambos são como uma planta, certo? Na atualização, queremos atualizar o valor de recarga com esse valor de recarga que criamos dentro dessa linha Agora, vamos ver o que vai acontecer. Se atropelarmos o jogo, não, podemos ver uma barra de progresso no lado direito. Se fotografarmos e conseguirmos enxergar, demorará um pouco para ir até uma. Novamente, fotografe, você pode ver o tempo de recarga. Isso parece incrível, certo? Não, você pode ver que quando rodamos nosso jogo por padrão, é zero. Portanto, precisamos colocá-lo em um por padrão. Então, sempre estará em um quando jogarmos nosso jogo. Então, para fazer isso, há várias maneiras de fazer isso, mas podemos acessar o cruzamento do WBP no gráfico Podemos definir essa pessoa como uma na construção do evento ou na pré-construção não importa qual você usa, coloque uma lá. É isso mesmo. Agora, se você atropelar o jogo, por padrão, você pode ver que é um, e se você deveria, ele vai para zero. Isso parece incrível. Temos uma barra de progresso de recarga 28. 27 Explosão de projétil: Não, estamos atirando ou atirando ou sobrecarregando, mas não está tendo nada Vamos ver como podemos fazer isso. Para fazer isso, quero ir ao BP Tank Projectile, acessar o gráfico de eventos clicar no movimento do projétil Eu quero descer até que tenhamos uma parada sem projéteis. Quando essa parada impecável aconteceu, significa que atingiu alguma coisa Isso nos dará resultados de impacto. Vamos quebrá-lo para ver o que ele tem. Não importa se atingiu alguma coisa ou não, está parado. E nesse local de parada, podemos gerar o sistema no local, certo? E o sistema inaugural que eu quero criar é chamado de Dust Explosion one Certo, coloque aí. Eu preciso de uma localização. Eu posso obter a localização assim e ela precisa de uma rotação. Podemos obter uma rotação a partir do impacto normal podemos dizer fazer uma rotação a partir de X, por exemplo, certo, colocá-la lá. Agora, se você atropelar o jogo, verá que, ao atirar em algo, ele não está parando e vai para o subsolo. É porque quando clicamos em uma esfera, não definimos a predefinição de colisão Está sobrepondo tudo, mas queremos que ele bloqueie Agora com isso ativado, se você compilar, atire. Não, você pode ver, há uma explosão. Você pode ver. Legal. Não, com isso feito, com aquela explosão, precisamos tocar algum som. Então, para fazer isso, novamente, aqui, eu quero gerar som no local, certo? E desta vez, o som que queremos tocar se chama ES grenade Explosion, certo? E a localização desta vez é muito importante. Podemos obter esse local e conectá-lo aqui, mas também quero adicionar a configuração de atenuação Então, se atirarmos para longe, não devemos ouvir o som, certo? Então, para criar essa configuração de atenuação, queremos ir para a gaveta de conteúdo, ir para o tanque, e eu quero clicar com o botão direito, criar uma nova pasta e colocar o som lá Não, eu quero clicar com o botão direito do mouse, ir para o áudio e criar uma atenuação de som Eu quero chamá-lo de S A para atenuação do som. Explosão, certo? Explosão. Vou clicar nele para abrir. A única coisa que eu quero mudar aqui é diminuir a distância. Eu quero colocá-lo em 50.000, para que possamos ouvi-lo um pouco de longe, certo? Tem um raio interno que se estivermos dentro desse raio interno, ouviremos completamente Mas 400-50 mil, isso diminuirá linearmente seu volume É isso mesmo. Vamos pegar nosso projétil de tanque e colocá-lo lá Ou você pode simplesmente clicar aqui e colocar lá, certo? Agora, com isso, vamos compilar e executar. Se atirarmos, podemos ver que ouvimos o som, mas se estiver longe, não poderemos ouvi-lo. Mas se estiver um pouco longe de nós, como aqui, você pode ver que podemos ouvi-lo, mas com volume menor. Agora você pode ver que há algum projétil lá e ele não está destruído Então, o que precisamos fazer é destruí-lo depois de tudo, certo? Então destrua o ator e saiba que se você atropelar o jogo, atirar e poderá ver: Não, ele está destruído e não estará lá, mas a explosão acontecerá, certo? Atire, posso ver. filmando e tudo funciona bem. Mas também queremos fazer outras coisas aqui. Queremos poder aplicar alguns danos. Então, antes de destruí-lo, queremos aplicar desta vez um dano radial com queda, certo Então, a explosão de um tanque é como uma esfera, certo? Portanto, esse dano radial é mais do que suficiente. O dano básico, eu quero colocar, por exemplo, 25 lá. O dano mínimo que eu quero é dez. Então, dano em um círculo, significa que se você estiver dentro desse círculo interno, significa que ele aplicará danos em torno de 100%, certo? O raio interno, eu quero colocar 100 lá assim, e o raio externo, eu quero que seja 500, certo Então, se você estiver dentro desse raio externo, o que acontecerá é que danificará cerca de dez unidades, certo, o dano mínimo Mas se estivermos 100 unidades perto da explosão, isso nos causará 25 de dano. E também há uma queda de danos aqui, que é expoente de um dano do raio interno do dano ao dano ou raio Quanto, quando chegamos ao raio ou, menos danos ele causa Eu quero colocar um lá para que nada aconteça porque ainda não me temos. Não, com isso, se ouvirmos compilar, isso nos dará um erro porque precisamos fornecer uma localização, a origem de onde esse dano causado deve acontecer E também podemos usar esse local para este. É isso mesmo. Não, se iniciarmos a compilação, ela será compilada 29. 28. Som do motor: Não, queremos melhorar um tanque com alguns sons. Eu não fiz os sons até agora porque quando há um som, você não consegue me ouvir direito. É por isso que não, eu quero adicionar o som. Então, quando estamos nos movendo, devemos ter algum som do motor, algum som da trilha e tudo isso, certo? Então, para fazer isso, vamos ao BP Tank. O que eu quero fazer é clicar com o botão direito do mouse aqui, fechar outras guias, para que fique um pouco mais limpo para que você possa ver tudo Agora, aqui, precisamos criar um som de motor. Para fazer isso, eu quero ir para a gaveta de conteúdo, som da pasta Tank e clicar com o botão direito aqui, ir para Áudio, criar um Metasund Eu quero chamá-lo de MS para MetaSundEngine ou Tank engine. É melhor chamá-lo de motor de tanque. Clique com um ponto para abri-lo. E aqui, primeiro e primeiro, queremos criar um player de ondas. Com o jogador, mono é mais do que suficiente. Precisamos conectar o OT mono ao OT mono. E agora, para a onda que você quer jogar, eu quero jogar o motor em marcha lenta Só com isso, se clicarmos em play, podemos ver que é um ídolo de motores, certo? Mas primeiro e primeiro, quero que esteja em loop, para que sempre seja jogado e, com a mudança do tom, queremos imitar a rotação, imitar o aumento da velocidade, certo Então, se a velocidade aumentar, podemos colocar dez, podemos colocar dez para a mudança de tom, e agora, se você jogar, você pode ver, é como se estivéssemos nos movendo rápido, certo? Então, com base na RPM do motor W, queremos mudar a mudança de tom, certo? Então, para fazer isso, precisamos de uma entrada. E podemos criar uma entrada aqui. Eu quero chamá-lo de RPM para rotação por minuto ou rodada por minuto ou qualquer outra coisa. Este é o RPM do nosso motor. Todos os carros têm isso, certo? Então, podemos obter esse RPM e, com isso, podemos mudar a mudança de tom, certo? Mas vamos ver qual é a RPM do motor, RPM máxima. Para fazer isso, vamos ao BP Tank clicar no movimento caótico do veículo com rodas E aqui, pesquise o motor, e você pode ver, o RPM máximo do nosso motor é 4.500 Então, o RPM do nosso motor é 0-4500, certo? Agora, você pode ver, podemos alterá-lo de 0 a 4500. É só para testar. Não, sempre que o RPM for zero, queremos jogar a mudança de tom de zero, por exemplo, certo? Mas sempre que o RPM for 4.500, queremos mudar o tom para dez Não queremos receber mais do que dez. Então, o que podemos fazer é fixá-lo no alcance ou mapeá-lo no alcance, no alcance mapa. É isso mesmo. Agora, se o intervalo de entrada fosse zero assim, assim, queremos colocar zero na saída para a mudança de tom, certo? Mas se a entrada, essa entrada, essa RPN era de 4.500 Se for 4.500, queremos colocar dez como saída. Está bem? Então, não, vamos testar isso. Se corrermos, você pode ver que se colocarmos isso em zero, ele jogará no poço de zero. Mas se você aumentar o RPN, você ouve? É como se o RPM tivesse aumentado, e agora queremos usar esse RPM para alterar a mudança de tom. E outra coisa que eu quero fazer com esse RPM é mudar o volume. E como podemos mudar o volume, podemos usar um mixer aqui, mixer mono, certo? E podemos conectar o ot mono aqui e conectar a saída dele aqui Agora, queremos verificar o RPM novamente. Podemos obter o RPM novamente aqui. E, novamente, queremos mapeá-lo, mapear um valor flutuante Se o valor estiver entre 0 e 4500, certo? Mas o volume, queremos alterá-lo de 0,3 para um. É isso mesmo. Agora, se você conectá-lo ao ganho zero por alterar o volume disso em zero, sempre digamos que, se você ultrapassar o RPM do jogo para zero, o ganho será de 0,3. Mas se você aumentar o RPM, verá que o tom também aumentará porque os dois são iguais e o volume também será o mesmo, certo? Por padrão, queremos colocá-lo em zero. Não, o metasund está pronto, podemos salvá-lo e usá-lo em nosso tanque de BP Então, agora aqui, eu quero clicar na nossa malha e adicionar áudio aqui, e eu quero chamá-la de motor, certo? Então, com isso, se você clicar em nosso motor, podemos clicar aqui e escolher nosso motor tanque Ms. Só assim, se você clicar em compilar porque não estamos alterando o RPM, ele sempre tocará esses sons com mudança de tom de zero e volume de 0,3 Se você se mover, nada mudará. Você pode ver, mas queremos verificar o RPM do nosso veículo e alterar o RPM dentro desse som do motor. E como eu quero fazer isso, queremos fazer isso em E&T. Então, a cada quadro, verificamos qual é o RPM e mudamos o som também Para fazer isso, como fizemos para animação de faixas e atualização da posição da mira, queremos criar outro evento, um evento personalizado para gerenciamento de som Então, aqui, vou clicar com o botão direito do mouse em pesquisar evento personalizado e quero chamá-lo de gerenciamento de som. Gerente de som, certo? E depois disso, queremos colocá-lo aqui no evento tick. Então, aqui, Dragon Drop, procure por gerenciamento de som, certo? Então, é como se tudo o que fizéssemos neste evento, nesse evento personalizado, fosse como conectá-lo ao event tick. Isso vai acontecer 60 vezes ou 30 vezes por segundo, certo? Então não, com isso, nós pegamos o motor. E como o RPM aqui é apenas um valor flutuante, podemos dizer que defina um parâmetro flutuante Há dois deles aqui. Um é para a interface do controlador de parâmetros de áudio e o outro é para o componente de áudio alvo . Nós queremos esse. O alvo é o componente de áudio, certo? É isso mesmo. Certifique-se de selecionar o correto. Não, eu preciso de um nome. O nome é RPM. É isso mesmo. O nome exato que usamos aqui, e agora queremos alterar o float desse float RPM com esse valor Mas como podemos obter o RPM. Podemos obter nosso componente de movimento do veículo Chaos Wheel e, com isso, podemos obter a velocidade de rotação do motor. Esse é exatamente o RPM, certo? Obtenha a velocidade de rotação do motor. Se você quiser ver melhor, usarei um anel de impressora aqui para ver como o RPM está mudando dessa forma com o anel da impressora Agora, se você atropelar o jogo, verá que, por padrão, o RPM é 800, se movermos , ele aumentará até atingir 4.500 Você pode ver que vai ficar muito, muito perto disso. Agora, com isso feito, você pode ver que quando paramos e o pino diminui, o som também diminui. O volume do som é diminuído e a mudança de tom também. Se nos movermos, você pode ver o volume está aumentando e o deslocamento do poço também está aumentando. Então, isso está funcionando bem. E você pode ver que, se voltarmos, novamente, funcionará bem porque o RPM ao retroceder também está funcionando Isso também mudará, certo? Não, em seguida, queremos tocar o som da faixa também, certo? Agora, temos apenas o motor. 30. 29 Som das faixas do tanque: Não, queremos fazer o som da faixa. É um pouco diferente porque queremos que seja baseado na velocidade, não no nosso PM. Então, primeiro, deixe-me ler esse anel de impressora. Não precisamos mais dele e abrimos espaço, certo? Não, temos um metassom para motor. O metassom para faixas é exatamente o mesmo Então clique nele, controle D duplique, e eu quero chamá-lo de MS para metasundtank, track, certo Doc, clique nele para abri-lo, a entrada eu quero que seja velocidade, velocidade, não mais RPM. E o valor de uma velocidade não é 0-4500. Então, vamos ver qual é a velocidade máxima. Se formos ao BP Tank, o que eu quero fazer é usar um anel de impressora aqui Na eventiq porque esse gerenciamento de som está na eventiq. Não, eu quero pegar o componente de movimento do veículo com rodas caóticas , e quero fazer com que ele avance, a velocidade dele, avance, uma velocidade em milhas por hora, certo? E como podemos ir para trás e para frente, quero obter o absoluto disso e, depois disso, mostrá-lo com este anel de impressora . Vamos ver. Se você avançar, verá que a velocidade máxima é 44, direita ou 43. Saiba que sabemos a velocidade máxima, vamos até a pista de tanques MS. E aqui, digamos que a velocidade seja de 0 a 45, por exemplo. Mas a faixa OT, eu quero que esteja entre 0,9 e 1,5. Eu não quero mudar muito essa mudança de tom, certo? E para o volume do nosso trilho de tanques, sabemos que é de 0 a 45, por exemplo, certo? Está perto o suficiente. Eu quero que o intervalo de saída seja 0-1. Então, o que acontecerá com isso? Se a velocidade for zero, isso nos dará o volume zero. Não há nenhum som de trilha de tanque, certo? Mas se for 45, o volume será um. Mas não faz sentido dessa forma, certo? O que eu quero que aconteça que o intervalo entre 0 e 10 Portanto, se a velocidade for de 0 a 10, a faixa de saída será de 0 Mas se a velocidade for superior a dez, o alcance e o volume não mudarão mais do que isso. Eu quero quando a velocidade é de dez a 45, eu quero que o volume seja um. É por isso que eu coloquei o intervalo de 0 a 10, certo? Vai soar muito melhor. Se você quiser colocar de 0 a 45, você também pode fazer isso e testar com isso Agora, com isso feito, precisamos mudar a ação da onda do motor em marcha lenta para a trilha do tanque, certo? Agora, se clicarmos em salvar, sabemos que a velocidade é de 0 a 45. Digamos que sim. Se corrermos, você pode ver que, quando a velocidade for zero, não ouviremos nada. Mas se você aumentar isso, vê? Não, podemos aqui. 0-10, o volume mudará e, depois das dez, o volume não mudará mais. E é assim que queremos que seja. Agora, vamos ver como podemos implementar isso. Para fazer isso, vamos ao BP Tank. E aqui, eu quero clicar na malha, adicionar um áudio aqui, e eu quero chamá-lo de Track. Ok, som da faixa. E com isso, o que queremos fazer é escolher nossa pista de tanque de metasundo, certo ? Basta colocá-lo lá. Agora, queremos alterar o parâmetro de velocidade dentro do som dessa faixa com a velocidade de avanço. Não queremos apenas mostrar isso. Vamos apenas deletar essa sequência de impressões e pegar nossa faixa e, dentro dela, queremos definir o parâmetro float nela O parâmetro de flutuação que você deseja alterar é chamado de velocidade, certo? E queremos mudar isso com a velocidade de avanço em milhas por hora, certo? Só com isso, vamos compilar e executar. Você pode ver que, como a velocidade é zero, não ouvimos nenhum som da trilha do tanque. Mas se você se mover, não, você pode ver, você não pode ouvir os rastros do tanque. Você para. Você pode ver que as trilhas do tanque não têm nenhum som. Não. Você pode se mover. Veja como é lindo, como soa bem. 31. Widget 30 Tank UI: A próxima coisa que eu quero fazer é mostrar a rotação da torre do tanque com uma interface Para fazer isso, quero ir até a gaveta de conteúdo, acessar os widgets e clicar com o botão direito do mouse aqui, acessar a interface do usuário e criar um modelo de widget Um tipo de widget de usuário. Eu quero chamá-lo de WBP Tank UI, certo? Não clique nele para abri-lo aqui. A primeira coisa que você quer fazer é adicionar um painel Canvas à nossa hierarquia, certo? E sei que queremos uma imagem. Essa imagem, vamos apenas escolher a imagem. Se descermos, basta procurar por Tank. Podemos simplesmente procurar o corpo do tanque. Queremos colocá-lo lá. Agora você pode ver que é elástico Podemos ajustá-lo ao tamanho do conteúdo. E eu quero ancorá-lo no canto inferior esquerdo. Mude a posição para zero e zero para não. Quero alinhá-lo no canto inferior esquerdo. Então, coloque um em Y alinhado aqui, para que você possa vê-lo aqui Sem posição X. Quero colocá-lo em 40 e na posição Y, em -60, certo Então, tem algum espaço desses lados , dessa borda, certo? Não, com isso feito, precisamos nomeá-lo. Eu quero chamá-lo de corpo de tanque. Imagem. Quero duplicá-lo com o Controle D, e quero chamar esse tanque de Torre Não, com esta torre de tanque, primeira coisa que eu quero mudar é a imagem em si. Eu quero colocar uma blusa lá, certo? Você pode ver isso. Não, eu quero posicioná-lo para ficar no meio aqui, bem aqui, certo? Você pode simplesmente posicioná-lo assim, e eu acho que parece bom, certo? Não. Com base na rotação da nossa torre, queremos girá-la, mas como queremos girá-la Se descermos, há uma transformação de renderização aqui que eu quero usar essa transformação para girá-la, certo? Temos um ângulo em que podemos girá-lo. Mas você pode ver que ele girará a partir desse ponto. Eu não quero fazer isso. Eu quero colocar isso em 180 e mudar o ponto de articulação, certo Não, o ponto de pivô é como aqui, certo? Então, eu quero aumentar esse ponto de pivô para aumentá-lo um pouco, como aqui, Agora, se mudarmos esse ângulo, é como se estivesse no meio. O ponto de articulação está no meio. Você pode ver, não, isso parece bom. Então, agora que mudamos o ângulo aqui, podemos dizer, qual é a direção da nossa torre? É isso mesmo. Como podemos fazer isso. A primeira coisa a fazer clicar na Torre do Tanque e torná-la variável Portanto, temos acesso a ele em nosso gráfico. Agora, como fizemos na animação Blueprint, precisamos ter acesso ao nosso tanque de BP, e como podemos fazer isso em uma construção de ventilação, eu quero pegar o peão do jogador, com isso, queremos lançar isso para o tanque de BP E precisa de um pino de execução. Precisamos promovê-los para uma variável, e eu quero nomear essa variável de tanque BPI, certo? Agora, com essa variável no Eventq, queremos atualizar esse ângulo, certo? Para que possamos superar o tanque BP. Em primeiro lugar, queremos verificar se é válido ou não. Portanto, verifique se é válido. Se for válido, primeiro, queremos obter a rotação do controle. E depois disso, queremos ter a rotação do ator, ok? Fizemos o mesmo com o plano de animação com o rotador Delta Queremos fazer o mesmo aqui com o rotador Delta, ele nos dará o ângulo, certo? Conecte a rotação do controle a A e a rotação do ator a B. Agora, com isso abaixado, podemos quebrar isso e, com isso, podemos definir a rotação da torre do tanque Então pegue a torre do tanque, e aqui, queremos definir o ângulo de transformação da renderização Queremos mudar o ângulo, certo? Conecte o Vale do Leste a aqui com esse Ya aqui. Não, vamos apenas dizer isso. Podemos ir até nosso tanque de BP no evento, começar a jogar aqui no evento, começar a jogar Podemos criar esse widget. Então, pesquise por Create Widget, certo. E com esse widget de criação, queremos criar a interface do usuário do Tank e, imediatamente, adicioná-la à janela de visualização, É isso mesmo. Agora vamos compilar, salvar e arredondar novamente. Agora podemos ver se você olha para a direita, você pode ver que a imagem está sendo exibida indo para a direita e para a esquerda. Você pode ver? Não, sabemos se estamos avançando ou retrocedendo Não, estamos olhando para trás e podemos ver a imagem O NQI também está mostrando isso para nós. Isso nos parece. 32. 31 Importar arquivos Arty: Nenhum tanque pode se mover e isso tem alguns efeitos. Eu sei atirar, mas não tenho saúde. Por que não tem saúde e não pode ser destruída porque não temos nenhum inimigo. Então, precisamos adicionar um inimigo aqui. Para fazer isso, há um arquivo Zip na descrição deste vídeo chamado art dot zip. É uma artéria ou algo parecido, então pode atirar em um tanque, certo? Então, faça o download. Coloque-o na área de trabalho à direita, clique nele, extraia ou você pode simplesmente clicar nele. Se você estiver no Windows 10 ou 11, poderá fazer isso. E depois disso, há a pasta RT e, depois disso, há a pasta AssssFolder dentro dela Você precisa arrastá-lo e soltá-lo para extraí-lo, certo? E com isso feito, você precisa ir para o motor AL, ir para a gaveta de conteúdo, ir para a pasta de conteúdo Você pode simplesmente clicar com o botão direito na pasta Conteúdo e pressioná-la para mostrá-la no Explorer. Agora, temos uma pasta de conteúdo do nosso jogo de tanques, certo? Não. Deixe-me minimizar esse. Podemos simplesmente arrastar e soltar o RT dentro da pasta de conteúdo. Deveria ser exatamente assim. Na pasta de conteúdo, depois disso, na pasta RT e depois na pasta de ativos, ela deve ser exatamente a mesma. Porque os caminhos são importantes aqui porque existem algumas partículas de efeitos, você pode ver, temos algumas partículas, temos alguns efeitos visuais o caminho delas deve estar correto. Só que, se você fechar isso, não precisará mais dele. Vamos para o RRELEngine. Agora, na gaveta de conteúdo, você pode ver a pasta de arte lá Não há nada dentro dela. É um bug. Você pode simplesmente fechar RRELEngine e abri-lo novamente. E com isso, se você for até a gaveta de conteúdo, não na pasta RT, há a pasta Assets, há um veículo lá dentro, você pode ver uma malha esquelética Se você clicar duas vezes na malha esquelética, poderá vê-la. Essa é a malha esquelética que queremos usar para atirar em nosso tanque Também existem alguns efeitos visuais. Se você for afixar, verá que está em cascata, não é augúrio, então você também aprenderá a cascata Se você voltar, também há uma malha estática danificada, clique duas vezes nela. Então, sempre que destruímos essa artilharia ou RT, certo? É chamado de artilharia, eu acho. Então nós o chamamos de RT e esse é o destruído. Então, sempre que destruirmos a artilharia, isso acontecerá. Então, agora, temos recursos suficientes para criar nosso inimigo para nossa época. Vamos ver como podemos fazer isso. 33. 32 Plano para a Arte: Não, para criar artilharia ou RT, chamamos isso de RT a partir do Então, vamos para a pasta RT. Já temos uma pasta de ativos lá, mas queremos clicar com o botão direito do mouse e criar uma nova. Eu quero chamá-lo de plantas, certo? Vou clicar nele para abri-lo ou entrar para abri-lo, certo? Clique com o botão direito aqui, crie uma classe de modelo do tipo de ator, e eu quero chamá-la de BP RT, Porque é mais fácil chamá-lo de RT. Vou clicar nele para abri-lo. Aqui, a única coisa que eu quero adicionar é uma malha esquelética, certo? E eu quero colocá-lo aqui. Agora, para uma malha esquelética, clique aqui e escolha K west RTM 777 Basta escolher e colocar lá. É isso mesmo. Essa é a nossa artilharia, certo Não precisamos adicionar nada porque queremos fazer alguma animação com isso. Queremos criar uma classe de anim. Então, para criar isso, eu quero te mostrar uma nova maneira. Você sabe que antes, clicamos com o botão direito do mouse, acessamos Animação e criamos um plano de animação Mas desta vez, quero clicar na malha esquelética e clicar em adicionar aqui para criar um plano de animação para arte, certo adicionar aqui para criar um plano de animação para arte, certo? Ou máquina esquelética Então, ele lhe dirá onde você deseja criar esse novo modelo, você quer dizer em arte em planta, e queremos chamá-la de ABP porque é uma planta de animação Arte, arte ABP, head save e head yes. Então, selecionamos a malha esquelética para isso. Então selecione a malha esquelética para a arte, vá bem, e ela a criará para nós e a abrirá para nós também Isso é legal, certo? E, por padrão, ele o colocará lá porque tínhamos mais aqui. É isso mesmo. Agora, dentro do nosso plano de animação, como sempre, queremos economizar espaço na malha, pose Então, temos acesso a todas as informações sobre ossos, certo? Conectado à pose de saída, nada mudará, mas agora temos um plano de animação, certo? Vamos colocar um deles dentro do nível. Para fazer isso, eu quero ir aqui e colocar um aqui, certo? Você pode ver que não está de frente para nós. Tudo ficará bem. Vamos garantir que você salve tudo, certo? Agora temos um BPRT que podemos começar a codificar para que ele possa atirar em 34. 33 Distância para o tanque: Não, para que a arte possa atirar em nosso tanque, ela precisa conhecer o alvo. Para fazer isso, há muitas maneiras, mas não, quero mostrar uma nova maneira de fazer isso. Quero verificar a distância entre nossa artilharia e o tanque Se for de 5.000 a 20 mil, por exemplo, podemos atirar nele, mas se estiver muito perto de nós, não queremos atirar nele, e se estiver muito longe de nós, não podemos atirar nele Então parece mais natural, certo? Então, para fazer isso no início do evento, o que eu quero fazer é pegar o peão do jogador Obtenha o peão do jogador. E queremos verificar se é o tanque, para possamos usar um tanque fundido para BP porque sabemos que essa artilharia, essa arte, deveria atirar em tanques Então, verificamos. Se o peão do jogador fosse o tanque BP, é nosso alvo Então, podemos clicar com o botão direito aqui, promover uma variável e chamá-la de alvo, certo? Então esse é o nosso alvo. Agora que temos nosso alvo, queremos definir um cronômetro para que possamos atirar nele, certo? Então, aqui, eu quero definir um cronômetro por evento. E desta vez vamos colocar cinco lá. Vamos mudar isso mais tarde e queremos que esteja pronto, certo? cada cinco segundos, esse evento acontecerá para que possamos conectá-lo a um evento personalizado. Então, crie um evento personalizado, e eu quero chamar esse evento de incêndio. Então, a cada cinco segundos, ele vai atirar em um alvo. Mas desta vez, eu não quero atirar imediatamente. Quero verificar a distância entre nossa artilharia e o alvo para ver qual é a distância E para fazer isso, existe um nó chamado distância, certo? Está aqui em cima, vetor de distância. Ele precisa de um V um e em dois, e isso nos dará a distância entre eles, certo? Então V one pode ser apenas a localização do ator, obter a localização do ator. O que isso nos dará é a localização por palavra de nossa artilharia ou arte, certo? Para os V dois, queremos obter a localização do ator alvo Portanto, coloque a localização do ator acima do alvo. Então, o que isso fará, nos dará a distância entre a artilharia e o alvo que está sobre o tanque, certo Então, a cada 5 segundos, quero que esse evento nos dê a distância. Então, vamos usar apenas uma string de impressora. Desta vez, quero te mostrar um truque. Eu quero usar uma nota chamada formatar texto, ok? E aqui, eu quero dizer que a distância até o alvo é um valor, certo? Queremos colocar esse valor aqui. Como podemos fazer isso, podemos fazer isso com alguns colchetes. E aqui dentro, se dissermos distância, certo, isso criará uma fixação aqui que podemos conectar esses dois a ela, certo? E substituirá esses colchetes encaracolados pela distância interna por esse valor Dessa forma, temos uma forma clara de depuração, certo? E dentro dessa impressão, o que eu quero fazer adicionar uma chave para que ela fique e eu possa chamá-la de dist ou qualquer outra coisa Você pode chamá-lo de qualquer coisa, só um nome de sótão aqui Se você atropelar o jogo, não, você pode ver, não a cada 5 segundos, isso deve nos dar a distância. Agora, são 3.000, certo? Se formos para longe, será mais fácil ver as coisas dessa forma. Agora são 5.000. Se formos embora, novamente, você pode nos mostrar, certo? A distância agora é de 9.000. E depois de 5 segundos, novamente, isso nos dará a distância. No momento, são 10.000. Então, como essa artilharia está aumentando e deveria ser assim, não queremos que ela seja capaz de atirar em nosso tanque a curta distância Se estiver longe da artilharia, ele pode disparar contra o tanque, mas se chegarmos muito perto dele, ele não deve ser capaz de atirar em nós, E também devemos ter um alcance máximo, porque ele não deve ser capaz de atirar no tanque a muitos quilômetros de distância, certo? Agora, vamos ver como podemos fazer. 35. 34 Alvo no alcance: Saiba que encontramos o alvo com base na distância e queremos verificar com base na distância se devemos atirar nele ou não, vamos fazer isso, certo? Então, aqui, estamos apenas mostrando a distância, certo? Depois disso, o que eu quero fazer usar uma ramificação aqui para verificar. Se a distância for de 5000 a 20 mil, ele pode atirar em nós, mas se não estiver entre eles, não poderá atirar Assim, podemos obter essa distância e verificar se ela está dentro do alcance. Verificamos se está na faixa de 5000 a 20 mil, certo? Então, se estiver entre esses dois alcances, podemos atirar nele. Então, aqui, digamos que imprima o anel e o fogo. E vamos dar a cor verde para que você possa ver melhor. E em caso de quedas, novamente, vamos usar outra cadeia de impressão, para dizer que não atire para dizer que Ok, e eu quero colocá-lo no vermelho. Então isso significa que você não pode dispará-lo porque está muito longe de nós, certo? Então, não com isso, o que está errado com o jogo. Agora, vamos ver qual é a distância. Se pesarmos, são 3.000, então diz que não é fogo, certo Novamente, não atire porque a distância é de 3.000. Volte não, volte um pouco mais ou não, a distância é de 6.000 e diz fogo Novamente, fogo, a distância é de 6.000. E se nos levantarmos novamente depois de 20.000, ele não disparará contra nós Conhecemos a distância. E agora são 22.000 e mais do que isso. São 27.000 e não será capaz de atirar em nós. Você pode simplesmente alterar esse valor para, por exemplo, 30.000, certo? Então você decide quais valores deseja colocar aqui. Não, com isso feito, precisamos ser capazes de atirar, certo? E não precisamos dessas duas impressões 36. 35 Rotação artística: Saiba que temos um alvo válido no alcance de tiro, precisamos primeiro enfrentar a artilharia em direção ao alvo e depois atirar nele, certo Então, para fazer isso, eu quero ir para o ABP RT em um gráfico. E aqui, há um nó chamado modificar osso. E com isso, podemos girar qualquer osso que você quiser, certo? Então, fizemos isso várias vezes. Mas primeiro, vamos ver qual osso queremos girar. Se você for até um esqueleto de artilharia, você pode ver se você clicar na junta da carta girando isso, podemos dizer para ela girar Apenas com junta rotativa de entalhe. Então, para fazer isso, precisamos desse osso modificado. Aqui, o osso que você deseja modificar é chamado de junção ****, então vamos colocá-lo lá Em seguida, não queremos alterar a tradução, clique aqui, não a exponha como um alfinete e não queremos alterar a escala, então não exponha isso também como um alfinete, mas queremos alterar a rotação E o modo de rotação, queríamos adicioná-lo à existência. Isso é mais do que suficiente. Não, o que queremos mudar aqui é apenas a rotação Ya em torno do eixo Z, certo? Então, clicando com o botão direito aqui, divida um pino de traçado e, para testar isso, o que eu quero fazer é transformar isso em uma variável, e eu quero chamá-lo de valor Ya, certo? Então, com isso, podemos testar a rotação dessa artilharia, certo Não, para testá-lo, vá para o Anim preview Editor e altere o valor ya E com isso, você pode ver a rotação da nossa arma está mudando corretamente. Agora estamos girando isso, mas o que queremos que essa artilharia Vamos pensar sobre isso e faremos isso no próximo vídeo. 37. 36 Preveja onde o tanque vai ficar dentro de um segundo: Não, vamos falar sobre onde a artilharia deve estar voltada. Portanto, temos algumas opções. Primeiro, ele pode enfrentar o alvo, certo? Mas se nosso tanque estiver se movendo e nossa artilharia estiver voltada para o alvo, quando dispara, leva quatro a 5 segundos para atingir o alvo, certo Como o alvo está se movendo, ele não conseguirá atingi-lo de jeito nenhum. Então isso é um problema. Existe um motor sem denari que prediz onde o veículo ou objeto em movimento estará com essa velocidade constante após quatro segundos, por exemplo, há um nó para isso Então, o que você quer fazer é prever onde a fonte estará depois de quatro segundos e fotografar lá E é isso que queremos fazer. Então, para fazer isso, vamos para a BP RT e aqui, eu quero ir para a Eventiq Vamos apenas abrir um pouco de espaço. Há um nó chamado alvo móvel de velocidade sugerida do projétil Ele precisará de um local de partida do projétil e de um ator alvo e, com esses dois, preverá onde o tanque estará após 4 segundos. Isso vai prever isso para nós, certo? Então, o local de início do projétil, sabemos que queremos aparecer sobre o projétil, uma ponta de arte, certo Então, vamos ver. Se formos até um esqueleto, há um soquete aqui que é chamado soquete de junta de canhão, uma ponta de canhão que podemos usar para dizer que esta é ou a localização inicial do projétil, certo E queremos desovar um projétil a partir daqui. Então, para fazer isso, podemos obter a malha esquelética e obter uma localização do soquete a partir dela qual osso ou soquete você pode acessar aqui e clicar com o botão direito do mouse aqui, renomeá-lo, Control C para copiar seu nome e colá-lo aqui Agora, esta é a nossa localização inicial do projétil, mas o ator alvo é esse ator alvo, certo? Você pode simplesmente colocá-lo lá e, antes de usar esse ator alvo, precisamos verificar se ele é válido ou não, certo? É muito importante verificar se o objeto externo é válido ou não. Se for válido, você pode usá-lo, certo? Só com isso, quero habilitar a opção de depuração aqui. Então clique aqui. E diga para ele fazer isso em uma moldura para que possamos ver para onde ela está voltada, certo? Agora, vamos compilar, salvar e saber se você executa um jogo de palavras, você pode ver que há um cubo vermelho circulando com o tempo, certo E se formos e nos movermos, haverá um ponto vermelho na frente do nosso tanque. Você pode ver o ponto vermelho lá. Significa a localização em que estará após 1 segundo. Por que 1 segundo? Porque o tempo para atingir o alvo é de 1 segundo. Então, o que isso não vai fazer é prever depois 1 segundo onde o tanque estará, certo? Então, novamente, se você correr, movemos, você pode ver que há um ponto vermelho nossa frente que, em cada quadro, ele predirá após 1 segundo onde o tanque estará. E com esse ponto vermelho, podemos mudar a rotação da nossa artilharia, para que ela fique voltada para aquele ponto vermelho E se você atirar na frente do nosso tanque, sempre que o tanque atingir essa posição, o projétil alcançará, nós também alcançaremos essa posição e ele cairá sobre o tanque É isso que queremos fazer. Portanto, o primeiro passo é alterar a rotação de nossa artilharia com base nas informações que essa nota nos fornece Vamos ver como podemos fazer o próximo vídeo. 38. 37 Rotação artística: Não, estamos prevendo onde nossa língua estará após 1 segundo, e queremos enfrentar a artilharia até essa Então, para fazer isso, esse nodo, o que ele nos dará, nos dará uma velocidade de lançamento para nosso projétil, certo Portanto, essa velocidade de lançamento também tem uma rotação. Isso também nos dará a rotação. Esse nódulo , basicamente, está nos dando a direção de onde nossa língua estará após 1 segundo. E com isso, podemos obter a rotação de X. É isso aí. Isso nos dará a rotação que esse nó calcula para nós, prevê para nós, certo? Não, essa é a rotação que nossa artilharia deveria ter. E se dissermos obter rotação do ator, essa é a rotação que ele já tem. E queremos obter a diferença entre esses dois para que possamos mudar a rotação da nossa artilharia com base nisso E para fazer isso, precisamos usar o rotador Delta, certo? Fizemos isso várias vezes até não. Portanto, o A deve ser a rotação que ele deveria ter, e o B deve ser a rotação que ele já tem. E o que isso nos dará se clicarmos com o botão direito nele, dividirmos o pino do traçado. Então, a única coisa que precisamos, precisamos apenas de você. Precisamos mudar a rotação em torno do eixo Z. Isso é mais do que suficiente. Então, podemos clicar com o botão direito do mouse nessa, promovê-la para variável e chamá-la de valor Ya, certo? Ele precisa de um pino de execução. Então, vamos dar isso assim. Agora que temos um valor Ya. Vamos até a ABPRT. Temos o valor de Ya aqui. Precisamos conectá-los. No momento, esse valor de Ya dentro de ABP RT e BPRT não se conhece Então, precisamos conectá-los. H, podemos acessar o gráfico de eventos. Em primeiro lugar, quero que o Blueprint comece a jogar E aqui, queremos ter o ator proprietário e, com isso, ele nos dará o dono desse projeto de animação que é nosso BP RT, para que possamos transmitir isso para o BPRT, possamos transmitir isso para o BPRT Agora, com isso feito, vamos conectar o pino de execução aqui. Precisamos promover essas duas variáveis, que tenhamos acesso a elas em todos os lugares. Agora, com essa coisa do BPRTF que você sempre quer fazer, queremos verificar se é válido Então, vamos colocá-lo aqui. Se for válido, queremos obter o valor yo de mais de BPRT Então, pesquise o valor Get Ya e, com isso, alteramos o valor desse valor ya dentro do esquema de animação, certo? Estamos conectando esse valor ya que é do BPRT e esse valor ya que é do blueprint de animação É isso mesmo. Agora, com isso feito, vamos compilar e executar o jogo Neste momento, você pode ver que a artilharia está voltada para nós Se ele se mover, não se moverá de jeito nenhum. Mas se ele mudar um pouco, você pode ver que está voltado para a posição daquele ponto vermelho que será previsto por aquela nota, aquele nó sugestivo, certo? Então, com base no ponto vermelho que você tem, você pode ver que a rotação da artilharia sobre a artilharia também está mudando Veja, se você prever depois de 1 segundo, onde nosso tanque estará. Vá em frente. Você vê? Está de frente para isso, não para o tanque em si. Para que possamos atirar nele. Você pode ver que parece incrível, certo? Veja isso. Está voltado para a direção certa. Agora que estamos prevendo onde nosso tanque estará após 1 segundo, estamos voltados para essa posição Vamos ver como podemos atirar nele. 39. 38 Projétil artístico: Saiba que nossa artilharia está voltada para a direção certa na frente de nosso tanque para que ela atire corretamente e possa atingi-lo Não, queremos ter um projétil para nossa artilharia. Por fazer isso, eu não quero começar do começo. O que eu quero fazer é usar o que criamos para o tanque. A direita, solte essa e coloque na plantas ou na pasta de arte, certo? Quando você o soltar, ele dirá se você deseja movê-lo ou copiá-lo. Nós dizemos, copie, certo? Agora, há uma cópia do nosso projétil BPI Tank aqui. Queremos apenas chamá-lo projétil de arte BPI, certo? É isso mesmo. Ela chama isso de projétil de arte. Agora, com isso, vamos clicar duas vezes nele aqui. No movimento do projétil, queremos colocar a velocidade inicial e a velocidade máxima em zero. É isso mesmo. Não queremos fazer nada com isso. Só queremos ter um pouco de velocidade. Então, para fazer isso, primeiro e primeiro, precisamos saber sobre o alvo. Então, aqui, adicione uma variável e chame-a de alvo, e o tipo dela, eu quero que seja tanque BP porque nosso alvo deveria ser tanque, certo? Sabemos qual é o inimigo desse projétil RT, certo? Agora, com isso, vamos compilar o que queremos que aconteça com isso, queremos que seja editável por instância e exposto em Não, vamos usar esse projétil BP RT e passar um alvo Para fazer isso, eu quero ir para a BP RT. Lembre-se de que, se você subir a cada 5 segundos, o evento personalizado de incêndio acontecerá e nós verificaremos. Se estiver ao alcance, queremos atirar nele, certo? Então, caso esteja dentro do alcance, isso acontecerá, e podemos gerar ou atuar em uma classe, certo? O ator que você quer gerar se chama RT Projectile, certo Então, procure por RT Projectile, coloque-o lá. Ele precisa de uma transformação de desova para ser gerada, podemos simplesmente gerá-la na ponta da arma Então esse soquete de arma é muito importante. Então copie o nome. E aqui, podemos pegar nossa malha esquelética e dizer soquete Git, transformar, certo E o nome do soquete que você deseja transformar é chamado de soquete Gun Joint Controle V para colá-lo lá e conectá-lo ao span transform, certo? Agora, com isso feito, ele também precisa de um alvo. Esse alvo é exatamente a variável que temos aqui porque o expomos em um spawn É por isso que o vemos aqui, e podemos passar o alvo para ele, certo? Saiba com isso feito. Vamos testar isso. Se você executar nosso jogo, agora, ele não vai gerar nenhum, certo? Mas se você retroceder até atingir 5.000 C, deveria e você pode ver Eu o gerei e, como tem física, ele caiu. Você pode ver isso? Não, está surgindo corretamente. Mas vamos ver qual velocidade devemos dar, certo? Então, para dar a velocidade, precisamos ir para BprtPjectile Em primeiro lugar, queremos obter nossa meta e verificar se ela é válida. Portanto, verifique se é válido no início do jogo. Se for válido, queremos alterar a velocidade desse projétil, para que ele atinja o alvo Eu bati no tanque, certo? E, novamente, desta vez, quero usar o nó que usamos aqui para esse alvo em movimento com velocidade de projétil, certo Para prever onde nosso tonk estará depois de 1 segundo, certo? Então, podemos simplesmente copiar isso e colar aqui. Com isso, ele nos dará uma velocidade que podemos usar para disparar ou projétil na direção certa Portanto, se o alvo for válido, ele precisará de um local de partida do projétil Podemos apenas obter a localização inicial do nosso projétil. No início do jogo, ele nos dará a localização inicial se procurarmos a localização do ator. Está bem? Então esse é o local inicial, e o alvo que sabemos é esse, mas o tempo, eu não quero que seja 1 segundo. Quero que leve quatro segundos para atingir o alvo. Eu não quero ter nenhuma depuração aqui e, com isso, ela nos dará uma velocidade para que ela possa atingir tanque corretamente no lugar certo, na posição certa, certo? Então, temos uma velocidade que esse nodo nos dá. Agora, podemos obter nosso movimento de projétil. Há um movimento interno ou de projétil variável que é chamado de velocidade Então, procure a velocidade definida aqui embaixo. E podemos dar essa velocidade e conectar o pino de execução a ele apenas com isso, se você compilar, executar e voltar, veremos o que acontecerá Agora, você pode ver que ele vai atirar em nós e depois 4 segundos você alcança aquele ponto na nossa frente. Basta olhar para isso, viu? Você vê, pode ver que está atirando em nós, e isso vai nos machucar também. Não mudamos a velocidade, certo? E você pode ver, isso nos atingirá novamente. Isso parece incrível, certo? Novamente, se formos em linha reta, você pode prever onde estaremos depois de 4 segundos, certo? E se filmarmos lá, dá ver que a degustação também é boa Isso parece muito bom. Mas se você mudar a velocidade, repente, ele não será capaz de atirar em nós. Você pode ver que atiramos na nossa frente, certo? Novamente, se mudarmos a velocidade novamente, você pode ver, podemos evitar os tempos do projeto diretamente, e você pode ver por meio de movimentos como este Veja, não será capaz de nos acariciar, mas se você seguir em linha reta. Você pode ver se conseguirá nos ajudar. Basta olhar para isso. É lindo que esteja nos ajudando. Então, isso está funcionando bem. Ou um projétil está funcionando bem. Mas o que eu quero fazer agora, se formos para o BPRT, quero mudar o intervalo aqui para zero a 30.000 Eu quero te mostrar uma coisa se chegarmos perto disso. Basta olhar para algo aqui. Quando atira, não há efeitos visuais nessa artilharia Você pode ver que não há efeito visual. Não há nenhuma partícula. Não há onda de choque. Não há movimento na arma e ela não parece boa. Agora, queremos adicionar muitos efeitos visuais à artilharia Vamos ver o que podemos fazer isso. Próximo. 40. 39 VFX da Arty fire: Agora queremos adicionar alguns efeitos visuais à artilharia quando for para alguma coisa, Então, primeiro, vamos ver quais efeitos visuais temos. Se você for para a pasta RT, vá para Assets, vá para veículo, vá para West art, vá para Effex. Você pode ver que há três deles. Uma é uma onda de choque que acontecerá na parte inferior da artilharia sempre que dispararmos É assim, certo? No próximo, se você clicar neste, verá que isso acontecerá na ponta da artilharia quando dispararmos, certo Você não precisa saber tudo sobre isso. Queremos apenas usá-los, certo? Então, para usá-los, vamos ao BP RT. E aqui, eu quero dizer um spa por metro. Desta vez, devemos dizer um metro, certo? Um medidor no local. Em qual medidor, eu quero gerar a onda de choque, certo? A localização é muito importante. Onde queremos localizá-lo? Se formos ao nosso esqueleto, você pode ver aqui que há um encaixe de articulação dentada que está aqui, e queremos usar esse soquete e queremos usar Então, vamos clicar com o botão direito nele. Renomeie a controvérsia para copiar seu nome porque o nome é importante e acesse Schele talmag e obtenha a localização do soquete Obtenha a localização do soquete, fora do soquete da junção **** e coloque-o no Certo? Agora, vamos ver se você compilou e executou, vamos dar uma olhada. Quando dispara, você pode ver que há uma onda de choque na parte inferior. Você pode ver isso, pode ver isso. Isso é legal. Certo? Agora, a próxima coisa que você quer usar é a explosão na ponta da arma. Então, novamente, para isso, por ser uma cascata e um metro, devemos dizer que abrangem um metro acoplado desta vez porque você deseja fixá-lo na ponta, certo? O emissor que você quer usar é chamado de explosão de canhão, certo O componente a ser anexado é uma malha esquelética. E o nome do ponto em anexo, se você for aqui, é chamado de soquete Gun Joint para copiar seu nome com Control C e colá-lo aqui Para a localização, novamente, queremos pegar a malha esquelética e obter um soquete, transformá-lo, certo Fora do soquete da junta da pistola, e com ele, podemos clicar com o botão direito do mouse neste e dividir um pino de traçado Agora temos a localização e a rotação. Não precisamos alterar a escala, mas o tipo de localização, quero alterá-lo para manter a posição da palavra. Agora, com isso, vamos ver a compilação e a execução. Vamos ver o que vai acontecer. Ele disparará e você verá que está lindo. Vamos fazer a rotação novamente. Você pode ver que parece incrível. Não, temos outros efeitos visuais lá. Não há próxima coisa que eu queira fazer. Eu também quero gerar um som. Então, gere um som no local. E o som que você quer gerar é chamado de Cannon Fire Single, certo? É isso mesmo. E a localização, podemos usar a localização do TipovoGun. É isso que vamos daqui, certo? Agora, novamente, vamos simplesmente sem nenhum. Se deveria, vamos ver o que vai acontecer e não, você pode ver se há um som e está construído. Então você pode ver como é lindo. Não há próxima coisa que queiramos fazer. Queremos fazer o movimento das armas. Então, sempre que for disparada, a arma deve descer e subir como se estivéssemos presos, certo? Vamos ver se podemos fazer isso. 41. 40 Movimento da arma: Saiba que temos alguns efeitos visuais para disparar a arma, precisamos adicionar algumas visualizações para a arma em si também Então, nós o movemos sempre que disparamos, certo? Então, para fazer isso, precisamos acessar o esquema de animação em um gráfico. Aqui, novamente, queremos usar osso modificado, mas qual osso. Vamos até um esqueleto, e aqui, temos uma lanchonete Aqui, sempre que disparamos uma arma, essa junta de armas, queremos cair assim, descer e ficar na posição vertical Queria que essa moção acontecesse. Então, como queremos que isso aconteça primeiro, em conjunto, certo? Vamos apenas ir até aqui. adicionar o osso modificado aqui. Usamos muito esse nodo, certo? Em primeiro lugar, não precisamos alterar a rotação. Portanto, não o exponha como alfinete. Não precisamos alterar a escala, então não a exponha como alfinete Queremos apenas mudar a tradução. Então, nós o adicionamos à existência. E para o espaço de translação, porque podemos ter uma rotação diferente disso, quero colocá-lo no espaço ósseo, certo? Só com isso, vamos ver em qual direção devemos mudar isso na direção de X. Você pode ver, essa é a direção de X. Aqui, primeiro, vamos escolher entre a junta do canhão, a junta canhão e mudar o X. Por exemplo, digamos que -50 vá para baixo, comece a compilar, e agora você pode ver que caiu, e depois disso, queremos voltar para zero novamente direção devemos mudar isso na direção de X. Você pode ver, essa é a direção de X. Aqui, primeiro, vamos escolher entre a junta do canhão, a junta do canhão e mudar o X. Por exemplo, digamos que -50 vá para baixo, comece a compilar, e agora você pode ver que caiu, e depois disso, queremos voltar para zero novamente. Você pode ver isso. Então, aqui, eu quero clicar com o botão direito do mouse em dividir um alfinete porque queremos apenas alterar o X. Agora, como queremos mudar a tradução Eu quero fazer isso com uma variável. Então, aqui, eu quero criar uma variável e eu quero chamá-la valor de recuo ou o que você quiser chamá-la O tipo quer que seja um carro alegórico. Não, ele está conectado à tradução X. E com isso, se você começar a compilar e aqui, alterar o valor do recuo, pode ver que ele vai descer e subir Você pode ver como está funcionando bem, certo? Sei o que eu quero fazer. Quero criar um cronograma para alterar esse valor de recuo E onde eu quero fazer isso, eu quero fazer isso em BP t. No final dessa cadeia de execução, quando disparamos sobre uma arma, aqui mesmo Então, precisamos criar uma linha do tempo e eu quero chamá-la de recuo Também fizemos isso para o tanque. E toda vez que quisermos começar do início, jogue do início, certo? Mantenha o controle, desconecte daqui e conecte-o aqui, certo? Clique nele para abri-lo. O comprimento que eu quero que seja 0,3, e eu quero apenas adicionar uma trilha de fluxo. Eu quero chamar isso de valor de recuo. OK. E aqui à direita clicando aqui, adicione a chave no tempo zero, eu quero que seja zero. Adicione outra chave aqui de cada vez, digamos 0,1. Eu queria ir até uma e adicionar outra chave novamente. No momento 0.3, queríamos ir para zero novamente, certo? Para você ver melhor, vou clicar aqui, clicar aqui também, para que possamos ver todos os três quadros-chave. Quero selecionar todos eles, com o botão direito, clicar em um deles e clicar em Auto para que tenhamos algumas curvas Isso ficará muito melhor. Só com isso, podemos simplesmente fechá-lo. E aqui, temos o valor do recuo. Podemos clicar com o botão direito do mouse nela, promovê-la a uma variável, e a nomenclatura é boa, e queremos atualizá-la a cada atualização desta linha do Isso acontecerá 30, 60 vezes por segundo até que ele pare de jogar após 0,3 segundo, certo? Não, temos um valor que mudará de 0 a 1 e será zero novamente. Queremos usar isso em nosso plano de animação. Mas como podemos conectar essa variável de valor de recuo dentro de nosso esquema de animação a essa que temos em nosso Você sabe como fazer isso. Vamos apenas acessar a arte ABP, acessar o gráfico Avent e podemos obter o valor do recuo do Então, procure o recuo. Obtenha o valor do recuo. E aqui, queremos definir a variável de valor de recuo que temos aqui com esse valor que obtemos do PRT, certo Isso vem da linha do tempo. Agora, com isso feito porque esse valor de recuo, agora, é o valor 0-1 Então isso não é suficiente. Precisamos multiplicá-lo por algum valor. Por exemplo, -100, para que você veja melhor e o conecte à tradução X. Agora, se você atropelar o jogo sempre que ele deveria, basta dar uma olhada E você pode ver que desceu e depois disso, subiu. Veja, olhe para isso. Você pode ver como é lindo, não. Temos alguns bons efeitos visuais em nossa artilharia, arte, certo? Isso parece incrível. Não, a próxima coisa que você quer fazer. Queremos usar artilharia para poder danificar o tanque. Vamos ver como podemos fazer isso. 42. 41 Aplique danos no raio: Não, o som dos efeitos visuais e o movimento da nossa arma estão bem. Parece bom, mas não está doendo nem um tanque. Não está danificando. Vamos ver como podemos adicionar alguns danos. Para um dano, vamos usar o projétil RT. Quando o projétil para de se mover, geramos uma explosão, um pouco de som e, no final, aplicamos dano radial com a queda Então, aqui, eu não quero colocá-lo no final porque esses efeitos visuais o bloquearão. É por isso que quero acabar com tudo isso e controlar o ritmo do dano radial no início É muito importante adicionar o dano primeiro e depois adicionar o efeito visual, certo? Então não, esse dano radial precisa de uma localização, a origem, certo? Podemos dar a localização. Em seguida, é necessário que os atores sejam ignorados. Devemos dizer a ele que se ignore a si mesmo, certo? Ignore-se completamente. Então, aqui, podemos criar uma referência para vender, ok? Isso é esse eu, significa toda essa classe, certo? Queríamos nos ignorar. Ele precisa de uma matriz. Então, com isso, podemos fazer uma matriz, certo? Basta criar uma matriz com uma entrada que seja ela mesma e conectada para ignorar os atores. Então, ele se ignorará e não se danificará, certo? Porque não deveria? Não, há uma causa de dano. O que está causando esse dano, novamente, é um projétil de arte própria Então, podemos conectar esses dois aqui também. Não, com isso feito. um raio interno de dano e um raio de saída de dano O que significa que, se o tanque estiver dentro 100 unidades do ponto de impacto, ele causará 25 de dano. Mas se a distância entre o local onde o projétil foi atingido e onde nosso tanque está for de 100 a 500, isso diminuirá linearmente o dano básico para no mínimo dez Então, com isso, está aplicando dano em um raio, em uma esfera, certo? Para que você possa vê-lo melhor para poder visualizá-lo. Eu quero trazer tudo isso para a direita. E aqui, eu quero usar o draw debug, sphere aqui embaixo, certo? Ele precisa de uma localização. Podemos simplesmente usar esse local aqui. E o raio que eu quero que seja esse raio interno para não 100, é mais do que A duração, eu quero colocar, por exemplo, cinco segundos e a espessura, eu quero colocar em dez para que você possa ver bem, certo? Esse é o raio interno cujo raio é 100. Quero copiar e colar isso com o controle C control V, certo? E desta vez, novamente, o local eu quero que seja o mesmo. Então, vamos pegar a localização daqui e conectá-la aqui também. É apenas para depuração, que você entenda melhor Este é para o raio externo. Esse dano ou raio, isso é 500. Então, vamos colocar 500 neste também, e eu quero mudar a cor para algo assim, certo? Portanto, temos duas esferas depuradas. Vamos ver o que isso vai mostrar. Se compilarmos e corrermos quando a artilharia nos atingir, basta olhar para eles e você verá que há um raio interno que, se estivermos dentro dele, causará 25 dele, causará E se estivermos dentro do raio externo, isso nos danificará em algo 25-10, certo 43. 42. Sistema de saúde do tanque: Sem artilharia herbácea ou projétil artístico, aplique dano radial, mas nosso tanque não Vamos ver como podemos fazer o tanque sofrer alguns danos, certo? Para fazer isso, eu quero abrir o tanque de BP, então vá para a gaveta de conteúdo, abra o tanque de BP E aqui, encontre algum espaço aqui embaixo, por exemplo, certo? Clique com o botão direito aqui e pesquise por eventos, danos no rádio, certo? Então, isso nos dará o dano recebido. Ele nos dará a localização em que o recebeu. Ele nos dará quem causou esse dano e também nos dará informações sobre a cabeça, certo? Mas, por enquanto, quero usar apenas uma string de impressora para ver se está funcionando ou não. Com essa sequência de caracteres de impressora, quero usar o formato de texto. E aí, eu quero dizer que Tank abriu e fechou colchetes encaracolados, e eu quero dizer danos internos, e graças a Deus, por exemplo, dez em danos, certo Então, como colocamos o dano dentro dos colchetes, isso nos dará uma entrada com o nome do dano, certo que possamos substituí-lo por esse valor ou qualquer outro valor, E podemos mostrar isso com o anel de teste de impressão. Agora, vamos testá-lo com isso. Se você atropelar o jogo, você pode ver, vamos esperar até que ele nos atinja. Não, isso nos atingiu. Diz, graças a Deus, 25 danos. Você volta. Você não pode ver nenhum tanque com 24 danos. Se voltarmos mais assim, não nos atingirá de jeito nenhum. Mas se chegarmos muito perto de nós, o dano aumentará. É claro que não é fácil causar menos danos porque o símbolo externo não é bom. Então aqui, por exemplo, e não, e agora você pode ver que o tanque sofreu dez danos porque estamos dentro da fúria externa, Portanto, nosso dano radial aplicado está funcionando bem, mas não temos nenhum sistema de saúde para pressioná-lo, Então, para fazer isso, eu quero criar uma variável, e eu quero chamá-la de saúde. E do tipo, eu quero que esteja flutuando. E depois disso, adicione outra variável. Eu quero chamar isso de MX health. Não, vamos apenas testar algum valor. Por exemplo, o McElf, eu quero colocá-lo em 100 e o de saúde, eu quero colocá-lo em 50, direto para o teste Não, com isso feito porque eu queria mostrar à saúde sempre o que eu queria, eu quero ir ao Event tick. Deixe-me encontrar Eventik. Para achar mais fácil, você pode acessar Event Craft e, aqui, clicar em Evento, marcar aqui, e ele o destacará para nós, certo? No final, aqui, quero adicionar uma picada de impressora. Nós o excluiremos no final. Mas, para não, queremos apenas mostrar a saúde, certo? E com isso, novamente, quero usar um formato de texto, formatar texto, e quero dizer que saúde é igual a abrir e fechar colchetes aqui, quero dizer borda ou saúde ou qualquer Queremos substituir o pino de borda do colchete encaracolado que ele criou aqui pelo estado real e mostrá-lo com a corda da impressora na Agora, com isso feito, precisamos expandir isso e dar a chave. Por exemplo, edge, saúde ou qualquer outra coisa. Apenas uma string estática é mais do que suficiente. Agora, se você atropelar o jogo, a ajuda é 50, e ela ficará lá porque nós lhe damos uma chave. Mas se isso nos atingir, nada acontecerá para ajudar porque não estamos diminuindo, certo? Para diminuí-lo, sempre que recebermos danos radiais do evento, o que queremos fazer é obter nossa saúde dessa forma e diminuí-la, subtraí-la com o dano recebido E depois disso, salve-o dentro si mesmo e conecte-o assim. E atualize a saúde com esse novo valor atualizado, certo? Não, só com isso. Vamos verificar se atropelamos um jogo, a ajuda é 50. Se a artilharia nos atingir, vamos ver o que vai acontecer. Um pouco para trás. Não, você pode ver que a saúde é 26. E, novamente, se nos atingiu, a ajuda é uma, certo? Novamente, se isso nos acontecer, você pode ver que a saúde está abaixo de zero, então está funcionando bem, certo? A saúde está diminuindo. Mas quando diminuímos a saúde, queremos verificar com a agência. Se a saúde, podemos recuperá-la aqui. Se a saúde for menor ou igual a zero, significa que o tanque foi destruído. E aqui, podemos usar uma impressora para mostrar isso sem pagar nada, certo? E eu quero dizer que o tanque foi destruído, certo? E o que eu quero fazer é mudar a cor para vermelho, desta vez não queremos mostrar o teste de impressão. Não precisamos disso porque estamos mostrando a saúde. Então, vamos deletar isso. Não precisamos disso e conectamos o pino de execução diretamente aqui. E agora, com isso, mude a posição de tudo isso. Um pouco de organização será bom. Podemos simplesmente selecionar isso depois de segurar o controle, selecionar esta cabeça Q, e teremos uma linha reta aqui. Nós podemos fazer isso por este. Selecione este, segure o controle, selecione este, cabeça Q, e agora você pode ver uma linha reta aqui. Novamente, podemos fazer isso por este. Nós podemos fazer isso por tudo isso. Selecione este depois daquele, este, cabeça Q. Você pode ver que não temos uma linha reta em todos os lugares, certo? Isso parece incrível. Podemos selecionar algumas coisas e, com a tecla de seta, podemos mudar a posição delas também para organizá-las, certo? Não, a saúde está diminuindo. Vamos testar isso mais uma vez. O LP é 50. Se nos atingir, está mostrando a distância até o alvo, precisamos excluí-la também. O ELP é 25 porque nos atingiu em sua amostra interna. Você sabe, podemos ver que a saúde é uma, e se ela nos atingir mais uma vez, o tanque será destruído. Então isso é bom. Não, temos um sistema de saúde, mas estamos mostrando isso com apenas um texto. Vamos ver como podemos realmente mostrar isso com uma barra de progresso. 44. 43 Barra de saúde: Não, para mostrar a barra de saúde real com a barra de progresso. Eu quero usar esse widget de usuário de mira. Basta clicar na mira. Clique nessa lupa para encontrar a classe de widget É chamado WP crosshair click on it. Você lembra que tínhamos uma barra de progresso aqui que era para ser recarregada Assim, podemos clicar nele, Control D para duplicá-lo e usá-lo como barra de saúde Então, eu quero chamá-lo de Saúde, certo? O que eu quero mudar aqui mudar a posição X e a posição Y para zero para não. Vamos ver qual é a posição X desta. É 90. Eu quero clicar neste e mudar a posição X deste para -90 Então é desse lado, certo? A porcentagem padrão, eu quero colocá-la em uma, mas eu quero mudar a cor. Então clique aqui, mude o vermelho para zero, verde para um e azul para zero, certo? É isso mesmo. Cabeça bem. Agora, temos uma barra verde que podemos usar para a saúde, certo? Mas como podemos atualizá-lo? Primeiro, deve ser uma variável. Depois disso, devemos ir para o gráfico. Como atualizamos a recarga. Você se lembra, fizemos isso com interfaces, então precisamos adicionar outra função a essa interface para atualizar a integridade também. Clique na gaveta de conteúdo, vá para a pasta de interfaces para clicar nesta, e eu quero adicionar outra função e quero chamá-la de atualização de saúde assim, atualização de saúde E precisamos de um insumo que eu quero chamar de saúde, certo? E do tipo, eu quero que seja flutuante. É isso mesmo. Agora, se você for ao WP Crosshair, temos a atualização Health aqui, certo Como a adicionamos à interface e porque, na configuração da classe, implementamos a interface de mira BPI, ela será adicionada automaticamente aqui Clique em Atualizar Saúde para criar seu evento. E o que eu quero fazer é ter saúde e, como fizemos aqui, queremos definir a porcentagem dela. Defina uma porcentagem, certo? E a porcentagem é um valor de 0 a 1. Portanto, devemos garantir que essa ajuda seja um valor de 0-1. Passamos o valor 0-1, certo? Agora que temos esse evento ou função implementado, podemos usá-lo dentro do tanque BP, certo, como fizemos para atualizar o valor de recarga, certo, recarga Então, aqui, quando mudamos a saúde, queremos atualizar o modelo do widget cross hair que tem a barra de saúde dentro dele, certo Então, antes de verificar se o tanque foi destruído, queremos atualizar essa mira, certo Queremos obter seu widget de usuário, então pegue o widget de usuário e, com ele, queremos dizer atualizar a saúde, certo Mas, como você sabe, a saúde está atualizando a porcentagem na mira do OrWBP, a porcentagem, certo Portanto, deve ser um valor 0-1. Mas a saúde agora é um valor de 0 a 100, por exemplo, certo? Então, como podemos mudar essa saúde de um valor grande para um valor 0-1 Primeiro, vamos conectar o compartimento de execução para não esquecermos isso. Primeiro, temos saúde e temos um eu máximo, certo? Então, se apenas os dividirmos, dividirmos a saúde por mac self, isso nos dará um valor de 0-1 Então, por exemplo, se a saúde for zero, 0/100, isso nos dará zero e será zero É 0-1, e a pessoa ficará bem. Se a saúde for 50, 50/100, ou seja, a saúde máxima, isso nos dará 0,5 0,5 é o valor 0-1, e está tudo bem, certo. Mas se a saúde for 100, 100, dividida por 100, esse é o eu máximo, isso nos dará um. E, novamente, é um valor 0-1, certo? Então, se dividirmos a saúde pelo valor máximo, obteremos um valor de 0-1 Ele funcionará corretamente. Agora, com isso feito, precisamos atualizar nossa saúde no início do jogo também, porque se você rodar um jogo, por padrão, você pode ver que é 100 aqui, mas a ajuda é 15. Portanto, não está funcionando bem, mas se atirar em nós , atualizará a ajuda. Agora, você pode ver que a ajuda é 25, e você pode ver que 25 aqui, 25%. E agora você pode ver que o tanque está destruído e saúde está diminuída, certo? Está vazio. Isso está acontecendo porque no início do jogo, esse cruzamento de DUBP aqui está em 100 Então, no início do jogo, precisamos primeiro atualizar a saúde atual do nosso tanque. Para fazer isso, podemos simplesmente copiar tudo isso e colocá-lo no evento para começar a jogar aqui. No final desse caminho de execução, podemos simplesmente conectá-lo assim. Agora, se você executar nosso jogo como padrão, você pode ver que a saúde é 50, e podemos ver a saúde 50 aqui. Isso está funcionando bem. Se isso nos atingiu, basta olhar para ele. Aumentará em 25%, e podemos ver 25% da saúde funcionar depois que o tanque for destruído e você pode ver que está funcionando bem. Nosso sistema de saúde está acabado, não. Mas quando a saúde do nosso tanque chega a zero ou menos de zero, precisamos destruí-lo. Precisamos ter alguma visualização do nosso tanque sendo destruído Vamos ver como podemos fazer o próximo vídeo. 45. 44 Destrua o tanque: Vamos ver como podemos realmente destruir nosso tanque. Para fazer isso, eu quero ir para a gaveta de conteúdo, ir para a pasta Blueprint dentro da pasta do tanque e, aqui à direita, criar uma classe de blueprint do tipo de ator, porque é mais Eu quero chamá-lo de BP, tanque danificado, certo? Não clique nele para abri-lo. E aqui, eu quero adicionar uma imagem estática, então clique em adicionar uma malha estática e coloque-a como uma raiz síncrona padrão Você não precisa fazer isso, mas é mais limpo dessa forma. Troque a máquina estática aqui para o tanque SMS danificado. Este, basta selecioná-lo lá e pronto. Agora, eu quero adicionar um sistema Niagara. Então, adicione um sistema de partículas Naga. E desta vez, novamente, quero usar o tanque danificado. É isso mesmo. Isso é tudo que precisamos fazer. Temos uma classe de planta que podemos usá-la como tanque destruído Vá para BP Tank, e aqui, eu quero deletar este anel da impressora. Nós não precisamos disso. Temos uma barra de progresso para isso. Temos um conselho de saúde E aqui, também não precisamos desse anel de impressora, porque queremos destruir seu tanque completamente, certo? Então, aqui, em caso de verdade, significa que a saúde é igual a zero ou menor que zero. Então, neste caso, queremos gerar um ator de uma classe. Qual ator tem dano dentro dele, então é chamado de tanque de dano de dano BPI Basta colocá-lo lá. Para a transformação de amplitude, podemos obter a transformação de ator que dará a transformação desse tanque de BP a esse ator de amplitude, certo? E depois disso, queremos destruir esse tanque, certo? Destrua o tanque, para que ele seja substituído por este danificado, certo? Se tivéssemos compilado e executado, vamos esperar até que nos atingisse duas vezes, certo? Imediatamente, e isso nos atingiu. Você pode ver a saúde. É 25, eu acho. E, novamente, isso nos atingiu. Agora, você pode ver ou o tanque foi destruído. Então, o que eu quero fazer agora ir até o tanque de dano e, em seu gráfico de eventos no início do jogo, quero definir um cronômetro definido por evento, certo Então, aqui, eu quero dizer que, após 2 segundos, recarregue o jogo, certo? Então, precisamos criar um evento personalizado para ele, e eu quero chamá-lo de reload Nível ou como você quiser chamá-lo, tudo ficará bem. Então, após 2 segundos de gerarmos esse tanque danificado, esse nível de recarga acontecerá e queremos abrir o nível que é chamado de novo Então, vamos colocar um novo mapa lá. Não, com isso, vamos apenas testá-lo. Se atropelarmos o jogo, vamos esperar até que ele nos atinja. É a primeira vez que diminuirá nossa saúde em 25%. E novamente, se ele nos atingir novamente e formos destruídos e após 2 segundos, ele será recarregado O jogo será recarregado. Não, nossa artilharia pode nos atingir. Mas o que queremos poder atingir a artilharia também Então, vamos ver como podemos atingir a artilharia e danificá-la. 46. 45 Arty sofre danos radiais: Não, queremos ser capazes de destruir a artilharia. Vamos ver como podemos fazer isso. Para fazer isso, se formos até a gaveta de conteúdo, temos um projétil BP Tank. Vamos apenas abri-lo. Você se lembra, eu disse que esse dano de rádio na liga precisa estar no início dessa parada impecável porque se você não fizer isso, esse sistema de resposta no local bloqueará o dano do rádio na bloqueará Então, vamos usar o Control X para cortá-lo e conectar esses dois aqui diretamente e criar algum espaço aqui. E com isso, quero usar o Control V para colar a aplicação de dano de rádio conectada desta forma, como fizemos para danos de RT, aplicar dano radial Aqui, queremos fazer o mesmo com a localização e, para ignorar o ator, podemos criar uma referência a si mesmo, obter uma referência a si mesmo, certo, e fazer uma matriz com ela, criar uma matriz e, com isso feito, podemos simplesmente conectá-la aos atores ignorados, e podemos dizer que o causador do dano é eu mesmo, É isso mesmo. Agora, com isso, devemos ser capazes de fazer isso no BPRT Então, devemos ir ao BPRT para encontrar um espaço vazio aqui, e precisamos implementar o evento de dano radial Novamente, quero usar uma picada de impressora. Desta vez, não quero que essa artilharia tenha ajuda. Eu quero dizer que o RT foi destruído. É isso e a cor disso. Eu quero que seja vermelho para que você o veja melhor. Agora, com isso ligado, vamos ver se está funcionando ou não. Se atirarmos assim, você pode ver que não está dizendo artilharia Destrua, certo É como se não estivesse acertando em nada. É porque se você clicar em Skeletalmage e ir para a seção de colisão, deixe-me Diz que não há colisão. Então, precisamos mudar isso para bloquear tudo. Agora, se você correr o jogo e atirar em nossa artilharia, você pode ver que ele está atingindo ela, mas, novamente, não está dizendo que a E o motivo é que, se você usar essa predefinição de colisão, o tipo desse objeto é uma palavra estética, e isso é um problema com danos radiais Para que você possa aplicar algum dano de rádio a algo, esse tipo de objeto não deve ser a palavra estática É por isso que eu quero mudar isso para personalizado, pedir para bloquear tudo. Mas o tipo de objeto, eu queria alterá-lo para a palavra dinâmico ou outra coisa, certo? Agora, feito isso, se você correr ou jogar e atirar, não, você pode ver que diz: Artilharia destruída E se nos aproximarmos dele, novamente, ele é afetado, certo? Não, estamos recebendo o dano radial do evento em nosso BP RT. Não, é hora de realmente destruí-lo. Você tenta fazer isso. Faremos isso no próximo vídeo. 47. 46 Arty é destruído: Não para criar um plano para RT destruído ou danificado. Para fazer isso, eu quero ir para a gaveta de conteúdo, ir para a pasta ART, ir para a pasta Blueprint Quero clicar com o botão direito do mouse para criar uma classe de planta do tipo de ator, e quero chamá-la de BP, RT danificado ou artilharia direito do mouse nela para abri-la Queremos adicionar uma malha estática. Fizemos isso várias vezes até agora. Eu quero torná-lo como rota de cena padrão. Não, quero escolher uma malha estática para nosso SMS, RT danificado, certo? É isso mesmo. Não, eu quero adicionar uma cascata desta vez, sistema de partículas em cascata Os efeitos visuais do RT destruído estão em cascata. É por isso que adicionamos cascata aqui. Não, eu quero escolher Ps wreckage west RT , certo? Basta colocá-lo lá. Agora você pode ver, é exatamente como a maconha do Niágara, está em cascata Vamos apenas compilar e salvar. E agora queremos ir para o BP RT. Em vez de dizer, Art destruiu o que você quer fazer? Queremos desovar. Ator de uma turma, e eu quero procurar por RT danificado. Basta colocá-lo lá, e podemos obter a transformação do ator para a transformação do nosso ator de amplitude, certo? Com isso, será um intervalo, mas precisamos destruir o ator em si, a arte da BP Agora, com isso ligado, se você tivesse compilado , executado e filmado, você pode ver: Não, você pode ver que está destruído, certo? Isso parece incrível. Não, com isso feito. Quero ir ao BPRT e entrar aqui, dar uma olhada em algumas coisas Não precisamos dessa corda de impressora. Então, o que eu quero fazer pegar esse controle de retenção e conectá-lo diretamente aqui Não precisamos nem um pouco dessa corda de impressora. Podemos nos organizar um pouco, certo, assim. Também podemos trazer tudo isso um pouco para a esquerda. Portanto, não é necessário. Mas o que eu quero mudar aqui é que eu também quero mudar o alcance mínimo, eu também quero mudar o alcance mínimo porque não parece bom se o tanque estiver perto da artilharia e puder nos atingir Essa artilharia está voltada para cima, certo, e não funcionará assim voltada Então, eu quero colocar 6.000 aqui. Então, se o tanque estiver na faixa de 6.000 a 30.000, ele pode nos atingir Se você atropelar o jogo, agora, ele não será capaz de nos atingir. Mas se você se afastar dela, você pode ver que ela será capaz de nos atingir. Você pode ver, é tudo certo? Eu pensei que talvez estivéssemos lá, mas não estamos lá. Então você pode ver , está funcionando bem. E a ajuda está funcionando bem. Não, a próxima coisa que eu quero fazer é adicionar mais uma dessas artilharia, criar outra, certo Por exemplo, aqui, certo? Não, com isso feito, temos mais inimigos em quem atirar. E a próxima coisa que eu quero é que eu veja o projétil RT E aqui, exclua essa dívida do sorteio porque não precisamos mais deles. Sabemos que está funcionando bem. Não, ou o jogo é muito mais limpo. Com isso, podemos ter dois inimigos atirando em nós, certo, e isso pode nos destruir. Veja que os dois estão atirando em nós e, digamos, um deles, não destruiria porque e destruísse um deles, vá para os outros. Se for direto para ele, poderá nos atingir uma vez, certo? Sim, elogios pela ajuda, e isso também a destruiu. Isso parece incrível. Ou a artilharia está funcionando bem, ou um tanque está funcionando