Unreal Engine 5: crie um jogo de helicóptero com curso de arma anti-ar | Navid Ansari | Skillshare

Velocidade de reprodução


1.0x


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

Unreal Engine 5: crie um jogo de helicóptero com curso de arma anti-ar

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.

      Vídeo promocional

      1:42

    • 2.

      01 Crie um projeto e importe arquivos

      3:35

    • 3.

      02 Crie um projeto em helli

      3:14

    • 4.

      03 Configuração da roda

      3:00

    • 5.

      04 Raio da roda

      2:41

    • 6.

      05 Rotação da roda

      2:27

    • 7.

      06 Olhar para baixo

      4:23

    • 8.

      07 Olhe para a esquerda e direita

      1:30

    • 9.

      08 Freio de mão

      2:32

    • 10.

      09 Ações de entrada para subir e descer

      2:44

    • 11.

      10. Configuração do motor

      3:38

    • 12.

      11. Modifique o osso do rotor

      3:12

    • 13.

      12 Rotação do rotor

      3:29

    • 14.

      13 Gerenciador de motores

      2:52

    • 15.

      14 Diferentes velocidades do rotor

      2:22

    • 16.

      15 Interponte

      3:27

    • 17.

      16 Pairando

      6:50

    • 18.

      17. Verifique a altura com o traçado de linha

      4:55

    • 19.

      18 Locação de VFX em poeira

      1:45

    • 20.

      19 Velocidade do material para pó

      6:50

    • 21.

      20 Meta som do motor

      3:52

    • 22.

      21. Som do motor

      3:20

    • 23.

      22 verificar se estamos no chão

      6:04

    • 24.

      23 Desligamento do motor

      2:59

    • 25.

      24 Avante e para trás

      4:06

    • 26.

      25. Movimentos para a direita e para a esquerda

      2:30

    • 27.

      26 Vire no lugar

      2:51

    • 28.

      27 Míssil Helli

      2:05

    • 29.

      28 Som do míssil

      4:58

    • 30.

      29 Explosão de míssil

      2:40

    • 31.

      30 Míssil de fogo

      3:38

    • 32.

      31 Número de mísseis

      4:22

    • 33.

      32 Mísseis de recarga

      2:19

    • 34.

      33 UI de mísseis

      6:51

    • 35.

      34 Crusadeira

      6:38

    • 36.

      35 Modelo da pistola anti-ar

      6:38

    • 37.

      36 Modifice os ossos da arma

      4:14

    • 38.

      37 Calcular a direção da arma

      7:10

    • 39.

      Projétil de pistola anti-ar

      4:21

    • 40.

      39 Atire as armas

      5:31

    • 41.

      40 Randomizar a direção dos projéteis

      3:50

    • 42.

      41 VFX da pistola anti-ar

      3:37

    • 43.

      42 Som do fogo de arma

      5:32

    • 44.

      43 Sistema de saúde Helli

      3:37

    • 45.

      44 Barra de saúde UI

      4:51

    • 46.

      45 Destrua Helli

      3:19

    • 47.

      46 Dica de Helli sobre danos

      4:54

    • 48.

      47 Som do projétil hélili

      2:42

    • 49.

      48 Destrua a pistola anti-ar

      4:54

    • 50.

      49 Corrigir colisão de arma anti-ar

      4:17

    • 51.

      50 Movimento do rotor traseiro

      2:01

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

29

Estudantes

--

Sobre este curso

vamos aprender tudo sobre rodas, como movê-las, rotá-las e usar um freio de mão

em seguida, vamos aprender a usar o componente de movimento do veículo para fazer nosso helicóptero voar

então adicionamos efeitos niágara para mostrar a distância ao solo com um pouco de poeira

em seguida, vamos usar um modelo de animação para girar as pás do helicóptero

para o inimigo, vamos criar uma arma anti-aérea para que ela possa disparar contra nosso helicóptero e destruí-lo

Conheça seu professor

Teacher Profile Image

Navid Ansari

Professor

Hello, I'm Navid.

Visualizar o perfil completo

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. Vídeo promocional: Neste curso, vamos criar um jogo que podemos pilotar um helicóptero Começamos com a criação de um projeto. Nós faremos a configuração do volante. Então, as rodas do nosso helicóptero também se movem. Também teremos freios de mão para essas rodas. Em seguida, vamos para a configuração do motor, como podemos decolar esse helicóptero E com isso, teremos alguns efeitos visuais, como rotação da lâmina e efeitos visuais de Naga para a poeira embaixo do helicóptero Também teremos alguns sons com isso, então soará mais natural. Neste helicóptero, podemos ir para a esquerda. Nós podemos ir para a direita. Podemos ir para frente, para trás. Também podemos virar à direita e à esquerda. Depois disso, implementaremos um sistema de mísseis para que possamos atirar no que quisermos E para fazer isso, precisamos de um inimigo, para que possamos atirar nele. Então, para o inimigo, criaremos um plano de arma antiaérea. Então, com isso, podemos atingir nosso helicóptero e destruí-lo. Este gongo antiaéreo pode atirar em nosso helicóptero se o helicóptero estiver ao alcance e girará, então ficará então Para anti-air gon, teremos efeitos visuais E soa também. E sempre que algumas dessas balas atingirem o helicóptero, você também ouvirá os sons dela atingindo o helicóptero Depois disso, teremos uma interface de usuário, por exemplo, ele, mira e a quantidade de mísseis que podemos disparar Então, sem mais delongas, vamos começar. 2. 01 Crie um projeto e importe arquivos: Não, para criar um jogo de helicóptero. Primeiro, precisamos de um jogo e, para fazer isso, quero usar um projeto em branco. Estou usando o Aria Engine 5.5 0.3. Você pode usar a mesma versão que eu estou usando, mas se estiver usando outras versões, você pode fazer isso. Se você é iniciante, é melhor ficar com a versão que estou usando Portanto, você não vê a mudança no nome do nó. Então não, vamos apenas criar um projeto em branco. Clique em Vazio. Queremos que esteja em um plano Você não precisa do conteúdo inicial e do nome do projeto, quero chamá-lo de inferno ou helicóptero Vou chamar isso de inferno. Onde eu quero colocá-lo? Eu quero colocá-lo nesta pasta, certo. E pronto, vá criar e ele criará o projeto para nós. Não, com o projeto aberto primeiro e primeiro, precisamos salvar esse nível. Então, o controle da cabeça é para salvá-lo. Quero criar uma nova pasta aqui, chamá-la de níveis e colocá-la lá. Vou chamá-lo apenas de Novo Mapa, salvar a cabeça e ele salvará o nível lá. A próxima coisa que eu quero fazer é acessar as preferências do editor de edição. E aqui, eu quero procurar por aberto. Então, como um local aberto do editor, eu quero que ele esteja na janela principal. Então, sempre que abrirmos algo, ele será aberto aqui. A próxima coisa que você quer fazer é editar as configurações do projeto, acessar mapas e modos e alterar o mapa inicial do Editor para o novo mapa que salvamos e o mapa padrão do jogo para um novo mapa Só com isso, seremos salvos. Não há próxima coisa que você queira fazer. Queremos acessar o plugin Edit. E aqui, procure o caos. Desça até chegar ao plugin do veículo do caos. Basta verificar esses cabeçotes e reiniciar seu projeto. Saiba que nosso projeto está sendo reiniciado, o que precisamos fazer. Na descrição deste vídeo, há um arquivo zip chamado Helly dot Zep Basta fazer o download disso. Coloque-o na sua área de trabalho. Você pode abri-lo se estiver no Windows 10 ou 11. Mas se você não estiver no Windows 10 ou 11, você pode baixar o software WinRAR para extrair Dentro desta pasta, você pode ver que há anti Argon e há uma pasta HeL Que dentro de cada um deles, há uma pasta de ativos. Esses são todos os ativos de que você precisa para este projeto. Agora, com isso feito, podemos simplesmente arrastá-lo e soltá-lo e colocá-lo na área de trabalho para ser extraído Agora, você pode ver que está extraindo. Com essas duas pastas, precisamos ir ao Areal Engine, ir até a gaveta de conteúdo, clicar na pasta Conteúdo, clicar com o botão direito, clicar nela e mostrá-la no E isso abrirá a pasta de conteúdo do Healy, certo? Feito isso, precisamos arrastar essas duas pastas anti Airgon e Hell para dentro dessa pasta de conteúdo Isso é tudo que você precisa fazer. Agora, se você for até o motor Areal, aqui, você pode ver que há duas novas pastas AntiArgon Podemos clicar com o botão direito do mouse e definir uma cor para eles. Por exemplo, diabos, eu quero usar verde porque é o jogador, certo? E o Antiirgon eu quero novamente, clique com o botão direito nele, defina Dessa vez, eu quero usar o vermelho porque é o inimigo, certo? Não, temos os ativos necessários para criar nosso jogo de helicóptero 3. 02 Crie um projeto em helli: Saiba que temos os ativos necessários, vamos criar nosso primeiro plano para nosso helicóptero Para fazer isso, primeiro de tudo, se você entrar em uma dessas pastas, qualquer uma delas e não ver a pasta de ativos, basta fechar o mecanismo Al e abri-la novamente e você a verá lá. Agora, vá para a pasta, clique com o botão direito aqui, crie uma nova pasta aqui, e podemos chamá-la de blueprint Então, todas as nossas plantas estarão aqui. Clique com o botão direito aqui, crie uma classe de projeto. E desta vez, vá para todas as classes aqui e pesquise por peão de veículo com rodas, veículo com rodas Pan selecionou a cabeça e podemos chamá-lo OK. É isso mesmo. Vamos entrar. Vou clicar nele para abri-lo. Aqui, temos um componente de movimento do veículo e temos uma malha, é uma malha esquelética Podemos simplesmente clicar nele e, em sua malha ácida esquelética, podemos escolher nosso helicóptero e você pode vê-lo aqui Isso parece realmente incrível. Não há próxima coisa que você queira fazer. Queremos adicionar um braço de mola e a câmera. Então clique na malha, clique em AD e pesquise por spring arm. Adicione o braço de mola. Em seguida, clique no braço da mola clique em AD e adicione uma câmera. Isso é muito importante. Não, a próxima coisa que eu quero fazer mudar o comprimento do nosso braço de mola. No momento, você pode ver que é muito pequeno. Então, clique no braço da mola e altere o comprimento do braço alvo para 2000. Ok, se você quiser aumentá-lo, você pode fazê-lo, mas isso é mais do que suficiente. Não, você pode ver que o braço de mola é um começo na parte inferior do helicóptero O que eu quero fazer é aumentar um pouco, assim para 150, talvez no meio de um helicóptero, e pronto Vamos apenas compilar e salvar. Agora, vamos ver como podemos gerá-lo. Para gerá-la, quero criar uma nova classe de blueprint aqui e quero criá-la a partir da base do modo de jogo Eu quero chamá-lo de GM para o modo de jogo, BP para o modelo. Eu quero chamar isso de inferno. GM BP, inferno. Boneca, clique nela para abri-la. E aqui, a única coisa que você quer mudar é o punk padrão last Você quer alterá-lo do peão padrão para o inferno do BP. Então, esse modo de jogo surgirá no inferno da BP como seu PunLSS Agora, você pode simplesmente salvá-lo e fechá-lo. Se você for para o mapa, podemos ir para a configuração de palavras. Se você não tiver essa configuração de palavra, vá para Janela e abra a configuração de palavras clicando aqui. Não, o modo de jogo que você deseja sobrescrever é chamado GM BP hell game mode blueprint hell Só assim, se formos seguros e atropelarmos o jogo, você pode ver, não, podemos ver nosso helicóptero com a câmera e o braço de mola que trazem a câmera de volta Certo. O primeiro problema que você pode ver é que as rodas não estão. Ok, vamos ver como podemos consertar. 4. 03 Configuração da roda: Não, para consertar as rodas de um helicóptero que não está girando OK. Para fazer isso, há um componente de movimento do veículo aqui que devemos dizer quais desses ossos são suas rodas, certo? Então, vamos abrir a malha esquelética disso. Você pode ver que há dois na frente aqui e um atrás. Vamos até a gaveta de conteúdo. E aqui, eu quero ir para Acid, acessar conteúdo do Vigilante, ir para o veículo, ir para West Healy E aqui, abra o esqueleto, certo? Esqueleto do nosso helicóptero. Então, agora aqui eu quero procurar o inferno e você pode ver que temos um aqui. Eu posso pressionar F para ampliar. Você pode ver que este é o primeiro. E depois disso, temos uma junta de roda real. Se atingirmos F, iremos até lá e podemos testá-lo girando-o, certo? E temos Art Wheel Joint. E se você apertar F, iremos até lá e podemos girá-lo para ver se está tudo bem Portanto, temos três rodas Rtheljoint, junta de roda LF e junta de roda traseira Queríamos montar essas rodas. Então vá para a BP Healy. Aqui, temos três. Então, vamos criar três deles. Agora, vamos expandi-lo para ver o que ele precisa. Primeiro, ele precisa de uma classe de salto. Depois disso, precisa de um nome ósseo, certo? Então, vamos escolher primeiro o nome do osso para todas as rodas e, depois disso, criaremos uma classe de salto, se necessário, certo? Então vá aqui, vá até um esqueleto aqui, e eu quero fazer isso para a junta da roda esquerda, clique com o botão direito nele Copie o nome do osso. E podemos simplesmente colá-lo aqui. É isso mesmo. Podemos ir para o próximo para o próximo. Quero fazer o correto: clique com o botão direito do mouse nele, copie o nome do osso e cole Não, eu quero fazer a roda traseira. Então, novamente, vamos aqui. Temos junta da roda traseira, clique com o botão direito nela. Copie os ossos. E cole aqui. E agora, para testar isso, vamos até nosso mapa para que eu possa ejetar dele, certo? Se eu bater em F oito e entrar aqui, você pode ver que a roda dianteira está bem. Não está girando. Não se preocupe com isso. Nós vamos corrigir isso. Mas a roda traseira, você pode ver que está no céu, então isso é um problema. É por isso que precisamos criar uma classe de roda para a roda traseira, certo? E eu quero criar uma classe de rodas para a roda dianteira também. Mas primeiro, vamos criá-lo para este. No momento, a razão pela qual está no céu é porque a classe das rodas não é boa. O raio da classe de roda que estamos usando aqui, por padrão, não está certo Não foi feito para isso. Então, vamos ver como podemos resolver esse problema na próxima 5. 04 Raio da roda: Não, para resolver o problema, a roda traseira está no céu. Vamos ver como podemos resolver isso. Para corrigir isso, eu quero ir para a gaveta de conteúdo, ir para a pasta Hali, ir para E aqui, à direita, clique em criar uma classe Blueprint, vá para todas as classes e procure o caos que enfrentamos. Roda de veículo Chaos. Então, queremos criar uma classe para mais de rodas. Então clique em Selecionar, e eu quero chamá-la C ww para caos da roda do veículo, e eu quero chamá-la de roda traseira Ok, roda traseira. Não clique nele para abri-lo. E aqui, você pode ver que podemos mudar algumas coisas. Por exemplo, o raio da roda, que é muito mais importante Apenas com esse valor padrão, se você clicar aqui e clicar no componente de movimento do veículo e escolher a roda CVWrar que criamos juntos, vamos ver o que acontecerá se você compilar e executar Não, você pode ver novamente que está no céu que não funciona Não, vamos aqui e mude raio da roda para 20, por exemplo E com isso, se você clicar em correr novamente, poderá ver que está próximo ao chão. Não, vamos mudar para dez e testar isso. Se você atropelar um jogo e ejetar, não, você pode ver que ele está no chão e está lindo As rodas dianteiras estão bem, mas eu também quero criar uma classe para elas. Então, se precisarmos mudá-los, podemos mudá-los, certo? Então vá para a gaveta de conteúdo. Eu quero clicar neste CVWrarwheel, Control D, para duplicá-lo, e eu quero renomeá-lo para roda dianteira, certo? Roda dianteira. E eu quero mudar o raio de 10 a 30 talvez, certo Compile, salve, acesse ou pressione o botão, clique no componente de movimento do veículo e altere a classe da roda das rodas dianteiras do caos, roda do veículo para roda dianteira que criamos juntos Então essa também, roda dianteira. Não, digamos que resolva. Se atropelarmos o jogo e ejetarmos, não, vamos dar uma olhada Não, você pode ver que esses estão bem, e os outros também. Tudo está lindo. Tudo parece natural, mas o problema é que o inferno está se movendo, mas nossas rodas não estão girando de jeito nenhum Então, vamos ver como podemos girar nossas rodas 6. 05 Rotação da roda: Não, para girar nossas rodas, sempre que nosso helicóptero estiver em movimento, para fazer isso, precisamos criar um plano de animação para o precisamos criar um plano de animação para o esqueletim do helicóptero. Então, clicando com o botão direito aqui, desta vez, eu quero ir para a classe Blueprint para criar o blueprint de animação Eu quero procurar um veículo. E se você descer, poderá ver uma instância de animação do veículo porque estamos usando um veículo. O helicóptero é só um veículo. Então, quando criamos um plano de animação para um veículo, precisamos criar uma instância de animação de veículo Então escolha-o e selecione-o, e aqui, eu quero chamá-lo de ABP Halley, certo Cachorro, clique nele para abri-lo. Eu vou te dizer que ele não tem nenhuma malha esquelética. Você quer configurá-lo? Você diz que sim, escolhe a malha esquelética do helicóptero O e pressiona Ok, é isso Não, vamos fazer isso, clique nele para abri-lo. Aqui, a primeira coisa que você quer fazer obter a malha f pose ou o espaço da malha, se pose. Isso nos dará todas as informações sobre os ossos internos ou esqueléticos. Agora, depois disso, precisamos procurar o controle de roda para um veículo com rodas com isso Você não precisa fazer nada se apenas conectá-lo ao poste de saída. Com isso, todas as rodas funcionarão bem. E saiba que criamos isso, precisamos configurá-lo dentro do nosso BPHlly Clique na malha esquelética ou helicóptero e escolha a classe anim A classe animal para isso é ABP hell. Então, vamos escolher aquele salvamento compilado principal, e agora podemos simplesmente rodar o jogo. Agora, se ejetarmos, você pode ver cada um girando perfeitamente bem Você pode ver cada um girando bem. Todos eles estão girando bem. Mas o problema agora é que você pode ver que o raio dessa roda não é bom Está um pouco dentro do chão. Então, podemos simplesmente ir para a roda traseira, as rodas CVWrar e alterá-la para, por exemplo, 15 novamente e compilar, vamos testar isso mais uma E vamos até aqui, e pronto. Isso funciona bem. 15 é um bom número, certo? Este é bom, e o da frente é bom e eles estão girando E nosso helicóptero parece incrível, certo? 7. 06 Olhar para baixo: Não há próxima coisa que você queira fazer. Queríamos poder dar uma olhada em nosso helicóptero com o mouse Vamos ver como podemos fazer isso. Para fazer isso, eu quero ir para a gaveta de conteúdo, e aqui na pasta Hell, eu quero clicar com o botão direito do mouse, criar uma nova pasta, e eu quero chamá-la de inputs Está bem? Vou clicar nele para abri-lo aqui, clique com o botão direito, vá para a entrada. A primeira coisa que queremos criar é um contexto de mapeamento de entrada, e eu quero chamá-lo de inferno do IMC, certo? E não clique nele para abri-lo. Em seguida, precisamos criar uma ação de entrada. Eu quero primeiro olhar para cima e para baixo. Clique com o botão direito aqui, vá para a entrada e crie a ação de entrada. Eu quero chamar isso de “Eu olho para cima para baixo”, certo? Clique nele para abri-lo. O tipo de valor, queremos que seja Axis one ou float porque ou estamos olhando para cima ou para baixo Portanto, o eixo um D é mais do que suficiente. Você pode simplesmente salvá-lo e fechá-lo. Não, precisamos mapeá-lo dentro do contexto de mapeamento de entrada. Então clique aqui para adicionar um novo mapeamento, e queremos mapear a pesquisa I para cima e para baixo. E aqui com o que queremos olhar para cima e para baixo, clique aqui, queremos fazer isso com o mouse com o mouse Y. Pronto Não, precisamos ir até BP Healy no gráfico de eventos para começar a Precisamos adicionar esse contexto de mapeamento. Precisamos pegar o controle do player primeiro, pegar o controlador do player. E depois disso, precisamos obter uma entrada aprimorada, aprimorar o componente de entrada e adicionar o contexto de mapeamento a ela Adicione contexto de mapeamento, certo? O contexto de mapeamento que você deseja adicionar é chamado de AMC hell Não, com isso feito, podemos ir até aqui e procurar IA L de cima a baixo, e isso nos dará um evento aqui. Mas o que queremos mudar com esse evento? Queremos mudar a rotação do tom em torno do eixo Y, certo? Então, aqui, sempre que for acionado, queremos dizer adicionar controlador, entrada de tom porque queremos alterar o tom para que possamos olhar para cima e para baixo, certo, com o valor da ação, certo? Vamos ver o que vai acontecer com isso. Se você atropelar o jogo, verá não consigo subir e descer, mas definitivamente o tom do controle está mudando. O que você quer mudar com a inclinação do controlador é a inclinação do braço da mola, certo? A inclinação do braço da mola, queremos que mude assim, certo? Queríamos mudar assim. Então, para fazer isso, precisamos clicar em braço de mola e pedir que ele use a rotação do controle do trocadilho Então, se o controle olhar para cima ou para baixo, você também olha para cima e para baixo . Então use isso. Use a rotação de controle para sua própria rotação. Agora, com isso, se você compilar, salvar e executar no, você pode ver, eu posso olhar para cima e para baixo, mas é o inverso Se você quiser deixar ao contrário, você pode fazer isso, mas eu não quero que seja assim Então, para corrigir isso, eu quero entrar na gaveta de conteúdo e abrir o I look up and down, e aqui, adicionar o modificador Adicione o modificador, o tipo, eu quero que seja negado Então, com a negativa, ela inverterá o inverso, certo? Então, agora, com esse, se você atropelar o jogo, você pode ver, eu posso olhar para cima e para baixo normalmente com overmoose. Não, queremos olhar para a esquerda e para a direita Para olhar para a esquerda e para a direita, precisamos mudar a rotação em torno do quê? Em torno do eixo Z, isso é chamado de ya. Apenas lembre-se dessas coisas. É muito importante lembrar disso. rotação em torno do eixo Z é chamada de ya, e a rotação em torno do eixo Y é chamada de inclinação. Rotação em torno do eixo X, ou seja , para frente, o vetor é uma Então não, é um desafio para você. Tente criar a ação de entrada, mapeie-a. Então, com o máximo de X, queremos mudar a rotação em torno do eixo Z. Então, queremos mudar o controle para que possamos olhar para a esquerda e para a direita. Você tenta fazer isso. Nós faremos isso na próxima vez. 8. 07 Olhe para a esquerda e direita: Não, para olhar para a esquerda e para a direita, como antes, precisamos de uma ação de entrada. Então vá para a gaveta de conteúdo na pasta de recuperação na pasta de entrada, clique com o botão direito aqui e vá para a entrada e crie a ação de entrada Eu quero chamá-lo de IA. Para a esquerda, para a direita. Cachorro, clique nele para abri-lo. O tipo de valor, queremos que seja eixo um d ou flutuante. Não, queremos mapeá-lo, então vá para o inferno do IMC e adicione um novo mapeamento Desta vez, queremos fazer o look para a esquerda e para a direita, expandir isso. Queremos olhar para a esquerda e para a direita com a maioria, certo? Então é isso. E agora podemos ir para BPLLi no gráfico Avant e clicar com o botão direito aqui, pesquisar A L à esquerda Desta vez, queremos adicionar a entrada Ya do controlador, conforme explicamos no último vídeo, a rotação em torno do eixo Z é chamada de Ya para olhar para a esquerda e direita com o valor da ação que é um valor entre menos um e um, certo? Então, vamos compilar, salvar e executar. Agora, você pode ver, eu posso olhar para a esquerda e para a direita. Isso parece incrível. Mas um problema que temos aqui, você pode ver por padrão, nosso helicóptero está se movendo Então, o que eu quero fazer aqui adicionar um freio de mão Então, sempre que atingimos um espaço, esse movimento para e nossas rodas param. Vamos ver o que podemos fazer isso a seguir. 9. 08 Freio de mão: Agora vamos ver como podemos usar um freio de mão. Podemos colocá-lo dentro de qualquer veículo, certo? O helicóptero é assim. Vamos até a gaveta de conteúdo e, para isso, quero criar uma ação de entrada Então vá até a entrada e aqui, crie uma ação de entrada, e eu quero chamar isso de quebra de mão, certo? Você não precisa abri-lo de jeito nenhum. Você precisa apenas mapeá-lo porque não precisamos alterar nada dentro dele. Então vá para o IMC Healy, crie um novo mapeamento, e queremos mapear o I handbake. Quando você quiser que aconteça, basta clicar aqui, abrir espaço para colocar uma barra de espaço Então, sempre que tivéssemos um espaço, ele deveria usar o freio de mão. Vá para o arquivo, salve tudo. Agora, vamos para o inferno da BP e aqui, clique com o botão direito. E procure por I hand break, certo? Então não, dentro desse evento, não queremos usar o gatilho, queremos usar o início e a conclusão. Quando esse início acontecer, sempre que pressionarmos espaço, esse início acontecerá. E sempre que liberarmos o espaço, essa conclusão acontecerá. Então, com isso, queremos ter um freio de mão. Para um freio de mão, você precisa pegar o componente de movimento do veículo e, dentro dele, há uma quebra de mão Então, procure o freio de mão, coloque o freio de mão nele Coloque sempre que pressionamos a barra de espaço, queremos ativar o handbake, que é copiar e colar com o controle C, controle E sempre que liberamos a guerra espacial, queremos liberar o freio de mão Mas vamos ver se está acontecendo exatamente assim. Se você atropelar o jogo e acessar o O wheels Hetaspace, nada acontecerá Por que nada está acontecendo. É porque dentro de nossa roda, a roda dianteira CVW, por exemplo, queremos lavá-la para ser afetada por um Então, basta ativar esse cofre de cabeça. Não queremos ativar o freio de mão na roda traseira, então não se preocupe com isso Você não precisa habilitá-lo. Agora, feito isso, se você atropelar o jogo e bater no espaço, você pode ver que ele não parou e está parado no local. Então isso parece incrível. Nosso freio de mão está funcionando bem. Se você atropelar o jogo novamente e perceber que ele está se movendo, se eu bater no espaço, ele parará aí. E também temos suspensão . Muito legal. 10. 09 Ações de entrada para subir e descer: Não, queremos realmente nos mudar. Vamos ver como podemos fazer isso. Para fazer isso primeiro, precisamos de uma entrada. Então, clicando com o botão direito aqui, crie uma ação de entrada, e eu quero chamá-la de IA, mova para cima e para baixo, certo? Não clique nele para abrir o tipo de valor, queremos que seja Eixo um D. Então você pode simplesmente colocá-lo no Access one D e você pode simplesmente fechá-lo. Nós não precisamos disso. E agora queremos mapeá-lo ou o inferno do IMC e, aqui, queremos escolher mover para cima e baixo e como queremos mover para cima e para baixo Queremos fazer isso com o deslocamento para a esquerda e o controle de elevação. Então clique aqui, mude a cabeça, para que esteja lá. Novamente, clique aqui para adicionar outra entrada, clique aqui depois do controle principal. Então, agora temos o controle de mudança de marcha e elevação para a esquerda. Então, sempre que pressionamos a tecla para a esquerda em nosso teclado, o movimento IA para cima e para baixo nos dará uma. Mas sempre que pressionamos o controle de elevação, queremos que o evento de subida e descida do IA nos dê menos um Então vamos para baixo, certo? Então, aqui, por padrão, sempre que sairmos do controle, ele também nos dará um. Mas queremos negá-lo com um modificador, então ele nos dará menos Então clique aqui, negue, saiba o que vai acontecer. Sempre que sairmos do turno da esquerda, ele nos dará um. Sempre que sairmos do controle, isso nos dará menos um Só com isso, vamos ao BPL. Eu quero ter um pouco de espaço. Certo, clique aqui, pesquise por IA, mova e desça. Com isso, o que eu quero fazer definir a entrada do acelerador que está dentro do componente de movimentação do veículo, certo? Não, vamos nos conectar assim. Vamos apenas compilar para ver se algo aconteceu ou não Primeiro, vamos esperar, no turno da esquerda. Você pode ver que nada está acontecendo. Se eu dirigir o controle ou mudar de direção, nada está acontecendo. Para que você veja melhor, quero usar uma string de impressora para mostrar o valor da ação dessa forma. E se você correr, não, nós queremos subir. Então segure o turno para a esquerda. Você pode ver que vai nos dar um, mas não vai subir. Se eu tivesse o controle esquerdo, isso nos daria menos um, mas nada está acontecendo, certo? Então, para consertar isso, precisamos ir ao componente de movimentação do veículo e configurar o motor. Quero criar outro vídeo apenas para configurar no motor. Então, sempre que quiser, você pode voltar ao vídeo e assisti-lo novamente. 11. 10. Configuração do motor: Não, vamos ver como podemos configurar nosso motor, para que diabos ele possa subir e descer. Para fazer isso, clique no componente de movimentação do veículo. Desça aqui até chegar à configuração da treliça. Abaixo, e você pode ver a configuração da treliça, certo? Então clique aqui para adicionar o propulsor, precisamos de apenas um. Em primeiro lugar, o tipo de treliça, porque o motor não está se movendo, então o colocamos fixo Não pelo nome do osso. Vamos até um esqueleto ou um helicóptero. O osso que eu quero usar, vamos descer, é uma articulação dentada que está no meio do nosso helicóptero e tem todos os ossos dentro dela É por isso que eu quero clicar com o botão direito do mouse, copiar os nomes dos ossos e colocá-los no nome de over bone. Então, o que isso significa? Isso significa que sempre que mudamos a cabeça, essa entrada etrotal adicionará alguma força ao osso na direção que queremos, certo? Então, estamos apenas dizendo onde essa força deve ser adicionada, certo? O eixo de confiança para onde ele deve ir, eu quero colocá-lo em Z 1. Isso é X Y Z. O X e Y, queremos que seja zero, mas o Z, queremos que seja um Então, sempre que mudamos a cabeça, o acelerador aumenta e queremos aumentá-lo em direção ao Z positivo, então subimos, certo? Então, vamos descer novamente. Em seguida, quero mudar a força do Max Trust para 25.000. Claro, você pode alterar esse valor sempre que quiser, brincar com ele, certo? Só com isso, se você tivesse compilado e executado, segure a tecla shift, não, você pode ver, está aumentando com isso Se mantivermos o controle, ele deve cair. Você pode ver. Não, está caindo. E é isso. Estamos no chão e podemos atingir o espaço para parar. Você pode ver. Isso é muito legal. Mas isso não é tudo o que queremos. Também quero adicionar o controle de torque. Então habilite o controle de torque, e eu quero mudar a escala de torque de inclinação em uma e a escala de torque de rotação em uma. Então, sempre que quisermos rolar, podemos rolar. E depois disso, o amortecimento de rotação, porque eu não quero que ele gire muito, vou colocar um lá também Na próxima, para estabilização ou helicóptero, quero habilitar o controle de estabelecimento e quero aumentar a altitude de Z para 15 E essas posições e por que eu quero reduzi-las para uma Isso nos ajudará a sublinhar nosso helicóptero para que ele não se mova livremente Obviamente, devemos jogar com todos esses valores até alcançarmos o resultado que você deseja. Talvez você queira o jogo de arcade. Você precisa alterar esse valor. Talvez você queira um jogo de simulação. Novamente, você precisa alterar muito esses valores e pronto. Ou a configuração do motor é boa. Agora, vamos testar isso mais uma vez. Se você segurar a tecla Shift, poderá ver como está lindo e, agora , tem mais estabilização Se você cair, verá que está mais estabelecido e, no momento, não podemos ir para a esquerda e para a direita não podemos ir para a esquerda e Mas adicionamos algumas coisas aqui para mudar o tom, para avançar, retroceder e mudar a linha para ir para a direita e para a esquerda 12. 11. Modifique o osso do rotor: Estamos subindo e descendo, mas o problema é que não parece bom. As lâminas não estão girando. O rotor não está girando, certo? Primeiro, deixe-me mostrar o que é a lâmina. Se formos aqui, você pode ver isso, chamamos de lâmina ou rotor Então, sempre que o motor dá partida e eles sobem, esses rotores, essas pás devem estar E para fazer isso, precisamos acessar o Animation Blueprint. No Animation Blueprint, deixe-me abrir um pouco de espaço. O nó que você deseja usar é chamado de modify Bone. Então, pesquise por Modify Bone. E aqui, o osso que queremos mudar. Como podemos encontrar isso. Se você for até um esqueleto e aqui, procure por um rotor Você pode ver que há muitos deles: rotor, junta principal. E se você girar isso em torno do eixo Z, você pode ver que é isso que queremos girar. Você pode ver. Isso é legal. Agora, notamos a articulação principal do rotor ósseo. Então, vamos apenas usá-lo. Nesta nota, precisamos escolher esse rotor ósseo, rotor, articulação principal, Não precisamos alterar a tradução, então podemos ir ao painel de detalhes e pedir que ele não o exponha como um alfinete Não precisamos alterar a escala, então não exponha isso como um alfinete, mas queremos alterar a rotação E o modo de rotação, queríamos adicionar à existência porque se ele tivesse uma rotação anterior, deveria ser adicionado a ela, certo? O espaço de rotação, eu quero que seja um espaço bônus, para que ele gire corretamente, certo? Porque onde o helicóptero pode rolar, pode mudar o tom e fazer muitas coisas Então, se você colocá-lo em um espaço bônus, ele girará de acordo com seu pai, certo? Não, sobre a rotação. Clique com o botão direito nele, divida o pino do traçado. Precisamos mudar a rotação em torno do eixo Z. Por exemplo, se eu colocar 45 aqui e começar a compilar, você pode ver que é 45, não, certo? Eu não quero fazer isso desse jeito, o que eu quero fazer. Eu quero expandir e promover isso para uma variável. E eu quero chamar isso de valor do rotor, certo? Esse é o valor do rotor. Compilação principal Não, vamos apenas alterar o valor do rotor em qualquer editor de visualização aqui para que você possa ver que ele está girando corretamente Isso parece muito bonito, certo? Mas como queremos fazer isso, queremos fazer isso dentro do nosso projeto E desde o início, queremos começar devagar primeiro porque o motor dá partida devagar, certo? Depois de 1 segundo, ele deve atingir a velocidade máxima, certo? Então, no início, queríamos girar devagar suavemente e, após 1 segundo, queríamos atingir a velocidade máxima. E para fazer isso, precisamos usar esse valor. Mas para calcular esse valor como deveria ser, eu quero usar o W blueprint ou o BP E vamos ver como podemos fazer isso a seguir 13. 12 Rotação do rotor: Não, temos um plano interno ou de animação muito bom que, com isso, podemos girar sobre Mas vamos ver como podemos girá-lo dentro de um helicóptero Blueprint, certo Então, para fazer isso, eu quero usar o eventiqu, mas não quero tornar esse eventiqu uma bagunça É por isso que eu quero criar um evento personalizado. Então, aqui, vou pesquisar um evento personalizado e quero chamá-lo de Engine Manager. Certo? Faremos muitas coisas, mas vou chamá-lo de gerente de motor. E eu quero chamar esse evento personalizado em nosso caminho EventQueecution Então, o que quer que conectemos a esse evento personalizado aqui, é como conectá-lo ao eventiqu Então, agora aqui, queremos ter uma variável. Então, com isso, giramos as lâminas, certo. A variável que eu quero criar, eu quero chamá-la de velocidade do rotor, ok? E essa velocidade do rotor, eu quero aumentá-la toda vez Portanto, essa não é a maneira final de fazer isso. Eu vou mudar isso mais tarde. Mas, por enquanto, vamos dar uma olhada. Por exemplo, cada vez que eu quero adicionar cinco, certo, cada quadro. E com esse valor, queremos definir o otoraped com ele, certo, assim E saiba que temos essa velocidade do rotor, o que acontecerá. cada quadro, a velocidade do rotor será aumentada em cinco unidades, certo? E com isso feito, vamos ver nosso plano de animação no gráfico de eventos E aqui, a primeira coisa que queremos fazer criar um ponto de partida para o evento. Então, com isso, obtemos a BPL para que possamos acessar as variáveis dentro dela Então, precisamos que o evento comece a ser exibido aqui, e queremos escolher o ator proprietário desse projeto de animação Dois BP Healy, certo? E depois disso, queremos promover essas duas variáveis, e eu quero chamá-las de BP Healy Isso é mais do que suficiente. Agora, no evento de atualização aqui, queremos obter nosso BP Healy. Queremos verificar se é válido. Portanto, a pesquisa por é válida. Se for válido, queremos obter a velocidade do rotor, rotor, velocidade e defini-la como valor do rotor Ajuste com a velocidade do rotor, certo? É isso mesmo. Não, o valor da velocidade do rotor em cada estrutura será salvo dentro do valor do rotor E porque conectamos o valor do rotor a esse osso modificado, ele deve girar, certo Agora, se você atropelar o jogo, poderá vê-lo sempre girando, certo? Isso não é bom. Queremos saber se o motor está ligado ou não, se está ligado ou não, se está desligado ou não. Se, pela primeira vez, mudarmos a cabeça ou controlarmos nosso teclado, queremos girá-lo lentamente, certo? E depois de 1 segundo, queremos que ele alcance a velocidade máxima. Portanto, essa maneira de fazer isso não é boa o suficiente. É por isso que também precisamos saber quando o motor deu partida, quando o motor está desligado. Então, vamos ver como podemos fazer o próximo vídeo. 14. 13 Gerenciador de motores: Não, estamos girando as pás, mas o problema é que elas estão sempre girando, Vamos ver como podemos consertar isso. Você pode ver aqui, está sempre girando. Não importa se você está no chão, se está subindo ou descendo. Nada está mudando, certo? A velocidade não está mudando. Para corrigir isso, precisamos saber sobre o estado do motor se ele foi ligado antes, se está apenas dando partida ou se está desligado. E para fazer isso, eu quero criar alguma variável. Então, a primeira variável que queremos criar é chamada de partida do motor, certo? E a próxima variável que queremos criar é chamada de motor ligado, certo? E a próxima variável que queremos criar é o desligamento do motor, certo? Saiba com essas variáveis, o que eu quero fazer aqui, sempre que trocamos a cabeça, controlamos ou teclamos, queremos verificar se o motor deu partida antes ou não. Então ligue o motor , e aqui, eu quero usar uma ramificação como essa, conectar o pino de execução a ela Se o motor deu partida antes, faça tudo normalmente. Basta definir a entrada do acelerador com o valor da ação como antes, certo Mas se o motor não foi ligado, não, queremos ligá-lo, certo? Então, para ligar o motor, primeiro, precisamos dar a partida do motor aqui, configurar a partida do motor. Se o motor não foi ligado e ajustado para falso porque nós o ligamos, então o desligamento do motor deve ser falso. E depois de algum atraso, por exemplo, 1 segundo, queremos dizer que o motor está ligado. Então, depois de 1 segundo, queremos dizer que a partida do motor é verdadeira, certo? Verdadeiro. É isso mesmo. Vamos conectá-lo assim. Depois disso, você pode mudar o acelerador, certo? Isso é tudo que precisamos fazer. Vamos começar a compilar, salvar Nada aconteceu porque estamos apenas alterando algumas variáveis. Mas não, com essas variáveis, quero verificar se esse gerenciador de motor está conectado à Eventiq se esse motor começar a funcionar Podemos verificar isso com a filial. Se isso for verdade, nesse caso, você pode girar as lâminas, Vamos compilar, salvar e executar o jogo Você pode ver, por padrão, que não está girando, mas se tivéssemos uma mudança, não, você pode ver que as lâminas estão girando, e isso parece incrível Não, a lâmina tem uma velocidade constante. Não queremos que seja assim. Queremos mudar lentamente a velocidade. Vamos fazer isso no próximo vídeo. 15. 14 Diferentes velocidades do rotor: Nossas lâminas girarão sempre que tivermos uma mudança ou controle no teclado, certo Ele não vai girar sozinho, certo? É um bom passo na direção certa. Mas quando mudamos a cabeça, queremos mudar lentamente a velocidade do rotor e, após 1 segundo, queremos atingir a velocidade máxima, certo? Então, para fazer isso, aqui, queremos mudar esses cinco. Então, no início, a velocidade do rotador, cada quadro aumentará em cinco a cada quadro, certo? Queremos ser capazes de alterar esses cinco por algum valor. Primeira maneira de fazer isso, podemos verificar se o motor está ligado, certo? Então, aqui, podemos verificar com a filial. Claro, não é assim que eu quero fazer no final. Então não faça isso. Assista, certo? Então, se o motor foi ligado, queremos aumentar esse valor para 25, por exemplo. Mas se o motor não for ligado, essa queda acontecerá, e eu quero controlar o controle C V para colar tudo aqui embaixo. Em caso de quedas, queremos que aumente em cinco. Agora, vamos ver o que vai acontecer. Compile, salve e execute o jogo. E sabendo aqui, se eu segurar o câmbio, você pode ver no início velocidade é menor e, de repente, quando o motor der partida após 1 segundo, ele aumentará para 25 em cada quadro. Cada quadro 25 será adicionado à rotação. Você pode ver como é. Novamente, vamos dar uma olhada. No início, a velocidade é menos visível. E depois de 1 segundo, ele será aumentado. E isso é com esse atraso que temos aqui entre a partida do motor e a partida do motor, certo? Arranque do motor e arranque do motor, certo? Mas eu não quero fazer isso com o galho. Não parece bom, certo? Então, o que eu quero fazer, eu quero fazer com um intérprete. Esta nota interpretará suavemente esse valor de, por exemplo, zero a 25, por exemplo Mas para fazer isso, quero criar outro vídeo só para isso. Então, vamos ver como podemos fazer isso no próximo vídeo 16. 15 Interponte: Não, você sabe o que queremos fazer. Queremos alterar a velocidade de rotação com base no fato de o motor ter acabado de dar partida ou ter sido ligado. Saiba o que queremos fazer. Queremos alterar suavemente a velocidade de rotação, a velocidade rotação quando o motor dá partida, certo Então, para fazer isso, precisamos alterar esses 25 que temos aqui para que cada quadro que adicionamos à velocidade de rotação suavemente para Então, no início, quando o motor der partida, ele deve ser zero. E depois de 1 segundo, queremos mudar isso suavemente para 25, certo? Então, para fazer isso, precisamos de uma variável. Aqui, quero clicar com o botão direito do mouse em promovido a variável e chamá-lo de taxa de velocidade do rotor. Está bem? Então, aqui, podemos simplesmente colocar o valor que quisermos. Mas o que queremos que aconteça é alterar suavemente essa taxa de velocidade do rotor para a velocidade máxima acima de 25 Então, por padrão, queremos que seja zero. Não, com isso feito, se clicarmos em correr aqui, você pode ver se eu segurar a tecla Shift, nada está mudando. consigo ver que nada está mudando porque essa velocidade do rotor é zero e adicionará zero à velocidade de rotação em cada quadro. Nada aconteceu. Então, o que você quer fazer? Queremos alterar essa taxa de velocidade do rotor quando o motor arranca suavemente para 25 E podemos fazer isso com o nó chamado interp two. E como queremos alterar um valor flutuante de 0 a 25, precisamos usar a interpretação F que está aqui, interpretador F. Esse nó precisa de um valor atual. O valor atual que você deseja alterar é zero, que, por padrão, é zero e é nossa taxa de velocidade de rotação Queremos alterar essa taxa de velocidade de rotação para o valor alvo que é 25 E esse nó precisa de tempo delta. Podemos obter a palavra Delta em segundo lugar para isso e, depois disso, o interpepeed Para a velocidade de interposição, quero colocá-la em 0,5, mas devemos jogar com esse valor Então, o que esse nó nos dará em cada quadro, esse intérprete F verificará o valor da taxa de velocidade do rotor e o mudará lentamente em direção ao valor alvo com base nessa velocidade de interposição, certo E a cada quadro, precisamos salvar esse valor que essa relva efina também nos fornece a taxa de velocidade interna do rotor, assim, certo Então, conecte o pino de execução a ele desta forma e conecte esse valor de retorno à taxa de velocidade do rotor Agora, vamos ver o que vai acontecer. Se você atropelar o jogo, poderá ver que, por padrão , ele está desligado. Se você segurar a tecla Shift, verá que ela aumentará lentamente a velocidade do rotor até atingir a velocidade máxima Não, você vê como é bonito. Novamente, vamos dar uma olhada no padrão, nada acontece. Se você segurar a tecla Shift, veja, ela mudará lentamente a velocidade de rotação até atingir 25 em cada quadro, e pronto É assim que podemos alterar lenta e suavemente a velocidade de rotação para um valor máximo 17. 16 Pairando: Nenhuma outra coisa que queremos acrescentar ao nosso helicóptero é a capacidade de estar pairando Sempre que liberamos turnos, quando estamos subindo, queremos pairar nessa altura E sempre que mantemos o controle e descemos e liberamos o controle, queremos pairar nessa altura Então, vamos ver como podemos adicionar capacidade horária ao nosso helicóptero. Então, para fazer isso, sempre que soltamos a tecla shift ou control em nosso teclado, precisamos salvar a altura em que estávamos, certo? Então, para fazer isso, posso simplesmente obter a localização do ator. E com isso em um pino de asteróide dividido, esse valor Z é a altura do nosso helicóptero, certo Então, se a salvarmos, quando liberarmos o controle de mudança em nossa palavra-chave, o que acontecerá é que ela salvará a altura naquele momento, certo? Então, podemos promovê-los para uma variável, o Z dela, e eu posso chamá-la de altura para permanecer, certo? E se a salvarmos quando soltarmos a tecla shift ou control em nosso teclado, ela salvará essa altura dentro de nossa variável, certo? Agora, com isso, sabemos que há uma altura que devemos manter, que devemos pairar sobre essa altura, certo? Então, agora, vamos ver como podemos passar o mouse lá. Para Hering, quero mudar essa entrada do acelerador para cima e para baixo para que fiquemos nessa E como podemos fazer isso, eu quero fazer isso aqui. Neste evento do gerenciador de motor que está conectado ao eventiq No final, primeiro, quero verificar com uma ramificação se há alguma entrada ou não. Então, aqui, eu posso fazer o I subir e descer. Então, com isso, vou obter o valor da ação aqui, o valor da ação que esse IA sobe e não nos dá. Se for igual a zero, se for igual a zero, significa que não há entrada. Então, se não houver entrada, podemos manter essa altura e salvá-la dentro dessa variável, certo? Então, não, em caso de verdade, queremos alterar a entrada do acelerador para subir ou descer, então mantemos essa Conjunto de controle, copie isso e cole aqui. Mas que valor queremos colocar aqui? Se colocarmos um aqui, ele subirá e se colocarmos menos um neste acelerador, ele descerá Como podemos gerenciar isso, como podemos mudar esse acelerador, para que ele permaneça na altura que queremos Para fazer isso, queremos verificar a altura atual do nosso helicóptero e a altura em que ele deve permanecer Então, para obter a altura atual do nosso helicóptero, podemos obter a localização do ator novamente, obter a localização do ator E com isso, se acertarmos nele para dividir um pino rochoso esse Z será a altura atual do nosso helicóptero, certo? Eu quero subtrair isso com a altura para ficar assim para ver qual é a diferença Se a altura atual for maior do que a altura em que devemos permanecer, precisamos diminuir o acelerador, para que o helicóptero caia, certo Mas se o helicóptero está aqui embaixo e a altura para se manter está aqui, significa que devemos aumentar o acelerador, então o helicóptero sobe até essa altura para continuar Agora, com essa subtração, temos diferença entre a altura Com esse valor, quero usar um nó chamado map range clamped, certo? Então, verificamos a diferença entre a altura que temos atualmente e a altura que deve permanecer. Se estiver entre zero e -15, queremos mudar o acelerador com um valor É isso mesmo. Eu preciso de um pino de execução. Vamos admitir isso. Deixe-me explicar mais uma vez. Digamos que nosso helicóptero esteja aqui em cima e a altura para se manter esteja aqui altura do nosso helicóptero menos a altura em que devemos permanecer, isso nos dará um valor positivo Por exemplo, dez, por exemplo. Dez aqui não está entre A e B no alcance. Não estará entre esses dois, então ele o fixará em zero porque está mais próximo de zero Na saída, isso nos dará o acelerador de zero. Então, nesse caso, a gravidade fará com que o helicóptero desça até essa altura para permanecer ligado Mas em outros casos, se a altura do nosso helicóptero fosse menor do que a altura em que deveríamos permanecer, o que aconteceria? Altura do helicóptero menos a altura em que devemos permanecer, isso nos dará um valor negativo Por exemplo, menos dez. Então menos dez é um valor entre isso no intervalo A e B, certo? Portanto, esse grampo de alcance do mapa nos dará um valor de 0 a 0 a 0,7. Por exemplo, 0,5 e 0,5 para acelerador, isso significa que o helicóptero subirá lentamente até atingir a altura para permanecer Mas digamos que a altura de uma permanência com a altura atual do nosso helicóptero seja a mesma. O que vai acontecer? A altura de mais de um helicóptero a altura para permanecer, nos dará zero Então, se o alcance for zero, isso nos dará zero e não haverá nenhum acelerador Só com isso, vamos compilar para salvar um jogo de runas. Se subirmos, se subirmos assim e soltarmos a tecla shift, você pode vê-la subir um pouco e, depois disso, ela permanecerá no lugar, você pode ver. A altura de um helicóptero no momento não está mudando em nada. Ele vai pairar. Está voltando por causa da rotação do nosso helicóptero, porque, no momento, não podemos mudar o tom, então podemos avançar e retroceder Mas você pode ver que sua altura não está mudando. Novamente, se subirmos e soltarmos a tecla shift, novamente, ela manterá essa altura. E se cairmos, novamente, ele manterá essa altura. Isso é muito legal. Não, com isso, temos a funcionalidade de pairar sobre o 18. 17. Verifique a altura com o traçado de linha: Não, eu quero adicionar mais efeitos ao helicóptero. Por exemplo, a poeira quando o motor dá partida, queremos ter um pouco de poeira embaixo do helicóptero Vamos ver como podemos fazer isso. Para fazer isso, quero falar aqui sobre o efeito Niagara, ok, sistema de partículas Niagara Eu quero chamar isso de conserto de poeira, certo? E com isso, o sistema Nagar que eu quero colocar lá é chamado NS hell ground dust. Vamos colocá-lo lá. Vá até nossa porta de visualização, e aqui, agora, você pode ver que nada está acontecendo porque há um prompt de usuário chamado de velocidade adequada, que se aumentarmos isso, você pode ver que haverá um pouco de poeira lá Se atropelarmos um jogo com esse valor, você pode ver que há uma poeira lá. Portanto, com base na distância até o solo que temos e na velocidade do rotor, podemos decidir qual deve ser a velocidade adequada Por exemplo, se quisermos que seja 100 ou se quisermos que seja 500 ou qualquer outra coisa, certo, quanto queremos que seja. Por padrão, queremos que seja zero porque, por padrão, o motor não está ligado. Então, vamos ver como podemos fazer isso. Para fazer isso, antes de tudo, precisamos saber qual é a distância entre nosso helicóptero e o solo Certo? Então, para fazer isso, cada quadro eu quero fazer isso. Então, eu não quero estragar novamente esse evento. É por isso que vou criar outro evento personalizado, e quero chamar esse. Vamos apenas criar um evento personalizado. Eu quero chamá-lo de gerenciador de poeira, certo? E depois disso, vamos nos conectar ao eventiqu e eu quero chamá-lo de gerenciador de poeira, certo? É isso mesmo. Vamos apenas ir até aqui. Primeiro, vamos ver como podemos medir a distância entre nosso helicóptero e o solo Para fazer isso, quero usar uma nota chamada rastreamento de linha por canal, certo? Esse traçado de linha por canal precisa de uma localização inicial e uma localização final. Se bater em alguma coisa, haverá um valentão e, no final, ele nos dirá que você bateu em alguma coisa, certo? Então, para o local de partida, eu queria começar no meio do nosso helicóptero Então, vamos ver. Como podemos chegar ao meio do nosso helicóptero. A localização do helicóptero 00 está na parte inferior dele. Não é isso que eu quero. O que eu quero é o meio do nosso helicóptero. E se você se lembra, colocamos o braço de mola no meio do nosso helicóptero. Isso é bom. Agora, para o local inicial, vamos usar esse local do braço de mola. Então, para fazer isso, podemos pegar o braço de mola e tirar a palavra localização dele, certo? Esse é o ponto de partida. E a partir desse ponto de partida, queremos verificar se traçamos uma linha a partir do meio do nosso helicóptero para baixo. Se atingirmos o solo, qual é a distância entre o helicóptero e o solo, certo? Então, para a localização final, eu quero subtrair isso por um grande valor na direção Z. Deve estar apenas na direção Z, então verificamos a direção de baixo para baixo, certo? Então, vou colocar 50.000, por exemplo, aqui, um valor muito grande para a localização final Para você ver melhor, quero ir até a linha Debug type e pedir que ela a mostre em um quadro Agora, vamos ver o que acontecerá se compilarmos e executarmos. Agora, você pode ver que há uma linha no início, no meio de onde o helicóptero está no solo Se subirmos porque há um quadrado no final, você pode ver que ele está caindo no chão Se subirmos, se subirmos o suficiente, você verá que o quadrado desaparecerá porque estamos chegando a mais distância, certo? A última distância será de 50.000. Claro, leva muito tempo para chegar a isso. Mas não, com base no resultado que esse traçado de linha nos fornece, queremos decidir qual deve ser a velocidade adequada do VFX de poeira E se arrastarmos e soltarmos desse calor e quebrarmos o resultado, isso nos dará a distância entre o local de partida no meio do nosso helicóptero e o ponto em que ele atingiu o solo Isso nos dará essa distância. Vamos ver como podemos usar essa distância para alterar o valor adequado 19. 18 Locação de VFX em poeira: Não, com base nessa distância e na velocidade do rotor, queríamos alterar a velocidade adequada do nosso efeito de poeira sem gráfico embaixo Mas o primeiro problema que temos aqui é a localização do nosso Nagraphc Para ver isso, basta clicar no pó Vafix e alterar essa velocidade adequada para 250 para que você possa ver melhor, Se você atropelar o jogo, você pode ver se eu subo, você pode ver que o afixo está novamente na parte inferior do nosso helicóptero Então, a primeira coisa que precisamos fazer é colocá-lo sempre no chão. E como podemos fazer isso, podemos fazer isso com esse ponto de impacto onde esses traços de linha atingem o solo, certo? Então, precisamos usar uma ramificação aqui para verificar. Se atingir alguma coisa, coloque o efeito naga aí Então, vamos colocar a poeira aqui com ela, queremos definir a localização da palavra nela, certo? E o local que queremos usar é esse local em que atingiu o solo. É isso mesmo. Vamos apenas compilar, salvar Neste momento, você pode ver que há um pouco de poeira lá dentro. Se você passar o mouse, poderá ver que está sempre no chão. É isso que queremos que aconteça. Sempre, a poeira deve estar no chão. Então, isso está funcionando bem. Esse único problema está resolvido. Agora, queremos verificar mais algumas coisas. Queremos alterar a velocidade adequada com base na velocidade do rotor e na distância até o solo Vamos ver como podemos fazer isso a seguir. 20. 19 Velocidade do material para pó: Saiba, com base na distância até o chão que o inferno tem. E com a velocidade de rotação, queremos decidir qual é a velocidade adequada, quanta poeira um helicóptero deve criar, Então, para fazer isso, precisamos definir um parâmetro ou Vax de poeira que é chamado de velocidade adequada Primeiro de tudo, vamos ver como podemos definir esse parâmetro no blueprint Abra um pouco de espaço. Eu quero fazer isso no início deste gerenciador de poeira. Quando você tira o pó do VFX e define um parâmetro de flutuação nele. O set float prometer, que é um sistema de partículas infantil Só com isso, deixe-me conectar o pino de execução a ele aqui também. Agora, esse VFX de poeira tem um parâmetro dentro dele que é chamado de velocidade da hélice, certo Com isso, com base na taxa de velocidade do rotor, não na velocidade de rotação, porque a velocidade rotor está aumentando para um valor muito grande, então ele girará a pá Mas a taxa de velocidade do rotor, é um valor de 0 No valor máximo é 25, certo? Então, com base na velocidade do rotor, multiplique pelo fator distância até o solo do nosso helicóptero, queremos definir essa velocidade adequada Então, para a distância até o solo, não podemos simplesmente conectar a distância até aqui porque, veja, temos uma distância nesse outro resultado, Mas não podemos usar essa distância. Espero que queiramos usá-lo. Eu quero criar uma variável e quero chamá-la de altura. Fator, certo? Fator de altura. Então, com o fator altura, multiplicado por uma taxa de velocidade de rotação, queremos decidir a velocidade adequada Deixe-me esclarecer isso, certo? Então, se a taxa de rotação for zero, significa que a lâmina não está girando, certo Então não deveria haver poeira, certo? Portanto, a multiplicação de zero pelo fator de altura não importa qual seja o fator de altura Isso nos dará zero para a velocidade adequada e não haverá poeira. Mas digamos que a velocidade de rotação seja 25. Após 1 segundo, o motor deu partida e a taxa de rotação é 25 25 será multiplicado pelo fator altura, mas qual é o fator altura Queremos que o fator altura seja assim. Se o helicóptero estiver no subsolo, o fator altura, queremos que ele tenha um valor máximo, então ele criará muita poeira porque está próximo ao solo Mas se o helicóptero estiver muito alto no céu. Queremos que esse fator de altura seja zero porque é muito alto, não deve criar poeira, certo? Portanto, esse fator de altura será inverso à distância. Se a distância aumentar, o fator de altura diminuirá. Mas se a distância até o solo diminuir, o fator de altura que queremos que aumente e como podemos fazer isso. Podemos fazer isso com essa distância, certo? Mas antes de fazer isso, se esse traçado de linha não atingir nada, essa queda acontecerá. Isso significa que estamos muito drogados. Então, precisamos definir esse fator de altura para zero. É isso mesmo. Isso é muito importante, certo? Em seguida, queremos verificar a distância e eu quero usar o grampo de alcance do mapa Quero dizer que, se a distância for de 0 a 3 mil, forneça um valor de 100 Então, o que isso significa? Isso significa que se a distância até o solo era zero, isso significa que estamos no chão, certo? Então nos dê 100, certo? Mas se a distância até o solo fosse de 1.500, por exemplo, isso nos dará 50 sobre esse valor de retorno, certo? E se a distância até o solo 3.000 ou mais de 3.000, isso nos dará Zero multiplicado pela velocidade de rotação no início. Será zero e não haverá poeira, certo? É isso mesmo. Queremos definir esse fator de altura com esse valor como esse, e isso é tudo o que precisamos fazer. Vamos apenas compilar e executar. E agora você pode ver que não há poeira porque a taxa de velocidade do rotor é zero e a pá não está girando Mas se girarmos, basta olhar para isso, há muita poeira porque estamos no chão, e a velocidade do rotor é no máximo de 25, certo Agora, se você aumentar a altura, vamos subir, agora você pode ver que a quantidade de poeira que ela está criando é cada vez menor. Você pode ver o quanto é. Agora que chegamos a mais de 3.000, você pode ver que não há poeira no chão Mas se chegarmos perto do chão novamente, haverá poeira. Você pode ver que se formos para o chão, você pode ver, haverá poeira. Um problema que eu vi aqui, você pode ver que a rotação dos efeitos visuais não está É por isso que alguns deles estão submersos. Vamos ver como podemos resolver isso muito rápido. Aqui, você lembra que definimos a palavra localização da poeira, afixar. O que você quer fazer? Queremos definir a palavra localização e rotação da poeira, certo? Então, deixe-me conectá-lo assim, conectá-lo assim e deletar este, certo? Para a localização, como você sabe, podemos simplesmente usar essa localização conectada a aqui. Mas para a rotação, eu quero usar esse local e usar rot de s para obter uma rotação do nosso local de impacto, o local em que atingimos o solo, certo? É isso mesmo. Isso é tudo que precisamos fazer. Agora, vamos compilar e executar. Agora, você pode ver se subimos. Você pode ver que a rotação da nossa poeira está boa, e todas as poeiras estão no subsolo Agora, se você aumentar, verá que as poeiras estão boas e, se aumentar a altura, verá que está com menos poeira e menos até chegar a zero Se cairmos, você pode ver, haverá poeira. E se você chegar ao chão, haverá mais poeira quando diminuirmos a altura do nosso helicóptero Agora, você pode ver como é legal. Isso é muito bonito. 21. 20 Meta som do motor: Não, sobre o som do motor. Neste momento, temos a lâmina rotativa. Nós consertamos a poeira, mas não temos o som do motor. Vamos ver como podemos fazer isso. Para fazer isso, eu quero ir para o Contender InHaliFolder. Quero clicar com o botão direito do mouse, criar uma nova pasta e chamá-la de som. Clique duas vezes com o botão direito nele, abra-o, clique com o botão direito aqui. Vá para Áudio e crie uma fonte de metasundo. Eu quero chamá-lo de All Engine, certo? Boneca, clique nela para abri-la. E aqui, eu quero criar um player de ondas, certo? Jogador de primeira onda que, em jogo, queríamos jogar. Mas o que queremos jogar é jogar o helicóptero pairando É isso mesmo. Basta escolhê-lo lá. Queremos que ele esteja ligado e conecte o Otmano ao Otmano Agora, se você jogar, pode ver que isso é apenas um sol de motor de helicóptero, certo? Isso parece incrível. Mas primeiro de tudo, quando o motor não está ligado, ele não deve ter nenhum volume, certo? Essa é a primeira coisa que queremos fazer, e queremos alterar suavemente o volume e o tom quando o motor começar a ligar, certo? Então, para fazer isso, o que eu quero fazer criar outro desses jogadores de ondas, exatamente a mesma coisa com o mesmo ato de onda, mas quero que isso aconteça depois de 1 segundo. Então, sempre que jogamos esse motor MS Hell, o que queremos que aconteça? Primeiro, queremos que isso aconteça, mas depois de 1 segundo, podemos fazer isso com gatilho, atraso. Depois de 1 segundo, queremos que isso aconteça, certo? E como podemos ter os dois juntos, podemos usar um mixer aqui, mixer mono dois, certo? No em zero, queremos que seja esse. Em um, quero que seja esse, e queremos misturar os dois na saída. Saiba o que vai acontecer. Se jogarmos isso, primeiro, isso vai acontecer. Você pode ver e depois de 1 segundo, isso vai aumentar, certo, pare com isso. A próxima coisa que eu quero fazer poder mudar o tom e o ganho ou volume, certo? Então, precisamos de algumas informações. Então, aqui, vou criar uma entrada. Vou chamar isso de volume. Certo? E arraste e solte. Coloque-o aqui. Queríamos poder alterar o volume desse jeito. E em seguida , queremos que passe para outro. Eu quero chamá-lo de pitch e arrastá-lo e soltá-lo e conectá-lo ao pitch de ambos, certo? Agora, com isso feito, vamos jogar para ver o que vai acontecer. Nada está acontecendo porque o volume é zero. Se você aumentar o volume para um, poderá ver: Não, é mais parecido um helicóptero dando partida no motor Vamos dar uma olhada mais uma vez. S. Depois disso, você só muda o tom conforme construído. Jesse, parece mais um motor dando partida. E o alcance desse tom, eu quero que seja de 1 a 5 E vamos parar com isso e correr novamente. Se eu aumentar o volume para um e mudar o tom, veja, nós mudamos o tom. O que vai acontecer é como se a lâmina estivesse se movendo muito mais rápido. Agora, com isso, temos um metason que podemos usá-lo para o motor do nosso helicóptero quando ele dá partida e quando ele atinge a velocidade máxima com esse volume e essa mudança 22. 21. Som do motor: Agora temos um metasundo que podemos usá-lo para o motor do nosso Então, vamos ver onde queremos usá-lo? Para usá-lo, vamos apenas adicionar um áudio, certo? Deveria ser um filho da malha, e saiba que aqui queremos escolher nosso metasundo É chamado de MS Lngine. Basta colocá-lo lá. Agora, com isso feito. Neste gerenciador de motor, queremos gerenciar o som do motor, certo? Então, deixe-me criar algum espaço depois que o motor ligar aqui, certo? Então, abra um pouco de espaço. O que você quer fazer, queremos primeiro alterar esse nome. Eu queria chamá-lo de motor de áudio, e vou arrastá-lo e soltá-lo, colocá-lo aqui e configurar um medidor flutuante. Você pode ver que há dois deles aqui. Aquele que diz que o alvo é componente de áudio é aquele que você deseja usar. Então selecione isso. A primeira coisa que você deseja alterar é chamada de volume. Então, coloque volume lá. E queremos alterar o volume com base na taxa de velocidade do rotor Esse é um valor de 0 a 25, certo? E como queremos mudar esse volume, quero usar um intervalo de mapas. Eu usei muito esse nó neste curso, certo? Então, o intervalo de entrada é de 0 a 25, mas o intervalo de saída, eu quero que seja de 0 a 2, Não quero que sejam mais do que dois. Portanto, se a taxa de velocidade do rotor no início for zero, isso nos dará zero para o volume Mas se a taxa de velocidade do rotor fosse 25 na velocidade máxima. O intervalo o será dois e o volume será dois. Não é só o volume. Queremos definir outro perímetro. Então, vamos copiar e colar isso aqui também e conectar o pino de execução a ele. Conecte o pino de execução a este também. Abra um pouco de espaço aqui. E agora também queremos mudar o tom. Então coloque o nome do campo lá. Não, novamente, eu quero usar este grampo de alcance de mapas. Não, nós sabemos disso. Novamente, a taxa de velocidade do rotor é de 0 a 25, mas a faixa, o valor do tom com base nessa taxa de velocidade de rotação, é de 0 a Só com isso, certifique-se de que, em seu meta-som, todos os valores padrão sejam zero, assim. Certifique-se de salvar tudo. E não, se atropelarmos o jogo, você pode ver que não há som, mas se mantivermos o truque, basta ouvi-lo Você pode ver como está lindo, certo? O motor s agora está lá e está mais bom. Temos alguns motores que, com a velocidade da pá mudam de volume e inclinação. Vamos dar uma olhada mais uma vez. Mantenha a tecla Shift. Veja, o tom também está aumentando. E eu acho que parece. Isso parece incrível. 23. 22 verificar se estamos no chão: Não há próxima coisa que queiramos fazer. Queríamos poder desligar o motor. Vamos ver como podemos fazer isso neste vídeo. Para fazer isso, primeiro precisamos de uma entrada. Vamos até a pasta de entrada, clique com o botão direito aqui e crie a ação de entrada. Eu quero chamá-lo de IA. Desligue o motor, certo? Você não precisa mudar nada nele. Precisamos apenas mapeá-lo no inferno do IMC. Então, aqui, adicione o mapeamento, desça e mapeie o mecanismo de desligamento do IA, certo? E aqui, como queremos desligar o motor, eu quero usar O em nosso teclado. Então clique aqui, em O no teclado e salve. Agora podemos ir para o inferno da BP e aqui, o que eu quero fazer ver o evento de desligamento do motor da IA Sempre que pressionamos isso, vamos usar apenas uma string de impressora. Eu quero dizer desligue o motor, certo? E vamos ver se está funcionando ou não. Se eu subir e descer novamente Oh, veja, vai dizer desligue o motor. Então, o evento está funcionando bem. Mas como queremos desligar o motor. Primeiro, precisamos verificar se você está no subsolo ou não, como podemos fazer isso. Eu quero fazer isso com uma variável. Eu quero ligar para o chão, certo? E o tipo disso, eu quero que seja agressivo e, por padrão, eu quero que seja verdade porque, por padrão, estamos na clandestinidade, certo? Não, onde queremos mudar isso? Se você se lembra, temos um traçado de linha do meio do inferno até baixo, certo? Nesse caso, quando o traçado da linha atingir o solo, isso acontecerá. Deixe-me abrir um espaço aqui. E aqui, queremos reduzir a distância. Se for quase igual a zero, significa que estamos no chão, certo? Então, se a distância do meio do helicóptero até o solo fosse quase igual a zero, isso significa que estamos no subsolo, e podemos definir a variável solo, configurá-la com esse valor aqui, certo? Então, se a distância for zero, isso será verdade. Mas se a distância não fosse zero, isso seria falso. Mas há uma tolerância ao erro. Por que eu usei quase igual, porque estamos medindo a partir do meio do helicóptero É por isso que eu quero adicionar um pouco de tolerância. Por exemplo, dez, dez centímetros, certo? Então, se for igual a zero ou quase igual a zero por alguma tolerância de mais ou menos dez, podemos dizer que estamos Para você ver melhor, quero ir ao evento tk e mostrá-lo com o printestring Então, aqui, você usará um anel de teste de impressão com uma chave, adicione o kio, será persistente Por exemplo, o que você quiser, você pode colocar lá. E aqui, eu quero mostrar a variável fundamental. É isso mesmo. Agora, se você atropelar o jogo, poderá ver que ele está sempre dizendo falso, por que está dizendo falso. A razão pela qual sempre diz falso, se você for até aqui, a tolerância é dez. Mas em um helicóptero, como você pode ver, os litros do meio até o solo são mais Vamos ver o que é isso, para você ver o que eu quero fazer, eu quero usar um anel de impressora aqui também e mostrar a distância, certo? Mostre a distância aqui, e eu quero desconectar este jogo para não e Runo Quando estamos no chão, os torans que você pode ver são como 140 Então, precisamos colocar 140 lá ou um pouco mais do que esse valor. Vamos conectar isso novamente. Organize um pouco. Não, esse valor de tolerância, queríamos colocá-lo em 150, certo? Não, feito isso, não precisamos desse anel de impressora, então vamos excluí-lo e conectá-lo à filial. Não, você pode ver que diz verdade. Se entrarmos no espião, ele diz falso e depois voltaremos. Sam, certo? Então, com isso, sabemos onde estamos no solo e onde estamos no céu E queremos usar isso para decidir quando podemos desligar o motor. Então, vamos ao nosso evento aqui. Sempre que escrevemos uma palavra-chave, queremos usar uma ramificação aqui. E eu quero dizer que, se estivermos no subsolo, vamos usar um anel de impressora aqui para dizer desligue o motor. E se for falso, novamente, use outra impressão. Eu quero dizer que não podemos desligar o motor porque não estamos no chão, certo? É isso mesmo. E eu quero fazer isso vermelho para que você possa ver melhor. Se clicarmos em Run e aqui , no 01 ou no teclado, ele pode desligar o motor. Mas se você estiver no céu e Oh, você pode ver. Eu direi que não consigo desligar o motor. Veja, não importa o quanto você esteja aí. Eu não vou conseguir desligar o motor, mas se você estiver no chão, Oh, diz: Você não pode desligar o motor. Não, estamos mostrando isso com o anel de estampas. E no próximo vídeo, queremos realmente desligar o motor. 24. 23 Desligamento do motor: Não, por realmente desligar o motor. Verificamos se você está no subsolo ou não. Então, com isso, vamos ver como podemos fazer isso. Aqui, se estivermos no subsolo e pressionarmos nosso teclado, queremos desligar o motor e, como podemos fazer isso, podemos trocar esse motor, desligar, configurá-lo como verdadeiro e fazer com que o motor dê partida para falso. É isso mesmo. Com isso, sabemos quando desligar o motor. Então, vamos ver como podemos usar essas duas variáveis. Você se lembra aqui, nós mudamos a taxa de rotação de 0 Agora, se o motor desligar, queremos mudar a velocidade de rotação de qualquer valor para zero, exatamente como fizemos aqui Então, eu preciso abrir um pouco de espaço. Esta parte é para passar o mouse, então podemos selecioná-la Hetson ou teclado e colocar Então, temos uma nota aí, comente lá. Não, eu quero criar algum espaço aqui. Antes de alterar a taxa de velocidade do rotor para 25, queremos verificar com uma ramificação Assim, queremos verificar se o motor está desligado ou não. Se o motor for desligado, isso acontecerá. Mas se o motor não estiver desligado, significa que está ligado. Então, devemos conectá-lo ao falso, certo, assim. Se o motor estiver desligado, queremos fazer tudo isso aqui em cima. Então, controle o controle C para colá-lo aqui. Se o motor for desligado, queremos alterar a taxa de velocidade do rotor suavemente para zero. Isso é tudo o que precisamos fazer. E depois disso, podemos ir e verificar o Haring também, certo? É isso mesmo. Vamos compilar, salvar e executar novamente para ver se está funcionando bem ou não Se ele ligou, as organizações depois disso desligam e nós, no teclado, não, você pode ver que o motor está desligado Você pode ver como está bonito, e a poeira também desaparecerá quando a batida rotativa chegar a zero, e você poderá ver isso. Bom, não, certo? Nós podemos subir. A coisa está funcionando bem, pode desligar o helicóptero. Mas se você está desse lado e tentamos desligar o helicóptero, não podemos fazer isso Mas se você estiver no chão e ele no teclado, não, você pode ver que o motor vai parar. É isso mesmo. Estamos desligando o motor corretamente. E o som está funcionando bem, e a velocidade de rotação da lâmina também está funcionando bem com 25. 24 Avante e para trás: Não, para avançar e retroceder a partir de agora, acho que tudo será muito mais fácil e divertido Para avançar e retroceder, queremos usar a tecla WS em nosso teclado Então, com isso, mudamos o tom. Então, avançamos assim e retrocedemos assim, certo? Então, vamos ver como podemos fazer isso. Para fazer isso, precisamos criar uma ação de entrada. Então, clique com o botão direito na pasta Input e vá para Input create input action, e eu quero chamá-la de IA. Avance, retroceda, certo? Não clique nele para abri-lo. O tipo de valor, você quer que seja Axis one dy ou float. Isso é mais do que suficiente. Você pode simplesmente fechá-lo. Vá para o IMC Healy, adicione um novo mapeamento, para que possamos mapeá-lo, avançar e retroceder, clique aqui e escolha avançar e Queremos que isso aconteça com a tecla W, então clique aqui, pressione W no teclado e adicione outra entrada. Clique aqui, anúncios. Então, com W e S, queremos avançar e retroceder Por padrão, para os dois agora, se você acertá-los, ele passará por um. Mas o que queremos que aconteça sempre que atingirmos W, queremos ultrapassar um. Sempre que atingimos S, queremos passar menos um. Então, no S, queremos adicionar um modificador até que ele negue o valor e passe menos É isso mesmo. Agora que temos esse evento. Vamos descer até aqui, onde temos algum espaço. Procure IA para frente e para trás, avance e retroceda, certo Sempre que pressionamos W ou S em nosso teclado, há um nó dentro do componente de movimento do veículo que é chamado de entrada de tom. Pesquise a entrada de tom ou defina a entrada de tom, e podemos definir a entrada de tom com esse valor de ação. E saiba que sempre que soltarmos W ou S em nosso teclado, essa conclusão acontecerá, e queremos definir essa entrada de tom de volta para zero, o que isso significa. Quando mudamos o tom, isso significa a mudança no tom ao longo do tempo. Portanto, ele mudará o tom continuamente. Então, em algum momento, precisamos dizer a ele que não mude o tom se soltarmos o W ou S em nosso teclado e o configurarmos para zero. Agora, vamos conectar isso ao jogo Target, Head Comple e Save Run Over Agora, se formos para o céu, podemos avançar assim como Kasia avança E nós também podemos fazer isso. Pouco tempo para biografar. E com isso, podemos descer assim e, no espaço, desligar o motor. Agora, o que eu quero fazer são duas coisas que eu quero fazer. Quero excluir todas as sequências de caracteres da impressora. Então, aqui, vou definir Control F, string de impressora, pesquisar string de impressora. E qualquer sequência de caracteres de impressora que tenhamos, queremos excluí-la. Não, tínhamos um traçado de linha aqui que tinha o tipo de depuração de desenho, que queremos colocar agora Então, temos um jogo muito mais limpo para trabalhar, certo? Não, novamente, devemos subir ao céu, e podemos ver que está pronto no céu e ficar lá. Isso vê tudo. Isso parece incrível. Não, é hora de poder esvaziar e viver. Você tenta fazer isso antes da próxima fatura. 26. 25. Movimentos para a direita e para a esquerda: Não, queremos poder ir para a esquerda e para a direita. Espero que você possa fazer isso sozinho. botão direito do mouse aqui na pasta de entrada, crie uma nova entrada, e eu quero chamá-la de IA movendo-se para a esquerda. Certo. É isso mesmo. Não clique nele para abri-lo. O tipo de valor, eu quero que seja Axis um dia. Você pode simplesmente salvá-lo e fechá-lo. Não precisamos desse metasundo. Não precisamos dessas rodas, certo? Não, precisamos mapeá-lo. Então, o IMC ajudou a criar um novo mapeamento. Há muito mapeamento aqui. Vamos fazer isso para IA, movendo para a esquerda e para a direita. E queremos fazer isso com D. Então clique aqui, adicione D lá e adicione uma nova entrada, e clique aqui, cabeça A. Sempre que pressionamos D, queremos passar uma. Sempre que atingimos A, queremos negar que passe menos É isso mesmo. Ou a ação de entrada está pronta, podemos usá-la. Vamos aqui para que tenhamos algum espaço. Procure um movimento para a esquerda, para a direita. Mas onde você nomeia esse evento, não importa. Está tudo bem. Como fizemos antes. Desta vez, queremos rolar. Queremos mudar a rotação em torno do eixo X. Isso é chamado de rolo. Então, novamente, precisamos obter o componente de movimento do veículo. E pesquise a entrada do rolo. Defina a entrada do rolo pelo valor da ação, certo? E sempre que soltarmos D ou A em nosso teclado, essa conclusão acontecerá, e queremos definir essa função como zero, retorná-la a zero. Então, coloque-o em zero aqui, e ele também precisará de um alvo. Isso é tudo o que precisamos fazer. Vamos apenas compilar, salvar e executar. Vamos até o espião. Eu vejo a poeira, está bem, vamos embora e está tudo bem. A próxima coisa que fizermos é ser capaz de transformar em seu lugar. Sempre que temos E, queremos virar para a direita. Sempre que dirigimos Q, queremos virar para a esquerda. Você tenta fazer isso. Nós faremos isso ao lado. 27. 26 Vire no lugar: Não, para virar no lugar à esquerda e à direita. Para fazer isso, novamente, precisamos da ação de entrada, crie a ação de entrada aqui e eu quero chamá-la de eu viro à esquerda à direita. Clique nele para abri-lo. E o tipo de valor, queremos que seja flutuante como antes, e precisamos mapeá-lo aqui porque temos muitos mapeamentos aqui Precisamos usar esse scrollbr e o que queremos mapear é chamado de virar à esquerda e à direita Novamente, vamos descer até aqui. Como queremos virar à esquerda e à direita, queremos fazer isso com E. Então clique aqui, adicione E, adicione outra entrada. Desta vez, clique aqui, com a cabeça Q. Sempre que pressionamos Q, queremos passar menos um, então adicione um modificador do tipo de negação Isso é tudo o que precisamos fazer nisso. Portanto, podemos simplesmente fechar a ação de entrada, mas deixá-la aberta por não. Agora, aqui, queremos clicar com o botão direito do mouse em pesquisar IA, virar à esquerda e à direita. E com isso, novamente, há um nó dentro do componente de movimento do veículo que, com isso, podemos alterar a rotação em torno do eixo Z. Como se chama, se chama você. Então, procuramos a entrada Ya set Ya pelo valor da ação. Vamos colocá-lo lá. Não, quando soltarmos o Q ou E em nosso teclado, essa conclusão acontecerá e queremos definir a entrada Ya como zero. É isso mesmo. Agora, com isso feito, se você atropelar o jogo e acessar um Skype, isso é Oh, veja, não está girando. E para que ele gire e gire em torno dos Zs, precisamos acessar o componente de movimentação do veículo Lembre-se de que fizemos o pitch turkey scaling e o roll turkey scaling, e ambos estão funcionando Mas não escamoteamos perus. Precisamos colocar isso em um. É por isso que deixo este para mais tarde, para que você veja o efeito dessas entradas Agora, com a colocação de um aqui, deve funcionar. Vamos apenas compilar, salvar e executar. Não, se você for para o céu, verá que ele pode se virar no lugar certo. Parece um preço incrível e você pode se virar no lugar quando estiver avançando, veja, eu posso filmar tudo agora. Acho que é hora de atirar para poder disparar mísseis, certo É isso mesmo. Se virarmos, está tudo bem. 28. 27 Míssil Helli: Não, queremos realmente disparar sobre mísseis porque, você sabe, todo helicóptero de combate tem Então, para disparar mísseis, precisamos Então, vamos até a gaveta de conteúdo, vá para a pasta Blueprint dentro da pasta heli Clique com o botão direito aqui, crie uma classe de projeto do tipo de ator, e eu quero chamá-la de BP, heli Vou clicar nele para abri-lo. Aqui, em primeiro lugar, quero adicionar uma malha esquelética porque o míssil é uma malha esquelética Torne-o como sin root padrão, e aqui, clique aqui e escolha o SK West missile 26, certo? Escolha-o lá. Não, você pode ver isso. Eu quero adicionar alguns efeitos do Niágara, certo? Então, adicione o Niágara aqui. O que eu quero usar é chamado NS West Missi 26. Você pode ver isso. Não, eu quero colocar uma tomada lá. O soquete que eu quero usar é chamado de soquete de articulação raiz Agora, você pode ver que, ao colocá-lo no soquete certo, o posicionamento e a rotação do efface estão corretos. Você pode ver isso. Agora, com isso feito, precisamos ser capazes de dispará-lo. Para dispará-lo, eu uso um componente de movimento de projéteis. E aqui, preciso colocar uma velocidade de inicialização como 20.000 E a velocidade máxima que eu quero é de 50.000, certo? Você pode alterar isso mais tarde, se quiser. Agora, para vê-lo corretamente, vamos atrás dele e clicar na simulação. Você pode ver como parece bom, certo? Não, eu quero que a rotação siga a velocidade. Então, a rotação é sempre para onde está indo, certo? Agora, novamente, vamos ver que tudo será o mesmo, mas ficará muito melhor novamente. Não, com esse míssil, precisamos adicionar um pouco de som 29. 28 Som do míssil: Não, temos um míssil, mas nosso míssil não tem som Vamos ver como podemos adicionar som. Para fazer isso, eu quero ir para o contender ou ir para o Helfolder Vá para a pasta Sound. Clique com o botão direito aqui, vá para o áudio e crie uma fonte de metasundo Eu quero chamá-lo de míssil, certo? Cachorro, clique nele para abri-lo. Aqui, primeiro, eu quero criar um player de ondas, certo? Tipo de mono. Você também pode fazer um aparelho de som. Conecte a peça para jogá-la. O som que queremos tocar primeiro é foguete e PT, esse, certo? Só com isso, vamos conectar o OT mono aqui e jogar Você pode ver, é como o início da nossa Missi, certo? Podemos simplesmente usar isso, mas eu quero torná-lo melhor. Como eu quero melhorar, quero criar outro player de ondas, certo? E com isso, desta vez, o que eu quero jogar é motor de foguete E precisamos que ambos sejam jogados. Então eu posso usar um mixer aqui. O misturador dois é mais do que suficiente. Ele misturará os dois t mono, e não precisamos mudar o jogo em nada Mas se você jogar este, deixe-me clicar nesta lupa e jogar Você pode ver que parece que são dois segundos, 3 segundos depois de atirar sobre o míssil, certo Portanto, precisamos atrasar seu gatilho. Como podemos fazer isso aqui, podemos pesquisar o atraso da engrenagem. E digamos que depois de 1 segundo, queremos jogar este, certo? E queremos que este esteja em loop. Agora, o que acontecerá se você jogar isso primeiro, ele disparará e, após 1 segundo, tocará o motor de foguete contínuo Então é isso que queremos que aconteça. Não, vamos adicioná-lo ao nosso helicóptero e adicionar um áudio Deve ser um filho da malha esquelética. Eu quero chamá-lo de motor. Som. É som de foguete, mas vou chamá-lo de som do motor porque é mais fácil de entender, certo? Motor 1 que você quer jogar, clique aqui e aqui, escolha MS Missile, certo? Só com isso, se simularmos aqui, deixe-me dizer F. Se simularmos aqui, não haverá som Mas se você for ao nosso mapa, e vamos colocá-lo aqui, esse é o começo do nosso jogador. E se você colocar um dos mísseis aqui, deixe-me colocar este aqui e girá-lo 180 graus, aumentá-lo um pouco assim e girá-lo para cima assim Se o executarmos atirando e pudermos ouvir o som. Mas o problema é que está mais longe de nós, mas podemos ouvir o som completamente E como podemos resolver esse problema é com a configuração de atenuação. Se você for até o nosso míssil BP e clicar no som do motor, poderá ver que há uma configuração de atenuação Então, para mudar isso, eu quero ir para a pasta de som à vista ou HelFolderr, clicar aqui, ir para o áudio e criar uma Eu quero chamá-lo de Míssil SA, certo? SA para atenuação do som, no interior. E aqui, temos raio interno e raio de queda. Se você estiver dentro do raio interno, podemos ouvir o som completamente E eu quero mudar isso para 10.000. É tipo 100 metros, certo, porque está em centímetros, e a seguir a distância ou queda do raio, eu quero colocá-lo em 80.000 Você pode jogar com esses valores. Não, com essa atenuação sonora, podemos ir até o míssil Over Hell, clicar no som do motor e escolher o míssil clicar no som do motor e escolher ensaio Você sabe que se voltarmos, você pode ver que temos um raio interno e um raio externo Se você estiver dentro do raio interno, podemos ouvi-lo completamente Mas se nos afastarmos dele para o raio externo, ouviremos linearmente menos, certo Agora, com isso feito, se rodarmos nosso jogo, entendeu? Ele dispara e, quando se afasta de nós, não conseguimos ouvi-lo mais. Mas se houver algum jogador mais distante de nós, poderá ouvir, certo, se o míssil chegar perto deles se o míssil chegar perto 30. 29 Explosão de míssil: Saiba onde o míssil está funcionando, ele tem sons, mas quando atinge alguma coisa, nada acontece Vamos testar isso. Para testar aquela aveia, deixe-me levantá-la assim e girá-la em direção ao chão Se atirarmos e virmos, ele cairá para o subsolo. Vamos ver como podemos resolver isso. Vá para BP hell Missile, clique na malha esquelética Até chegar à predefinição de colisão, no momento, não há É por isso que não atingirá nada. O que eu quero fazer com isso é mudar isso para ignorar apenas o peão Agora, se você for aqui, verá que ele ignorará a panela, ignorará o veículo. Está bem? Mas isso bloqueará tudo. Agora, com isso, se você compilar, salvar e executar, você pode ver que eu vou para o subsolo e ele vai parar aí Vamos continuar. Temos um laboratório aqui. Então, vai parar por aí. Sempre que nosso míssil parar, podemos fazer algumas coisas. Por exemplo, se eu clicar no movimento do projétil, temos a parada do projétil Clique nele para criar seu evento, e aqui, queremos quebrar esse resultado de impacto, certo, expandi-lo assim. A primeira coisa que queremos fazer quando ou projétil, é parar em alguma coisa Quer gerar explosão, sistema de geração no local E o sistema que você deseja gerar é a explosão de poeira. Vamos colocá-lo lá. A localização, queremos usar a localização em que ela pára aí, certo? E é isso. Vamos apenas compilar e executar Veja, você sabe, tem uma explosão. Em seguida, queremos gerar algum som. Então, o som do spa está no local, certo? som e a localização deste spa, eu quero usar o ES Grand Explosion, e a localização dele, podemos usar esse local. Mas eu quero expandir isso e usar a configuração de atenuação que criamos para o míssil também, certo Então, se explodir mais longe de nós, não ouvimos. Depois disso, podemos simplesmente destruir o míssil. Então, procure destruir o ator e destrua o míssil. Agora, se você estiver ligado, você pode ver que ele vai cair no chão. Temos uma explosão. Temos um som de explosão, e o míssil também foi deletado e destruído 31. 30 Míssil de fogo: Não, esse míssil superior está pronto. Queríamos ser capazes de filmar. Vamos ver como podemos fazer isso. Para fazer isso, eu quero ir para um nível e excluir esse míssil infernal do nível superior Não precisamos mais disso. Vá para a pasta Heli, vá para a pasta Inputs e crie uma entrada para disparar o Então, criando uma ação de entrada, eu quero chamar isso de incêndio. Não clique nele para abrir. Não precisamos mudar nada aqui, então podemos simplesmente fechá-lo. Feche este também. Feche este também. Nós não precisamos disso. Vá para o inferno do IMC. Queremos mapeá-lo dentro do contexto de mapeamento de entrada do IMC Hell Então, vamos criar um novo mapeamento, e aqui, aquele que você deseja mapear é chamado iAfre. Então, vamos colocá-lo lá. E aqui, quando queremos que isso aconteça? Sempre que pressionamos o botão mais à esquerda. Então clique aqui depois disso, aperte o botão Lift Most e colocaremos o botão mais à esquerda lá. É isso mesmo. Não, com isso, não vá para o BPlly, encontre algum espaço. Podemos simplesmente fechar esses dois também. Esses não aqui, sempre que pressionarmos o botão Lift Most, esse incêndio de IA acontecerá. E sempre que pressionamos, queremos lançar um míssil, certo Então, como queremos gerá-lo. Se você for ao Viewport, verá que temos o lado direito e o esquerdo Então, queremos ser capazes de dispará-lo do sistema de mísseis no lado direito e esquerdo Então, o primeiro do lado direito, segundo do lado esquerdo, certo? Então, sempre que começarmos, eu quero usar o flip-flop aqui, o flip-flop node. O que isso fará na primeira vez que pressionarmos o botão mais à esquerda, A acontecerá Na segunda vez que pressionamos o botão mais à esquerda, o B acontece, terceira vez que pressionamos o botão mais à esquerda, novamente, o A acontece novamente, certo Isso acontecerá um após o outro. Então, o que queremos fazer gerar um ator da classe E qual ator se chama Missile, certo? Então, para curar um míssil, basta colocá-lo lá e conectá-lo a A. Mas transformá-lo, onde expandi-lo, é muito importante Onde você quer gerá-lo? Se você for até o esqueleto de um helicóptero e procurar um míssil dentro Você pode ver que temos soquete de míssil esquerdo e soquete de míssil direito Precisamos dos nomes deles. Então, clique com o botão direito do mouse em Renomear soquete. E, novamente, clique com o botão direito copie o nome do lph Vamos fazer isso pelo IF. Queremos obter a transformação desse soquete em nosso esqueleto Então, precisamos pegar a malha. Transformação de soquete, obtenha transformação de soquete. Precisa que forneçamos o nome. Nós o copiamos, então controle V para colá-lo aqui e conectá-lo ao spawn transform, certo? Isso é para o esquerdo. Vamos copiar e colar tudo isso e colar aqui para a correta também. A única coisa que precisamos mudar aqui é esse nome. Vamos até um esqueleto. Também queremos fazer isso com o soquete de míssil certo. Renomeie, controle C para copiar o nome e colá-lo aqui. É isso mesmo. Tudo deveria funcionar bem com isso se você tivesse compilado, salvo e executado Vamos apenas para o céu. E atire. E também é pesado. 32. 31 Número de mísseis: Não, estamos disparando nosso míssil, mas o problema é que podemos disparar nosso míssil infinitamente Então, precisamos ter um sistema limitar a quantidade de mísseis que podemos disparar E para fazer isso, eu quero criar alguma variável. Então, aqui, crie uma variável. Eu quero chamar isso de número de mísseis, certo? E o tipo, eu quero que seja inteiro porque não pode ser 1,5 ou 0,5, certo? Não temos um valor decimal. Em seguida, quero duplicar isso, preciso de outra variável E eu quero chamar isso de um número máximo de mísseis, certo? Número máximo do míssil. Vamos apenas compilar, salvar o número máximo de mísseis. Eu queria colocá-lo em dez, certo. A primeira coisa que você quer fazer com isso ir ao evento começar a jogar aqui, e quero definir o número de mísseis com o número máximo de mísseis no início do Então, sempre que jogarmos, todos os mísseis estarão lá Temos muitos mísseis, certo? Então, o número de mísseis no início do jogo será dez E para você ver, quero mostrá-lo aqui na Eventq com um anel de impressora Mas desta vez, quero criar um evento personalizado para depuração Clique com o botão direito aqui, pesquise um evento personalizado, certo? E eu quero chamar isso de debug, certo? E aqui, eu quero conectar essa depuração ao nosso caminho EventQeecution Então, coloque o debug lá. Não, o que quer que conectemos a essa debuke, é como conectá-la ao Quero usar um anel de impressora aqui, anel de impressora, e com isso, quero dar a ele uma chave. Queríamos mostrar o número de mísseis. Você pode colocar o que quiser nessa chave. Não é para nenhum motor saber que essa impressão deve ser persistente e não deve preencher a tela com ela, Não, eu quero usar um formato de texto, formatar texto, e quero dizer que o número do míssil é igual ao número de chaves curvas abertas e fechadas ou o que você quiser colocar dentro dessas chaves, ele criará um pino para que possamos substituir as chaves curvas número dentro delas pelo pino que Essas chaves curvas com o número serão substituídas por qualquer coisa que conectarmos a esse pino numérico A razão pela qual é chamado de número porque colocamos o número aqui. O nome é muito importante aqui, certo? O número que queremos mostrar é o número de mísseis conectados aqui e conectados a uma corda Assim mesmo, a cabeça compila, salve. Agora, se você atropelar o jogo, verá que o número de mísseis é dez, então está funcionando bem Agora que estamos mostrando o número de mísseis, queremos ir aqui E sempre que disparamos, pressionando o botão mais à esquerda do teclado, queremos diminuir o número de Então, subtraia o número de mísseis por um como esse e salve-o dentro de si mesmo novamente Então, diminuímos isso conectando-o assim a aqui e aqui. Agora, se começarmos a compilar você pode ver que temos dez mísseis Se atirarmos, temos nove, oito, sete, seis, cinco, quatro, três, dois, um e zero. Você pode ver que também pode ser negativo. Então, não queremos que seja negativo. Então, o que podemos fazer verificar o número de mísseis aqui Então, verifique com o galho e, com ele, queremos dizer que se o número de mísseis for maior que zero, você pode disparar o míssil Agora, se você tivesse compilado save and run we game and shoot, você pode ver que podemos filmar apenas dez. E depois disso, não podemos mais atirar, não importa quantas vezes você queira apertar o botão mais à esquerda, não podemos 33. 32 Mísseis de recarga: Não, para recarga ou míssil. Vamos ver como podemos fazer isso. Para fazer isso no início da jogada, vamos começar a jogar. Quando definimos o número de mísseis, queremos definir um cronômetro Então, aqui, defina um cronômetro de acordo com um evento, certo? E esse cronômetro, eu quero que aconteça a cada 1,5 segundos. Então, precisamos colocar 1,5 lá e fazer um loop. Então, cada 1,5 segundo acontece de novo e de novo, certo? E o que acontecerá é que esse evento personalizado acontecerá. Assim, podemos adicionar o evento personalizado a ele, e eu quero dizer recarregar Portanto, essa execução de recarga acontecerá a cada 1,5 segundo. E agora, com isso, queremos verificar se o número de mísseis foi menor que o número máximo de mísseis, então precisamos obter os dois Se o número de mísseis for menor que o número máximo de mísseis, queremos aumentá-lo Devemos verificar isso com o Branch. Então, se o número de mísseis fosse menor que o número máximo de mísseis, queremos aumentá-lo, E como podemos aumentá-lo, podemos obter nosso número de mísseis, adicionar um a ele assim e salvá-lo dentro de si mesmo Então, com isso, estamos aumentando. Salve-o assim, conecte-o assim e conecte-o ao verdadeiro. É isso mesmo. Agora, se ajudarmos a compilar, salvar e executar o jogo, você pode ver que o número de mísseis permanecerá em dez Mas se filmarmos alguns deles, você pode ver que são cinco. Agora são seis, não são sete, não são oito. Agora são nove, e agora são dez, e não vai aumentar mais do que dez. Agora, temos um sistema de recarga, certo, que podemos atirar completamente sobre o míssil, e depois de 15 segundos, podemos ter todos os mísseis E você pode ver que estamos recarregando os mísseis. Não, podemos atirar de novo, certo? Não, com isso feito, nosso sistema de recarga está bom. Não, é hora de adicionar alguma interface de usuário a ela, também possamos vê-la em nossa interface de usuário, não apenas com uma string. 34. 33 UI de mísseis: Não há próxima coisa que você queira fazer. Queremos criar uma interface de usuário Blueprint de widget para nosso sistema de mísseis Então, vamos ver como podemos fazer isso. Vá para a gaveta de conteúdo, vá para a pasta Hell, clique com o botão direito aqui, crie uma nova pasta e chame-a de Widgets para abri-lo, clique com o botão direito aqui, acesse a Interface do usuário e crie um plano de widget do tipo de widget do Eu quero chamá-lo de WBP UI, certo? Não clique nele para abri-lo ou entre para abri-lo, certo? Aqui, a primeira coisa que você quer adicionar, queremos ir para o painel Canvas dentro desse painel Canvas, eu quero primeiro mostrar uma imagem depois desse X e depois disso, um número, certo? Então, para fazer isso, eu quero criar uma caixa horizontal por padrão lá em cima, mas eu quero mudar a âncora para o canto inferior direito e mudar a posição X e a posição Y zero Agora, você pode ver que ele está alinhado pelo canto superior esquerdo. Quero alinhá-lo com o canto inferior direito. Então, coloque um e um para alinhamento, para que ele o coloque no canto inferior direito Agora, quero adicionar um pouco de preenchimento com posicionamentos -50 e -50 Então, temos algum espaço entre nossa caixa horizontal e a borda, certo? Em seguida, quero adicionar uma imagem. Então, vamos subir, adicionar uma imagem como essa e escolher uma imagem. Em Pincel, clique na imagem e a imagem que você deseja adicionar é míssil Então, a busca por míssil é essa. Não, você pode ver que é elástico. Precisamos clicar na caixa horizontal para saber. Considere o tamanho do conteúdo que você tem, certo? Você pode ver? Não, o tamanho do míssil é bom, mas é muito grande. Então, o que eu quero fazer é clicar na imagem, ir para o tamanho da imagem e dividir o Y por dois. Divida por dois. Acho que parece muito melhor, certo? Só com isso, precisamos adicionar um texto também na caixa horizontal. Você pode ver que vai atrás da imagem. E para o texto, eu quero usar um X como este, e eu quero que ele seja alinhado ao meio assim. Você pode ver. Eu quero mudar as cores para algo mais preto assim. Mas você decide o que quer fazer, eu quero adicionar outro texto aqui. Você pode ver, novamente, que será depois deles, e eu quero que esteja alinhado nesse meio assim E eu quero colocar um valor lá, por exemplo, dez para ver se parece bom ou não. Não, o que eu quero fazer é clicar no X e adicionar um pouco de preenchimento Por exemplo, pressione para a esquerda, cinco unidades e pressione para a direita, cinco unidades também. O que eu quero fazer. Eu quero mudar o tamanho da dezena porque talvez possamos vê-la. Para fazer isso, vá para as aparências, vá para a fonte e altere-a para o que quiser Eu quero colocá-lo no 88, para que possamos vê-lo melhor. Isso parece, eu acho, bom. Quero nomear esse texto com o número de textos do míssil. Está bem? E eu quero que seja uma variável, para que possamos alterá-la mais tarde. Salvar a compilação principal. Agora, se você for para o gráfico, o que eu quero fazer aqui, eu quero criar uma função. Então, com essa função, podemos atualizar o número de texto do míssil dentro do OUI, Vou chamar essa função, atualizar o número de mísseis e, com isso, queremos definir o texto do nosso número de tomadas de mísseis Então pegue essa variável, coloque texto nela, e ela está aqui embaixo, defina o texto. Com isso, podemos definir o texto do nosso número de tomadas de mísseis Mas com o que? Com a entrada dessa função. Então clique na função, desça e crie uma entrada para chamar esse número e o tipo dele, como você sabe, eu quero que seja inteiro, certo? Vá compilar, salve e conecte-os diretamente aqui, certo? Saiba que temos isso, temos uma interface e temos uma função para atualizar essa interface. Vamos ver como podemos usá-lo. Para usá-lo, precisamos ir para o inferno da BP na BMP. Você pode ver que depois de definirmos o número de mísseis aqui, queremos criar um widget primeiro Então, aqui, dizemos criar widget, certo. Com o widget que você deseja criar chamado HeliUI, escolha-o Não, queremos primeiro promovê-la como variável e eu quero chamá-la de hell UI, certo? Eu preciso do pino de execução. Então, vamos dar a ele o pino de execução. E depois disso, queremos adicionar essas duas janelas de visualização para que possamos vê-las, certo, adicionar a janela de visualização e depois disso, podemos definir o cronômetro para recarregar os mísseis Agora, com Teton, se você clicar em compilar, salvar e executar, poderá ver que a interface do míssil está lá e nós podemos vê-la. Isso é bom. Mas não está atualizado. Vamos ver como podemos atualizá-lo. Sempre que mudamos o número variável de mísseis, precisamos usar a interface do usuário do inferno E codifique o número de atualização da função do míssil. É isso mesmo. Isso é tudo o que precisamos fazer, com o número de mísseis E precisamos copiar e colar isso no final aqui. Quando disparamos nosso míssil no final, queremos atualizar o número de mísseis novamente, Então, controle, nós o colamos aqui. Em ambos os casos, não importa qual deles aconteça. Queremos atualizar novamente o número de mísseis, certo? Exatamente desse jeito. Você sabe que no início, primeiro, verificamos se o número de mísseis era maior que zero, diminuímos em um, disparamos e geramos. Depois disso, atualizamos a interface do usuário. Agora, vamos ver se está funcionando bem ou não. Se você atropelar o jogo, poderá ver que o número do míssil é dez e está sendo exibido no canto inferior direito Deixe-me ir para o céu para que você possa vê-lo melhor. E atire, você pode ver, eu estou atirando e não, você pode ver que o número de mísseis está mudando perfeitamente Então não, não precisamos desse texto, daquele teste de impressão, certo? A interface do míssil está funcionando bem. Então, não, a interface do míssil está funcionando bem. Podemos simplesmente desconectar isso. Não precisamos mais disso. Foi só para te mostrar como funciona. 35. 34 Crusadeira: Saiba que somos capazes de disparar nosso míssil e há uma limitação para isso e temos um sistema de recarga Precisamos de uma interface de usuário. Então, com isso, sabemos para onde estamos atirando, onde nosso míssil estará depois de um ou 2 segundos, certo? Então, para fazer isso, eu quero ir até a gaveta de conteúdo criar outro Widget Blueprint Então, clique com o botão direito aqui, vá para o Widget do usuário e crie o Widget do usuário à direita, Widget Blueprint Depois disso, clique no widget do usuário. Eu quero chamá-lo de WBP AM, certo, ou o que você quiser chamar A única coisa que eu quero acrescentar aqui é apenas uma imagem. Não se preocupe com nada. A imagem que eu quero colocar lá se chama cruz, certo? É isso mesmo. Você não precisa mudar nada. Eu quero mudar a tonalidade para uma cor preta como essa. Mas se você não quiser fazer isso, deixe como está. Apenas com essa compilação principal, salve e feche. Agora, precisamos passar pelo inferno da BP e adicionar um widget de usuário aqui Então, clique em AD search for widget e adicione um widget. E eu também quero chamar isso de 1:00 da manhã, podemos chamá-lo de MI, Clique no MUI e altere o espaço de palavra para tela Então, sempre vemos isso, certo. Depois disso, queremos mudar a classe do widget para aquela em que criamos o WBPAM e o tamanho dela, quero que seja de 100 por 100 É isso mesmo. Mas você disse compilar, salvar E o jogo Runo, você pode ver o widget está lá. Isso parece bom. Não mudamos para preto, mas deixe-me mostrar uma coisa. Se abrirmos novamente o WBPA, podemos clicar em Imagem E mude a cor da tonalidade para preto. Mas antes de tudo, quero alterar a opacidade, para que fique um pouco transparente Agora, se você atropelar o jogo, você pode ver que parece muito melhor, mas meu gosto é mudar para preto, certo? Acho que com nosso helicóptero de combate, o preto é muito melhor, mais adequado, certo? Mas você pode ver que a posição da AUI ou da mira não está boa Então, deixe-me mostrar como você pode mudar isso. Se você for ao BP Hali, o que você quer fazer? Queremos ir até mesmo tik e cada tick, queremos ver para onde nosso helicóptero está olhando e mudar a mira ou o widget AM Então, para fazer isso, eu quero criar um evento personalizado aqui embaixo, certo? Temos algum espaço aqui. Vamos apenas criar um evento personalizado, e eu quero chamá-lo de gerente de IA. Gerenciador de AMUI, e também queremos conectá-lo ao Eventq Então, aqui, vamos arrastar, desenhar e pesquisar o gerenciador de interface do usuário. Isso é tudo que precisamos fazer. Não, aqui, o que você quer fazer é usar um traçado de linha traçado de linha por canal. Como você sabe, ele precisa ser um ponto inicial e final. No início, quero que seja no meio do nosso helicóptero que possamos usar um pátio de nascente para isso, porque está no meio do nosso helicóptero Então, vamos usar isso. Vou pegar nosso jardim de primavera e tirar a palavra localização dele, obter a localização da palavra. Este é o ponto de partida como este. Em seguida, o ponto final, queremos que ele esteja alinhado com nosso helicóptero na frente do nosso helicóptero, onde está algo ou não Então, para fazer isso, primeiro, precisamos obter esse vetor de avanço do braço de mola. Portanto, pesquise o vetor direto G. E como esse é o comprimento de um, precisamos multiplicá-lo por algum valor Então multiplique isso por um valor muito grande. Então mude isso para um flutuador e coloque 99999999 lá, certo, Seja qual for o valor que você colocar aqui, deve ser grande, certo? E agora, com isso, quero adicionar esse local inicial que temos à direção ou para frente. E isso é ou o fim não, certo? Para você ver, eu quero mudar esse tipo de DVC do Droid para um quadro E só com isso, vamos ver o que vai acontecer. Se você começar a compilar, salvar e executar, verá que não, há uma linha do meio do helicóptero até a frente há uma linha do meio do helicóptero até a Se formos para o céu, você pode ver se ele atinge alguma coisa, isso nos dará aquela localização, aquele quadrado. Então, com esse quadrado, queremos definir a posição de onde Mui ou cross aqui até essa posição Para fazer isso, precisamos detalhar esses resultados iniciais, então divida-os. Com ele primeiro, queremos verificar se ele atinge alguma coisa ou não. Então verifique com a filial. Se atingir alguma coisa, isso nos dará um ponto de impacto ou o local em que ela atinge algo, certo? Podemos usar os dois. Agora, com isso, podemos obter nossa MUI e definir a localização da palavra. Ok, é isso mesmo. Conecte a verdade a ela e o ponto de impacto será mais do que suficiente. Agora, se não atingiu nada, novamente, queremos definir a localização da palavra desta forma. Se não atingiu nada com a extremidade do traço onde o traço termina, aquela extremidade da linha que vimos juntos, certo? Não, só com isso, se você clicar em compilar, salvar um jogo de Runo, poderá ver a posição ou a cruz da cabeça, não está Você pode ver se vamos para o céu, você pode ver que toda vez está tudo bem e está no lugar certo e podemos filmar lá, certo? Porque estamos nos mudando, não vai funcionar bem, mas você pode ver, está funcionando bem, certo? Então, desligamos o motor. Atire. Não, você pode ver , está se aproximando. Está tudo bem. Porque com esse helicóptero, teremos danos no rádio do aplicativo, certo? É assim que deve funcionar. Então isso parece incrível. Não, temos uma interface de usuário. O que eu queria fazer é desabilitar esse tipo de draw deba para none porque não precisamos mais dele. Queremos que nosso jogo pareça limpo. Você pode ver que não, é muito mais limpo, certo? Você pode ver que tudo está funcionando bem e bonito. 36. 35 Modelo da pistola anti-ar: Nosso helicóptero está pronto para destruir algumas coisas, mas não temos nada Então, vamos ver como podemos criar um inimigo que possa revidar. Para fazer isso, eu quero ir para a gaveta de conteúdo, ir para Anti IrgonFolder e, aqui, clicar com o botão direito do mouse, criar uma nova pasta e chamá-la Ou planta. E eu vou clicar nela para abri-la, clicar aqui, criar uma classe de modelo do tipo de ator, e eu quero chamá-la de pistola antiaérea BP, Clique nele para abri-lo. Aqui, primeiro e primeiro, quero adicionar uma malha esquelética. Então, adicione-o lá e coloque-o como syndroot padrão arrastando-o e soltando-o na cena padrão. Depois disso, clique aqui, escolha a Você pode ver isso aqui. Com isso, queremos atacar o helicóptero. Talvez possamos destruí-lo. Em seguida, este, porque queríamos girá-lo, está virado para o helicóptero, precisamos de um plano de animação Para fazer isso, eu quero ir ao Content Drawer, clicar com o botão direito do mouse aqui, ir para a animação e criar um plano de animação Para o Scale East RT, selecionado, ajude a criar e eu quero chamá-lo de pistola pneumática ABP ti, certo? Vou clicar na parte superior e nesta também. Aqui, queremos adicionar o espaço de malha, a pose R, isso nos dará todas as informações sobre os ossos, e também precisamos conectá-lo à pose. Nenhum anti-ergon Blueprint está pronto. Vamos apenas adicionar um deles ao nosso nível. Onde o jogador começar, clique em Início do jogador no Outliner F. Então você vai para Eu quero criar sobre Antirgon arrastando um deles até aqui, certo É isso mesmo. Está de frente para o jogador. Eu não quero que ele enfrente o jogador. Vamos apenas girar para qualquer rotação que você quiser. Então, com o plano de animação, queremos mudar a rotação dele para que fique de frente para o helicóptero e o ataque, certo Portanto, a próxima coisa que queremos fazer é dizer qual é o seu alvo. Para fazer isso, quero ir ao BP Anti Airgon, ir ao AventGrap e aqui no Event BM play, quero dizer que o inferno do BP é E se estiver ao alcance, atire nele, certo? Então, para fazer isso, aqui, precisamos pegar o peão do jogador, e com isso, ele nos dará o peão que esses jogadores começam a aparecer automaticamente Isso o gerará aqui. E com isso, queremos lançá-lo no inferno da BP. OK. Se o lançamento for bem-sucedido, significa que o alvo está lá e podemos atirar nele, certo? Então, podemos clicar com o botão direito do mouse nisso enquanto BP Heli é promovido a uma variável, e eu quero chamá-la Então esse é o nosso alvo, certo? A próxima coisa que queremos fazer com esse alvo verificar se ele está dentro do alcance. Se podemos atirar nele, e como podemos fazer isso, queremos dizer que, se a distância entre o tiegon e o Taya, ou seja, ou BP Holly, é de 100 a 8 mil, por exemplo, você pode atirar nele, mas se não estiver nesse alcance, não atire nele porque você não Então, por fazer isso aqui, eu não quero fazer isso a cada quadro. Eu quero usar um cronômetro, então defina o cronômetro por evento Queremos verificar a cada 1 segundo. Queremos verificar a cada segundo se o helicóptero está ao alcance ou não, se podemos atirar nele ou não Então, esse cronômetro definido por evento nos fornece um evento e podemos conectar um evento personalizado a ele Então, pesquise um evento personalizado, e eu quero ligar para esse intervalo de check-in, certo? Você pode chamá-lo do que quiser. Esse intervalo de verificação ocorrerá uma vez após 1 segundo. Mas se habilitarmos o loop, cada segundo, esse intervalo de verificação acontecerá. E com esse intervalo de verificação, o que queremos fazer é obter a distância. Então, vamos apenas pesquisar a distância. Entre dois vetores, vetor de distância, queremos verificar a distância entre o antergônio e o alvo Se estiver ao alcance, atire nele, certo? Então, ele precisa de dois vetores. Primeiro vetor, podemos simplesmente obter a localização do ator que nos dará a localização no mundo de over anti ergon Em seguida, queremos obter o alvo e também obter a localização do ator, obter a localização do ator acima do alvo. Não, isso nos dará a distância entre eles. Mas antes de fazer isso, precisamos verificar se essa meta é válida ou não. Então, a busca por é válida, certo, assim. Se for válido, obtenha a distância entre o antágono e o alvo que está sobre o inferno, certo? Então, aqui, queremos verificar se está dentro do alcance. Então, pesquise um fluido com alcance na faixa porque é um fluido, queremos dizer que se for de 100 a 8 mil, está na faixa, certo? Então, se o alvo for válido, queremos usar uma ramificação aqui e verificar se ela está dentro do alcance ou não. E aqui, por enquanto, quero usar um anel de teste de impressão. E se for verdade, significa que está ao alcance. Então, digamos que em alcance, é isso. E se for falso, novamente, vamos usar um anel de teste de impressão e dizer que alvo não está ao alcance. E para você ver, quero mudar a cor deste anel de teste de impressão para vermelho e ficar bem. Agora, se você começar a compilar, salvar e executar o jogo, verá que diz que o alvo não está ao alcance porque não estamos perto dele Mas se chegarmos perto disso, vamos ver o que vai acontecer. Você deveria chegar mais perto? Não, você pode ver que estamos ao alcance. Se você se afastar disso, vamos ver o que acontecerá novamente. Você pode ver que está ao alcance, e não, não está ao alcance. Então, com base na distância, estamos decidindo se está dentro do alcance ou não Este é o primeiro passo em direção ao nosso objetivo de atirar em nosso helicóptero. 37. 36 Modifice os ossos da arma: Não, sabemos quando o alvo está ao alcance do antiaéreo. Mas a primeira coisa que queremos que esse antírgon faça é olhar para o helicóptero, certo Enfrente isso para que ele possa atirar nele, certo? Certo? Não, está voltado para cá, mas queremos que ele gire para ficar de frente para o alvo Não importa onde esteja, não importa se é movido para qualquer lugar, certo? Então, para fazer isso, precisamos usar o esquema de animação, e o nó que queremos usar é chamado de modify boon, certo E com esse osso modificado, precisamos mudar a rotação do canhão superior. Portanto, não precisamos alterar a tradução, então podemos dizer a ela que não a exponha como alfinete, certo? E também não precisamos mudar a escala. Então, eles dirão para não expô-lo como um pino também, mas queremos mudar a rotação E o modo de rotação, queríamos adicioná-lo à existência. Então, se ele já tiver uma rotação, ele será adicionado a ela e depois disso, escolherá o espaço do bono, certo? Você também pode simplesmente deixá-lo como componente do espaço. Agora, aqui, o osso que você quer modificar, podemos colocá-lo aqui. Mas vamos ver qual osso queremos girar. Se você clicar aqui, ele abrirá o esqueleto de uma arma, certo? Aqui, temos uma junta de canhão que, com ela, podemos trazê-la para cima e para baixo. Você pode ver. E temos uma junta de torre que, com ela, podemos girá-la em torno do eixo Z. Essa rotação em torno do eixo Z é chamada de guinada, e a rotação em torno do eixo Y é chamada de inclinação Portanto, precisamos mudar o tom do canhão superior e a guinada da torre superior Está bem? Esta é a nossa torre e precisamos mudar sua mandíbula Portanto, há dois ossos que precisamos alterar a cada rotação. Primeiro, a junta do canhão, o passo e a junta da torre, sim. Então, vamos ver como podemos fazer isso. Primeiro de tudo, vamos fazer isso por Turret, certo? Procure por Turret Diz torrent. É um erro. Não se preocupe com isso. Junta de torrents E aqui, eu quero clicar com o botão direito do mouse nessa rotação e dividir o stroqm Não precisamos mudar o rolamento e o tom. Precisamos apenas mudar o “ya”. Por exemplo, se eu mudar para 40 e começar a compilar. Não, você pode ver. A rotação dele é alterada. Novamente, podemos colocá-lo em 90, por exemplo, compilação principal, não, você pode ver, eu girei 90 graus Eu não quero simplesmente fazer isso assim. Eu quero promovê-lo para uma variável. E eu quero chamá-la de arma Y, colocá-la na arma ya. Não precisamos dizer Tretyo porque estamos mudando o Tret, certo? Mas a arma, quero dizer a pistola antipneumática, certo? É por isso que eu chamo isso de arma. E depois disso, precisamos copiar e colar isso. Precisamos fazer isso também para a junta da arma em si. Então, o osso que queremos modificar é chamado de articulação do canhão. Então, vamos colocá-lo lá. Agora, o que queremos mudar é o tom. Então, por exemplo, se eu colocar 45 lá e começar a compilar não, você pode alterar o tom em 45 graus Novamente, quero clicar com o botão direito do mouse nessa, promovida a uma variável, e quero chamá-la de tom de arma, certo? É isso que precisamos mudar. O campo da arma, e atira em você. Para testá-los em um editor de pré-visualização, podemos apenas testá-los. Por exemplo, para mudar o tom, você pode ver que estou mudando ao vivo. E eu posso mudar o ya tão bem quanto você pode vê-lo aqui. Eu olho para isso, você pode ver melhor. Você pode ver que, com essas variáveis, podemos girar nossa arma e mudar seu tom para olhar para cima e para baixo. Agora que temos uma maneira de girar nossa arma e mudar seu tom para olhar para cima e para baixo. Vamos ver como podemos calcular qual deve ser o tom e o que deve ser o U no próximo vídeo. 38. 37 Calcular a direção da arma: Não, sabemos como podemos girar nossa arma na direção que quisermos, certo? Mas não, queremos verificar o alvo e alterar a rotação com base nesse alvo, então atire no AMAT ou no alvo Para fazer isso, eu quero ir até a BP ti airgun aqui. Em vez de apenas usar a impressão para fazer o que eu quero fazer, quero criar uma variável e dizer se ela está dentro do intervalo ou não Então, o nome está ao alcance. Se o alvo estiver dentro do alcance, queremos definir isso como verdadeiro. O alvo está ao alcance, se você se lembra, verificamos a distância entre o antígono e o E se estiver dentro do alcance, isso acontecerá, e queremos dizer que está dentro do alcance. Depois disso, se nos der falso, esse galho, queríamos dizer, não está dentro alcance porque isso nos dá falso. É por isso que esse falso geralmente acontece e dizemos que está ao alcance é falso. Agora, com isso no Aventq em cada quadro, queremos mudar a rotação do canhão superior para que ele olhe para o helicóptero ou para o alvo, certo Então, a primeira coisa que precisamos fazer aqui, primeiro, precisamos verificar se o alvo é válido. Então, pesquise por I valid assim e conecte o pino de execução a ele. Em seguida, se for válido, queremos verificar se está dentro do alcance ou não, então pegamos e verificamos com a ramificação desta forma. Não, nesse caso, precisamos calcular a inclinação do canhão e o tamanho do canhão, então ele examinará nosso helicóptero e como podemos fazer isso. Primeiro, precisamos obter a rotação do nosso canhão antiaéreo até o alvo O que é essa rotação? Se o helicóptero mudou de posição, qual é a rotação que nossa arma deveria ter E há um nó para isso chamado find Look at rotation. Portanto, essa boa visão da rotação precisa de uma localização inicial e de um alvo, e calculará a rotação que o canhão deve ter, para mirar no alvo. O local inicial é ou anti-argônio, então podemos obtê-lo obtendo a localização do ator É isso mesmo. Não, para a localização do alvo, se você for para o nosso BPL, eu quero que ele mire no meio do nosso helicóptero Ou um helicóptero, por padrão, a localização 000 está aqui embaixo, certo? Mas um braço de mola está começando no meio do helicóptero. É por isso que eu quero usar a posição do braço de mola. Para dizer: “Este é o seu alvo”, mire no meio do nosso helicóptero Então, em nossa pistola antipneumática, queremos pegar nosso alvo e pegar seu braço de mola. Então, procure por Spring Guard. E com esse protetor de mola, queremos obter sua localização oficial. Então, obtenha a localização da palavra. E não, esse nó nos dará a rotação que nossa arma deveria ter, então está apontada para nosso helicóptero Não, nossa arma já tem uma rotação. E podemos conseguir isso com a rotação do ator G, certo? Queremos calcular a diferença entre essas duas rotações e colocá-la em inclinação e arma, sim. E como podemos fazer isso, há um nó chamado rotador Delta que nos dará a diferença entre a rotação que deveríamos ter a pistola antipneumática, para que ela mire no helicóptero e a rotação que ela já tem, certo Eu nos darei essa rotação. Podemos clicar com o botão direito neste e dividir uma barbatana. Agora, com isso, as únicas coisas que precisamos são o valor do pitch e o valor ya. Então, podemos clicar com o botão direito do mouse no valor do tom promovido para variável, e eu posso chamá-lo de tom da arma. Esse é o tom que nossa arma deveria ter. Precisamos salvar o tom do canhão conectando o pino de execução a ele, que ele salve o tom do canhão dentro dele. Nós também precisamos do Ya, e eu quero chamá-lo de arma Yao E também conectado ao pino de execução. Agora, temos o campo da arma e a arma você. Vamos ver como podemos usá-lo em nosso plano de animação. Vá para o Animation Blueprint, vá para o gráfico de eventos e, aqui primeiro, precisamos obter nossa pistola antiaérea BP Então, clique com o botão direito aqui no evento para começar a jogar assim, e precisamos escolher o ator proprietário Curta isso e jogue em antergônio fundido em pistola antipneumática, certo? Se esse lançamento for bem-sucedido, podemos promovê-lo como variável. E eu quero chamá-la de pistola antiaérea BP, certo? Dentro desse antiergônio da BP, o que temos é inclinação da arma e o iate de canhão, que calculamos, que calculamos Então, aqui, não precisamos desse dono de peão trigonométrico porque o dono desse projeto de animação é uma É por isso que usamos o ator proprietário, certo? E aqui, primeiro, precisamos verificar se esse modelo de pistola antipneumática é válido ou não Portanto, a pesquisa por é válida. Se for válido, o que queremos fazer é apenas conectar o pino de execução. Precisamos tirar o arremesso da arma. Então, procure o campo da arma, e precisamos pegar a arma, você também. Arma você desse jeito. Esses são os valores que calculamos aqui. Esses são esses, certo? Mas queremos conectá-lo ou salvá-lo dentro dessas variáveis que temos em nosso plano de animação Então, podemos obter a inclinação da arma, configurá-la aqui com o valor que obtemos da nossa pistola antipneumática que calculamos juntos, certo? E, novamente, devemos fazer isso por Gun ya também. Defina-o aqui com o valor que estamos obtendo do Anti Pergon Blueprint. É isso mesmo. Agora, com isso feito. Precisamos ir até Antirgon, clicar em nossa imagem esquelética Esquecemos de colocar a aula de anim lá. Então clique aqui e escolha ABP anti ergon. Então, esse projeto e esse plano de animação serão conectados juntos, certo Feito isso, não, se você atropelar jogo e ir para o céu, vamos ver. Ele deve mudar sua rotação com base em nossa localização. Agora, você pode ver isso. Está de frente para nós. Vá em frente. Você pode ver ou Antiergon está olhando para nós, e ele mudará sua rotação, então ele olhará Novamente, vamos para o céu. Não importa aonde vamos, você pode ver, ele está nos seguindo corretamente. Agora que está nos seguindo corretamente, precisamos disparar as armas contra nosso helicóptero Vamos ver como podemos fazer isso. Próximo. 39. Projétil de pistola anti-ar: Não, para que nossa arma antiaérea seja capaz de atirar em nosso helicóptero, precisamos de um projétil Então, primeiro, vamos criar um projétil e depois atirar nele, certo? Para fazer isso, vá para a gaveta de conteúdo, vá para a pasta Blueprint no Anti Airgun e clique com o botão direito aqui, crie uma classe de planta do tipo de ator, e eu quero chamá-la de bloco do projeto de pistola antiaérea BP pistola antiaérea Boneca, clique nela para abri-la. E aqui, a única coisa que eu quero adicionar é apenas uma esfera porque ela vai tão rápido que não podemos vê-la. Não precisamos da imagem do sótão para isso. Apenas uma esfera é mais do que suficiente. Posso colocá-la como uma raiz síncrona padrão arrastando-a e soltando-a Agora, com isso, também quero adicionar um movimento de projétil Adicione um movimento de projétil. E a velocidade dela, de inicializar uma velocidade, eu quero que seja 40.000, mas você deve jogar com esse valor até alcançar o resultado desejado A velocidade máxima, eu quero que seja 50.000, certo? E agora, com isso, se eu for na direção e clicar em simular, você pode ver ou o projétil está Agora, a próxima coisa que eu quero fazer mudar o tamanho do projétil Então, para fazer isso, clique na esfera. Tamanho para todos eles, eu quero mudar em 2,15, certo? É por isso que selecionei esses ícones, para que todos eles mudem juntos. 0,15 é mais do que suficiente porque é um pequeno projétil, certo A cor disso, para isso, eu quero criar um material. Então, aqui, vou clicar em criar um material. Vou chamá-lo de vermelho. É isso mesmo. Vou clicar nele para abrir. E aqui, o que eu quero fazer é uma árvore inteira na parte inferior esquerda da cabeça do teclado para criar um vetor constante que, com ele, podemos mudar a cor se você estiver conectado à cor se você estiver conectado à Agora, podemos clicar aqui e escolher o vermelho. Basta adicionar vermelho a ele. Você pode ver que não é uma esfera vermelha, mas eu quero que ela brilhe um pouco também É por isso que precisamos da cor emissiva. Podemos simplesmente conectá-las a cores emissivas, mas elas não brilharão Vamos ver e dar uma olhada. Você pode ver que está brilhando um pouco. Mas se você multiplicar isso por um valor muito grande, como, digamos, 200 e conectá-lo a uma cor missiva, não, você pode ver que ela brilhará mais Certifique-se de salvá-lo e ir para AntiIrgonPjectile, clicar na esfera e alterar o Então colocamos o vermelho lá, certo? Agora, com isso, quero mudar a colisão. No momento, está bloqueando toda a dinâmica. Quero mudar isso para uma predefinição personalizada e quero bloquear tudo Mas, se a colisão permitir, quero que seja apenas uma consulta, para que não empurre fisicamente nem use um helicóptero, mas crie muitos bots É por isso que queremos colocá-lo apenas como consulta. E o tipo de objeto, queremos que seja mais dinâmico e queremos bloquear tudo. É isso aí, isso foi para colisão. Agora, vamos salvar e compilar. Vá até Aventurap aqui, sempre que o movimento do projétil parar, podemos descer e pegá-lo Então, sempre temos um evento ou um projétil em alguma coisa, certo? Aqui, podemos simplesmente quebrar esse resultado e com isso, queremos aplicar algum dano quando atingir alguma coisa, certo? Então, digamos que aplique dano. A quantidade de dano que eu quero que isso cause, eu quero colocá-la em 0,5 por enquanto, mas vamos alterá-la mais tarde. E ao ator que queremos aplicar dano é o ator que atingimos. Então, dragão, deixe o ator principal aqui. Depois de aplicarmos um dano, podemos simplesmente destruí-lo, certo? Destrua o ator. Isso é tudo que precisamos fazer. Não, vamos compilar, salvar. Nada vai acontecer porque ainda não estamos desovando. Mas, novamente, se você acessar nossa janela de exibição e fazer uma simulação, poderá ver como fica Você pode ver. Não, vamos ver como podemos gerá-lo. Nós faremos isso a seguir. 40. 39 Atire as armas: Não, para uma desova ou projétil e atire em direção ao Vamos ao nosso banco de VPN, certifique-se de salvar tudo E aqui, sempre que o alvo está no alcance e definimos que está no alcance verdadeiro, queremos definir um cronômetro Então, defina um cronômetro aqui. Por evento, a cada 0,05 segundo, queremos que esse evento aconteça em loop, e ele precisa de um evento personalizado Então, vamos adicionar o evento personalizado. Eu quero chamar isso de fogo. Então, com esse cronômetro, cada 0,05 segundo, disparamos por cima Do lado direito ou do lado esquerdo. Você pode ver que há dois barris aqui. Então, qualquer um desses não importa, certo? Não, temos esse cronômetro. Podemos simplesmente promovê-lo para variável porque, em algum momento, precisamos parar esse cronômetro. E eu quero chamar isso de cronômetro de incêndio, certo? E se o alvo sair do alcance, queremos pegar nosso cronômetro de fogo e aqui, eliminar um sapo, limpar e invalidar Não, feito isso, vamos usar uma string de impressora para não e dizer disparar, certo, compilar e salvar para ver o que vai acontecer No momento, como o helicóptero não está ao alcance, eu não diria nada, mas se chegarmos perto dele, vamos ver o que vai acontecer Diz: fogo, fogo, fogo, e se novamente sairmos do alcance, o cronômetro parará Vamos dar uma olhada nisso. Não, você pode ver o cronômetro parou e não , não está atirando em nós Agora, com isso, sabemos que ele está tentando atirar em nós quando estamos ao alcance, e não atirará em nós quando não estivermos ao alcance. Não, não queremos usar impressoras. Queremos gerar uma bala, um projétil. Então, para fazer isso, precisamos obter a posição na ponta desses dois barris, certo? Na ponta dessas armas. Então, como podemos fazer isso, há muitas maneiras. Eu quero te mostrar um novo caminho. Aqui, podemos simplesmente clicar na malha esquelética adicionar um componente de cena aqui Isso é apenas para localização. Este, eu quero usá-lo como arma esquerda. Basta colocar a esquerda lá. E como é filho de uma malha esquelética, podemos atribuir um soquete a Então, aqui, eu quero atribuí-lo ao Gun Joint. Agora, você pode ver que está alinhado com a junta da nossa arma. Podemos trazê-lo para cima e colocá-lo na ponta da arma esquerda. O golpe esquerdo é esse, certo? Então, vamos colocá-lo na posição correta. É 230 menos dez, certo? Agora, vamos duplicar isso e fazer isso com a arma certa também Então, controle D para duplicá-lo e alterar o nome para right go, certo? Novamente, o soquete principal, queremos que seja uma junta de arma como essa, e queremos trazê-lo para este lado, certo? Agora, você pode ver que a arma direita está no lugar certo e a arma esquerda também está no lugar certo. Agora, temos os lugares onde disparamos fogo, projétil ou projétil Não, com isso, vamos até aqui. Neste incêndio, o que queremos fazer é usar um chinelo, certo primeira vez, queremos desovar no lado esquerdo, segunda vez, queremos aparecer no lado direito É por isso que o chinelo funcionará bem. Então não, vamos fazer a esquerda primeiro. Aqui, eu quero criar um ator da sala de aula. O ator que você deseja gerar é chamado de projétil. Tem projétil dentro dele, anti-pistola pneumática, certo Para transformar, porque queremos fazer isso com a esquerda, pegamos a arma esquerda e, com ela, obtemos a palavra transformar dela, transformação de palavras e podemos simplesmente conectá-la aqui. Queremos fazer o mesmo com o B, com o cano certo ou com a direita Então, controle C, controle V para colar aqui e conectá-los a B. Basta mudar a letra esquerda que temos aqui para a direita para a direita para tirar a palavra transformação, certo? Agora, com isso, vamos ver o que vai acontecer. Se compilarmos e executarmos. Não, se chegarmos perto disso, vamos ver o que vai acontecer. Se formos. Não, você pode ver que está nos atingindo, certo? Mas não há efeito. Só está nos atingindo com uma bala. Não há som. Não há nada. E você pode ver que se eu me afastar dela, ela não será capaz de atirar em nós. Você pode ver que está atirando em nós. É fogo contra nós. Não, porque nos afastarmos dele, ele não será capaz de atirar em nós porque não estamos mais ao alcance. Não, o problema com essa abordagem é que ela é muito precisa. Está sempre nos atingindo. Precisamos encontrar uma maneira de atirar em um cone. Então, nem todas essas balas nos atingem. Então, deve parecer mais natural perder algumas balas, certo? O verdadeiro anti-argônio é assim. Há alguma tolerância, e no próximo vídeo, adicionaremos essa tolerância lá. 41. 40 Randomizar a direção dos projéteis: Não, por espalhar esses projéteis que estamos gerando porque Isso pode nos destruir se houver mais de um deles, certo? Não deveria ser tão preciso. Então, para alterar a precisão deles, o que eu quero fazer primeiro, vamos fazer isso com o cano esquerdo Quero trazer um tópico aqui e o que quero fazer. Quero desconectar isso e clicar com o botão direito do mouse nesse valor de retorno aqui, dividir o pino de rocha e, com ele, quero fazer uma transformação aqui também Faça uma transformação aqui embaixo, certo? Então, se simplesmente conectarmos tudo de localização a localização e rotação a rotação e escala a uma escala, nada será alterado. Vamos dar uma olhada nisso. Nada será alterado. Ele será capaz de olhar para nós completamente bem com muita precisão. Você pode ver com que precisão está nos atingindo, certo? Mas o que eu quero fazer mudar a rotação para ter alguma tolerância, mudar a rotação. Não quero alterar a localização ou a escala. Eu só quero mudar a rotação. E para fazer isso, primeiro, eu quero tirar o vetor direto dele, e eu quero randomizar esse vetor direto para olhar um pouco para a esquerda, direita para cima e baixo com o nó que é chamado vetor unitário aleatório em um cone em um raio, Então, o que ele fará é nosso vetor direto, ele adicionará um pouco de tolerância a ele em um cone, um cone que é assim, certo? A tolerância que eu quero acrescentar é que eu quero que seja muito pequena porque se for um grau aqui, estará muito mais longe, certo? Então, vou colocá-lo em 0,08, um valor realmente pequeno Então, o que esse nó fará é adicionar aleatoriamente alguma tolerância ao vetor direto, então ele disparará em todos os lugares Isso espalhará os projéteis. Depois disso, podemos criar um rotador a partir dele. Podemos dizer rotador de X, certo? É isso mesmo. X é vetor direto. É por isso que, se criarmos uma haste de fabricação a partir de X, ela funcionará e queremos conectá-la à rotação. Só assim, se clicarmos em correr e chegarmos perto dela, a arma direita deve estar nos atingindo com precisão, mas a arma esquerda, você pode ver, está atingindo todos os lugares, e há menos precisão na arma esquerda É claro que, se chegarmos perto disso, haverá mais precisão. Mas se nos afastarmos disso, você pode ver: Não, há muita tolerância, e isso nem sempre pode nos atingir. Não, eu quero fazer o mesmo para o lado direito também. Então, deixe-me trazer tudo isso aqui. Eu quero deletar isso, copiar tudo isso, controlar o controle C e colar aqui. O que eu quero mudar é apenas essa arma esquerda que você quer mudar para a direita. Não, vamos apenas dizer isso. Se você executar o jogo we e chegar perto dele, vamos ver o que vai acontecer. Isso espalhará todas as balas. Você pode ver que nem sempre está nos atingindo. Isso parece muito mais realista. Na vida real, é assim. Não é tão preciso. Deixe-me ver isso mais uma vez aqui. Se você chegar perto disso. E você pode ver que está nos atirando em todas as direções. Se ele atirar diretamente em nós com precisão, morreremos em pouco tempo É por isso que adicionei toda essa tolerância, para que pareça mais natural. 42. 41 VFX da pistola anti-ar: Não, é hora de adicionar alguns efeitos visuais. Vamos ver como podemos fazer isso. Para alguns efeitos visuais, deixe-me ir até a gaveta de conteúdo na pasta Assets Se formos até o veículo East Art, você pode ver que há um sistema ***** aqui que podemos usá-lo para efeitos você pode ver que há um sistema ***** aqui que podemos usá-lo visuais de tiro ou arma Vamos esperar até que ele seja compilado e agora você pode ver como está lindo Tem tudo para nós. Você pode ver que parece realmente incrível. Queremos usar isso, certo? Então, vamos ao nosso antírgon. Quero clicar na arma certa e adicionar o sistema Niagara lá. É isso mesmo. O sistema Nagara, ele colocou automaticamente lá porque selecionamos aqui É por isso que ele o colocou automaticamente lá. Mas eu quero chamá-lo de focinho certo, certo? Focinho direito. E ele o colocou corretamente lá. A cadência de tiro é mais do que suficiente. Não. Se você olhar para ele, você pode ver que ele o está gerando lá embaixo. Mas como é filha da arma certa, podemos simplesmente colocar a posição em zero, zero e zero. Agora, você pode ver que está na posição correta. Isso parece incrível, certo? E você pode ver alguns projéteis também estão sendo ejetados. Isso parece realmente incrível. Queremos fazer o mesmo com a arma esquerda também. Portanto, controle D para duplicar. E esse, eu quero chamá-lo de focinho esquerdo. Então, deve mudar isso para levantar o cano e colocá-lo como arma esquerda aqui E novamente, clique nele, mude a posição para zero, zero e zero. E agora, se você for aqui, você pode ver, pois os dois estão funcionando bem na posição correta. Ambos estão atirando. Tudo parece bom, mas se atropelarmos o jogo, é sempre um tiro. Você pode ver, está sempre atirando. Não queremos que seja assim. Queremos que, sempre que estiver filmando, tenha esse efeito visual. E como podemos fazer isso, na verdade, é fácil. Então, aqui, por padrão tanto para o focinho esquerdo quanto para o focinho direito, queríamos dizer que não são ativados por Então, altere o auto ativo para falso, e agora você pode ver que não há nenhum efeito lá. E se você rodar um jogo, verá que não há nenhum efeito nisso. Mas sempre que começar a disparar, precisamos ativá-los. Então, podemos obter os dois assim e ativá-los , definir ativos e pronto. E queremos ativar. Então, quando o helicóptero estiver ao alcance e quisermos começar a atirar, certo Ambos, queremos que seja ativo. E podemos simplesmente copiar e colar isso e colar aqui. Não, precisamos de um pouco de espaço. Deixe-me selecionar tudo isso, adicionar um pouco de espaço aqui. E sempre que o alvo não está ao alcance, não estamos atirando nele, então queremos desativar esses dois efeitos visuais, certo? E isso é tudo o que precisamos fazer. Vamos apenas compilar, salvar e executar Você pode ver, por padrão, que não há efeitos visuais lá. Mas se chegar perto disso. Vamos ver o que vai acontecer. Não, você pode ver , está atirando em nós, e também há efeitos visuais, e está funcionando bem. Não, o excesso de efeitos visuais está funcionando bem, mas não está reproduzindo nenhum som ao disparar uma arma. Fogo, é arma. Agora, vamos ver como podemos adicionar um pouco de som a ele. 43. 42 Som do fogo de arma: Não, existem alguns efeitos visuais anti-argônio, mas não temos nenhum som Vamos ver como podemos criar o som. Vá para a gaveta de conteúdo, e aqui, desça até Argon, e aqui, clique com o botão direito, crie uma nova pasta Eu quero chamar isso de sons. OK. Clique duas vezes nele para abri-lo, com o botão direito, clique aqui, vá para o áudio e crie uma fonte de metasundo Eu quero chamar isso de fogo de pistola de ar comprimido, certo? Clique duas vezes nele para abri-lo. E aqui, eu quero usar um player de ondas. Como sempre, começamos com um player de ondas. A onda que você deseja tocar é chamada de 50 BMG se você a jogar É exatamente assim, certo? Em seguida, queremos conectar o mono de aveia ao mono de aveia. E desta vez, de inacabado em inacabado, certo? Quando estamos fazendo um loop em algo, não devemos conectar o inacabado Mas se você não está fazendo um loop e queremos que algo aconteça quando conectarmos o inacabado ao inacabado Não, porque temos apenas um som aqui, não vai soar muito bem. É por isso que eu quero mudar aleatoriamente o tom. Então, aqui, vou procurar por um flutuador aleatório, certo? E esse flutuador aleatório nos dará um valor 0-1. Eu não quero que seja assim. Eu quero que esteja entre 0,1 e dois, certo? Ele selecionará aleatoriamente um valor flutuante. E nos dê aqui e definimos como um argumento de venda. Então, cada vez que esse som de metal for tocado, ele terá uma mudança diferente. Não, eles precisam de um alfinete de árvore, então vamos dar o alfinete de árvore e depois tocar o som. Agora, se você tivesse jogado, você pode ver que está funcionando bem. Não, vamos nos proteger e ver como podemos usá-lo. Volte para o BP Anti Argon. E aqui, em ambos os casos, queremos gerar som no local, gerar som no E a música que queremos tocar se chama MSonTirgnfre. Para a localização, podemos usar a localização que passamos para esta nota de projétil Span, certo? Podemos simplesmente arrastar e soltar isso quebrar isso e usar sua localização, certo? A próxima coisa que eu quero fazer é adicionar a configuração de atenuação. Nós o temos de antes. O míssil SA também funciona para este. Então, vamos colocá-lo lá. Agora, com isso feito, quero copiar e colar este aqui também para a arma certa. Eu preciso de uma localização. Podemos simplesmente interromper isso e usar sua localização para a localização. E a atenuação do som também está boa. Não, vamos apenas testar. Se você tivesse compilado, salvado e executado o jogo. No momento, não há som se você chegar perto dele. Você vê que há uma nota sonora. E se você se afastar disso, o volume do som também será alterado. Eu quero mudar algumas coisas. Essa atenuação de som que estamos usando aqui não é suficiente, não é Vamos criar atenuação de som apenas para isso, clique com o botão direito aqui, vá para o áudio e crie uma atenuação sonora Eu quero chamar isso de tiroteio, certo? Não clique nele para abri-lo. E esses valores, vamos testá-los apenas com esses valores. Volte para o BPT Airgon e escolha a atenuação sonora que criamos juntos. Aqui também, a atenuação do som precisa transformá-la em atenuação do som Agora, vamos testar isso. Se rodarmos o jogo, vamos chegar perto dele. Você pode ver, não há som, mas se chegarmos perto dele, podemos ouvi-lo não. Você pode ver a atenuação do som agora, é demais. São 400 é muito menos do que queremos. Talvez 1008 mil sejam melhores para o raio interno e o raio externo Vamos testar isso não. Se atropelarmos o jogo e começarmos, há um pouco de som, e o som fica mais pesado e com mais volume, e você pode ver que, eu acho, soa muito melhor, certo? Então, os 1008 mil são mais do que suficientes. Você pode simplesmente fechá-lo. Outra coisa que eu quero fazer aqui porque estamos usando um cronômetro aqui Neste incêndio, novamente, quero verificar se o alvo é válido ou não. Se não fizermos isso, às vezes isso pode nos dar um erro. Então pegamos a meta e verificamos se ela é válida ou não, certo? E conecte-o assim. Se for válido, podemos atirar nele. Mas se não for válido, não disparamos, e o que queremos fazer desativar o efeito visual. Controle C Control V para colar esses novos efeitos visuais ativos em falhas como essa Então, se o alvo for destruído e esse cronômetro não souber disso, ele nos dará alguns avisos Eu não quero que você tenha esses avisos. É por isso que verificamos se é válido em todos os incêndios. Isso evitará muitos bugs. 44. 43 Sistema de saúde Helli: Nenhuma Antígona está nos atingindo. Vamos ver como podemos ter um sistema de saúde para mostrar isso, para diminuir a saúde do nosso helicóptero, certo Para fazer isso, eu quero ir para o BP Hell e aqui, ir ao gráfico de eventos, encontrar algum espaço Por exemplo, aqui, clique com o botão direito do mouse no dano do evento A, certo? E eu quero usar uma impressora aqui para mostrar o dano que ela nos causa, certo Se você rodar nosso jogo, não e se aproximar do nosso antiirgn, vamos ver quanto dano isso nos causará 0,5 toda vez, certo? Isso não parece bom. Então, o que podemos fazer é acessar Event Craft e randomizar esse dano básico Então, o que eu quero fazer aqui usar um flutuador aleatório Mas eu quero que esteja ao alcance, certo? Eu não quero que seja demais. Eu quero que esteja entre 0,3 e 0,8, certo? Assim, vamos compilar o save e saber se você atropelar o jogo, toda vez que ele nos causará um dano diferente, certo, aleatoriamente E você pode ver que é um valor entre 0,3 e 0,8, e você pode ver o quanto isso está nos dando, certo? Não, é isso que não precisamos dessa string de impressora. O que eu quero fazer é criar um sistema de saúde. Então, vamos criar uma variável e eu quero chamá-la de saúde. Certo? E do tipo que eu quero que seja flutuante Em seguida, vamos criar outro. Esse, eu quero chamá-lo de “saúde máxima”, certo? Não, a saúde máxima, eu quero que seja por enquanto. Digamos que 80, certo? Qualquer valor que você quiser, você pode colocar lá. E a saúde, eu quero que seja 40, certo? É isso mesmo. Agora, com isso feito. Primeiro, queremos verificar se a saúde é maior que zero. Então, aqui, verificamos se a saúde era maior que zero, vamos usar apenas uma ramificação. Assim. Se a saúde for maior que zero, podemos diminuir a saúde dessa forma, obtê-la, subtraída por esse número de dano Depois disso, salve-o dentro de si mesmo. Guarde-o aqui assim. Legal. Depois disso, queremos verificar a saúde dessa forma. Se for menor ou igual a zero, queremos economizar com a ramificação. Que está destruído. E aqui, vamos usar apenas uma string de impressora. Inferno, destruído. Não queremos destruí-lo agora, mas você pode ver o objetivo do sistema de saúde, certo? Agora, se você tivesse compilado o save e o que eu quero fazer, quero ir para o DB aquela depuração que criamos, que mostramos o número do míssil Dessa vez, eu quero mostrar a saúde, certo? E o valor aqui, eu quero colocar zero lá para que possamos usá-lo para outras coisas, certo? E para a chave, vou colocar uma corda lá. É isso mesmo. Não, queremos mostrar a saúde. Então, vamos colocar a saúde lá e conectar o pino de execução a ela. Vamos apenas compilar e executar. Você pode ver que a saúde é 14. Se chegarmos perto, você pode ver como está diminuindo. Você pode ver que é 25 e não, é um que ele destruiu. Ou a saúde do helicóptero está diminuindo até ser destruído. Agora que temos um sistema de saúde, precisamos criar uma interface de usuário para ele. Nós faremos isso a seguir. 45. 44 Barra de saúde UI: Não, para adicionar uma barra de saúde. Vamos ver como podemos fazer isso. Onde eu quero fazer isso? Deixe-me ir para a pasta Hali no widget. Tivemos um WBPHAUI. Eu quero adicionar uma barra de saúde aqui. Então, para fazer isso, precisamos uma barra de progresso adicionada à pilha do Canvas O ponto de ancoragem parece bom. Eu quero adicionar um pouco de preenchimento a ele, 50 e 50, eu acho que é bom Portanto, temos algum acolchoamento ou um espaço entre a fronteira e nosso tabuleiro de saúde Agora, o tamanho dele, eu quero que seja 800 por 20, assim. Você pode ver. E vamos mudar a porcentagem para 0,5. Você pode ver que a porcentagem é um valor de 0 a 1. Se você colocar 0,5 lá, a metade estará cheia. Agora, pela cor, eu queria colocá-la em verde. Então coloque o verde em um e coloque o azul em zero. Portanto, isso nos dará um valor verde. Podemos escurecê-lo um pouco, para que fique mais bonito. É isso mesmo. Não, para que pareça melhor, eu quero entrar na transformação. Em primeiro lugar, quero mudar o pivô para zero e zero, certo Por padrão, o pivô está no meio, mas eu queria colocá-lo no canto superior esquerdo com zero e zero, certo Depois disso, quero compartilhar um pouco assim, 35, certo? Eu acho que isso parece incrível. Agora, com isso feito, precisamos dar um nome a ele. Eu quero chamá-lo de barra de saúde, certo? E precisamos que seja uma variável para que possamos atualizar seu valor. Então, vamos ver o gráfico. Como fizemos, este conjunto assume o número de mísseis. Precisamos criar uma função para essa também, e eu quero chamá-la de update health, certo? E a entrada disso é um valor flutuante. Então mude o tipo para flutuar e eu quero chamá-lo de saúde, certo? Essa saúde deve ter um valor de 0 a 1, porque queremos definir a barra de progresso da saúde dessa forma com uma porcentagem definida, esse valor, certo? Conectado assim. Portanto, devemos lembrar que essa saúde é um valor de 0 a 1 Para você se lembrar, podemos clicar na função e ir até a descrição aqui para dizer que saúde é 0-1, certo? Coloque aí, sem compilar, salve. Agora que sabemos que, se você atropelar o jogo, poderá ver o quadro de saúde lá, mas ele não está sendo atualizado. Se formos para o inferno da pressão arterial, onde quer que estejamos mudando a saúde, precisamos atualizar a saúde também Onde estamos mudando a saúde aqui. Depois de alterarmos a saúde, precisamos atualizá-la. Deixe-me abrir um espaço aqui. Nós temos a LUI, então entenda, e há uma função dentro dela chamada update Health, e sabemos que a saúde é um valor 0-1 dentro ou uma HelUI porque é apenas uma pessoa Mas agora, a saúde é um valor 0 a 80 porque o máximo é 80, então a saúde é um valor de 0 a Como podemos mudar essa saúde com base na saúde máxima de 0 a 80 para zero a um Como podemos fazer isso, podemos dividir nossa saúde dessa forma pela saúde máxima, dividida pela saúde máxima, e isso nos dará um valor de 0-1 Se a saúde for zero, zero, dividida o que nos der zero, a saúde será zero. Se a saúde for 40, que por padrão é 4040/80, isso nos dará 0,5 e a saúde será Mas se a saúde for 80 e o elfo máximo for 80, 80/80, isso nos dará uma Outra coisa que eu quero fazer copiar esta e, no início da jogada, deixe-me encontrar a peça inicial aqui. Queremos atualizar a saúde antes de tudo isso, certo? Queremos atualizar a saúde com o valor que ela tem. Controle V para colá-lo aqui e atualizar a saúde. Agora, se eu mudar a saúde 40-20 e começar a compilar e executar o jogo, não, você pode ver que a barra de progresso ou a barra de saúde está em Nenhuma coleira se aproxima até que ela nos destrua. Você pode ver que a saúde está diminuindo e, depois disso, diz, cure, destrua Então, isso parece incrível. Temos uma barra de saúde e, não, quando a saúde chega a zero, queremos destruir nosso helicóptero. Vamos ver como podemos fazer isso. Próximo 46. 45 Destrua Helli: Não, por destruir nosso helicóptero sempre que a saúde chegar a zero ou menor que Vamos ver como podemos fazer isso. Para fazer isso, primeiro de tudo, precisamos de um helicóptero destruído Vamos até a gaveta de conteúdo no Blueprint. Quero clicar com o botão direito do mouse em Criar uma classe de blueprint desta vez do tipo de ator, e quero chamá-la de Healy danificado por BP Vou clicar nele para abri-lo aqui. Quero adicionar aesticmsh porque o helicóptero danificado está em estaticmsh helicóptero danificado Então, adicione uma malha estática. Eu quero arrastá-lo e colocá-lo como raiz de cena padrão. E aqui a malha estática que eu quero usar é chamada Hell damage SM west heli damaged, e você pode vê-la aqui Agora, eu quero adicionar um sistema de partículas em cascata a ele, adicioná-lo lá, e o sistema em cascata que você deseja gerar é esse inferno de destroços de PS, certo Basta colocá-lo lá. Agora, esta é a planta que queremos usar sempre que nosso helicóptero for destruído. Mas clique na malha estática e peça para ela simular física também Então, se você estiver no céu e gerarmos esse helicóptero destruído, ele cairá no chão depois disso Não, vamos apenas compilar, salvar e você pode simplesmente fechar isso Agora, se você for ao BPhLLi, quero criar um evento personalizado para destruir Então, aqui, vou clicar com o botão direito do mouse em criar um evento personalizado, certo, e salvar destroy Hale, certo? Destrua isso, Hali. E aqui, primeira coisa que eu quero fazer gerar um sistema no local, certo? Crie uma explosão, e o sistema que eu quero usar é chamado de explosão de poeira do Niágara E a localização disso, podemos obter a localização do ator, obter a localização atual do ator que isso nos dará isso e conectada aqui. Em seguida, quero gerar um som, então amplie o som no local E o som que queremos usar é chamado de ES grand explosion. É isso mesmo. E a localização dela, podemos usar esta. E é isso. Não, a próxima coisa que eu quero fazer. fim, quero gerar aquele ator que criamos e que se chama helicóptero danificado, certo Então clique aqui e pesquise por Damage Damage Hell. Basta colocá-lo lá. Para a transformação de amplitude, podemos obter a transformação do ator exatamente assim. E depois de tudo isso, podemos destruir nosso helicóptero completamente Então, ele gerará outro ator e destruirá o helicóptero principal Vamos começar a compilar, salvar. Não, em vez dessa string de impressão que dizemos heli destroy, queremos usar destroy Healy, não destroy actor, destroy Vamos ver o que vai acontecer. Cabeça, compile, salve e execute o jogo. Agora, vamos nos aproximar de mais de um nível perdido, para que você possa ver que isso nos destruiu e ver como está lindo . Isso é realmente incrível. Nenhum helicóptero pode ser destruído. 47. 46 Dica de Helli sobre danos: Não, eu quero destruir nosso helicóptero sempre que ele capotar Deixe-me te mostrar onde. Se chegarmos ao céu e fizermos isso, queremos que o helicóptero também seja destruído. Então, como podemos fazer isso. Para fazer isso, eu quero ir para a janela de exibição, que você possa ver as lâminas Eu quero clicar na malha em uma colisão de cápsulas, adicionar a colisão de cápsulas E eu não quero dar nenhum nome a isso. Eu quero usar um soquete principal da junta principal do rotor. Agora você pode ver isso aqui em cima, certo? Eu quero girá-lo assim 90 graus em torno do Yaxs. Isso significa o tom, certo? Sabe com isso, eu quero posicioná-lo melhor, trazê-lo assim e mudar a parada até que ele chegue, por exemplo, aqui, certo? E saiba com isso, se eu for aqui e disser para não ficar escondido no jogo, o que vai acontecer? Ele girará com a lâmina. Você pode ver isso aqui. Está na nossa espada. Se ligarmos o motor, você pode ver que ele está girando completamente com a lâmina Eu quero que fique escondido no jogo. Então, saiba que sempre que essa colisão da cápsula atingir o solo, queremos dizer que destrua o helicóptero, certo Então, aqui, eu quero ir para o gráfico de ventilação e aqui, descer. Até chegar à predefinição de colisão, quero alterá-la para personalizada Queríamos dizer que sobreponha tudo, mas não se sobreponha ao veículo E a colisão, eu quero que seja uma consulta e física habilitadas para colisão . É isso mesmo. Não, com isso feito, podemos descer e fazer com que o componente comece a se sobrepor, certo? Assim mesmo. Vamos usar um anel de impressora aqui para ver se está funcionando bem ou não. Anel de impressora. Diga olá, certo? Se atropelarmos o jogo e tombarmos, vamos ver o que vai acontecer. Não diz nada porque nosso nível ou paisagem está ignorando a colisão com Então, para corrigir isso, clique na paisagem. Depois disso, no painel de detalhes, desça até chegar à seção de colisão de nossa paisagem aqui e peça para ela gerar um evento de sobreposição, certo Diga para gerar, e pronto. Agora, se clicarmos em salvar e jogar Runo, não, se você derrubar, vamos ver o que vai acontecer Deveria dizer olá, certo? É dizer olá. Você pode ver isso. Não, sabemos que nossa cápsula está detectando se você está caindo no chão, certo Mas outra coisa que eu quero fazer esse outro ator para que essa cápsula colida com dois projéteis de pistola antiaérea BP enquanto eu estiver fazendo isso, porque a pistola antiaérea está atirando em nós e se uma bala passar por essa cápsula, ela destruirá Não queremos que isso aconteça. Então, com esse elenco, nós verificamos. Se for um projétil anti-pistola pneumática, não faça nada. Mas se não for um projétil antiaéreo, se for qualquer coisa, você pode destruir o helicóptero, certo Destrua o inferno, nesse caso. Agora, com isso, se você atropelar o jogo e se aproximar nosso antírgono ou antergônio, pode atirar em nós e Você pode ver que está diminuindo nossa saúde e destruindo o helicóptero, mas não o está destruindo porque está atirando Agora, se você tombar, veremos o que acontecerá. E você pode ver, não, quando tombamos, estamos destruindo o helicóptero O problema com isso agora é que a ajuda não está sendo atualizada quando a destruímos, e o número de mísseis existe Então, vamos ver como podemos corrigir isso. Para corrigir isso, quando estamos destruindo o helicóptero aqui antes de destruir o ator, o que queremos fazer é obter a interface do usuário e definir a visibilidade nela, definir a visibilidade para não ser completamente visível, certo Para ser escondido. Não precisamos mudar a saúde para zero. Basta alterá-lo para oculto, certo? Agora, se você compilou executou e trocou, vamos ver o que vai acontecer Você pode ver as barras de saúde sumirem. Não, temos uma impressora que queremos desconectar porque quero que meu jogo esteja limpo Então, isso mostra a saúde. Não, é isso mesmo. Sempre que um helicóptero tombar, ele também será destruído 48. 47 Som do projétil hélili: A próxima coisa que eu quero fazer sempre que esses projéteis anti-arma nos atingirem ouvir uma música Então, para fazer isso, antes de destruir o projétil, o que eu quero fazer é gerar um som no local, gerar um som no local Em que local do ponto de impacto atingiu o helicóptero, certo? O som que você quer tocar, se você cair, é chamado de metal hit. Se você jogar, você pode ver, é isso. É isso que queremos usar. E eu quero randomizar o tom roda pareça mais natural Então, aqui, eu quero usar um flutuador aleatório no intervalo, e eu quero que esteja entre 0,1 e dois, certo? Não, com isso feito, se você clicar em compilar e salvar um jogo do Runo, vamos ver o que vai acontecer Se formos para o céu, você pode ver que, quando ele nos atinge, há um som, mas há muitos desses sons. Não está bem. O que eu quero fazer é que eu queria que alguns desses sons acontecessem e alguns deles não acontecessem. E como podemos fazer isso, vamos ver. Eu quero usar um desses nós geradores aleatórios de flutuação em alcance , como esse flutuador aleatório em E eu quero que esse valor seja de 0 a 100, para que você entenda melhor Então, o que eu quero fazer verificar esse número aleatório toda vez que ele atinge o helicóptero E se for maior que 80, queremos verificar com uma ramificação. Certo? Queremos tocar o som, gerar o som Mas se for falso, apenas destrua o ator, destrua o projétil e não reproduza nenhum som Então, o que vai acontecer com isso? Em 20% das vezes, haverá som quando o projétil atingir o helicóptero Mas em 80% das vezes que o projétil atingir o helicóptero, não haverá som, e soa mais natural dessa Se você rodar um jogo e olhar para ele, vamos chegar perto dele. Você pode ver, às vezes está acontecendo e às vezes não está acontecendo. E isso, eu acho, parece muito natural. Mas se você quiser que isso sempre aconteça, basta conectar isso diretamente aqui. Você não precisa fazer isso. 49. 48 Destrua a pistola anti-ar: Não há próxima coisa que queiramos fazer. Queríamos ser capazes de destruir a arma antiaérea com nosso helicóptero. Neste momento, Antivirgon pode nos destruir e nós também podemos destruir a nós mesmos Mas não podemos destruir o antiaéreo. Vamos ver como podemos fazer isso. Para fazer isso, eu quero ir para a gaveta de conteúdo, ir para AntiIrgonFolder, ir para Precisamos criar a pistola antipneumática danificada, certo? Então, clicando com o botão direito aqui, crie uma classe de modelo do tipo de ator e eu quero chamá-la de BP Pistola antipneumática danificada, certo? Não clique nele para abri-lo. Aqui, eu quero adicionar uma malha estática. Assim, quero secá-lo soltá-lo e colocá-lo como raiz padrão A malha estática que você deseja colocar lá é chamada de PMEs e está danificada, certo? Esse é o único. É só um material, certo? Agora, com isso, precisamos adicionar também o efeito Niágara E o efeito que você deseja atingir é chamado NS East RT danificado. É isso mesmo. Esse é o plano que você deseja criar para uma arma antiaérea danificada Não, feito isso, precisamos realmente causar algum dano à nossa pistola antipneumática. E quando o míssil atingiu o antírgon, queremos gerar o antirógon queremos gerar Então, para fazer isso, precisamos ir para a pasta Hell, ir até Blueprints e abrir o nosso sistema de mísseis, certo, o míssil aqui Antes de gerar tudo, quero criar um espaço aqui Quando o projétil parar, o que você quer fazer? Queremos aplicar danos no rádio. Então, procure aplicar danos no rádio no início desse evento, certo? O local em que queremos que esse dano aplicado aconteça é o local em que esse projétil ou míssil pare, certo Portanto, a localização é mais do que suficiente. O dano básico acabou de colocar algum valor, 25, por exemplo. O raio de dano, eu quero colocá-lo em 600. Então, com esse raio de dano, se esse míssil explodir no raio de 600 centímetros ou seis metros perto do nosso antiergônio, o antiargônio será destruído, o antiargônio Em seguida, eles ignoram os atores. Eu quero criar uma autorreferência para si mesmo e fazer uma matriz a partir disso, uma matriz apenas com essa entrada e pedir que ela se ignore. E o causador do dano, queríamos configurá-lo também para ser esse míssil infernal, Agora, com isso feito, se você for até uma pistola antipneumática e encontrar algum espaço aqui, por exemplo, e procurar danos no rádio, teremos danos no rádio do evento, certo? Então, aqui, vamos usar uma corda de impressora e dizer pistola antipneumática, destruí-la, certo? E eu quero torná-lo vermelho, que você veja melhor como se fosse um jogo de atropelamento. Agora, se atirarmos perto dele em um raio de 600, perto dele, ele será destruído Mas agora você pode ver que estamos atacando, mas não está dizendo que o antiaéreo foi destruído A razão pela qual isso não está acontecendo, o dano radial não está acontecendo, é por causa da malha esquelética Se você acessar o painel de detalhes, verá que diz que não há colisão. Basta alterá-lo para personalizado porque não é uma colisão, certo? E primeiro e primeiro, habilitar colisão, queremos que ele habilite colisão para habilitar colisão, e queremos alterar o tipo de objeto da palavra estática para palavra dinâmica porque dano aploal não está não Ele vai ignorá-lo, certo? Agora, com isso resolvido, vamos compilar, salvar e testar mais uma vez Se formos para o céu e atirarmos nele, não, você pode ver que está dizendo: A arma antipneumática está destruída. E você pode ver que está funcionando bem. Não, não queremos apenas dizer que a arma antipneumática foi destruída. O que queremos fazer sempre que o míssil se aproximar dele é gerar um ator danificado, certo Então, aqui, procure por antiaéreo danificado e danificado e, para transformá-lo, podemos obter a transformação do ator E depois de gerar isso, podemos simplesmente destruí-lo, certo? Destrua o ator. Agora, se rodarmos um jogo, vamos ver o que vai acontecer. Você pode ver que foi destruído. Consegue ver isso? Isso parece incrível. Nós destruímos o antiargônio. 50. 49 Corrigir colisão de arma anti-ar: Temos alguns problemas. Vamos ver. Se atropelarmos o jogo e seguirmos em direção ao anti-irgon, você pode ver que há som, mas a ajuda não está diminuindo Qual é o problema? Se formos ao Anti Ergon, você se lembra que clicamos na malha de esqueleto e descemos e mudamos a E porque estamos bloqueando tudo, o projétil bloqueia com ele Então, o que eu quero fazer para corrigir isso é dizer que ele ignore tudo. A malha temática desse antergônio, ignore tudo, certo Só com isso, se formos para o céu, basta olhar para ele. Não, ele pode nos atingir novamente, você pode ver, eu posso nos atingir e nós podemos destruí-lo, também. Mas é difícil destruí-lo porque a saúde não é demais. Vamos para o inferno da BP e mudar o MxL para, por exemplo, 300 e mudar a saúde para 200, certo Então, temos alguma ajuda para jogar. Agora, se você atropelar o jogo, vamos destruí-lo. Para ver se ele é destruído, você pode ver que não, ele está de volta e a ajuda diminuiu, mas também podemos destruí-lo. Não precisamos dessa colisão para bloquear tudo, então podemos atingi-la, certo? Não, isso é bom. Vamos adicionar mais alguns. Mantenha pressionada a tecla Alt, arraste e solte e crie outra. Mantenha pressionada a tecla Alt novamente, arraste e solte , crie outra, dê espaço para que não todas. Atire em nós da maneira certa, assim. Não, com isso feito. Vamos apenas rodar um jogo. Apenas chegue perto disso. Agora, você pode ver este, e muitos deles estão nos aquecendo. Eu destruí um deles. Vamos ir e voltar. Um deles está destruído. Isso parece bom. Sei o que eu quero fazer. Eu quero ir para um helicóptero danificado. Deixe-me encontrá-lo. Vá para a gaveta de conteúdo, vá para o inferno, vá até a planta e entre no helicóptero danificado Se gerarmos o helicóptero danificado, significa que o jogo acabou e o helicóptero foi destruído significa que o jogo acabou e o helicóptero Então, o que eu quero fazer é definir um cronômetro aqui por evento e, depois de dois segundos, reiniciar o jogo Então, após 2 segundos, esse evento personalizado acontecerá. Então, vamos criar um evento personalizado e recarregar o nível. Eu o chamo de nível de recarga para nosso evento personalizado. E aqui, o que eu quero fazer abrir o nível pelo nome. O nível que eu quero abrir é chamado de Novo Mapa. Então, vamos colocar lá um novo mapa, não, com isso, se você compilar, salvar, vamos entrar em guerra E aqui, a melhor estratégia é ir da esquerda para a direita, mas tudo bem. Não está destruído. Não, eu destruí um deles. Eles estão me destruindo, certo? Afaste-se deles e volte. Para atirar neles de longe, gire assim. E vamos tentar atirar de longe. É isso mesmo. Sim, este também está destruído. Vamos voltar novamente como se estivesse girando. E vamos escolher outro. E fomos destruídos. Depois de 2 segundos, responderemos, certo? Isso é bom. O nível será recarregado Novamente, vamos destruir esse. Este está destruído. Vamos até este. Destrua esse. E este também está destruído. Só mais um que temos. Vamos chegar perto dele para que ele também possa atirar em nós. Há apenas um deles, então é fácil atirar nele, certo? Isso parece perfeito. Nós destruímos todos eles. Parabéns. 51. 50 Movimento do rotor traseiro: Uma coisa que deveríamos acrescentar ao nosso helicóptero, mas não fizemos isso Vamos ver. Se rodarmos nosso jogo, você pode ver que o rotor traseiro não está girando Se subirmos, você pode ver que o rotor traseiro é um problema Vamos ver como podemos resolver isso. Para corrigir isso, acesse o Blueprint de animação. E aqui, você pode ver, giramos a junta principal Não, queremos girar o rotor traseiro, se você clicar aqui, vamos até um esqueleto, e aqui, se você procurar por rotor, você pode ver que há muitos deles Mas o que queremos é chamado de junta principal do rotor traseiro. Então, queremos girar isso, certo? Primeiro, vamos duplicar isso, modificar o vínculo, o controle C, controle V para colá-lo aqui E quando você cola isso aqui, conecta a execução, fixe-a, certo, assim. Queremos mudar a inclinação do rotor traseiro. Primeiro, vamos escolher o rotor que queremos girar, rotor traseiro, junta principal, certo Depois disso, podemos usar esse valor do rotor para a inclinação do nosso rotor traseiro, certo, porque deveria ser Se você clicar nele aqui, novamente, basta pesquisar por rotor, junta principal do rotor traseiro, cabeça F, para que você possa se concentrar E você pode ver que esse verde é o campo. Agora, se testarmos esse eran ou jogo aqui, e você pode ver, está funcionando bem O giro disso, não é isso. Mas podemos resolver isso, é fácil. Podemos ir para o inferno do ABP e multiplicá-lo por algum valor. Então, por exemplo, cinco, à direita, e conecte-o ao campo. Agora, vamos apenas tatuar. Se atropelarmos o jogo aqui e entrarmos na equipe, você pode ver que está tudo bem, mais rápido e