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