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