Transcrições
1. Vídeo promocional: Neste curso,
aprenderemos
como usar o Unreal Engine Five para
criar e roteirizar um jogo no estilo Mario com
rolagem lateral Meu nome é Greg Andro. Nos últimos 20 anos, trabalhei como designer
de
jogos profissional e professora. Ao longo dos anos,
ensinei a milhares de estudantes
satisfeitos o campo
do design de jogos, tanto online quanto na sala de aula
física. Neste, aprenderemos
como criar captadores, plataformas
móveis, plataformas
saltitantes, blocos
interativos, inimigos, power-ups, canos, postos de controle, respostas,
configurações de nível, um Hud, menu
principal, menu Paz Quase tudo o
que você precisa para
começar a criar qualquer projeto
de jogo. Este curso é para todos, desde o jovem aspirante a designer de jogos até o
profissional da indústria da temporada e qualquer pessoa intermediária Começaremos
do início, supondo que você não saiba nada No final, este curso
servirá como um recurso valioso. Você pode consultar
repetidamente, ver o que você é capaz
de aprender e criar. Eu desafio você a
experimentar este curso e ver se
não é a melhor experiência educacional que você já teve.
Nos vemos lá dentro.
2. Crie um projeto: Tudo bem, vamos
começar aqui criando um novo projeto dentro
do lançador da Epic Games Agora, deve-se observar que
no Epic Games Launcher, temos a opção Unreal
Engine selecionada À esquerda e
na parte superior aqui, temos a
guia da biblioteca selecionada. Então é aí que estou no lançador
da Epic Games agora para acessar diferentes
versões do motor, ou para adicionar uma nova
versão do motor, você pode clicar neste botão amarelo de
adição aqui data de hoje, eu tenho 5.21. Essa é a
versão mais recente do motor No entanto, observe que,
no futuro, Unreal sempre terá versões mais novas, mais recentes e melhores
do mecanismo que você pode usar
para criar esse projeto Basta usar
a versão mais recente, mas vou usar a 5.21 para criar este projeto Agora, para criar nosso projeto,
vou clicar no botão
Iniciar. E, eventualmente, você
deve ver esta janela do navegador do Unreal
Project Desde que você
ainda não tenha um projeto
existente e ainda não estivesse carregando último projeto na inicialização, basicamente,
essa caixa não estava marcada no momento. Aqui você pode ver
meus projetos existentes. Por trás do meu projeto
recente no qual trabalhei, faremos
um projeto de jogo Então, vamos selecionar
os jogos. Aqui, você pode escolher o tipo de modelo de projeto com o
qual gostaria de começar. Para isso,
usaremos o modelo de terceira pessoa para nos ajudar a
começar a controlar um personagem em terceira
pessoa. Este será
um projeto básico. Nossa plataforma alvo
será o desktop. Queremos manter tudo
como está aqui, rastreando. Não vamos
realmente nos
concentrar em nada desse tipo de
coisa para este projeto. Você pode verificar isso ou não, mas para garantir nossos projetos sejam carregados
em tempo hábil, vou deixar isso
fora do local do projeto. Onde você quer que isso seja
armazenado no seu computador? Vou deixar o meu em meu único drive e
vou ter nome do
meu projeto Platformer Agora você não pode ter
nenhum espaço aqui. Os sublinhados bastarão. Mas se você adicionar um
espaço, ele gritará com você. E quando você tiver
o nome do seu projeto e seus jogos de localização , em
terceira pessoa,
vamos clicar em Criar. Agora, uma vez que isso tenha terminado, eventualmente você
verá uma janela como esta. Bem-vindo ao Unreal Engine. Você deve ver o nome do seu projeto aqui
no canto superior direito. Aí está, plataforma. E eu vou fazer
algumas coisas aqui para fins de qualidade de vida. Vou entrar em uma janela aqui no canto superior esquerdo, clicar na janela e carregar um layout. Eu quero fazer o layout clássico do UE
four. Esse é o que eu prefiro e acho que também é melhor para
iniciantes. Ao clicar aqui, o
editor será reiniciado. E o que ele fez foi apresentar esse navegador de conteúdo
aqui embaixo. Falaremos
sobre diferentes partes do editor
ao longo de todo
o projeto. Mas o navegador de conteúdo é
essencialmente sua gaveta de guloseimas que você pode usar para construir seu nível aqui, este é o nosso O nome do nosso
nível inicial é mapa em terceira pessoa. Estaremos criando o nosso próprio, mas é isso que você
verá em um nível inicial Agora, outra coisa que
eu gostaria de fazer
imediatamente é
criar algumas pastas aqui em nosso navegador de
conteúdo
que serão específicas
para este projeto. Eu só vou trazer
isso à tona um pouco. Você pode pegar essas janelas. Basta colocar meu mouse aqui. E eu vou entrar em colapso
onde diz Starter Content. Vou clicar na
minha pasta de conteúdo, clicar com
o botão
direito nela e criar uma nova pasta. Vou ligar
para esse jogo plataforma e pressionar Enter Em seguida, vou
clicar com o botão direito na minha pasta Plataforma. E vou criar mais
algumas pastas. Clique com o botão direito do mouse em nova pasta, essa primeira será chamada de áudio. Vou clicar com o botão direito do mouse
novamente na pasta da plataforma, Nova pasta, e
vou escrever clicar novamente na pasta da minha
plataforma e vou
chamá-la de Texturas Agora, pessoalmente, gosto de
ter minhas pastas facilmente identificáveis quanto à pasta com a
qual estou trabalhando Então, vou escrever, clique
na minha plataforma ou pasta e adicionarei uma cor para
isso. Ao definir a cor, farei algo como uma cor verde desagradável,
porque ela realmente se destacará Agora eu quero adicionar algum
conteúdo a essas pastas. Agora, adicionadas a este projeto, algumas pastas de conteúdo, texturas, fontes e áudios
em formato de arquivo zip Eu os tenho na minha seção de downloads
agora , apenas para
mostrar esse processo. Essas são as pastas das quais
estou falando agora, essas são pastas compactadas Para extrair as guloseimas de dentro, tudo o que você precisa fazer
é clicar com o botão direito em qualquer uma delas e
escolher Extrair tudo Depois de fazer isso, a
pasta compactada começa a ficar assim Pasta dentro do. É aqui que você encontrará
as guloseimas. Vou começar com texturas aqui. Vou apenas manter pressionado controle e a roda do mouse para poder clicar com o botão esquerdo e arrastar. Vou
destacar tudo isso, agora vou clicar com o botão esquerdo
e arrastar todos esses,
todos os 31, todos os 31 minha
pasta Texturas Depois de ver o botão de adição, você pode soltar e ele
começará a adicionar todos eles.
Isso importará todos eles. Vamos usá-los
em todo o projeto. Então eu vou fazer
o mesmo com minhas fontes. Selecione minha pasta de fontes. Agora você pode ver
o caminho aqui. Como alternativa, posso ir para o jogo de plataforma e simplesmente colocá-los
diretamente nessa pasta Vou voltar aqui
para Downloads Fonts. Vou destacar todos esses cliques com o botão esquerdo e
arrastá-los para as fontes. Vai dizer:
você gostaria de criar um novo recurso de fonte para tudo isso? Vamos apenas dizer sim, vamos nos inscrever para todos
e clicar em sim. OK. Em seguida, vou
voltar para minha plataforma ou pasta. Mais uma vez, vou
voltar aos meus arquivos de áudio. Clique duas vezes aqui.
Vou encontrar alguns áudios relacionados
a esse projeto. Há vários arquivos de áudio, podemos adicionar mais à medida
que avançamos aqui. E quem sabe, talvez
nem usemos tudo isso, mas isso nos ajudará a começar. Clique com o botão esquerdo e arraste-o
para a pasta de áudio. E você notará que, para todos
esses arquivos diferentes, há um asterisco
ao lado de todos eles que mostra que eles
ainda não foram salvos Para salvar tudo isso,
tudo o que precisamos
fazer aqui é clicar em salvar, tudo o que eles dirão: você quer salvar todos esses ativos
que acabou de adicionar? Nós
vamos dizer que sim. Então, como uma
boa medida aqui, vamos salvar nosso projeto. Se estivermos em arquivo, também
podemos
salvar todos os arquivos. Agora nosso projeto está
salvo e estamos prontos para começar. Agora, só para voltar às coisas, criamos
nossa plataforma ou projeto. Se eu
voltasse ao
lançador de jogos da Epic e depois
voltasse para a seção da
biblioteca Unreal Agora podemos ver que temos nosso projeto de plataforma aqui, embora sem nenhuma
imagem em miniatura Mas para
voltar ao seu projeto, digamos que devêssemos encerrá-lo,
tudo o
que precisaríamos fazer é entrar Unreal Engine
Library e você poderia clicar
duas vezes nela para
relançar Tudo bem, pessoal, isso vai
bastar para este vídeo. Nos vemos na próxima.
3. Crie um nível: Ok, vamos
começar nosso projeto aqui
criando um novo nível, bem
como configurando a câmera de
rolagem lateral para nosso personagem Então, vamos cuidar
do nível primeiro. E podemos criar um
novo nível em vez do nosso mapa de terceira
pessoa padrão, entrando no canto superior esquerdo,
onde diz arquivo. Vamos escolher
um novo controle de nível fazer com
que você também chegue lá. Essa combinação de teclas de atalho aqui. Temos alguns
modelos que podemos escolher. Eu vou escolher
esse novo nível básico. Vou selecionar
isso porque
quero ter um fundo de céu. E eu vou criar,
agora, no momento em que eu fizer isso, vamos trocar
nosso
mapa em terceira pessoa para um nível Sem título Agora se chama Sem título
porque ainda não o salvamos. Nós não lhe demos um nome. Podemos salvar nosso nível
clicando no
ícone do disco aqui. Ele nos perguntará um local onde gostaríamos de
salvar esse nível. Bem, vamos entrar na pasta da
nossa plataforma. Eu só vou
expandir isso. Vou clicar
onde diz plataforma. Vamos criar
uma pasta totalmente nova. Vou chamar isso de Levels. Com meu
diretório de níveis de plataforma selecionado, vou chamar esse nível, vou
chamá-lo apenas de LV underscore 01 para o nível um, vá em
frente e clique em E no momento em que fazemos isso, agora você pode ver no canto superior esquerdo, isso agora é conhecido como sublinhado de
nível 01 Agora, outra coisa que
eu gostaria de
fazer imediatamente é configurar meu projeto para que,
se eu
fechasse o Unreal aqui e
depois o abrisse novamente, digamos amanhã, ele
automaticamente
abriria esse nível novamente Agora, do jeito
que está, atualmente
abrirá esse mapa em terceira pessoa. Se fecharmos o
motor e o abrirmos novamente, onde podemos mudar isso? Bem, nas
configurações do nosso projeto, é onde podemos escolher qual mapa é
aberto por padrão. Quando abrimos o editor, alguns lugares para acessar as configurações do
seu projeto. Um está no canto
superior direito aqui, e vou
ampliá-lo momentaneamente Está aí mesmo.
Além disso, você pode acessá-lo acessando o
menu Janela, aqui em cima. Deixe-me sair
de lá. Vá também. Desculpe, não é janela. Eu quis dizer editar. Queremos entrar
em Editar e escolher Configurações do projeto, não Janela.
E aqui vamos nós. Temos nossas configurações de projeto
e, se eu entrar em
Mapas e Modos, deixe-me encaixar as configurações do
projeto
na parte superior aqui. Mapas e modos. Aqui temos nosso mapa de inicialização do
editor. Atualmente, está mapeado para
nosso mapa em terceira pessoa. Vamos trocar
isso por B.
Vou continuar até o nível 01 Agora não há nenhum
botão Salvar nem nada aqui, então você pode simplesmente
fechar isso. E
isso fará com que, quando você tentar abrir seu
projeto amanhã, ele se abra para o
nível um por padrão. Tudo bem, a próxima coisa
que eu quero fazer
é remodelar um
pouco
nosso nível aqui para que seja mais uma plataforma compacta. No momento, isso é de natureza muito
quadrada. Então, o que eu quero fazer é
mudar da minha visão em perspectiva aqui
para uma visão de cima para baixo. E o que eu vou
realmente fazer agora é clicar nesse botão
no canto superior
direito, aqui, ele meio que tem o ícone
da grade. Quero acessar
minha vista superior aqui. Agora, minha vista superior está em estilo
wireframe. E vou clicar
aqui para maximizar isso. E depois diminua o zoom
com minha roda de rolagem. Se eu fosse selecionar essa coisa
roxa aqui, essa é aquela
plataforma gigante que
vemos em nossa visão em
perspectiva. Então, se eu
quisesse minimizar isso momentaneamente. Aqui está aquela
plataforma gigante da qual estou
falando agora, quando estamos trabalhando neste
nível de rolagem lateral de uma visão de cima para baixo Eu quero que isso
flua essencialmente da esquerda para a direita. Então, tudo o que vou fazer é
esmagar
essa plataforma para ficar um
pouco mais fina O que você pode fazer é com
a plataforma selecionada, se você pressionar a barra de espaço, alternar entre o modo de movimento, modo de
movimento, modo de rotação, modo rotação e modo de escala E todos
esses três botões
trocarão você aqui na parte superior
da sua janela de visualização Eu gosto de usar uma barra de espaço
para alternar entre eles. Agora vou para o modo de
escala e vou
pegar essa alça verde aqui. E eu vou simplesmente esmagar isso,
algo assim Não vou ser
muito preciso com ela do que com minha alça vermelha, vou apenas alongá-la
um pouco Essencialmente, queremos
que nossos jogadores comecem
aqui e depois se movam para a direita. Isso é de uma visão de cima para baixo. Agora vamos minimizar
nossa visão de cima para baixo. Vá aqui, vamos
para nossa visão em perspectiva. Quero deixar isso na visualização de
quatro painéis agora. Você pode ver de
cima para baixo que aquela alça verde
está apontada para baixo. Então isso significa que, na minha visão
em
perspectiva , para combinar com
essa visão de cima para baixo, vou segurar o
botão direito do mouse e usar W, S e D para
escolher esse ângulo aqui que corresponde
um pouco ao que vejo no painel superior. Ok, então é assim que
vamos trabalhar. Vou ver isso em
tela cheia agora. E agora o que eu quero fazer é colocar o que é conhecido
como ator
principal de jogador à esquerda aqui. Para indicar o local onde eu
quero que meu jogador apareça, basta
clicar no botão play Para fazer isso,
precisamos de um ator iniciante. Isso pode ser encontrado
no painel de atores locais. Agora, se você não tem o painel de atores
locais aqui, talvez você tenha saído dele,
algo parecido Você pode vir aqui, você tem o painel de atores do lugar. E com essa guia
selecionada na guia básica, você pode encontrar um ator inicial
do jogador. Vá em frente e arraste
isso para a nossa parte de visualização. Eu só vou apertar a tecla para usar minha ferramenta de movimento. E se eu a
colocar no ar dessa forma, posso pressionar a tecla End, que é a tecla END
localizada
ao lado da tecla delete para
encaixá-la no chão Agora vou ser
bem específico sobre onde quero que isso seja
colocado no plano Y. Esse é o plano verde
aqui no meu painel de detalhes,
onde posso encontrar todos os vários detalhes
relacionados ao meu ator selecionado. Vou definir a localização y,
a localização verde
lá como zero. Então, vou selecioná-lo, pressionar zero e depois pressionar Enter. E veja o que acontece
com meus jogadores. Comece como ator, ele vai pular
para aquele local. Isso vai ser
bom o suficiente por enquanto. Agora, se eu passar para a posição de ator inicial do
meu jogador, posso ver essa
seta azul aqui, ou seja, que indica
a direção nosso personagem estará voltado
quando entrar no nível Agora, se eu clicar no botão
verde de jogo aqui em cima, você pode ver que meu personagem apareceu mais ou menos
naquele local Agora estou apenas pressionando botão direito
do mouse
e girando em torno dele Na verdade, depois de
clicar na janela de exibição, se você apenas mover o
mouse, poderá deslocar a câmera
assim Agora, para uma plataforma de
rolagem lateral, isso não é ideal para um
jogo de plataforma com rolagem lateral Queremos que a câmera se mova para trás
e queremos que a câmera seja
classificada, bloqueada nessa visão lateral. Então é disso que vamos cuidar no próximo ano.
4. Configuração de câmera de jogador: Agora, quando entramos
no jogo, só então, aparecemos como personagem de terceira pessoa no local inicial de
nossos jogadores Agora, a razão pela qual aparecemos como personagem
de terceira pessoa é porque esse é o
personagem padrão que estamos usando Para este modelo específico. Estamos usando o modelo de terceira
pessoa. Agora, isso pode ser encontrado nas configurações
do nosso projeto, e você pode
acessar as Configurações do projeto no canto superior
direito, aqui mesmo,
onde diz Configurações. Se eu clicar em Configurações e
acessar as Configurações do meu projeto, temos uma seção
no lado esquerdo conhecida
como mapas e modos. E se eu selecionar isso, podemos
encontrar nossa classe de peão padrão, que é a
classe de personagem, se você quiser, que estamos controlando
em nosso jogo como personagem de terceira pessoa E podemos navegar
até esse ativo
clicando no
ícone dessa pasta aqui. Isso navegará até esse ativo
no navegador de conteúdo. Eu farei isso
clicando com o botão esquerdo sobre ele. E você pode ver onde
esse ativo reside nas pastas
da pasta de
esquemas em terceira pessoa com todo o conteúdo Agora vamos
trabalhar aqui para
começar a ajustar a câmera do nosso
personagem Então, vamos clicar duas vezes
sobre isso para abri-lo. Ao abrir isso, usamos como padrão esta guia de gráfico de
eventos aqui É aqui que reside todo o script, onde reside todo o código
relacionado a esse personagem Vamos ignorar
isso agora e ir para a guia Viewport Em nossa guia Viewport, podemos ver todos os diferentes componentes
que compõem esse esquema Temos nosso modelo de personagem, que é representado por
esse componente de malha. Também temos essa câmera. Essa é a lente pela qual estamos
vendo nosso personagem atualmente. Nossa câmera está atualmente
conectada a uma câmera, boom. O que é realmente conhecido como componente
de braço de mola. Podemos identificar essa relação de
apego sempre que vemos esse No momento, a câmera seguinte está conectada à nossa câmera, boom. Agora, o que queremos
fazer aqui é fazer algumas modificações
em nossa câmera, boom. Nosso componente de braço de mola. Você pode pensar nesse
componente do braço de mola conhecido como nossa câmera. Boom, esse é o nome
desse componente como bastão
de selfie Atualmente, o que queremos
fazer é
puxar esse bastão de selfie para trás Agora lembre-se, nossa câmera
está conectada à nossa câmera. Estrondo. Aqui, atualmente,
o comprimento do braço, o comprimento do nosso
autobastão é de 300 unidades irreais Queremos alongar
isso um pouco. Tenho alguns valores em mente
aqui para vários parâmetros. Vamos definir
isso para 1.500 e, ao pressionar Enter, veremos
que nossa câmera está lá
agora Não
queremos ter nossa
câmera atrás do nosso personagem, queremos que ela fique de lado aqui Então, vamos
desmarcar algumas
caixas aqui, abaixo das configurações
da câmera Vamos desmarcar herdar o
tom e herdar a guinada. Atualmente, se fôssemos
jogar nosso jogo, deixe-me voltar
e jogar bem rápido. Vou clicar
na minha janela de visualização. Você pode ver que estou muito
atrás do nosso personagem agora porque coloquei aquele bastão de
selfie bem atrás Estou clicando na
minha janela de visualização e
posso mudar a inclinação
da nossa câmera Essa é a esquerda e a direita, assim
como o campo, a subida e
a descida. E eu não quero fazer
isso. Eu quero ter a câmera essencialmente
trancada aqui. Vou apertar a tecla Escape e sair daqui. E eu vou desmarcar
herdar tom e herdar você. Agora, se eu tiver que
voltar e jogar
e clicar
na minha janela de visualização, não
consigo realmente modificar a
posição da nossa câmera Estamos trancando isso no lugar. Em seguida, quero trazer essa
câmera para o lado. Não quero que fique para trás. O que eu vou fazer
é mudar a rotação
da nossa câmera. Estrondo. Aqui mesmo na
rotação, a rotação z. Eu quero definir isso para
menos 90. Pressione Enter. E você pode ver agora que ela salta a câmera para cá, mais
ou menos aquela visão lateral Agora, se eu clicar em Jogar e
clicar na minha janela de visualização, você pode ver que agora ela
rastreia nosso personagem Agora, nossos controles W, AS e D
ficarão um pouco instáveis Na verdade, eles vão
ficar um pouco atrasados. Não se preocupe Vamos corrigir isso
aqui em apenas um momento. Mas há algumas
outras configurações da câmera
que eu quero cuidar, já
que já estamos aqui. Uma coisa que eu quero fazer é habilitar alguma perna da câmera. Então, mais uma vez, com
a lança da câmera, aquele
componente do braço de mola selecionado, queremos marcar esta caixa
para ativar a perna da câmera. Agora, normalmente você não
quer uma câmera de pernas compridas, mas se ela for muito apertada para
seguir nosso personagem
, pode ser um pouco chocante Então, isso vai suavizar um
pouco
o movimento da câmera Observe que, uma vez
ativada, ela ativará um valor de velocidade
da perna da câmera. Vou deixar
isso às dez agora, mas à medida que avançamos
neste curso, saiba que você pode
brincar com isso para ter mais ou menos perna de câmera. E outra caixa de seleção que quero
desmarcar é este teste de colisão Agora, atualmente, ele está
ativado e vou deixá-lo ligado por
um momento para mostrar o que isso faz. Vou voltar
ao meu nível muito rapidamente e você não precisa
seguir esta parte. Eu só vou demonstrar.
Vou trazer um dragão em forma de cubo,
coloque isso aqui E eu simplesmente vou pressionar
a barra de espaço algumas
vezes e criar
esse tipo de bloqueador de primeiro plano, se você quiser Então,
teremos nosso personagem
correndo para a esquerda ou para a direita aqui e nossa câmera será impedida de ver
nosso personagem aqui. Com isso, faça a verificação de colisão. Faça o teste de colisão. Verifiquei se eu deveria clicar em reproduzir e vou pressionar
o botão WK para seguir em frente Veja o que acontece
com nossa câmera. Vai pular
na frente desse jeito. Isso é um pouco chocante. Se você não quer esse efeito, o que podemos fazer é com aquela
câmera, boom, selecionada. Vamos desmarcar isso para
que, quando jogarmos, a câmera agora funcione assim Não vai pular
na frente daquela parede. Isso será
útil no caso de construirmos qualquer tipo de
decoração em primeiro plano enquanto
construímos nosso nível Tudo bem, vamos continuar
e salvar esse ativo. E isso vai
bastar para este vídeo. No próximo vídeo,
vamos
criar algumas personalizações em nossa câmera
para que você possa fazer
o que quiser, personalizá-la ao seu gosto.
Nos vemos lá.
5. Câmera personalizada de jogador: Bem-vindos de volta
a todos. Agora que temos nossa
câmera de rolagem lateral instalada, vamos personalizá-la um pouco Vou mergulhar novamente no projeto do
meu personagem em terceira pessoa aqui Aqui está o caminho para isso,
caso você pule, planta em
terceira pessoa, personagem em
terceira pessoa E vamos começar aqui adicionando algumas variáveis. As variáveis contêm os dados que
podemos acessar nos scripts. E vou adicionar alguns tipos diferentes
de variáveis aqui, começando por entrar
em variáveis, apertando o botão de adição Vamos adicionar
um chamado pode ajustar a câmera em tempo real. Em seguida, vou adicionar
outra variável, e vou chamá-la Camera Distance from Player. Vou mudar isso
de uma variável booleana, que contém dados verdadeiros e
falsos, para uma variável flutuante Um float é um número
com um decimal, 0,2 tipos diferentes de variáveis que
vamos adicionar Neste, vou
adicionar outra variável, será
chamada de deslocamento X da câmera Agora, o que podemos fazer
aqui é
clicar com o botão direito do mouse nessa variável e escolher
criar uma nova. Mas eu vou apenas
duplicar este. Control plus D é a tecla de
atalho para isso. Este
será chamado de deslocamento Y. E é por isso que eu
escolhi duplicá-lo. Como vou apenas alterar um pouco do texto aqui com
a opção selecionada, vou fazer o controle
D para duplicar isso E isso será
chamado de deslocamento Z. Seremos
capazes de compensar isso em qualquer uma
das direções diferentes, Y ou Z. E então eu duplicarei
esse controle mais D, embora eu vá
sobrescrever Isso será chamado de velocidade
da perna da câmera. Tudo bem, e com
todas essas variáveis, vou clicar
nesses ícones do globo ocular Agora, o que isso faz é
para cada um deles, quando clicamos neste ícone do globo ocular, e atualmente eu tenho a velocidade
da perna da câmera como minha variável selecionada
no painel de detalhes Verificar se o globo ocular está ativado faz com que essa variável seja editável
por instância Da mesma forma,
se eu clicar nisso, você verá
que o globo ocular agora está fechado Duas maneiras diferentes de tornar suas variáveis editáveis
por instância clique aqui ou
clique no globo ocular Então, se eu clicar novamente,
esse globo ocular está de volta O que isso significa mesmo? Bem, o que isso significa é que
essa variável agora estará disponível para edição quando
voltarmos ao editor. E vamos dar uma olhada
nisso aqui em apenas um momento. Agora vou usar essas variáveis em um script. Eu vou escrever
aqui em apenas um momento. Mas antes de fazer isso, quero
dar a essas variáveis
um valor padrão. E antes que eu possa fazer isso, como vemos
no painel de detalhes, preciso compilar nosso plano antes de poder
dar a ele um valor padrão Então, vamos entrar no canto superior esquerdo aqui e compilar nosso plano Começando com nossa
variável mais alta, podemos ajustar a
câmera em tempo real Vou deixar
isso como desmarcado. Para a distância da câmera do jogador, vou definir isso como 1.500. Você notará
que esse valor corresponderá aos
estrondos nossa câmera, ao comprimento do braço
alvo Selecionando nossa variável novamente, vou usar o
deslocamento da câmera Vamos definir isso como zero deslocamento Y da câmera. Vou deixar isso como
zero deslocamento da câmera. Vou definir isso para 150. E então a velocidade da perna da câmera, vou definir isso para dez. Agora você notará a velocidade
da perna da minha câmera aqui, o valor de dez, que vai
coincidir com a minha câmera, boom. Esse componente do braço de mola corresponderá a esse valor aqui.
Velocidade da perna da câmera. E eu queria deslocar minha câmera na
direção Z em 150 Então você vai ver isso em jogo aqui em apenas um momento. Ok, com essas
variáveis definidas, vamos sair
da guia Viewport para o gráfico de eventos
e usar algumas dessas
variáveis Agora eu quero fazer cada quadro, eu quero atualizar a posição
da nossa câmera a cada quadro. Então, vou
usar um marcador de evento. Mantenha pressionado o controle e a roda do
mouse para ampliar
o gráfico aqui. O botão direito do mouse
girará em torno desse enxerto. Clicando com o botão direito do mouse, vou
digitar a marca de eventos. Agora isso dispara todos os quadros. E o que vou
fazer é arrastar
até aqui e trazer um nó
de ramificação. A primeira coisa que
faremos antes de
continuarmos além daqui é
verificar uma condição. A condição que eu quero verificar é poder ajustar a
câmera em tempo real. Posso arrastar e
soltar isso diretamente
no pino de condição para conectá-lo
automaticamente dessa forma. Se isso for verdade, queremos fazer algo com nosso braço
de mola. Vou trazer nosso componente de braço de
mola
, chamado câmera, Boom. Vamos arrastar
isso para pegá-lo. Vou sair da ramificação
verdadeira aqui e digitar localização relativa definida. Eu quero fazer isso
para minha câmera, boom. E você pode ver aqui
, entre parênteses, mostra o boom da
câmera Então, se eu
trouxesse esse nó de função, veja isso, ele
traria minha câmera,
boom, imediatamente. Agora, eu já tinha
trazido isso. Eu só queria mostrar
que você poderia fazer isso. Mas vou deletar isso. Não precisava. Eu poderia ter
deletado esse intestino também. E vamos colocar
isso como alvo. É isso que queremos atualizar
a cada quadro. Só vou mover
isso tudo para cá. Acabei de clicar com o botão esquerdo e
arrastar tudo isso até aqui. Agora eu quero definir um
novo local para isso. Cada quadro que vou arrastar para trás desse
novo local e digitar make vector Queremos poder atualizar
as posições X, y e Z disso. Cada quadro que vou arrastar na câmera
X é deslocado para o X,
o deslocamento Y da câmera para o Y
e o deslocamento para o Z.
Você pode movê-los. Como você quer organizar isso, tudo bem. Agora vamos continuar
o fluxo de execução aqui. Fazer mais do que apenas definir
a posição da nossa câmera. Estrondo. Aqui vou trazer
a velocidade das pernas da nossa câmera. Se eu arrastar isso e soltar,
posso obtê-lo ou configurá-lo Quero obter as informações contidas nessa variável. Então eu vou sair daqui para
dentro, na verdade eu não vou me
arrastar para lá. Vou arrastar
nossa câmera, boom. Vamos
sair daqui e digitar
a velocidade da perna da câmera. Queremos definir a velocidade
da perna da nossa câmera. Então, o que estamos essencialmente
dizendo aqui é, ei, nossa câmera, boom. Queremos poder atualizar a velocidade da perna de
nossa câmera com
qualquer valor que esteja aqui. Então, estamos nos comunicando. Basicamente, estamos dizendo: “
Ei, câmera, boom”. Em vez de ter
esse padrão de dez, vamos torná-lo qualquer que seja
esse valor. Atualmente, são dez. Mas
poderemos ajustar isso. Vamos manter esse fluxo
de execução em andamento. Então, a próxima coisa que
eu quero fazer é arrastar para fora
da minha câmera, Boom. Mais uma vez. E eu quero aumentar
o comprimento do braço alvo. Eu quero ser capaz de definir o comprimento do
nosso braço alvo mais uma vez. Se eu fosse selecionar nosso componente de lança de
câmera aqui,
esse componente de braço de mola, teríamos esse comprimento de braço
alvo. Atualmente, está definido para 1.500 Vamos manter esse fluxo de execução funcionando aqui E eu posso atualizar isso a cada quadro conectando nossa câmera Onde está a
distância da câmera do player, diretamente nessa entrada. Esse será
nosso roteiro final. Vou
enquadrar isso. Em seguida, vou clicar com o botão esquerdo do mouse e arrastar uma seleção marcante
em torno de todo esse tipo, a tecla C para abrir uma caixa de
cometas, que
chamarei de permite que você
personalize chamarei de permite que você temporariamente temporariamente
as configurações da câmera durante o Tudo bem, vamos
continuar e compilar nosso plano para garantir que nosso
código aqui esteja bom. Agora eu vou
jogar aqui. Mas eu quero voltar
ao meu mapa principal aqui, meu editor de nível principal. E note que eu sou. Acabei de clicar
nesses três pontos
reproduzidos na minha janela de visualização selecionada E a razão pela qual estou fazendo
isso é porque agora estou jogando acabou no esboço O que você verá é que nesta fonte
alaranjada amarelada, temos nosso Isso mostra uma geração no Asset
quando jogamos nosso jogo. Qualquer coisa em Orange
Hears acabou de aparecer. Uma vez que jogamos nosso jogo. Agora posso selecionar nosso personagem
em
terceira pessoa no painel de detalhes. Você vai notar
algo lá embaixo. Temos uma categoria na seção
todas chamada padrão. E aqui estão todas as
variáveis que acabamos criar e expor
ao nosso editor de níveis. Isso é o que aquela
instância editável, caixa de seleção, aquele
ícone do globo ocular Isso tornou todas essas variáveis aqui acessíveis no editor. E agora o que podemos fazer é atualizar posição da
nossa câmera aqui ao vivo enquanto
jogamos o jogo. Agora, lembre-se de nosso personagem em terceira
pessoa. No momento, estamos prestes
a avançar além daqui Somente se pudermos ajustar posição
da câmera em tempo real
se essa variável for verdadeira
e, por padrão,
tivermos que é falsa. Então, vou
verificar isso primeiro porque, caso contrário, nenhuma
dessas edições
aqui embaixo faria nada Eu vou verificar
isso e o que você vai ver é imediatamente que
a câmera está virada para cima E agora podemos modificar
qualquer um desses valores, como a
distância da câmera do jogador, basta
clicar com o botão esquerdo e arrastar. E assim que eu lanço, você pode ver que ele atualiza isso. Eu poderia definir isso para
algo como 500, pressione Enter, atualize para que isso
seja atualizado ao vivo. Clicar nesse botão
Voltar fará com que ele volte
ao valor padrão. Você pode realmente ter uma ideia quantidade de personalização
que temos para essa câmera em particular Tente configurar o deslocamento
Z da câmera para 400, pressionando Enter, você o desloca para cima. Aqui está muita personalização de como você deseja configurar isso, Y, vamos definir
isso para 200, pressionar Enter, etc Defina isso como 222, pressione Enter. Você pode
mudar isso dessa forma. Muita personalização fina. No entanto, você notará
que, quando parar de jogar aqui, voltar aos seus planos e clicar
nas várias variáveis, nenhum desses valores
realmente foi atualizado Eles são todos iguais aos que
definimos por padrão. Agora, o motivo pelo qual eu rotulo
isso permite que você personalize
temporariamente as configurações da câmera é porque se você estiver alterando
as configurações da câmera aqui e disser que
gosta de alguma mudança, deixe-me, assim como meu personagem em terceira
pessoa, mais uma vez, você quer que a distância seja 1.000. O que você
precisa fazer é lembrar esses valores ou copiar esses
valores para que, quando parar de jogar jogue e volte para seu personagem em
terceira pessoa, você pode inserir um
novo valor padrão. Então, só para esclarecer mais uma vez, quando você está jogando
e atualizando qualquer um dos valores
associados à sua câmera, isso é apenas temporário até
você parar de jogar. E quando você parar de
jogar, se gostar desses valores, deverá atualizá-los
aqui no
próprio editor para que essas alterações
ocorram permanentemente. Tudo bem, aí está. uma boa câmera personalizada,
faça o que quiser. Isso bastará
para este vídeo. Nos vemos na próxima.
6. Movimento do jogador: Tudo bem, bem-vindos de
volta a todos. Neste vídeo, nosso
objetivo é aperfeiçoar as noções básicas de como
nosso personagem se move dentro do jogo Para isso, vamos
trabalhar dentro do
nosso personagem de terceira pessoa da BP Então, clique duas vezes nesse
ativo para abri-lo. E eu só quero fazer
alguns ajustes no script de entrada da câmera e
no script de entrada de movimento. Agora conecte o script de entrada da câmera. Bem, se eu fosse entrar
e jogar agora, não tocaria nem um pouco no
mouse e uso a tecla Wkey e a tecla S. Obviamente, esses
controles não estão corretos, e eu estou usando W, S e D, eles não estão certos,
mas meu personagem está se movendo solidamente em uma
direção ou outra No entanto,
se eu bater o mouse, e vou bater
um pouco o mouse aqui, eu o movo da
direita para a esquerda e agora estou usando essas Você pode ver que está meio que
me desequilibrando um pouco, correndo em um ângulo O que está acontecendo agora é esse script de entrada da câmera está afetando a direção
do nosso personagem. Como isso ainda está
configurado para corrigir isso, tudo o que precisamos fazer é simplesmente
eliminar esse script Eu poderia deletar tudo
isso. No entanto, vou manter pressionada
a tecla Alt, Ol, e
clicar com o botão esquerdo e isso cortará
o fio Agora,
se eu
entrar e jogar e usar as teclas W, S e D, não importa o quanto
eu mova o mouse, meu personagem se moverá solidamente em uma
direção ou outra Agora, obviamente, eles não estão
se movendo na direção certa. Isso será
para nós consertarmos a seguir. Para isso, vamos
descer
até nossa seção de entrada de movimento. Agora, atualmente temos dois
tipos de entradas configuradas,
uma para a esquerda, para a direita e para frente
e para trás No entanto, isso é um pouco
enganador nosso
script para frente e para trás
aqui é, na verdade, o que queremos
usar para ir para a esquerda e para a direita aqui é, na verdade, o que queremos
usar para ir para a esquerda e para Esse pequeno roteiro aqui, nós vamos acabar com isso. E isso é porque vamos simplesmente nos preocupar com
nosso personagem se movendo
para a esquerda
e para a direita ao longo do eixo X. E não precisamos nos preocupar com
eles se movendo em todas as direções, não
precisamos nos
preocupar com o eixo Y. Então, vamos acabar com isso. Nós vamos acabar com
isso também. Alguns desses são
nós de rota aqui embaixo. E isso é um
pouco de pirataria, mas farei o possível para descrever exatamente o que
pretendemos fazer Só nos preocupamos com a forma como
estamos nos movendo ao longo do eixo x. Eu deixei isso intencionalmente
ligado por um motivo. Agora, quando estamos em um jogo, temos nosso controle
esquerdo em um joystick,
por exemplo, podemos pensar nosso manípulo esquerdo sendo
dividido em dois eixos Este é o eixo Y,
aqui em cima. Ele vai direto para cima e para baixo, e esse é o eixo X. Agora, novamente, só nos
preocupamos com o eixo X. Nosso personagem vai
correr da esquerda para a direita. E é com isso que nos
preocupamos com essa ação de entrada. Como estamos inserindo e como estamos exibindo o movimento de nossos personagens
com base em nossa contribuição Isso vai se mover
na direção x negativa, e isso vai se mover
na direção x positiva. Queremos nosso vetor para frente aqui, nossos personagens voltados para
frente com base em
sua rotação z. Ou seja, se você
desenhasse uma linha
reta ao longo de
seu personagem, nosso vetor
para frente será nosso personagem voltado para frente. Agora, queremos que o valor x
da nossa entrada aqui seja
a direção real em
que nosso personagem se move. Vamos
modificar nosso script de forma
que, ao acionarmos essa ação, usemos nossas teclas a e
D no teclado Ou, inversamente, se você tiver
um controlador conectado, leremos o valor x,
que é a tecla a e D, ou esquerda e direita
em um Nós vamos ser,
estamos indo em uma direção positiva ou
negativa? E a direção que queremos enviar
ao nosso personagem será baseada no vetor de avanço do nosso
personagem. Essencialmente, para que
direção eles estão voltados. Com essa modificação
aqui, isso não vai realmente ser
para frente e para trás,
eu acho que é, em relação à localização de
nossos personagens Mas em termos de como
vamos encarar, indo para a esquerda e para a direita,
vou rotular isso agora como nossa nova esquerda, direita. Quando nosso valor X for negativo, que significa que estamos pressionando a tecla ou a esquerda no manípulo esquerdo, vamos para a esquerda na tela e quando
o valor X
emitido pela tecla D
ou pela direita no
manípulo for positivo, moveremos nosso personagem clicando com o botão
direito do mouse direito Agora você pode ver que
quando pressiono a tecla, estou me movendo para a esquerda, a
tecla D está se movendo para a direita. E eu também tenho um
controle conectado, então eu estou apenas pressionando a
esquerda no manípulo esquerdo e a direita no
manípulo esquerdo aqui para
mostrar que Em seguida, quero mostrar onde
você pode mexer nos parâmetros
de
movimento de alguns dos seus personagens E eles podem ser
ajustados dentro do componente de movimento do personagem que vive dentro do seu BP, personagem de
terceira pessoa Muitos parâmetros
podem ser ajustados com esse componente selecionado no painel
de detalhes. Não vamos
ajustar todos eles, mas vamos ajustar alguns. E vou falar sobre alguns
dos mais importantes com
os quais muitos designers se
preocupam. Agora, o primeiro que eu
quero ajustar vai estar bem abaixo. Vou pegar
esse controle deslizante aqui. Estamos procurando um movimento
interno. Agora só queremos que nosso personagem se mova
ao longo do plano X, voltando ao nosso nível aqui. Mais uma vez, se eu tivesse uma visão de cima para
baixo, essa é uma
visão de cima para baixo do nosso nível. Vamos nos mover ao
longo do eixo X. Aqui está nosso pequeno
truque aqui embaixo, o eixo X, da esquerda para a direita Não queremos passar para o primeiro plano ou o plano de fundo
ao longo do eixo Y,
do eixo para cima e para baixo, a
fim de garantir que, mesmo
quando esbarramos em coisas, não
possamos sair da
nossa linha a
fim de garantir que, mesmo
quando esbarramos em coisas, x ali O que vou fazer é dizer que restringiu um avião Sim. E eu quero restringir
nosso plano ao longo do eixo y. Eu não quero ser capaz de me mover
ao longo do eixo y. Agora, quando eu fizer
isso, ele definirá esse valor como um automaticamente. Basicamente, isso significa que você não pode se mover
no eixo Y. Você pode se mover no eixo X
que está à esquerda e à direita, bem
como no eixo Z
que está para cima e para baixo. Pulando para cima, talvez,
descendo. Tudo bem, então está
tudo bem. A próxima coisa que quero mudar
são as configurações de
rotação de nossos personagens. E para isso eu estou
procurando aqui, configurações de rotação do movimento do
personagem. Essa taxa de
rotação definirá
a taxa na qual nosso
personagem gira. Se eu clicasse em
reproduzir agora mesmo e pressionasse a tecla, ou a tecla, você pode
ver que eu não me viro muito rápido e quero virar
mais rápido do que isso Então, vou definir
minha taxa de rotação aqui como um valor alto
ao longo do eixo Z de 2.500. O eixo z é a direção voltada
do nosso personagem Imagine uma linha
reta passando pelo nosso personagem. Então, queremos girar em torno desse eixo mais rápido nessa taxa,
2.500 Então, agora, se eu
clicar em play, pressione a tecla Você pode ver a rapidez com
que me virei para lá, a tecla D, etc Então, mexa com isso
ao seu gosto. Certifique-se de que você também tenha rotação
orientada para o
movimento marcada Se isso não estiver marcado, se não estiver marcado
e você estiver pressionando A e D, você terá
esse tipo de efeito. Portanto, certifique-se de que a rotação
do oriente para o
movimento também esteja verificada E agora, por fim, quero ajustar
a velocidade com que
meu personagem se move, essencialmente o quão rápido ele vai E isso pode ser feito
controlado com um parâmetro chamado velocidade
máxima de caminhada. Está aqui na seção de caminhada do
movimento do personagem. Não deixe a palavra
andar te enganar. Isso é essencialmente o quão
rápido seu personagem pode ir. Por padrão, é 600. Vou configurar o meu para 1.000, mas configurá-lo ao seu gosto Então, agora, se eu tiver que
entrar e jogar, você pode ver o quão
rápido e eu estou me movendo agora que meu personagem
parece não deslizar, certo? Agora, quando eu me viro, eles param em um centavo e eu quero um pouco
de escorregador até lá Então, o que vou
fazer é ajustar minha
configuração de atrito com o solo aqui Isso está definido para oito.
Um valor
menor terá menos atrito. Vou configurá-lo para dois. Agora, quando eu entro e jogo me movo para a direita e depois me
ajusto para ir para a esquerda, você pode ver que ele não para
exatamente em um centavo Há apenas um
pequeno slide lá. Brinque com isso ao
seu gosto também. Outro que você pode
querer considerar ajustar é chamado de
aceleração Vou deixar o meu
como está por enquanto, mas você pode encontrá-lo Configurações gerais de movimento do
personagem, aceleração máxima. Obviamente, essa é a
rapidez com
que seu personagem se atualizará
quando for parado. Tudo bem, pessoal,
isso vai acabar com este,
com o movimento dos nossos jogadores. Nos vemos a todos
na próxima.
7. Salto de jogador: Bem-vindos de volta a todos.
Neste vídeo nosso objetivo é ajustar algumas das características de salto do nosso personagem jogador.
Vamos direto ao assunto. Vamos entrar no nosso BP, personagem em
terceira pessoa.
Dentro daqui. Vamos começar
mais uma vez com o gráfico de eventos. E se rolarmos para baixo, vou usar
o botão direito do mouse. Encontramos nossa seção de entrada
de salto do script que deveria
estar aqui por padrão. Agora, atualmente tenho coisas configuradas
dessa forma quando pulamos, ou
seja, a
barra de espaço acionará esse evento e
fará nosso personagem pular por meio dessa função de salto. Na verdade, vamos pular. E se fizermos isso, e eu pular no jogo e
segurar a barra de espaço, e eu a segurar, você verá que nosso personagem
continua pulando. E isso não é
necessariamente o que queremos. O botão em um controle do
Xbox, que estou
pressionando agora. Se você tiver isso conectado
, nós também faremos isso. Eu quero fazer
isso para que meu personagem só pule quando
pressionamos esse botão. Não, se eu segurar,
ele continua pulando. Uma maneira fácil de corrigir isso
é que só queremos pular quando começamos a pressionar a
barra de espaço ou o botão. Eu simplesmente vou mudar
isso de acionado porque estamos constantemente
acionando esse evento de salto Quando pressionamos o botão ou a barra de espaço em um controle, vou mover
esse fio mantendo
pressionado o botão esquerdo do controle e movendo-o para iniciar Agora, se eu jogar, eu
mantenho pressionada a barra de espaço,
meu personagem pula Mas para pular novamente, preciso soltar e pressionar
novamente. Isso resolverá esse problema. Em seguida, tudo o que eu quero
fazer é ajustar alguns de nossos personagens pulando
os parâmetros de suas propriedades E, novamente, isso pode ser ajustado dentro do nosso componente de
movimento do personagem. A primeira coisa que quero ajustar é a altura do nosso salto. E isso é um
pouco enganador. Isso pode ser alterado com
nossa velocidade de salto Z. Não há apenas um parâmetro
de salto direto. Esse é o cara
aqui que está
controlando o quão alto nosso
personagem está pulando Atualmente, está definido
para 700 para mim, vou mudar isso
para 1.500. E agora, se eu pular no play e pressionar a
barra de espaço, você pode ver Eu pulo muito mais alto. No entanto, a
sensação de pular não está relacionada apenas
a essa propriedade singular. Você pode ver que está um
pouco flutuante, então eu quero que seja
um pouco mais rápido em
termos de meu personagem
voltar ao
chão Isso pode ser ajustado dentro do componente de
movimento do nosso personagem
ajustando nosso efeito à gravidade Essa propriedade
de escala gravitacional aqui, menos atualmente definida como 1,75, quero aumentá-la,
fazer que o efeito da gravidade
seja maior no meu personagem, com um valor de 2,5. Se
eu entrar e jogar, terei esse Eu pulo um pouco mais alto, mas também estou sendo derrubado um
pouco mais rápido Então, ajuste isso ao seu gosto. Agora, outra coisa que
eu também
quero resolver é se eu pular no
ar e depois usar as teclas A e D para
tentar me controlar
enquanto estou no ar Atualmente, tenho muito
pouco controle e
geralmente gosto quando tenho um
pouco mais de controle aéreo que pode ser ajustado por meio um parâmetro de controle aéreo que está abaixo da nossa velocidade de salto z. Há o salto Z,
há controle aéreo. Vou definir
isso para um valor de 1,0. Agora, se eu entrar e jogar, eu pulo, estou
tentando corrigir um pouco o curso com A e D enquanto
estou no ar. Tenha um pouco mais de controle, mexa, isso também é do
seu agrado Agora, existem alguns outros parâmetros
relacionados ao salto que não estão no componente de
movimento do nosso personagem que eu pessoalmente não
vou ajustar. Mas eu queria que você
soubesse pode ser encontrado nos padrões de
sua classe Esses são parâmetros relacionados
à nossa classe de personagem. Se eu rolar para baixo,
role para baixo. Na verdade,
vou apenas digitar
jump no painel de detalhes. Aqui, temos dois que você vai
querer conhecer. Uma é a contagem máxima de saltos. Se eu mudasse isso para três e depois
entrasse e jogasse, você pode ver que agora eu posso ir 123
e só consigo fazer três. É assim que
posso implementar um salto triplo, salto duplo e salto quíntuplo Agora seu personagem
não vai
jogar outra animação de salto. Se você aumentar esse
número além de um, saiba que isso exigiria uma configuração mais especializada. Mas é assim que você pode criar saltos
duplos ou
triplos, etc. Isso está dentro dos
padrões da classe que busca por jump. Outro que você talvez queira
conhecer é chamado jump max hold time
atualmente definido como zero, mas se você quiser um pouco
de efeito de impulso de foguete, vou configurá-lo para um
valor de 1 segundo aqui Agora, se eu
entrasse e jogasse, pressionaria a barra de espaço
e a seguraria pressionada. Então, vamos lá, pressionando,
isso me dá um pouco de
efeito tipo foguete. Vou tocar nele
agora mesmo. Então, isso é um toque. Mas se eu aguentar, isso vai me dar um
pouco de impulso. Então, se você quiser um pouco mais
de impulso ao pular,
você pode ajustar o tempo máximo de espera do
salto. Eu não quero esse efeito, então
vou voltar para zero. Mais uma vez, tudo isso estava dentro dos padrões de
classe do nosso personagem em
terceira pessoa Estou feliz com tudo
isso. Vou compilar e salvar aqui.
E aí está. Acabamos de ajustar alguns parâmetros de salto de
personagem. Nos vemos a todos
no próximo vídeo.
8. Jogador Jump FX: Bem-vindo de volta. Bem, agora que nosso personagem está pulando, vamos adicionar um
efeito sonoro e um visual,
um efeito de partículas,
para acompanhá-lo Agora, para pegar um efeito de partícula, vou até nosso lançador de jogos
épicos Unreal Engine selecionado no
lado esquerdo. Marketplace Selecionado no topo do mercado, vou fazer uma busca
por infinity blade. Agora, depois de pensar
um pouco aqui, vou procurar efeitos de lâmina
infinita Agora, esse é um pacote adicional um pouco
mais antigo, mas tem um efeito
visual
específico aqui que
acompanhará nossos personagens. Salte como um pouco de poeira
emanando de seus pés. Para adicionar esse
pacote de conteúdo, tudo o que preciso fazer é clicar para adicionar este projeto. E selecione qual projeto
eu gostaria de adicionar. Esse será
meu projeto de plataforma. Aí está. Selecione isso e
clique em Adicionar ao projeto. Agora, ele
adicionará esses arquivos, esses efeitos de partículas,
ao nosso projeto Eu posso sair daqui. E depois volte
para o Unreal Engine. Isso demorará um pouco, dependendo do seu computador. Então, eventualmente, em
seu navegador de conteúdo, você verá o Infinity
Blade Effects Pack aparecer Se você se aprofundar aqui, aqui estão todos os vários efeitos que existem dentro
dessas pastas. Vou procurar
por um em particular
chamado Sentinel, que acabei de digitar Senti acabei de digitar Vai ser
esse cara aqui. Esse salto na trilha de lançamento. É uma partícula de poeira que sairá dos pés de
nossos personagens Novamente, os
efeitos de lâmina infinita são selecionados. Esse é o que vou
usar aqui daqui a pouco. Tudo bem, com esse pacote de
conteúdo adicionado, o que eu quero fazer a
seguir é mergulhar em nosso projeto de
personagem em terceira pessoa Veja plantas em terceira
pessoa. Vou esclarecer minha
busca aqui. Clique duas vezes no personagem de terceira
pessoa e eu quero selecionar minha malha. Agora, o motivo pelo qual estou
selecionando minha malha aqui é porque,
no painel de detalhes, quero selecionar o ativo de malha
esquelética associado a esse clique
duplo aqui na imagem
do Sumnil para abri-la e a primeira
coisa que eu gostaria fazer é adicionar um soquete
a um determinado osso No lado esquerdo aqui, eu tenho uma árvore
esquelética e isso mostra todos os
diferentes ossos que existem em nosso esqueleto Personagem, vou
escolher nosso
osso pélvico que está bem
no meio e, em seguida,
vou clicar com o botão direito nele e vamos
escolher adicionar um soquete Agora podemos nomear esse soquete. É apenas chamado de
soquete pélvico. Mas você pode pressionar F dois nisso. E vou encurtar esse VFX e pressionar Enter Com isso selecionado,
posso posicioná-lo. Vou pressionar a
barra de espaço aqui na minha janela de exibição. Vou clicar com o botão
direito do mouse aqui para ativar essa janela de visualização, pressionar a barra de espaço e
movê-la para cima ou Agora, a razão pela qual coloquei esse soquete na
pélvis é porque eu
queria que esse soquete em particular
ficasse direto para baixo
da pelve,
não preso a não preso a E eu não vou ser
muito exigente com isso, mas vou colocar
isso aí mesmo. Isso é muito bom. Ok, você pode encontrar
essa música ao seu gosto. Tudo bem,
aqui no topo eu tenho esse pequeno ícone de homem
correndo. Vou selecionar isso
e isso me
dará acesso às várias Deixe-me colocar essa nova
guia na parte superior aqui. As várias animações que
nosso personagem pode jogar. Atualmente, estamos jogando essa animação de salto
M, M quando
nosso personagem pula. Agora eu quero pausar isso porque isso me distrai um
pouco Então eu posso pausar essa animação
clicando aqui. Quero chamar sua atenção
para esta área aqui. Queremos adicionar o que é
conhecido como notificação para
reproduzir um efeito sonoro e
um efeito de partícula em um determinado
ponto dessa animação Agora podemos esfregar isso
para frente e para trás assim. Para cronometrar isso até
onde queremos
nesta animação de
salto específica Agora eu quero reproduzir esse efeito visual de efeito
sonoro logo no início. Vou posicionar isso
logo no início aqui. Você não precisa ser perfeito. Aqui embaixo. clicar exatamente onde
está essa faixa. Vou clicar com o botão direito do mouse e
adicionar uma notificação. Agora, adicionaremos esse
efeito de partícula daqui a pouco, mas primeiro quero adicionar um som Vamos tocar um som aqui
neste menu suspenso. Agora você pode ver que
adicionamos esse lugar.
Notifique, clique com o botão
esquerdo nele e arraste-o para estar em um ponto
diferente da animação. Com isso selecionado
em nosso painel de detalhes, podemos associar um
som a isso. Isso será acionado quando
tocarmos e atingirmos esse ponto
na animação aqui
na seção de som
do painel de detalhes. Verifique se você selecionou
essa notificação. Vou digitar Mario jump. Tenho Mario big jump,
ou Mario jump. Eu só vou
escolher Mario jump aqui. Nós importamos esses atos
sonoros logo no início
do curso. Se você não fez isso, volte ao
início do curso e importe esses arquivos.
Depois, vou mover meu controle deslizante aqui um
pouco mais longe Você pode ouvir esse
efeito sonoro sair lá. E vou clicar com o botão direito e
adicionar outra notificação. Deixe-me ir direto por aqui. Clique com o botão direito em Adicionar, Notificar. Vamos adicionar
um efeito de partícula
e selecionar
nosso efeito de partícula E no
painel de detalhes digite Su, e é essa trilha de lançamento É isso que eu quero jogar agora. Ainda
não terminamos nosso efeito visual,
nossa
notificação de efeito de partícula selecionada aqui No painel de detalhes, temos que associar qual
soquete ele deve usar E podemos descobrir isso
voltando à nossa árvore esquelética. Lembre-se de que se chama VFX. Então, se você simplesmente digitar VFX e encontrar todos
os soquetes diferentes
aqui, pronto, encaixe-o para Vamos salvar isso. Volte para o nosso
editor de níveis e jogue. E vou pressionar a barra
de espaço uma vez. Depois de clicar na janela de exibição, vejo minha partícula Eu não ouvi nenhum efeito sonoro. Agora, se você não vê nenhuma partícula ou
não ouve nenhum som, às vezes é
uma questão de apenas ajustar o posicionamento
delas na linha do Se você colocá-los muito
perto da frente, às vezes você não ouve o efeito
sonoro que espera
ouvir ou vê o efeito visual
que deseja ver. Vou tentar mudar um pouco o efeito sonoro de Mario
aqui. Eu vou salvar isso novamente. Vamos tentar isso mais uma vez agora,
mexendo mais algumas dessas notificações
em nossa animação de salto MM
entre os cortes da câmera Descobri que, se eu reproduzisse meu quadro de áudio três com
minha partícula logo a seguir, elas se sobrepõem um pouco
aqui Eu fiz com que as duas funcionassem perfeitamente
. Agora, se você entrar e jogar, poderá ver esse efeito de
partícula e ouvir esse efeito sonoro Tudo bem, pessoal, isso vai acabar
com essa. Veja quando será a próxima.
9. Camadas de ajuste de snap 2D: Bem vindo de volta. Em um futuro
não muito distante criaremos
algumas plataformas e alguns blocos. E vamos
preencher nosso nível. Agora,
o problema é que queremos colocar essas
plataformas e tijolos que
vamos criar dentro da
linha do nosso personagem Agora, para ajudar
a facilitar isso, queremos fazer com que, sempre
que arrastarmos esses blocos e
plataformas para o nosso nível, eles
sigam automaticamente o
caminho de viagem do jogador. Se eu colocasse um cubo
do meu painel de atores, por exemplo, no meu nível, você pode ver que
eu coloco aquele lá e esse aqui atrás, mas eles não estão necessariamente
alinhados com o meu personagem Quero fazer com
que, ao arrastar uma plataforma ou um
bloco para o meu nível, ele fique exatamente na profundidade
que eu quero. Nos próximos dois vídeos, vamos ativar
algumas configurações para tornar esse processo muito mais fácil. Confie em mim, isso
valerá a pena no futuro. Vamos
começar ativando e configurando cerca de duas camadas de configuração de
snap Para fazer isso,
vamos
acessar nossas Configurações do projeto, que estão no canto
superior direito aqui. Configurações, Configurações do projeto. E em nossas Configurações de projeto, no
lado esquerdo, queremos rolar para
baixo até chegarmos onde diz dois D
aqui embaixo do editor. Agora, o que queremos
fazer aqui é configurar algumas camadas de snap. Então, primeiro precisamos
habilitá-los simplesmente para habilitá-los Se eu quiser voltar para o
meu editor de níveis aqui, podemos ver que agora temos isso aqui
em nossa janela, uma configuração de dois D snap, bem
como a capacidade de
definir uma determinada profundidade No momento, temos apenas o
primeiro plano como nossa profundidade. Tudo isso fará sentido em um
pouco mais de tempo, mas vamos voltar às configurações do
nosso projeto. Com isso ativado, quero
definir algumas camadas de snap. Vou clicar nesse
menu suspenso e vou
criar mais do que apenas
três índices aqui. Na verdade, eu quero definir cinco, então vou clicar nesse
botão de adição mais algumas vezes depois vou
expandir tudo isso. Basta clicar com o botão
direito aqui para abrir este pequeno menu para expandir tudo. Ok, o primeiro
nível que eu quero definir aqui será chamado
de Foreground Mas entre parênteses eu
vou colocar extremo. E vou definir
isso para uma profundidade de 1.000. E tudo isso fará
sentido aqui daqui a pouco. Ao contrário de eu
te dizer o que isso vai fazer. Eu vou te mostrar
o que ele vai fazer. O próximo, índice um. Vou chamar isso
simplesmente de primeiro plano. Vou definir essa profundidade
como 500 índicos dois aqui. Vou definir isso como principal e vou
deixar a profundidade em zero,
índico três,
vou ligar de volta Vou definir a
profundidade como menos 500. Então eu vou colocar meu
último em quatro aqui para voltar ao extremo. E vamos
definir a profundidade aqui menos 1.000. Certo, com tudo isso definido, não
preciso
salvar nada aqui. Quero garantir que meu eixo de encaixe esteja
ao longo do eixo y. Agora, eixo y, y. Vamos sair daqui voltar ao nosso nível. A razão pela qual eu
quero configurá-lo nosso eixo y é
porque se eu
mudasse nossa visão em perspectiva aqui
de uma perspectiva em perspectiva para
uma visão de cima para baixo, ampliando o zoom, é
aqui que meus jogadores começam O ator está aqui.
Vamos seguir essa linha
de viagem aqui mesmo. Quero garantir que estamos
definindo nossas camadas de profundidade ao longo desse eixo y aqui. Tudo bem, vamos voltar
para nossa janela de visualização em perspectiva. E agora, se eu arrastasse um cubo
simples para o nosso nível, pareceria que
nada realmente aconteceu Sr. Wonder, pensei que você
disse que eles se
encaixariam em uma determinada
profundidade. Bem, isso é. Porque deixe-me
excluí-los daqui porque eu não tenho minhas duas
configurações de D snap realmente ativadas Aqui em cima, no canto superior
direito da minha janela de visualização. Na verdade, eu tenho que clicar aqui
em Agora, quando eu coloco
isso no meu nível,
não importa para em Agora, quando eu coloco
isso no meu nível, onde eu o
mova dentro do nível, você pode ver que ele está se encaixando meu nível atualmente selecionado,
que é extremo em primeiro plano Eles estão todos
na mesma profundidade, se você quiser, perfeitamente alinhados. Você me viu configurar
várias camadas de profundidade nas configurações
do meu projeto. Primeiro plano extremo. Altere-o para o padrão.
Deixe-me voltar ao primeiro plano Aqui estão o primeiro plano, o fundo
extremo, isso deve dizer o plano de fundo principal
e o fundo Como faço para alterá-los
novamente no meu editor de níveis? Bem, se eu
clicar aqui onde diz
primeiro plano extremo,
você pode ver que eu posso escolher primeiro plano, plano Todas aquelas camadas diferentes
que acabei de configurar. Se eu fosse dizer
fundo extremo. Agora, quando eu coloco um
cubo no meu nível, você pode ver que ele
vai colocá-lo
naquela profundidade, aquela, aquela profundidade Se eu mudasse
isso para principal, estaria
no meu caminho de viagem. Se eu fosse definir isso como fundo extremo, não como
fundo extremo. Eu queria usar o
primeiro plano de forma extrema. Isso o colocará nesse
nível de profundidade, o que tornará ainda mais fácil organizar nosso nível com blocos,
plataformas e organizar nosso nível com blocos,
plataformas e adereços Tudo bem, pessoal, isso vai bastar para este vídeo. Nos vemos na próxima.
10. Widget de tradução 2D: Bem-vindos de volta a todos.
Bem, no último vídeo, habilitamos cerca de duas camadas de snap
nas configurações do nosso projeto E elas podem ser vistas em nossa janela de exibição aqui
no canto superior direito, temos nossas duas camadas de
snap configuradas E se eu clicar
aqui, aqui estão as várias camadas
que configuramos. A propósito, você pode acessar esta seção das Configurações
do Projeto, onde as configuramos
clicando aqui. Clicamos aqui,
clique em Editar camadas e, em
seguida, você será direcionado para
a seção adequada, as duas seções D das configurações do
nosso projeto, onde configuramos
essas camadas de snap Agora, queremos fazer
outra coisa aqui:
habilitar nossos dois widgets combinados de
tradução e rotação em D. Esse é o objeto, o objetivo
deste vídeo em particular, isso funciona muito bem em conjunto com
essas camadas instantâneas Eu só vou verificar
isso aqui. Novamente, isso também pode ser encontrado na seção
2 D das Configurações do
seu projeto. E o que isso
vai fazer,
voltando ao nosso editor de níveis, isso adicionará
outro botão, se você quiser Aqui em cima na nossa janela de visualização. Acabou de adicionar isso, o que nos
permite selecionar
e traduzir ou girar objetos em dois D. Agora, por que
quereríamos selecionar isso Bem, deixe-me
mostrar esse cenário. Colocamos um cubo em nosso nível, e agora eu o coloquei
no meu nível principal E você pode se
deparar com uma
situação em que está tentando
movê-lo ao redor do seu nível, e talvez acidentalmente o
mova ao longo do eixo y e agora ele não está mais em nosso caminho principal para viajar
como queríamos que fosse Existe uma maneira de se
proteger contra isso? Sim, existe. Se selecionássemos essa opção
que acabamos de habilitar. Agora, quando selecionamos
um determinado objeto, nosso widget de rotação de translação parece um pouco diferente Agora só podemos movê-lo para cima
ou, neste caso, para a esquerda e para a direita. Também podemos girá-lo simplesmente
clicando
nessa seta verde e
movendo-a dessa forma Agora você pode ver que está
quebrando quando eu o giro. Isso respeita nossas configurações de encaixe
angular
ou configurações de encaixe rotacional Então, se eu quiser movê-lo
suavemente, girá-lo suavemente, posso simplesmente
desligá-lo e agora pegar
a seta verde e girá-la Da mesma forma, ainda posso
ativar minhas
configurações de captura de movimento aqui Ele está se movendo agora
em incrementos de 100, mas isso é apenas para
evitar que o
movamos de volta para o
eixo y. Mais uma vez, aqui nas
configurações do projeto, Configurações projeto,
na seção de dois D, acabamos de habilitar nosso widget combinado de tradução
e rotação em dois
D marcando Não
há como dizer, botão
ou qualquer coisa Isso apenas torna esse
botão disponível em nossa janela de exibição para que,
ao selecionarmos um objeto, possamos movê-lo apenas em nossos
vários eixos ou
girá-lo dessa forma, segurando a seta verde Esse será um truque muito útil no
futuro, pois colocamos blocos e plataformas em outros
objetos dentro do nosso nível Tudo bem, pessoal, isso vai acabar
com essa. Nos vemos na próxima.
11. Salte pela plataforma (parte #1): Bem-vindos de volta a todos.
Neste vídeo, nosso objetivo é criar uma plataforma pela
qual nosso jogador possa pular
ou cair. E só para
mostrar o que quero dizer, vou clicar
no botão play aqui. Eu adicionei uma plataforma
entre os vídeos. E se eu tentar pular por essa plataforma, não consigo fazer isso
no momento. E se eu estivesse na parte superior, atualmente também não
posso
descer por ela. Então, vamos criar
uma plataforma pela qual possamos pular e
também descer. Então, para fazer isso, vamos
criar um modelo. E vamos
criar uma nova pasta
aqui em nosso navegador de conteúdo,
onde vamos colocar vários esquemas que
criamos ao longo deste curso com a pasta da
sua plataforma selecionada. Vamos clicar com
o botão direito sobre isso. Vamos adicionar uma nova pasta. Vamos simplesmente
chamá-lo de Blueprints. Com esse diretório selecionado, você pode ver nosso
caminho aqui. Vamos clicar com o botão direito do mouse
em algum espaço vazio criar uma nova classe de blueprint Queremos escolher
a classe de ator, porque esse é um
objeto que
vamos colocar
em nosso mundo. Escolha este top. Então, isso nos
levará a
dar um nome a ele. Vamos chamar isso de Plataforma
BP Underscore. Sublinhado. Vou chamar Jump
Through, sem mais nem menos. Então vamos
clicar duas vezes nesse cara para abri-lo. Agora, só uma dica rápida aqui. Não gosto quando meus novos ativos se abrem em uma janela
separada como essa. Eu gosto quando eles se abrem automaticamente
na parte superior aqui. Então eu vou sair daqui. Vá em Editar Preferências
do Editor. Nas
preferências do nosso editor, aqui. Se estivermos no local aberto do
editor de ativos,
ele deverá estar na primeira página,
se você preferir ele deverá estar na primeira página, , de suas preferências de
editor. Vou mudar
isso para a janela principal. Eu posso fechar aqui então. E então, quando eu clicar
duas vezes sobre
isso, ele vai
abrir isso logo na parte superior. Agora, se você alguma vez ver
algo que diga que este é um esquema somente de dados,
podemos clicar aqui
para abrir nosso editor de
diagramas podemos clicar aqui completo Agora, essa é a visão
que queremos ver. Agora, por padrão, ele
se abriu em nossa guia de gráfico de eventos. É aqui que
vamos fazer
a codificação desse projeto Quero ir para nossa
janela de visualização para começar, porque vamos
adicionar alguns componentes que queremos poder ver Tudo bem, agora o
primeiro componente que
eu quero adicionar aqui no canto superior esquerdo abaixo do painel de componentes
é uma malha estática. Embora eu possa escolher uma malha
estática de qualquer tipo, vou simplesmente
escolher um cubo Então, vou
usar o cubo aqui, mas saiba que, depois de adicionarmos isso, podemos nos dar um nome Vou apenas
ligar para essa plataforma. Poderíamos mudar isso de um cubo para alguma
outra malha estática Quero dizer, você poderia fazer com que
parecesse a cadeira
se realmente
quisesse ou qualquer outra
malha estática que quisesse. Mas o cubo vai
funcionar bem para nós porque
vamos dimensioná-lo e moldá-lo em uma plataforma que
parecerá bem branda,
mas, novamente, você pode se
animar o quanto Eu vou mudar a escala
aqui para ser três no X, no Y, eu também vou
mudar isso para cinco. Então, no Z, vou mudar isso para
0,2 um pouco mais fino Ok, então eu vou
adicionar alguma colisão
nos lados superior e inferior desta plataforma Ok, então eu vou
aparecer no componente de anúncio. Mais uma vez, o que eu
quero fazer é rolar para baixo e
adicionar colisões de caixas Então vá em frente e selecione isso. Isso vai me fazer
dar um nome a isso imediatamente, e vou
chamar isso de colisão Agora observe que esse
recuo está aqui e eu
posso clicar nesse
triângulo para mostrar ou ocultar Isso mostra uma
relação de apego. No momento, este colisor de caixas está conectado à malha da minha plataforma Se eu movesse a plataforma, a colisão, o
colisor de caixas viria com ela No entanto, eu poderia mover isso independentemente da própria
plataforma. Vou redimensionar isso com
esse componente superior de colisão selecionado no painel de detalhes Eu vou mudar a escala. Eu só vou apertar essa seta para
trás aqui. Está herdando essa
escala relativa da plataforma. É por isso que tem esses valores de escala
específicos. Vou definir isso de
volta para 11,1 e
vou definir minha localização
aqui como um valor Z de 100 Agora você pode ver que está lá em cima. Vou mudar as extensões
da caixa aqui. Esse é o tamanho, a extensão dessa caixa Em vez do valor padrão de 302-30-2302, tenho
alguns Eu vou fazer 50 por 50 por 50. Agora, o que devemos ter
é um colisor de caixas que fica bem no topo
, como o nome
sugere, no topo da colisão Agora vamos adicionar outro desses
na parte inferior. Então, o que vamos
fazer é botão
direito do mouse em
nossa parte superior de colisão Vamos simplesmente
duplicá-lo,
e vou chamá-lo de Collision
Bottom A única coisa que
vou fazer com este é alterar o valor, o valor Z da nossa localização de 100 para menos 100.
Em seguida, pressione Enter. Temos um na parte superior e
outro na parte inferior. Agora, algo que eu
deveria ter feito com nosso topo de colisão
antes de duplicá-lo, porque então ele também teria duplicado as
propriedades, é definir um parâmetro em nosso painel
de Vou colocá-lo em nossa
bunda aqui primeiro. Como eu
selecionei isso no painel Detalhes, queremos entrar na seção de colisão e alterar a predefinição de
colisão Clique neste pequeno menu suspenso. Por padrão, ele está configurado para
sobrepor todas as dinâmicas. O que eu quero fazer é
mudar isso para ser personalizado. E isso vai mudar
todos os canais de colisão ou melhor,
iluminá-los para que possamos mudá-los
ao nosso gosto Vou
configurá-lo para ignorar tudo, exceto que vamos fazer com que nosso peão,
nosso personagem, seja considerado
um tipo de objeto de peão Vamos configurar
isso para se sobrepor, e você verá
por que aqui, um
pouco acima, temos uma predefinição de
colisão personalizada Estamos ignorando a colisão de
todos os outros tipos de objetos exceto o peão, que
é Vamos
detectar uma sobreposição. Então, queremos fazer
isso não apenas para a parte inferior da
colisão, mas
também para a parte superior da colisão. Assim como o topo de colisão,
vamos alterar a
predefinição de colisão para ser personalizada Vamos configurá-lo para ignorar colisões com todos os
outros tipos de objetos, exceto que vamos detectar
uma sobreposição do peão
12. Salte pela plataforma (parte #2): Tudo bem, vamos sair da guia Viewport e entrar no gráfico de eventos para
que possamos adicionar um script que permita que
nosso personagem pule pela parte
inferior da plataforma E vou selecionar nosso componente de
colisão aqui mesmo Vamos clicar com o botão
direito do mouse sobre isso e adicionar um evento. O que queremos fazer é
detectar quando
nosso personagem se sobrepõe colisão. Isso adicionará
esse nó na sobreposição de
início do componente e o nome
do componente
aqui, fundo de colisão Vamos manter
pressionado o controle e roda
do mouse para
ampliar isso. Também vou adicionar outro
evento imediatamente. Queremos detectar quando ambos
começamos a sobrepor o fundo da
colisão, bem
como quando terminamos
sobrepondo Então, podemos adicionar
outro evento aqui. Ao selecionar nossa parte inferior de
colisão, eu poderia clicar com o botão direito do mouse
e adicionar um evento Mas também quero mostrar
outra maneira de adicionar eventos para vários
componentes. Com o fundo de colisão selecionado. Role para baixo no painel de detalhes, aqui você também pode encontrar uma lista
de vários eventos. Eu vou fazer o End Overlap. Também vamos adicionar esse
nó ao nosso gráfico. E eu vou
posicioná-los dessa forma. OK. O que eu quero
fazer é detectar quando o outro ator se sobrepõe ao componente inferior da colisão. Queremos fazer algo quando o personagem do nosso jogador, ou
seja ,
o outro ator, está se sobrepondo ou
terminando na parte inferior da
colisão Então, vou escrever, clique
em algum espaço vazio e obtenha
o personagem do jogador. Isso retornará nosso personagem de
jogador com o qual
estamos jogando. E vou
retirar outro ator
aqui da nossa sobreposição inicial E vamos digitar o sinal de igual e
ver se o outro ator que se sobrepôs ao fundo
da colisão
é igual a
isso, ou seja,
é o personagem do nosso jogador Se for, vamos
trazer um nó de ramificação. Vou manter
pressionado o B como na ramificação, clique com o botão esquerdo para
abrir um nó da ramificação. E essa será a nossa
condição de que
verifiquemos se algo se sobrepõe ao
nosso fundo de colisão Vamos verificar se foi o outro ator?
Eles eram iguais? Se fosse verdade, vamos
trazer nosso componente de plataforma, arrastar e soltar isso em
seu gráfico dessa forma. Então, o que vamos
dizer à nossa plataforma para fazer,
arrastar, isso é digitar e
definir colisão ativada Coloque isso assim, e queremos definir nossa colisão para que
nossa plataforma não seja uma colisão Agora, só para voltar atrás e mostrar exatamente o que diabos
está acontecendo aqui, se eu selecionar nossa plataforma
e rolar para baixo, nossa plataforma também tem algumas configurações de
colisão No momento, ele está configurado para bloquear todas as dinâmicas e para bloquear todos os
tipos de objetos, incluindo nosso peão.
Isso vai bloqueá-lo. O que estamos dizendo aqui ao
começar a sobreposição é que, se for nosso jogador que a estiver
sobrepondo, diremos a essa
plataforma que não tenha Basicamente, é alternar
essa predefinição de colisão de bloquear totalmente dinâmico
para nenhuma E você pode ver que,
quando está configurado para não colidir, aqui está, desativando completamente nossa
colisão, ignorando o fato de que aqui
embaixo não
parece estar permitindo que nosso
peão Desde que esteja configurado como habilitado
para colisão,
sem colisão, na verdade permitirá que nosso personagem
passe direto Vou redefinir
isso clicando
nesse valor aqui e
voltar para bloquear todas as dinâmicas. Agora, continuando aqui, vou apenas
copiar esse nó. Esse nó e esse nó. Estou pressionando o controle
para selecionar esses três. Vamos fazer o controle C
para copiar o controle V para colar. Vou
conectá-los assim, se o personagem do nosso jogador for
igual ao outro ator. Quando terminarmos nossa sobreposição, a plataforma
será o alvo aqui embaixo Vamos configurar
nossa colisão aqui para ser ativada. Isso basicamente fará
com que a colisão volte
a quando terminarmos de sobrepor o fundo
da Tudo bem, com tudo isso feito, você pode pausar o vídeo aqui
se precisar ver tudo isso Vou clicar com o botão esquerdo e
arrastar tudo isso. Vou tocar na tecla C. C está no comentário, e
vou chamar isso de meu salto
através de plataforma,
plataforma, script. Vamos pressionar o botão
de compilação aqui para ter
certeza de que nosso código está
bom e está bom Então, vamos continuar
e salvar isso também. Vamos arrastar um desses
para o nosso nível e ver se podemos pular pela
nossa plataforma. Aqui vamos nós. Voltando ao nosso nível,
vou deletar
esse cubo temporário
que eu aumentei Vou colocar
isso no meu nível. Você pode ver que ele vai
colocá-lo diretamente no meu nível principal, aqui. Porque eu tenho minhas duas configurações de D
snap ativadas agora. Vou clicar
aqui para ir diretamente para o meu
movimento no widget rotacional Mova-o um pouco
acima do meu personagem. Gostar. Então eu
clico em play, tento pular. E aí está, podemos pular direto para cima. OK. Em seguida, precisamos de uma
forma de rastrear para ver se nosso jogador está no
topo da plataforma. Para que possamos inserir
algo em nosso controle ou teclado para fazer nosso player descer
pela plataforma. Novamente, para fazer isso, vamos
voltar para nossa plataforma. Passe pelo
Blueprint mais uma vez. Vou clicar e
descer um pouco até aqui. Quero fazer algo quando nossos jogadores colidirem com
esse colisor superior aqui, vou ativar e desativar uma variável
booleana Vamos entrar no meu
painel de plantas, em Variáveis. Vamos clicar
nesse botão de adição aqui. E vamos criar
uma nova variável chamada is no topo do ponto de interrogação da plataforma. Uma variável booleana contém informações
verdadeiras ou falsas. E se eu compilar aqui,
podemos ver que, com isso selecionado
por padrão, ele está desmarcado Ou seja,
por padrão, será falso. Agora vamos usar essa variável booleana
daqui a pouco, mas o que vamos fazer é
voltar ao nosso gráfico de eventos Vamos selecionar
nosso topo de colisão. Vou clicar com o botão direito do mouse. Vamos adicionar um evento para quando começarmos a sobrepor E também clicaremos com o botão
direito do mouse no topo
da colisão novamente
na sobreposição de eventos Em muitos aspectos, isso será semelhante ao que
temos acima. Na verdade, vou roubar alguns nós daqui de cima Vou segurar o
controle e clicar com o botão esquerdo, clicar com o botão
esquerdo, clicar com o botão esquerdo, clicar botão
esquerdo e clicar com o botão esquerdo. Temos esses cinco
selecionados aqui. Vou clicar com o botão direito
do mouse sobre isso e duplicar o controle D faria o mesmo, mas aqui vou
duplicá-los. Vou mover
todos esses controles Z para lá. Na verdade, eu também
selecionei um desses aqui embaixo. Clique com o controle nesses cinco. Vou fazer o controle
D para duplicar. E vamos colocá-los
diretamente na posição aqui embaixo. Conectando-os assim. Tudo o que vamos fazer com
esse script é ativar ou
desativar essa variável
de ouro . Queremos configurá-lo. Se eu arrastar isso para o
meu gráfico e soltar, ele dirá:
você deseja obter esse valor ou deseja defini-lo? Queremos definir o valor
dessa variável quando estamos
sobrepondo essa colisão Queremos que isso seja verdade, estamos no topo da plataforma. Por outro lado, se
clicarmos com o botão esquerdo do mouse e arrastarmos isso para o
conjunto quando terminarmos de
colidir com o volume de colisão superior,
queremos dizer que não, não estamos mais
no topo dessa queremos dizer que não, não estamos no topo Esse script será bom
para
a próxima seção
que escreveremos aqui em termos
de script, então clique com o botão esquerdo e
arraste, toque na tecla C. E vamos colocar esse
comentário como uma ferramenta para detectar se o jogador está
no topo da plataforma Tudo bem, vamos
compilar e salvar
isso imediatamente. Tudo bem, em seguida, o que
queremos fazer é voltar ao nosso editor principal aqui
e vamos
entrar na terceira pessoa vamos
entrar na terceira pessoa e na entrada. Este é o novo sistema
de ação de entrada implementado no Unreal, e vamos adicionar
uma nova ação de entrada Agora vou construir
a partir
desse sistema existente para que não
precisemos
reinventar a roda Na verdade, vou clicar nessa
pasta de ações. Aqui estão algumas ações de entrada que estão acionando
alguns eventos de entrada, como nosso evento de salto E eu vou clicar em
algum espaço vazio aqui. E nós vamos
entrar em contato. Vamos adicionar
uma nova ação de entrada. Quando o fizermos, vou renomear esse IA para sublinhado da
ação de entrada Vou
chamá-lo de player down. Vou clicar duas vezes
nesse ativo para abri-lo. O que estamos fazendo aqui é
definir uma ação de entrada. Agora, não vou entrar
nos detalhes básicos de
tudo isso agora, porque todo esse sistema
é bastante extenso Vamos deixar
nosso tipo de valor como um touro por enquanto. Essencialmente, isso
aconteceu ou não? Agora, em gatilhos,
vamos clicar nesse botão de adição
e o que queremos fazer é clicar nesse
pequeno menu suspenso E vamos simplesmente
verificar se uma determinada entrada foi pressionada e está
configurada para fazer digital bull. Clique em Salvar aqui. E está tudo muito bem. Em seguida, o que vamos
fazer é voltar ao nosso editor de níveis
principal aqui. E vamos
voltar para uma pasta. Portanto, atualmente estamos em ações de entrada em terceira
pessoa. Vamos voltar
para essa pasta de entrada. Também posso acessá-lo
clicando aqui. E vamos
clicar duas vezes nesse padrão do I MC. E é aqui que todos os vários
mapeamentos de ações de entrada são
configurados em nosso personagem de terceira pessoa
para que nosso personagem de terceira pessoa
use Agora, aqui está nossa lista de mapeamentos. Atualmente, nossa
ação de salto é mapeada na barra de espaço ou
na parte inferior do botão
frontal do gamepad Esse é o botão do controle
Xbox. Eu vou enrolar isso de volta. Vamos adicionar um novo mapeamento aqui mesmo clicando neste
botão de adição. Depois de fazer isso,
adicionamos essa entrada, clique neste menu suspenso. Vamos adicionar essa nova
entrada, desativando o player de ação. Agora, o que precisamos
fazer é mapear isso para determinadas entradas em um
teclado ou controlador O que vou fazer é clicar nesse pequeno ícone de teclado. E assim que eu fizer isso, ele vai ficar com
essa cor alaranjada Eu só vou pressionar
a tecla no teclado. E, ao fazer isso, ele
colocará isso como entrada. Agora, isso é ótimo para um teclado. Eu também vou fazer isso
em um controlador. Vou clicar
nesse botão de adição. Ele adicionará essa
entrada aqui. Podemos reunir o resto
dessas entradas aqui. Basta clicar nessas
setas aqui. Vou pressionar
esse ícone do teclado. Agora, tudo o que
vou fazer é
pressionar o manípulo esquerdo de um
controle que conectei Isso vai
verificar se meu game pad, manípulo
esquerdo, tem algum tipo
de entrada ao longo do eixo y. Esse é o meu manípulo esquerdo para
cima ou para baixo, essencialmente. Tudo bem, vamos
salvar isso também. Agora, só para deixar claro
que essas são as entradas que nosso personagem está
usando, o IMC é Se eu entrar no meu personagem em terceira pessoa,
você não precisa fazer isso. Só estou te mostrando. Volte para minha guia de gráfico de eventos aqui. Esse é o nosso contexto de
mapeamento de entrada. E aqui está nosso ativo padrão do IMC que nosso
personagem de terceira pessoa está usando Apenas deixe você saber onde tudo
isso entra em jogo. Tudo isso está em nosso personagem em
terceira pessoa. Tudo bem, agora com
tudo isso feito, vamos voltar para
nossa plataforma BP. Passe por aí, vamos continuar aqui um pouco. Roda do mouse para baixo, clique com
o botão direito para baixo. Vou clicar com o botão direito do mouse em algum espaço
vazio e vou
digitar Player down. Aqui está meu
evento de ação de entrada para jogadores desativados. Este é esse evento
que acabei de criar. Ele será acionado pressionando
a tecla S ou pressionando
meu manípulo esquerdo O que eu quero fazer
é verificar o valor desse booleano Estamos no topo da
plataforma ou não? Se eu arrastar e soltar
isso em nosso gráfico, quero obtê-lo desta vez. Queremos obter o conteúdo dessa variável
que vou arrastar
para fora daqui e
trazer um nó de ramificação quando
começarmos a inserir
isso, ou seja, inicialmente pressionamos a tecla S ou
pressionamos o botão esquerdo, informaremos nossa plataforma Vamos falar com nossa
plataforma aqui
arrastando uma referência à malha da
nossa plataforma Vamos
falar com essa plataforma, depois vamos sair dela e digitar set collision enabled aqui embaixo O novo tipo não será
uma colisão. Basicamente, estamos dizendo que
pressionamos S ou
pressionamos o botão esquerdo para baixo. Vamos verificar se
estamos no topo da plataforma? Se for verdade,
vamos fazer com que essa colisão passe Vamos clicar com o botão esquerdo e arrastar, tocar na tecla C e
chamar isso de nosso script de permissão para que o
jogador desça
pelo script da plataforma. Vamos compilar isso,
ter certeza de que é bom salvar o Momento da Verdade Vamos jogar isso, mas você
notará um problema. Estou jogando clicando
na janela de visualização, vou pressionar a
barra base para pular por ela Vou tocar no SK. Parece que não funciona. Isso é porque estamos
perdendo mais uma coisa. Aqui está o que está dentro de
um plano de aula de ator. Essas ações de entrada não
funcionarão por padrão. Eles funcionariam por padrão dentro de um personagem de terceira
pessoa, mas não em um plano de
classe de ator Então, como podemos fazer com que isso
reconheça entradas como essa? Bem, temos que entrar padrões de
nossa classe de nossa plataforma de
salto Aqui embaixo, no
painel de detalhes, onde diz entrada, vamos mudar o modo automático,
receber a entrada do
desativado para o jogador zero. Isso é essencialmente nós,
o personagem do jogador. Vamos compilar isso mais uma
vez. Volte e jogue. Agora estou pulando
e, se eu tocar na tecla S, vou passar por ela Vamos testar isso também no
controlador. Pulando para cima,
pressionando meu manípulo esquerdo. E aí parece
funcionar muito bem. E aí está, pessoal, um salto pela plataforma,
como eu gosto de chamá-la. Isso é, cara, pronto para essa. Nos vemos na próxima.
13. Plataforma em movimento: Bem-vindo. Neste vídeo, vamos criar
uma plataforma móvel. Então, vamos direto ao assunto agora. Para começar aqui,
vamos herdar da nossa plataforma BP, que
criamos no último vídeo apenas para tornar as coisas um
pouco mais rápidas Então, encontre essa plataforma, clicaremos com o botão direito
nela e
criaremos uma
turma de modelo infantil a partir Quando fizermos isso, isso nos levará a dar um nome a ele. Então, vou chamar
esse motor de plataforma BP. Em seguida, vou
clicar duas vezes nele para abri-lo. Agora, como fizemos disso um filho de nossa plataforma de salto, podemos ver
que essa é a
classe principal no canto superior direito aqui. Isso significa que ele
já vem com todos
os componentes que
já foram configurados em nossa plataforma. Salte. Além disso terá o mesmo
script interno. Se formos até o enxerto de eventos, veremos
que todo esse script é herdado
do pai Então, isso já está configurado
para ser capaz de pular. Podemos pular por
essa plataforma. No entanto, ele não se move como
gostaríamos. Então é isso que vamos abordar
neste vídeo. Agora, só para facilitar um
pouco a identificação de
uma plataforma móvel a partir de uma plataforma de salto
estática. Vou voltar
para nossa janela de visualização aqui e vou
selecionar nossa plataforma E eu vou mudar o material
associado a isso. Você pode mudar isso para
algum material do Mario ou qualquer coisa dessa natureza. Só para deixar isso super óbvio, vou digitar em azul
aqui embaixo dos materiais. Vou mudar
para esse azul claro. E então vou
arrastar um
deles para o nosso nível também, para que possamos identificá-lo
facilmente como uma plataforma. Tudo bem, vamos voltar ao
nosso plano de movimentação de plataformas Vamos criar algumas
variáveis para começarmos aqui
no painel My blueprint A primeira variável que
vamos criar é LOC. Isso é baixo para o início da localização. Isso vai ser
uma variável vetorial. Isso determinará o ponto de partida
da nossa plataforma
de movimentação aqui. E então eu vou clicar com
o botão direito sobre isso e vou duplicar
esse controle Além disso, D é uma tecla de atalho. Isso
será chamado de “Terminar
os pontos finais com nossa
localização, final selecionado”. Há algumas
caixas de seleção que vou marcar aqui. O primeiro é Instance Editable. Quando verificarmos isso, ele também clicará nesse globo ocular Eles fazem a mesma coisa, essencialmente fazer um faz
o outro, etc E também vamos
mostrar os três widgets D. Agora vou verificar
isso e, em seguida, vou
compilar meu plano para que
eu possa nos dar um valor padrão No painel de detalhes, vou alterar
meu valor final Z local para 200 por padrão. Agora, a razão pela qual eu fiz
isso é porque agora, se eu verificar este projeto
em nosso editor de níveis aqui, podemos ver que,
com ele selecionado, vejo esse diamante de extremidade loc Este é o widget de três D que acabei de habilitar aqui
em nosso
movedor de plataforma , selecionando essa
variável
e selecionando a instância editável
e mostrando três widgets D. A razão pela qual ele está localizado
200 unidades irreais acima da base da nossa plataforma aqui é porque eu
configurei isso como 200 Observe, no painel de
detalhes, essa extremidade do local
também é exposta aqui
no painel Detalhes. Eu poderia alterar a localização disso simplesmente clicando
nele e arrastando E você está vendo que, enquanto eu faço
isso, também está alterando a localização
Z aqui Isso definirá
o ponto final dos movimentos de nossas
plataformas. Vai começar aqui,
vai acabar aí. Esse ponto de partida da localização será nosso ponto de
partida relativo, basicamente, ali mesmo. Tudo bem, com tudo isso feito, vamos
entrar em nosso gráfico de eventos e começar a criar
o script. Clique com o botão direito, arraste até
um gráfico vazio aqui
e, em seguida, clique com o botão direito
em algum espaço vazio. E vamos procurar
um nó da linha do tempo. Vamos nomear esse nó da
linha do tempo Movimentos da plataforma Um nó da linha do tempo nos
permite alterar o valor de uma
variável ao longo do tempo Esse nó é especial
porque podemos
clicar duas vezes nele para editar uma linha do tempo Vou clicar duas vezes
nisso e, quando fizer isso, abro uma nova guia
aqui , podemos adicionar uma faixa,
o que farei agora. Ao clicar neste botão
Plus Track, queremos adicionar uma faixa de fluxo. Ou seja, vamos
alterar um valor decimal ao longo tempo e você verá
por que faremos isso daqui a pouco Sou solicitado a nomear essa faixa, então vou
chamá-la de movimento Vou deixar a
duração em 5 segundos, mas agora preciso. Adicione alguns dos chamados quadros-chave à nossa linha do
tempo aqui. Agora eu posso clicar com o botão direito aqui e arrastar isso para frente e para trás. Use uma roda de rolagem
para aumentar e diminuir o zoom. Mas vou adicionar
alguns quadros-chave. Esses são alguns momentos em
que eu quero definir não apenas um valor de tempo
, mas um valor de valor. Vou clicar com o botão direito do mouse,
vamos adicionar uma chave à nossa linha do tempo,
que está em azul Clicar com o botão direito fará isso. Ou se você segurar a tecla shift e
clicar com o botão esquerdo, isso também funcionará. Eu só queria acrescentar
três pontos aqui. Não importa onde
você os coloca por enquanto,
porque vamos selecionar cada um
deles porque vamos selecionar cada um
deles e, em seguida, inserir
uma hora em um valor Selecione seu primeiro aqui.
Vou definir a hora zero e o
valor como zero, o início
da nossa linha do Essencialmente, vou selecionar este último, este
último aqui. Vou definir o tempo cinco e o valor como zero. Agora eu percebo que acabou de saltar da borda do gráfico aqui, não se
preocupe com isso E então eu vou
selecionar nosso meio aqui. Vou definir o tempo 2,5 e vou definir
o valor como um. Agora, se eu diminuir o zoom aqui, posso ver todos esses três
quadros-chave, esses três pontos,
vou simplesmente clicar com o botão esquerdo e arrastar ao redor de todos eles
para selecionar todos eles E então eu vou selecionar essas setas para emoldurá-las, essas setas aqui Agora, isso representará
o movimento da nossa
plataforma ao longo do tempo. Se você pensar na maneira como
eu digo que uma porta se abre, ela se abre e se fecha facilmente Queremos que nossa plataforma
se adapte a um movimento e depois passe para
o próximo movimento
de um lado para o outro. Não é tão rígido, se você quiser. Com tudo isso selecionado,
vou clicar com o botão direito do mouse e definir minha
interpolação de teclas E isso criará essa curva suave
em que entraremos em um lado do nosso
movimento e depois relaxaremos. Ok, o que isso faz aqui? Bem, isso nos dará, voltando à nossa guia de gráfico de
eventos aqui, uma saída de movimento,
uma saída flutuante, onde vamos
gerar o valor variável
dessa Agora, observe que o valor que
isso
produzirá mudará ao
longo de 5 segundos. Aqui, ele começará
com um valor zero. Então, ao longo
de dois a 2 segundos, ele vai subir
para um valor de um, depois vai
voltar para zero. Agora, a razão pela qual
vamos 0 a 1 a zero é porque
vamos usar isso para impulsionar
o movimento da nossa plataforma Vamos trazer uma referência
à nossa plataforma
aqui mesmo no painel de componentes. Vamos arrastar isso para dentro. O que queremos fazer é sair
disso e, digamos, definir a localização relativa. Vamos mudar a localização relativa
da nossa plataforma ao longo do tempo. Agora precisamos alimentar
isso com um novo local. Como vamos
determinar isso? Bem, há um nó que
podemos usar chamado vetor p. Vou escrever, clicar
em algum espaço vazio e digitar o vetor P. O que vamos
fazer é conectar a saída de movimento
da nossa
linha do tempo ao alfa E então vamos inserir o vetor de localização inicial em
A e o vetor de localização
final em B. Então descreverei
como tudo isso funciona. Se você olhar o
cabeçalho, estou apenas passando mouse sobre o
cabeçalho desse nó Diz que vamos interpolar linearmente
entre
a localização
e a localização, essas localizações vetoriais
com base no Veja como funciona.
Quando esse valor alfa, essa flutuação de movimento,
for um valor zero, estaremos em
nosso local inicial enquanto ele
faz a nosso local inicial enquanto ele transição de um valor
de zero para um valor de um Vamos nos mudar
progressivamente para nossa localização. Vamos
ir de a para B para a para
B com base nessa
mudança de valor, indo de 0-1 a zero a um É aí que
atualizaremos a nova localização da nossa plataforma. Vamos atualizar a nova localização da nossa
plataforma. Agora vamos
analisar isso e como
vamos fazer isso? Bem, faremos
isso voltando ao cronograma de movimentação de
nossa plataforma Aqui. Aqui em cima, temos um botão onde
podemos percorrer essa linha do tempo. Vamos começar
em nosso local A,
nosso local partida, passando para nosso local B quando
esse for um valor de um. De volta à nossa localização A quando
esse for um valor zero. E depois começar de novo. E depois
reiniciá-lo
ao longo de 5 segundos.
É assim que isso funciona. Outro recurso interessante
da linha do tempo é que ela tem esse botão aqui em
cima, Autoplay Vamos ativar
isso temporariamente. Quando acessamos nosso gráfico de eventos, podemos ver que esse ícone também
está aqui. Reprodução automática em loop.
Na verdade, não precisamos conectar
um nó de eventos para
que tudo isso funcione Vou compilar e salvar. Agora, se eu pular para o meu nível, vou jogar isso e você
notará que isso
vai passar daqui
para o final da nossa localização. Eu só pulei um
pouco para lá. Deixe-me mudar
isso para baixo. Vou ter um pouco
de movimento aqui. Ao longo de 2,5 segundos. Ele vai subir
até lá e depois vai voltar para baixo. Eu entro e jogo, gaguejando um pouco no vídeo,
mas na verdade ele está se movendo
bem na minha frente Aí estão nossos movimentos. Desculpe pela baixa qualidade do
vídeo. Ok, então isso é bom. Mas e se eu quisesse mover esse local final para muito, muito longe? Quero dizer, então a plataforma vai se
mover muito rápido. Existe uma maneira de personalizar essa linha do tempo de forma que eu possa alterar as taxas de jogo Sim, existe. Esta é nossa configuração
temporária aqui. O que vou
fazer é voltar nosso motor de plataforma e
vamos contar aqui nosso nó de
movimentação de plataforma. Basta clicar duas vezes nele
para não reproduzir mais automaticamente. Mas, em vez disso, vamos pegar uma referência aos movimentos de nossa
plataforma. Depois de criarmos
essa linha do tempo, nossa referência a ela
está aqui na seção de variáveis
do painel My blueprint Vamos arrastar isso para
dentro, vamos pegá-lo
e, em seguida, vamos
arrastar para fora e digitar
a taxa de jogo definida. Isso nos permitirá personalizar uma taxa de jogo
para essa plataforma. Vamos inserir isso no
jogo de nossa linha do tempo. Agora, eu poderia codificar
uma taxa de jogo aqui. Na verdade, farei isso 1.0 Mas quero tornar isso
exclusivo para cada instância, cada cópia do nosso motor de
plataforma. O que posso fazer aqui é clicar com
o botão direito neste pino. Podemos promover isso
para uma variável. E ao fazer isso,
uma nova variável é conectada automaticamente
do tipo flutuante, e vou
chamar isso de taxa de jogo A única coisa que eu
quero fazer com essa variável selecionada
é clicar no ícone do globo ocular para tornar
essa instância editável Agora, quando eu compilo e
volto ao meu editor de níveis, posso ver, com meu
motor de plataforma selecionado, que o valor da
taxa de jogo está aqui para eu personalizar
para cada instância, cada cópia desse
plano em meu Agora eu preciso fazer mais
uma coisa aqui para que isso
realmente funcione. Porque eu desconectei a reprodução automática do nosso movimento de
plataforma Eu preciso de algo para
realmente disparar isso, para dizer à nossa plataforma
que realmente se mova. Para isso, vou simplesmente
arrastar este evento e começar a jogar aqui. Se você não herdou da sua plataforma BP,
você poderia simplesmente fazer com que
um evento começasse a ser jogado Mas como isso é herdado de nossa plataforma de
salto, tudo o que precisamos fazer é
estender isso dessa forma Novamente, se você não está
herdando de uma plataforma de salto através uma
plataforma, comece a jogar conectado aqui.
Nós vamos te fazer muito bem. Essa será
sua configuração final, seu roteiro final aqui. Se você quiser pausar o vídeo aqui, você pode conferir. Vamos compilar
isso e voltar
para o nosso editor de níveis Agora você pode ver que
vou até Alt, clique com o botão
esquerdo e arraste para trazer outra
referência a isso. Eu poderia fazer com que
essa plataforma
em particular subisse, digamos assim. Talvez também vá em
um ângulo como esse. Mas vou mudar a taxa de
jogo para 0,05. Algo muito lento Talvez nesta plataforma,
eu mude a localização para ir até aqui. E eu vou
mudar isso para 0,1 Agora eu tenho os
dois indo bem devagar. Se eu fosse entrar e jogar, na verdade, não vou
entrar e jogar. Vou simular meu jogo clicando nesses três pontos simulação rodará o jogo sem que eu realmente
controle um personagem Então, vamos lá. Você
os verá se movendo na janela de exibição E lá estão eles se movendo. Este está se movendo bem
devagar no lado esquerdo. E à direita também está se
movendo, mas eles estão se movendo muito devagar. Mas a questão é que, para
qualquer uma dessas plataformas, você pode determinar
um local final bem
como a
taxa de jogo em que ele ocorre. Você pode fazer com que fique louco
rápido, louco, lento. Sua escolha. Tudo bem, pessoal, isso bastará
para oferecer este. Nos vemos na próxima.
14. Plataforma de lançamento (parte #1): Bem-vindos de volta a todos.
Neste vídeo, vamos criar
uma plataforma de lançamento Esse será
um que fará
nosso jogador voar no ar
quando ele pousar em cima dele Então, vamos direto ao assunto agora. Se você ainda não importou as texturas que
fizemos no início
do curso, faça isso agora, porque
usaremos algumas delas
neste vídeo Vamos fazer com que essa plataforma
de lançamento pareça uma espécie de
cogumelo gigante Então esse é o nosso objetivo visual aqui. Depois de
importá-los e eu entrar na pasta
Texturas do meu jogo de plataforma, vou criar
alguns E se eu rolar até aqui, os que vou
usar para isso serão esse T Mushroom One,
bem como esse Dirt Agora eu tenho
os dois selecionados. Eu mantive o controle
pressionado, selecionei aqueles. Em seguida,
clicarei com o botão direito em um deles
e criaremos materiais
a partir deles. Agora, ao fazer isso,
vamos criar dois materiais
diferentes. Aqui estão, você pode ver
que são materiais pela etiqueta aqui
na imagem em miniatura Vou deixá-los
com seus nomes atuais. Eu vou salvá-los. Salve tudo para salvar esses ativos Nós os usaremos
daqui a pouco aqui. Em seguida, o que vamos fazer
é voltar para nossa pasta de blueprints
e
criar um novo blueprint do zero clicando com o botão
direito do mouse em alguma classe de
blueprint de
espaço vazio Essa
será uma aula de atores, e vamos chamá-la de plataforma de sublinhados da BP Lançador de sublinhados. Tudo bem, e então
vamos clicar duas vezes sobre
isso para abri-lo. Tudo bem, em primeiro lugar, vamos começar
adicionando alguns componentes
ao nosso projeto No painel
Componentes, clique no botão Anúncio. A primeira que
vamos adicionar é uma malha estática instanciada Esta aqui, vamos
usá-la daqui a pouco, mas vamos adicioná-la
por enquanto. Vou dar um nome a isso, vamos chamar esse baú. Isso será usado
para representar o tronco,
se você quiser, de nossa plataforma
em forma de cogumelo aqui Em seguida, vou selecionar meu componente raiz de cena
padrão. Mais uma vez, para adicionar
outro componente, este será simplesmente
um componente de malha estática. Vou chamar isso
de Mushroom Top. Em seguida, vou anexar um componente ao meu
Mushroom Top aqui Com esse cara selecionado,
vou clicar em Adicionar. Em seguida, vou
adicionar um colisor de caixas. Colisão de caixas aqui. E vamos chamar
isso de fundo de colisão. Tudo bem, com
tudo isso pronto aqui, agora
vou
definir os detalhes. Então, começando com nossa malha estática
instantânea
aqui, no painel de detalhes, vou
encaixar uma malha estática e quero encaixar
em forma de cilindro. Vou digitar
silinilindrf. Eu posso soletrar
corretamente. Lá vamos nós. Agora há vários
cilindros aqui, aquele que eu
vou usar E você pode ver na ponta da ferramenta o caminho para ela, bem
como o tamanho aproximado. É este aqui do caminho
das formas básicas do motor Tem um tamanho aproximado
de 100 por 100 por 100. Escolha esse, para
garantir que você tenha exatamente
o mesmo Esme
e
verá esse povoado daqui a
pouco Você ainda não vê nada
no ponto de vista, mas verá
isso sendo usado em
pouco tempo Também vamos
aplicar um material nisso
e isso vai
ter nosso material sujo. Se você apenas digitar sujeira, é esse material. Dirt one matt, esse é o material
sujo que acabamos de criar. Agora, para a localização disso, vou definir a
localização Z como 50, 80, 50. Pressione Enter. E você pode ver que ele será colocado
neste ponto , mais ou menos
aqui. E eu sei que você não
vê nada ainda, mas estaremos gerando
alguns pedaços do tronco, se você quiser, quando adicionarmos algum script
a esse projeto A seguir, vamos selecionar
nossa parte superior de cogumelos. O que eu quero fazer para obter esse
formato está na parte de malha estática
do painel de detalhes com
o
Mushroom Top selecionado Eu quero escolher a cápsula larga
underscore. Está na pasta Shapes do
conteúdo inicial. Então eu vou adicionar
o material dele,
daquele cogumelo, um
material que acabamos de criar Vai dar uma olhada nisso. E então eu vou
mudar a localização
Z para 80 também. Aumente um
pouco. Ok. Em seguida, vou escolher nosso componente de fundo de
colisão Aqui está esta caixa
para obter detalhes sobre isso, vamos definir
o formato da caixa para 5.050,50 Também vamos mudar
a localização z para 35, 35. Movendo-o um pouco para cá, pendurando um pouco a parte inferior da parte superior
do nosso cogumelo Em seguida, vamos descer
para a predefinições de colisão Predefinições de colisão,
atualmente estão configuradas para sobrepor todas as dinâmicas Vou alterá-lo para personalizado e vamos configurar todas as nossas
caixas aqui para serem ignoradas. Então, clique aqui para
configurá-los todos para serem ignorados, exceto que vamos configurar
nosso lago para se sobrepor Vamos
fazer com que essa plataforma passe por uma tigela, para que nosso jogador possa pular
pela parte inferior e depois
pular pela parte superior. É basicamente assim
que isso vai funcionar. Então, essas serão nossas configurações de colisão
para essa colisão De baixo para cima, aqui em cima. Também vou alterar a extensão
da caixa do
Z. Atualmente, é 50 Acho que vou
definir isso para 60, um pouco mais grosso assim Sim, está quase
certo. Feito isso, vamos em frente e economizemos. Ok, em seguida, vamos adicionar algumas variáveis aqui embaixo
no painel do meu plano E essas variáveis nos
permitirão personalizar altamente a aparência e
a forma
dessa
plataforma em forma de cogumelo, porque certamente não
parece muito no momento Então, clicando aqui, no botão de
adição das variáveis, o primeiro será chamado de mush top, underscore Opa,
escala de sublinhado, sublinhado x. Essa será
uma variável Vou marcar esta caixa, por exemplo,
Editável imediatamente. Vou continuar e compilar isso. Quero definir um valor
padrão para um imediatamente,
uma escala de 1,0 basicamente significando
100% de seu tamanho normal. Com isso criado,
vou clicar com o botão direito do mouse nele. Vou duplicar isso. E eu vou
chamar essa escala de Y. Ela vai ser encontrada e
compilada Ele terá todas essas
mesmas instâncias de configurações editáveis com o
mesmo valor padrão Vou fazer o controle mais D para duplicar essa variável Isso
será mushtpscale z.
E mais uma vez, se você compilar, poderá ver que ele também
tem um valor padrão de um,
também também próxima que
vamos criar, clicando nesse sinal de mais
para a variável, ela será
chamada de velocidade Isso
controlará a velocidade do nosso lançamento quando
saltarmos da Isso vai ser
uma variável vetorial. Também vamos definir isso para ser editável
por instância. Se eu compilar isso,
definiremos nossa velocidade de lançamento
por padrão 2.500. Mas poderemos
alterar isso por instância,
por cópia desse esquema
no editor devido a essa caixa de no editor devido Vamos adicionar
mais uma variável aqui, clicando neste botão de adição. Este será chamado,
vamos chamá-lo de endpoints de
tronco Nosso ponto final do tronco de cogumelo. Vamos usar isso para determinar o ponto final do nosso tronco
de cogumelo Teremos um
baú que se estenderá para fora daqui e que
construiremos em
pouco tempo Vamos continuar e compilar essa instância comestível.
Queremos que isso seja verificado. Também queremos que esse widget show three D também
seja verificado Assim, podemos arrastar o ponto final. Vamos deixar os valores
em 0,00 agora. Tudo bem, em seguida,
vamos pular para
a guia de script de construção de nossas plantas Agora, a guia do
script de construção será muito
parecida com a nossa guia de gráfico de
eventos, onde você pode colocar alguns
scripts para fazer as coisas acontecerem. No entanto, ao contrário de uma guia de
gráfico de eventos que executa o
script em tempo de execução, o script de construção
é executado em tempo de design. Isso é ótimo para criar
um projeto como esse. Isso nos permitirá personalizar coisas
altamente. Vou te mostrar o que quero dizer aqui. A primeira coisa que preciso fazer
é trazer uma referência ao nosso topo de
cogumelos aqui Vamos arrastar e soltar
isso em nosso gráfico. Com isso, podemos conversar com ele, podemos alterar algumas
propriedades sobre ele. Vou sair disso
e digitar uma escala mundial definida três D para nossa escala. Vou arrastar para trás
e digitar make vector. Agora, com isso, podemos inserir
nossa escala de cogumelos, x, y e z à medida que alteramos esses
valores no editor Sempre que alteramos qualquer um
desses valores no editor,
ele aciona o script e, na verdade,
ajusta
o tamanho da
nossa parte superior em forma de cogumelo Aqui mesmo.
Aquele cara ali mesmo. Ok, continuando, vou conectar isso
a um nó de quatro voltas. Agora que você tem cada nó de
loop para cada um
com break, queremos quatro loops simples. Esse cara aqui sob controle de
fluxo de quatro circuitos, vamos usar
esses quatro circuitos para determinar quantas seções
essencialmente do tronco queremos adicionar à base
do nosso lançador de
cogumelos Para fazer isso, vou
trazer meu terminal de tronco. Vamos pegá-lo,
vou arrastar para fora disso e digitar
o comprimento do vetor. Vamos obter o
comprimento desse vetor,
essencialmente, qual será o comprimento
desse ponto final Veremos um
exemplo dessa matemática aqui em breve. Agora, porque nosso baú
é essencialmente 100, lembre-se de que temos nosso baú de
mingau aqui E estes serão
essencialmente em incrementos de 100 Esse tamanho total do cilindro
era de 100 por 100. Por 100. Vamos dividir isso, trazer um nó de divisão
pelo número 100. Agora, isso vai
gerar um valor flutuante. Queremos converter isso
em um valor inteiro. O que vou fazer é arrastar até aqui e digitar truncado Ele vai arredondar isso para
o número do orifício mais próximo. Vamos inserir isso
em nosso último índice. Agora, o que um nó de quatro loops
faz é que,
ao chegar a esse nó, percorrerá esse
nó, quantas vezes
especificarmos aqui, começando com o índice zero
e indo até o último índice. Se for 0-9, ele passaria
por isso. Ou seja, executar
isso dez vezes 012-345-6789 O que queremos fazer dez vezes? Bem, o que queremos fazer
é trazer nosso baú, arrastá-lo para dentro, e então vamos
tirar isso e dizer que
vamos adicionar uma instância desse tronco de mingau Uma instância, que é uma cópia, se você quiser, desse cilindro. Agora, precisamos especificar para onde
queremos que essa instância vá. Agora, novamente, esse cilindro
tem a forma de uma haste. Então, imagine que se você estiver empilhando essas coisas umas
sobre as outras, isso basicamente formará
uma coisa com aparência de caule Vamos
especificar para onde eles
vão conectando-os a essa
transformação de instância Então, vou me arrastar
para trás e digitar transform E uma transformação
consiste em dados de localização, rotação e escala. Na verdade,
vamos
nos preocupar apenas com esses dados de
localização Vamos
recuar daqui e digitar make vector like Então, deixe-me dar um
pouco mais de espaço aqui. O que vamos fazer
para determinar para onde esses troncos vão
ir é sair desse índice e eu vou
fazer um nó de multiplicação Vamos multiplicar
isso por um valor flutuante. Poderíamos fazer disso um valor
inteiro. Na verdade, vou manter isso como um
valor inteiro, na verdade, Vou clicar com o
botão direito sobre isso. Vou transformar
esse pino de saída em que também vou transformá-lo em um flutuador A razão pela qual vou
converter isso em um float é
porque preciso
conectá-lo como um float
ao nó do vetor make Vou inserir isso
no valor Z e multiplicar esse índice
por menos 100 Você verá o porquê aqui
daqui a pouco. Para dar um exemplo matemático, ver é acreditar e fazer com que isso faça muito mais sentido Tudo bem, vou compilar esse plano e depois
vou pular para o meu nível No momento, nossa
plataforma de lançamento parece estranha, mas poderemos personalizá-la
altamente Agora eu tenho minhas duas configurações de
snap D definidas para o meu nível
principal aqui Vou arrastar um
desses para cá agora. Na verdade, eu vou
colocá-lo aqui de uma forma um pouco mais ampla. Agora veja isso. Nossa parte superior não parece muito, mas no painel de detalhes, expomos todas essas variáveis Mushtop scale, must y, mush top scale, z, etc. Nós os usaremos aqui em pouco tempo, porque
se os escalarmos, você poderá ver como isso está alterando
o tamanho da nossa plataforma Nosso topo, esse valor
aqui está sendo aplicado aqui em nosso script
de construção. Sempre que editamos esses valores
, esse script é imediatamente
acionado Sempre que fizermos alguma alteração qualquer um dos valores
associados a esse script,
esse script será executado e, assim, ajustará o tamanho do nosso topo em forma
de cogumelo É assim que esse
script é acionado. Durante o período de design, quando alguma coisa em nosso
projeto aqui está mudando Agora observe que, se eu entrar no meu nível e
encontrar meu endpoint aqui, esse widget de três D, você pode ver que eu o
selecionei aqui embaixo Veja o que acontece
quando eu retiro isso. A cada cem unidades
que eu desço, estamos adicionando um pedaço de baú. Então, isso fará com que
possamos torná-los curtos ou longos, etc Então, vou definir
meu endpoint de tronco aqui para um número sólido Vamos usar algo
como menos 200, um bom valor redondo, desse
jeito, menos 200. Lá vamos nós. Agora
vamos voltar ao nosso
script de construção e
examiná-lo com esse valor negativo
200 como exemplo. Aqui estamos em nosso lançador de
plataformas. Toda a nossa escala do topo
do cogumelo é determinada
aqui pelo que definimos esses dois em
nosso editor, que está definindo a escala mundial do topo do
cogumelo Mas agora estamos
nos considerando com esse loop dianteiro. Nosso ponto final de tronco está
atualmente definido como menos 200, nosso comprimento vetorial é 200 Agora 200/100 é igual a dois. Nosso primeiro índice será zero. Nosso último índice será 2012. O que significa que esse
corpo de loop vai
disparar três vezes 012 E toda vez que
dispara, ele
emitirá o índice zero, depois um, depois dois A primeira vez que ele
dispara o índice é zero. Vamos multiplicar isso por menos 100, que é zero E
colocará uma versão desse tronco obrigatório
nesse local. Na segunda vez que disparar,
ele exibirá o índice de 11 vezes menos 100
será igual a menos 100 E então vamos
colocar outra seção, nosso tronco de mingau, abaixo de menos 100 de
onde ele está localizado Na próxima vez, nosso índice será 22 vezes menos 100
é menos 200. Assim, ele colocará outra seção do tronco
abaixo da anterior, compensada por 100 unidades irreais Podemos ver isso aqui com
12,3 seções de tronco. Agora está construído de
tal forma que não
podemos ir na direção
oposta. E, de fato, se você arrastasse
isso para a outra direção, ele ainda construiria o tronco na
outra direção. A direção negativa,
se você quiser. Mas eu estou bem com
isso assim. Agora, eu recomendo
que você deixe suas
escalas X e Y superiores iguais. Na verdade, poderíamos ter
feito disso apenas um valor,
caso contrário, você pode ter
alguns efeitos de aparência estranha como esse, em que ele fica
realmente esticado Mas eu queria dar a você o
poder de personalizar isso, como você quiser, é o que é. Agora você também pode ver que, à medida que escalamos o topo do cogumelo, nosso colisor na parte inferior
aqui está escalando junto aqui está escalando Isso é muito bom. Vou
definir um pouco todo
esse plano porque
quero que nosso jogador possa
tentar pular pela parte inferior
da plataforma aqui
15. Plataforma de lançamento (parte #2): Agora, ainda não conseguiremos percorrê-lo
porque não
adicionamos nenhum script
para que
possamos percorrê-lo. Então, vamos fazer isso a seguir. Vamos voltar ao nosso lançador de plataformas
BP. Desta vez, vamos
ver nosso gráfico de eventos. Porque queremos que esse script
seja executado durante o tempo de execução. Vou passar
para a direita aqui, algum espaço vazio, e
queremos selecionar nosso fundo de
colisão Vamos clicar com o
botão direito do mouse sobre isso e adicionar um evento para
iniciar a sobreposição Vamos continuar e clicar com o
botão direito nele novamente. Adicione também um evento para finalizar a
sobreposição. Agora, o que vamos fazer é
descobrir quem foi o outro ator que
esteve por trás Podemos fazer o que fizemos antes, podemos escrever, clicar em
algum espaço vazio e obter
o personagem do jogador. Assim, podemos descobrir se o outro ator é igual
ao personagem do nosso jogador. Então, vamos copiar isso e trazer isso aqui
para a sobreposição final Ambos se conectarão
a uma ramificação. Então, vou manter pressionada
a tecla B e clicar com o botão esquerdo, essa será a nossa
condição que
verificaremos com curtidas. Então, o que queremos fazer é falar com nosso
topo, nosso topo de cogumelos Arraste uma referência a isso, vamos
arrastar isso e
digitar set collision enabled Quando começarmos a colidir com o fundo
da colisão, queremos definir isso como nenhuma colisão,
como
a que temos
aqui Vamos copiar
e colar isso. Podemos inserir a
mesma referência e, se for verdade que
estamos encerrando essa sobreposição, queremos ativar a
colisão novamente, que será
ativada Tudo bem, então vamos
compilar e salvar
isso e ver se podemos pular até o fundo da
nossa plataforma de cogumelos Nossa plataforma de movimento muito lento. E sim, de fato, podemos ir até
o fundo dela. No entanto, ainda não
lançamos. Então, vamos
resolver isso. Em seguida, para lançar nosso personagem, vamos querer detectar
quando nosso personagem pousa em cima do nosso
componente principal de cogumelo aqui Então, queremos um evento
associado a isso. Vamos clicar com o botão direito do mouse em
nosso componente mush top. Vamos adicionar um evento. E o que queremos fazer é
adicionar um hit de componente quando atingimos esse componente que adicionará
esse evento aqui embaixo. Vou navegar um pouco
até aqui, criar uma
seção totalmente nova do script. Agora, não queremos que
isso comece ou não queremos continuar
nenhuma execução aqui. Se alguma coisa atingir
nosso topo de cogumelo, somente se for nosso personagem Então, vou me
afastar do nosso outro ator. Vou colocar o sinal
de igual. E, mais uma vez,
vamos verificar se isso é igual ou
obter o nó do personagem do jogador, se o outro ator é
nosso personagem de jogador, se for igual ao
nosso personagem de jogador, vamos trazer
um nó de ramificação, segurar e clicar com o botão esquerdo. Se tudo isso for verdade, vamos querer
fazer algo uma vez. Posso clicar com o botão direito do mouse e pesquisar
um único nó. No entanto, vou manter
pressionada a tecla e
clicar com o botão esquerdo e isso trará um único nó. O que eu quero fazer uma vez
é sair do nosso personagem get player aqui
e pesquisar
um nó chamado personagem de lançamento. Esta é uma função
associada ao personagem, então você deve arrastar para fora do personagem get player
neste caso
para conectá-lo imediatamente como alvo e
encontrar essa função. Então, só queremos lançar
nosso personagem uma vez. Qual será a
nossa velocidade de lançamento? Bem, se eu selecionar minha
velocidade de lançamento aqui, podemos ver que armazenamos
isso em uma variável Vou arrastar e soltar isso em cima desse alfinete assim. Atualmente, definimos isso para 2.500. Mas tornamos
essa instância editável, que possamos personalizá-la para cada instância do nosso lançador de
plataforma Agora eu quero disparar isso, não só quando nosso personagem
atingir o topo do cogumelo, mas quando ele pousar sobre ele Não queremos
fazer isso sempre que atingirem a lateral da parte superior do
nosso cogumelo Para verificar isso, queremos sair do nosso
hit não componente aqui e abriremos esse resultado de hit. Este alfinete aqui tem
muitas informações para nos dar. Podemos extrair essas informações por meio de um nó de resultado de break hit. Vou expandir
isso para que possamos ver todas as coisas diferentes relacionadas a esse sucesso que
possamos descobrir. O que estamos
procurando para este é
que queremos sair
do normal de impacto. Essa é essencialmente a direção em
que estamos impactando
o topo do cogumelo .
Vou arrastar para fora daqui
e trazer
um vetor igual ao nó vetorial Não faremos exatamente o
mesmo vetor. Na verdade, não, nós queremos um vetor
igual. Desculpe, foi minha culpa. Vetor igual ao vetor. Tem o triplo sinal de
igualdade para isso. Vamos trazer um valor
z de menos um. Ou seja, essencialmente,
estamos impactando isso na
direção descendente Negativo, ou seja, para baixo
na direção z. Ok, na verdade, também
queremos verificar isso como uma
condição. Em vez de conectar isso
a outro nó de ramificação. O que posso fazer aqui
é arrastar o resultado dessa verificação para ver se nosso outro
ator é igual a. O personagem do jogador pode
arrastar isso e trazer um
nó, o booleano Então, vamos
verificar se o outro ator que atingiu nosso topo de cogumelo
é nosso personagem E vamos verificar
se nosso impacto na parte superior do cogumelo está na direção
descendente Então, nosso fluxo será assim. Estamos verificando se essas duas
coisas são iguais. E se isso for verdade,
então uma vez vamos lançar
o personagem. Agora, isso deve estar
muito bem, mas eu também quero acrescentar um pouco de habilidade
a isso. Eu quero adicionar um
pequeno efeito de partícula emissora. E também quero
fazer com que a parte superior do cogumelo pareça estar
saltando, adicionando um pequeno
efeito de animação Então, o que vou fazer é arrastar meu
personagem de lançamento até aqui e colocar um nó chamado
Spawn Emitter no local Agora, isso é para reproduzir um efeito de partícula
mais antigo,
um efeito de partícula em cascata E a razão pela qual
vou procurar isso, em vez de um sistema de desova no local que
funcionaria como Niágara, um novo
efeito de sistema de partículas é porque tenho
um em mente daquele pacote de efeitos de em vez de um sistema de desova
no local que
funcionaria como Niágara,
um novo
efeito de sistema de partículas é porque tenho
um em mente daquele pacote de efeitos de
lâmina infinita. Resumindo, você
pode gerar um emissor para
um emissor em cascata mais antigo ou
gerar um sistema et,
local para um efeito local para O que eu tenho em mente aqui se chama skill underscore launch Pelo contrário, isso é o lançamento de um salto de habilidade. Lançamento da base Skill Leap. Skill Leap Base, lance
aquele cara ali mesmo. Agora eu preciso especificar um local em que isso
vai aparecer Para isso, vou usar nosso ponto
de impacto do resultado da ocorrência, podemos arrastá-lo
até nossa localização. Vou
clicar duas vezes nesse fio para adicionar um pequeno nó de redirecionamento e deixar
isso um pouco mais limpo Acho que também vou definir a escala dessa partícula para três vezes seu tamanho
normal Só para torná-lo um
pouco mais proeminente. Fácil de ver. Ok. Em
seguida, o que eu quero fazer, e eu vou segurar o botão direito do mouse e deslizar para a direita aqui, é trazer um nó da
linha do tempo, clicar com o botão direito Faça uma busca por uma linha do tempo. Adicione a linha do tempo aqui embaixo. E isso vai
me levar a nos dar um nome. Vou chamar isso de
minha melhor linha do tempo. E vou conectar isso
ao nosso jogo a partir do Início. Agora, neste nó aqui, vou clicar duas vezes
nele para criar uma linha do tempo Isso
servirá como
multiplicador de escala para nossa escala X, Y e z, para nossos valores
máximos de cogumelos aqui Na verdade, vou trazer todos os três imediatamente,
em alta escala x. Vou
me divertir. Na verdade, se você
segurar a tecla control, clicar com o botão
esquerdo e arrastar,
você obterá uma versão melhor delas
imediatamente. Assim. Vou multiplicar
cada um desses valores. Então, posso sair disso e digitar o
símbolo de multiplicação imediatamente. Eu vou multiplicar
tudo isso. Vamos precisar de uma cópia
exclusiva para tudo isso. Controle C, controle V por meio algum multiplicador
que estamos prestes a extrair de nossa linha do tempo Crie e saia
da nossa linha do tempo. Vamos clicar duas vezes em nossa linha do
tempo imediatamente. O que eu quero fazer aqui
é adicionar um novo flutuador. Isso será chamado de
nosso multiplicador de escala. Vamos criar
uma pequena animação aqui
que
durará três décimos
de segundo Vou apenas manter
pressionada a tecla de controle e rolar aqui para
aumentar um pouco o zoom. E mantenha pressionado o botão
direito do mouse do arroz para colocar isso de
volta à vista dessa forma. Tudo bem, vou
adicionar quatro quadros-chave aqui. Então, vou manter pressionada a tecla
shift e continuar assim,
123,4 aproximadamente nesse padrão em
ziguezague Você pode obter esses quadros-chave clicando com
o botão direito do mouse e adicionando também
um quadro-chave. Deslocar e clicar com o botão esquerdo também os
obterá. Ok, com elas
prontas, vou agora
selecionar cada uma delas individualmente e adicionar uma hora. Para este primeiro
, será zero e
o valor será um. Posso clicar nessas setas
para ver isso. Vou ampliar um pouco aqui
atrás. Vou selecionar
meu segundo quadro-chave. Agora, no segundo, vou adicionar um tempo de
0,1 e um valor de 0,8. Novamente, esses
serão valores de escala. O segundo que vou
selecionar será um tempo de 0,2 e um valor de 1,3. Então esse último será
um tempo de 0,3 e um valor
de um se ultrapassar Tudo fora da tela, você
pode ampliar para trás. Vou clicar com o botão esquerdo, arrastar para destacar todos eles.
Eles estão todos em azul. Agora eu posso clicar nessas
setas para emoldurá-las, que você possa ver esse
padrão em ziguezague que eu padrão em ziguezague que Ok, então o que
acabamos de fazer é adicionar uma pista flutuante
chamada multiplicador de escala Vou pular da
nossa linha do tempo aqui novamente,
essa linha de tempo de três décimos
de segundo Agora, esse multiplicador de escala
é produzido de
nossa linha do tempo ao longo
de três décimos de Ele vai se
multiplicar ou
vai gerar um valor flutuante
. Isso vai passar de 1-2 0,8 para 1,3 para um. Alterando esse valor ao longo do tempo. Esse é o valor que
vamos multiplicar em relação à nossa
escala máxima de cogumelo x, y e z. Agora vamos conectar tudo
isso em um nó vetorial Então, vou
clicar com o botão direito do mouse em algum espaço vazio digitar make vector. Vamos
conectá-los dessa
forma para criar um único valor
vetorial x, y e z. A razão pela qual estamos fazendo
isso é para que possamos trazer nossos
principais componentes em forma de cogumelo Então, vamos conseguir isso. Em seguida, arraste
para fora dela e digite escala relativa
definida três a escala relativa
definida três
D. Esse será nosso novo valor x, y e z para
a parte superior do cogumelo À medida que isso for atualizado ao
longo de 0,3 segundos, alteraremos os multiplicadores associados ao tamanho do topo do nosso
cogumelo, criando um pequeno efeito
saltitante Tudo bem, agora, antes de
testarmos isso, vamos fazer mais
uma coisa. Atualmente, todo esse lançamento saltitante no topo da
árvore está programado para acontecer apenas uma vez O que queremos fazer é redefinir isso de alguma forma para
que isso possa acontecer novamente. Então, para fazer isso, vou
clicar com o botão direito do mouse e adicionar eventos personalizados. Clique com o botão direito, evento personalizado. Vou nomear esse lançador de
reinicialização em maiúsculas. Vou conectar
isso ao reset. Agora, o que eu preciso
fazer é chamar esse inicializador de reinicialização no
final do meu script aqui, apenas para tentar ver
isso um pouco mais dessa forma Vou
arrastar até o final daqui, vou introduzir
um atraso. E vamos atrasar dois décimos de segundo
antes de reiniciarmos isso Agora eu posso sair
daqui e digitar reset launch lá. Vai, vai convocar esse
evento personalizado aqui
para
permitir que eu caia convocar esse
evento personalizado aqui
para em
cima do meu cogumelo
mais uma vez e reinicie
todo esse efeito de salto Tudo bem, então, tentando
colocar tudo isso em vista, é
isso que temos
para o nosso roteiro final. Se você precisar pausar
o vídeo aqui, vamos
compilar e salvar. Agora, vamos tentar
. Aqui vamos nós. Ok, vou passar pela baixo
do meu cogumelo
aqui e pousar em cima Bounce, aí está,
salte novamente, tocando aquele efeito de partícula E isso é muito bom.
Agora, só para mostrar a você, podemos tornar
tudo isso um pouco único. Vou clicar
no meu cogumelo aqui. Vou apenas manter
pressionada a tecla Alt, clicar com o botão
esquerdo e arrastar. E agora, com essa
instância do cogumelo, tudo o que vou fazer é alterar minha velocidade de lançamento,
essa variável,
então, em vez de esta me
lançar nesse valor, vou
alterá-la para simplesmente 500 Então, este segundo não
vai me lançar tanto. Então, se eu voltar
e jogar aqui, veja que esse primeiro
vai me lançar muito. E então o segundo, só um pouquinho, você pode ver que está
me permitindo mais uma vez. Ele está reiniciando esse
lançamento para que eu possa pular nele
repetidamente. Então é assim que podemos criar uma plataforma de
lançamento altamente personalizável Tem uma animação, tem
a personalização de quão
alto estamos lançando. Muito legal, pessoal, isso
vai acabar com este. Nos vemos na próxima.
16. Componentes de captação de moeda: Bem-vindo. Ao longo
dos próximos vídeos aqui vamos criar
uma coleta de moedas. Mas antes de fazermos isso,
quero ter certeza de que você importou algumas
das texturas e arquivos de
áudio que deveria ter importado logo no
início do curso Porque neste vídeo vamos lidar com algumas dessas texturas de moedas Vamos transformar
alguns deles em materiais, bem como
vamos fazer referência ao áudio
dessa moeda aqui Portanto, se você não
os importou no início
do projeto, faça-o agora. Tudo bem. Feito isso,
vou
começar na minha
pasta Texturas aqui Agora eu tenho duas
versões diferentes da moeda. Se você quiser ter uma
moeda mais nova ou uma moeda retrô, o que eu quero fazer é
selecionar uma, depois manter pressionado o controle
e selecionar a segunda E com os dois destacados, vou
clicar com o botão direito do mouse e
convertê-los em materiais. E você pode ver que
há um
ali e outro ali. O que vou
fazer a seguir é selecionar
minha pasta Plataforma aqui, plataforma. Vou adicionar
uma nova pasta e vou chamar
isso de materiais. Na verdade, vou arrastar esses materiais para dentro
dessa pasta. Atualmente, tenho esse cara
aqui, clique com o botão esquerdo e arraste-o para os
materiais, digamos, mova aqui. E eu também tenho
alguns outros materiais aqui da
plataforma de lançamento. Então, vou puxar isso para
cima, mantendo pressionado o controle, vou selecionar esses são os outros três que
você pode ver porque eles têm esses ícones de esfera. E vou clicar com o botão
esquerdo do mouse e
arrastá-los para a
pasta Materials também. Vamos movê-los para
cá, depois vou para minha
pasta de materiais e
esses dois materiais de moedas. Eu só vou
abrir porque há alguns pequenos ajustes que eu quero fazer dentro de
cada um deles. Também vou pular para
a outra, a moeda retrô,
dependendo de qual você
vai usar Agora, o que eu quero fazer
aqui é, antes de tudo ter uma
forma diferente aqui no meu visualizador. Aqui embaixo,
na parte inferior, você pode definir uma malha de visualização diferente. Vou simplesmente escolher o cubo, mesmo que ele
esteja em todos os lados Em seguida, vou manter
pressionado o botão esquerdo. Você pode ver que
eu vou tornar isso invisível em
cada lado também. Você pode ver o
fundo com ele. Então, clicar no ícone do cubo
e, obviamente, isso
parece terrível, mas vamos resolver isso. Ok, então o que precisamos
fazer aqui é selecionar nosso nó de
material mestre aqui. E no lado esquerdo,
onde diz modo de mesclagem, vamos treinar isso. Faça a transição para
translúcido. Treine isso. Em seguida, vamos
inserir um pino no pino opacidade
do nosso nó de material
mestre Agora eu posso ver que é translúcido. Nós vemos exatamente aquela moeda. Queremos fazer isso com
dois lados também. Suas alterações são, portanto, alterar o modo de mesclagem para translúcido e configurá-lo para dois lados Você pode dizer
isso e depois fazer o mesmo com a moeda retrô Estamos mudando esse
modo de mesclagem para translúcido. Mudando-o para dois lados. Certifique-se de inserir esse a, o valor alfa, na opacidade
do nó do
material mestre dessa forma Clique em seguro e
podemos sair de lá. Quando terminar isso, farei a transição para
nossa pasta de esquemas aqui
em nosso navegador de conteúdo Vou clicar com o botão direito do mouse
em algum espaço vazio, nova classe de blueprint Vamos basear isso em uma aula de ator porque
vamos colocar
isso em nosso mundo. E eu vou chamar essa moeda
BP pick underscore, então vá em frente,
clique duas vezes nela para
abri-la no painel de componentes, haverá alguns
componentes que
gostaríamos de adicionar O primeiro será um componente de colisão
esférica. Agora, ao clicar aqui, não se confunda e
clique em Sphere imediatamente. Isso é uma bagunça estática. Você tem que rolar para baixo e estamos procurando uma colisão
esférica Vou deixar isso
ter o nome de esfera. No entanto, no
painel de detalhes aqui, vou alterar o raio da
esfera para 75 Agora vamos usar
isso para ser o volume, o volume do gatilho
que verificamos, para ver se devemos
coletar essa moeda ou não. Agora, com essa
colisão de esfera selecionada, vamos adicionar
outro componente e este vamos adicionar
um cilindro para que você
possa simplesmente digitar cilindro e há
um cilindro de formato básico Vá em frente e selecione isso. No painel de detalhes. Há algumas coisas que
eu quero modificar. Essencialmente, vou
inclinar isso de lado e apertá-lo para
que pareça Tenho algumas configurações que
predeterminei com antecedência
a rotação Vou definir a
rotação x para menos 70. Vamos definir a
rotação y para menos 90 e vamos definir a rotação
z para menos 20. Então eu vou mudar
a escala também, porque essa seria uma moeda de aparência
bastante gorda. 20,75 no x. E eu vou passar a tecla Tab
e fazer 0,75 no Y. E para o Z, vou
fazer 0,07 e Isso o esmaga. Parece uma moeda. Como você pode ver, tenho
um volume
bastante generoso para coletar isso. Eu também vou colocar um
material sobre isso imediatamente. Se você selecionar essa
lista suspensa no tipo de moeda, você tem uma das opções
para escolher aqui. Eu tenho a moeda retrô
ou a moeda da era mais recente. Acho que vou usar
o Retro por enquanto, mas você pode ver que isso
vai imprimi-lo
nos dois lados Sim, temos uma
pequena lacuna lá, mas vou viver
com isso por enquanto. Tudo bem. Agora,
outra coisa que eu quero fazer imediatamente é que essa malha
tem uma colisão nela Se eu descer até
a seção de colisão, diz-se
que ela bloqueia
todas as dinâmicas Eu não quero que o jogador
colida com isso de jeito nenhum. Eu quero que eles simplesmente o captem quando
se sobrepõem
ao volume do gatilho Agora você pode pensar, ei, uma vez que sobreponhamos esse volume de
gatilho, vamos fazer essa
coisa passar de qualquer maneira Então, o que importa
se isso colidir com ele? Bem, poderemos atirar algumas bolas de fogo mais tarde
e não
queremos necessariamente que algumas bolas de fogo colidam contra essa Então, vamos apenas
desativar algumas colisões. E podemos fazer isso
usando as predefinições de
colisão e simplesmente
alterando isso para nenhuma E isso vai resolver isso. Tudo bem, queremos adicionar
mais um componente aqui no painel de componentes. Vamos clicar em Add
In, Type in Rotting. E se você selecionar isso, isso não será anexado a
nenhum componente específico. Pelo contrário, é aplicado a
todo o nosso projeto aqui. Isso fará com
que essa moeda gire e gire na taxa de rotação
definida no painel de detalhes Atualmente, ele está configurado
para uma rotação z para girar em torno do eixo z, um valor de 180 E isso vai
ser muito bom. E se você quiser visualizar isso, basta pressionar botão Simular e ver aproximadamente
sua aparência Isso é muito bom. Novamente, se você não gostar da
aparência dessa moeda, pode alterá-la para
o outro modelo de moeda. O novo modelo de moeda. Caramba, eu
poderia optar por isso em vez disso Isso parece talvez um
pouco melhor. Sim, vamos continuar com
isso. Tudo bem, vá em frente e guarde isso. Isso é tudo o que queríamos
realizar neste vídeo. Mais trabalho a ser feito
no próximo vídeo, onde começaremos a criar alguns scripts.
Nos vemos lá.
17. Roteiro de captação de moedas #1: Tudo bem, com nosso modelo de coleta de
moedas aqui, criado. Vamos
adicionar um ao nosso nível. E você pode ver que eu tenho
minhas duas configurações
de D snap atualmente definidas
para o nosso nível principal, que é o nosso principal caminho a percorrer Se eu arrastar e soltar um
desses em nosso nível dessa forma, agora
temos isso bem na frente de onde nosso
personagem aparece Se eu fosse entrar e jogar, basta arrastar isso para a
tela imediatamente, você pode ver que está girando No entanto, nada acontece quando
nosso personagem se sobrepõe a ele. Vamos adicionar um script para fazer com que algo aconteça. E para fazer isso, vamos clicar
duas vezes em nossa moeda BP, pegar e voltar aqui E vamos clicar com o botão direito do mouse
em nosso componente esférico. Porque queremos que
algo aconteça quando nosso personagem se
sobrepõe a essa esfera. Para adicionar um evento para
sobrepor isso, vamos
clicar com o botão direito do mouse nesse componente,
adicionar evento no componente e
começar a Isso nos levará da
nossa janela de visualização para a guia do gráfico de
eventos E queremos
verificar se o outro ator,
a outra coisa que se
sobrepôs componente da esfera,
é nosso personagem Podemos fazer como antes
e clicar com o botão direito do mouse e fazer um
nó de obtenção do personagem do jogador, obter o personagem do jogador. Podemos ver se o
outro ator é igual ao personagem do nosso jogador. Vou manter pressionada a tecla, clicar com
o botão esquerdo, e inserir um nó de ramificação. Essa é uma configuração totalmente
válida. Estamos verificando
se o outro ator é nosso personagem de jogador
e, se for, podemos fazer coisas. Agora, só para mostrar outra
maneira de fazer isso,
vou manter
pressionada a tecla Alt e clicar com o botão
esquerdo para quebrá-la. Eu poderia sair do outro
ator aqui e fazer um gato para sublinhar o personagem em terceira
pessoa da
BP Agora, voltando para nosso navegador de
conteúdo aqui, nossa pasta de
plantas em terceira pessoa, este é o
personagem real que
estamos controlando
no jogo no momento Outra configuração que você
pode fazer
para verificar se estamos
sobrepondo aquela moeda essa classe de
personagem em particular é fazer isso assim Se for verdade, podemos
continuar saindo daqui. Se isso fosse falso, o elenco falharia e poderíamos
continuar saindo daqui. Qualquer um dos métodos
funcionaria bem. Vou deletar
esse elenco por
enquanto e seguir
esse método. O que queremos fazer é que, se for verdade que
sobrepomos essa esfera, vou arrastar para fora da nossa ramificação
verdadeira e digitar Portanto, dois sons DA2d são aqueles que não estão sendo reproduzidos
em um determinado local mundial É essencialmente ótimo para reproduzir algum áudio que
você ouve em voz alta. É aqui que vou inserir
nossos sons de moedas. Se você clicar nesse menu
suspenso, basta digitar a moeda, você encontrará o som da moeda
que está reproduzindo o efeito sonoro. Vamos reproduzir também um
efeito visual. Vou sair daqui e digitar o emissor
de spawn no local O emissor usa o antigo sistema de efeito de
partículas em cascata. Como alternativa, você pode criar
um sistema de desova no local, que é o efeito das partículas do
Niágara Agora, a razão pela qual vou usar isso é porque, em
nosso conteúdo estrelado, temos acesso atualmente, data de hoje, ao efeito de partículas de
explosão Eu tenho essa explosão de
sublinhados. Agora, precisamos especificar em qual local
gostaríamos que isso fosse jogado. Atualmente, ele
será reproduzido
no local 000 do meu mundo. Mas isso é simples.
Se eu clicar com o botão direito do mouse, obtenho algum espaço vazio que eu possa
fazer para obter a localização do ator. Esse nodo aqui,
o alvo somos nós mesmos. Então, basicamente dizendo,
vamos jogar isso
na localização desse
ator para a escala. Você poderia aumentar isso em tamanho, vou deixar como 11,1 mas você poderia fazer uma
explosão gigante se quisesse Por último, mas não menos importante, continuaremos o
fluxo de execução e digitaremos o ator de destruição que
destruirá nosso Led. O que significa que essa moeda BP aumenta depois de
tocarmos o som e depois de tocarmos aquele efeito de partícula
específico Vamos continuar e compilar. Isso diz que nosso roteiro parece
bom. Vamos salvá-lo também. E agora vamos ver se
podemos realmente entender isso. Aqui estamos tocando,
ouvimos um som, vemos um visual e ele
é destruído novamente. Ainda não há pontuação envolvida. Isso está por vir. Mas pessoal, isso vai acabar com isso. Nos vemos na próxima.
18. Controlador de jogador: Tudo bem, bem-vindos de
volta a todos. Bem, no último vídeo, criamos um
script muito básico para pegar nossa moeda. No entanto, você notará
que não está realmente completo. Como se não tivéssemos aumentado o total de moedas nem ganhado pontos ou
algo desse tipo. E isso porque precisamos
dedicar algum tempo agora para criar algo conhecido como projeto de controle de
jogador Agora, o
projeto de um controlador de jogador é um projeto
muito básico encontrado em E esse é um plano super
útil para fazer coisas
como armazenar pontos, você, o usuário, armazenar
moedas para você, o usuário vive Ele pode ser usado para pausar
e retomar o jogo, obedecendo ao desejo
de você, o Ele pode ser usado para mostrar o
Hud. Novamente, você, o usuário, o controlador do jogador
serve esse tipo de
relacionamento individual entre você, o usuário e o personagem
que você está controlando Para cada personagem que
você controla, há um plano de
controle de jogador Tudo bem, então Sr. Wonder, esse
projeto de controle de jogador, como criamos um Bem, aqui em nossa pasta de
plantas, plantas no jogo de plataforma, vamos
adicionar outra Vou
clicar com o botão direito em algum espaço vazio. Vamos adicionar uma nova pasta. E vou chamar
essa estrutura porque a planta que
vamos adicionar é chamada de classe de esquemas
de estrutura Esses são projetos muito fundamentais e importantes encontrados
em muitos projetos irreais Vou mergulhar
nessa pasta agora e você poderá ver onde estamos em
nossa estrutura de pastas. Em seguida, vou clicar com o botão direito do
mouse aqui, classe Blueprint. Aqui, queremos usar essa classe principal do Player
Controller. E diz que o
controlador do jogador é um ator responsável
por controlar um peão Esse é um personagem
usado pelo jogador. Vou chamar isso de BP
Underscore Player Controller. Agora, com isso criado, precisamos acessar as configurações
do nosso projeto e dizer nosso projeto para usar esse esquema de controlador de
player Podemos acessar as configurações
do nosso projeto aqui
no canto superior direito. Definimos as configurações do projeto aqui em mapas e modos. No lado esquerdo, escolha se você pode encontrar essa classe de controlador de
jogador. À direita,
podemos escolher esse menu
suspenso em vez do controlador de player
padrão. Vamos usar o
que fizemos sob medida. Agora vamos armazenar
muitos tipos diferentes de
funções e variáveis dentro
do funções e variáveis dentro nosso controlador BP player Então, queremos ter
certeza de que nosso projeto usará isso,
essencialmente, nosso
controlador de jogador BP se
conectará ao nosso personagem em
terceira pessoa Eles
trabalharão em conjunto durante todo o curso
deste projeto Tudo bem, com isso, vamos
voltar ao nosso projeto em si. Vamos escolher salvar tudo. Isso é literalmente tudo o
que queríamos realizar
neste vídeo. Se você receber um diálogo como esse, salve todos os caras que farão
tudo por este. Nos vemos na próxima.
19. Roteiro de captação de moedas #2: Tudo bem, bem-vindos a todos. Neste vídeo,
adicionaremos um script dentro do
nosso controlador de player BP
para totalizar nossas moedas Então, vamos direto ao assunto. Mais uma vez, este é o
Pathway Content Platformer, Blueprint Framework, onde eu tenho esse controlador BP Vamos clicar duas vezes nele
para abri-lo. Se você já viu
isso dizendo que é um blueprint somente de dados, clique aqui para abrir o editor de blueprint completo Agora, dentro desse esquema, não
vamos fazer nenhum trabalho dentro da janela de visualização Não haverá
nada para ver aqui. Tudo isso será
feito no gráfico de eventos. Essa
será a força motriz, se você quiser, para executar algum
script em nosso jogo Isso vai ser fundamental.
E a razão pela qual vamos alojar
esse script dentro do
nosso controle de jogador
é porque, ao contrário um personagem que pode morrer, um controle de jogador
persistirá durante toda a nossa sessão de jogo Tudo bem, a primeira coisa que
eu quero fazer aqui é adicionar algumas variáveis
no painel Meu blueprint, clicando neste botão de adição de
variável O primeiro será chamado
de moedas. O tipo de variável aqui será um número inteiro. Polegadas significam números inteiros porque não teremos
décimos de uma moeda Então eu vou
escrever, clicar aqui, vou duplicar isso, e vou chamar
isso de moedas em vidas Tudo bem, vamos
compilar isso imediatamente para que possamos adicionar alguns valores
padrão para isso Para um número padrão
de vidas no painel de detalhes, vou defini-lo como três para moedas. Vou definir nosso valor padrão. Bem, vamos deixar em zero. Não vamos
começar com nenhuma moeda. Ok, então encontre uma
área vazia em seu gráfico aqui. Você tem muito disso.
Vou clicar e arrastar. E vou adicionar um evento
personalizado imediatamente. Clique com o botão direito do mouse, digite
o evento personalizado. Agora, um evento personalizado é
aquele que você pode
nomear e ele só é acionado
quando você o chama manualmente. Então, vamos
criar o evento personalizado aqui e vamos
chamá-lo daqui a pouco. Vou chamar
esse evento personalizado de moeda porque é isso
que esse
script vai fazer. Então, com esse nó selecionado, deixe-me ampliar aqui. Mantendo pressionada a tecla
de
controle e ampliando o painel de detalhes, adicionarei uma entrada Então clique neste
botão de adição aqui. E a entrada
será chamada de moedas a serem adicionadas, e vamos fazer
esse número inteiro assim Agora, isso é sempre um
pouco enganador. Estamos chamando isso
de entrada e isso está aparecendo no
lado de saída desse nó. Você verá um
pouco por que isso
é chamado de entrada ,
porque quando solicitarmos esse evento personalizado, inseriremos nó o número de
moedas
que desejamos adicionar. Ok, então aqui
está como nosso script fluirá quando
isso for chamado. Vamos
alimentá-lo com uma certa quantidade de moedas para adicionar e vamos arrastar
para fora e
digitar o botão de adição. E vamos
trazer um nó de anúncios, quantas moedas
quisermos adicionar. Vamos adicionar
ao nosso total aqui. Nosso número total de moedas será armazenado
nessa variável, então podemos arrastá-la e soltá-la diretamente
neste pino. Então, vamos inserir uma
certa quantidade de moedas, adicioná-la ao nosso total e queremos fazer disso
essencialmente nosso novo total. No entanto, quero fazer
algumas verificações aqui. Primeiro, vamos verificar
se isso é maior ou igual
ao número 100, porque
concederemos uma vida extra se você exceder esse valor de 100. Vou sair disso nos
dar o
resultado dessa matemática. E vamos
trazer um
maior que igual a n maior igual. Então eu vou sair
disso e
trazer isso para um nó de ramificação. Então, vamos dizer que se nosso total aqui for
maior ou igual a 100, faremos alguma coisa. Se isso for verdade,
faremos algo diferente
se for falso. Agora, se é falso que não
tenhamos chegado a
um valor de 100, o que vamos fazer é
arrastar para fora daqui esse total. Vamos trazer
um nó de fixação. Vamos fixar um número inteiro,
vamos
fixá-lo entre um valor de 0,100. Então, teremos esse fluxo
em um
setter Veja como funciona.
Quando arrastamos nossa variável coins, a
arrastamos assim, podemos obtê-la como fizemos antes ou podemos
configurá-la neste caso, vamos configurá-la,
conectá-la assim, então vamos fazer com que ela
saia da ramificação falsa dessa forma. Agora, só para falar sobre exatamente o que esse script atual
está fazendo. Vamos alimentar uma
certa quantidade de moedas para adicionar. Em seguida,
adicionaremos isso ao nosso número existente de moedas. Vamos
adicioná-los juntos. Descubra se esse número é
maior ou igual a 100. Se for falso que
não seja maior
ou igual a 100, garantiremos que esse total aqui seja um valor 0 a 100. Estamos garantindo que ao configurá-lo como mínimo ou
máximo de 100, esteja em
algum lugar aqui E então vamos
definir isso como nosso valor atualizado da moeda. Então, se fôssemos coletar
uma moeda, pegaríamos uma. Foi adicionado ao nosso
total atual, que é zero. Esse total será um. Não vai ser
maior ou igual a 100. Então, sairemos
dessa ramificação falsa e nosso
total atualizado será um. Ok, em seguida, vamos
lidar com o que acontece se
atingirmos esse limite de
100 moedas Então, vamos mover isso um pouco para
cá. Vamos sair
desse nó de anúncios mais uma vez quando
somarmos esses dois. E desta vez vamos
trazer um nó de subtração, então basta colocar um símbolo de menos E isso nos trará o nó de subtração do
operador aqui. Vamos subtrair 100, observe que temos um nó de anúncios aqui Subtraia o nó aqui. E então também
vamos trazer
outro nó inteiro do grampo Vou selecionar isso, vou fazer o controle D para
duplicar isso imediatamente. E vou pegar
a saída dessa matemática e
inseri-la em nosso valor. Vou deixar o mínimo
e o máximo da seguinte forma. Mais uma vez, garantindo que estamos
dentro desse limite. Isso é apenas para evitar que
qualquer matemática complicada ocorra. Então, mais uma vez, vou
definir o total da minha moeda. Agora veja, esse é
outro truque útil. Você pode arrastar
sua variável de moedas aqui e, se quiser trazer uma
versão setter dela, basta soltá-la em
um pino de saída como este E isso vai trazer
um setter como esse. Isso vai fluir por todo o
caminho de nossa verdadeira filial. Agora, essencialmente, o que
estamos dizendo aqui é se, digamos que tivéssemos 99 moedas aqui, e tivéssemos que adicionar uma, isso seria igual a 100. Então, o que aconteceria é que
aqui diríamos
que sim, é maior ou,
neste caso, igual a 100, então fluiríamos
desse ramo verdadeiro. E então o que faríamos
é se isso fosse 100, subtrairíamos 100, basicamente redefinindo nosso total de
moedas de volta para zero, e então esse será nosso total de moedas
recém-refletido O que estamos fazendo aqui
é que a cada 100 moedas queremos adicionar uma vida. Então, vamos adicionar uma vida, certo? Vou manter pressionado o
controle e rolar roda um pouco para trás, só para ter um
pouco mais de espaço Vou transformar
nossas vidas em variáveis. Agora arraste e solte
aqui. Nós vamos conseguir. E então eu vou
sair disso e digitar incrementos. Agora, esse nó age como um
getter e setter, tudo em um. Na verdade, não precisamos definir nosso número de vidas
como fizemos aqui. O que isso fará
é ceifar nosso número de vidas,
neste caso três. E isso vai ser
adicionado diretamente a ele. Então, eu não preciso fazer isso para aumentar
nosso número de vidas. Só vai fazer isso automaticamente. Então, isso obterá
nosso número de vidas e esse incremento o
configurará para o valor atualizado Obviamente, precisamos
garantir que nosso fluxo de execução realmente
flua para ele. Assim. Então seria bom se nós realmente tocassemos algum tipo de som com isso também. Então, vou usar
esse tipo de música no play Sound two D. Vou apenas trazer
nossas opções aqui embaixo. O som que eu quero tocar
é o nosso som único aqui. Você também pode ajustar o volume
do som. Vou deixar assim, mas você pode configurar isso para cima ou para baixo, se quiser. Vou clicar com o botão esquerdo e arrastar
todo esse script aqui, tocar na tecla e chamarei
isso de meu script de moedas. No painel de detalhes, você
pode definir uma cor comum. Eu geralmente gosto de
configurá-los para algo como preto porque
adiciona um bom contraste. Vamos continuar e
compilar isso para garantir que nosso
script esteja bem Guarde isso. Agora
está tudo bem, exceto que ainda não há nada para realmente lançar esse script de moeda
publicitária. Lembre-se de que, com um evento personalizado, você precisa
dizer manualmente quando iniciar. Então é aí que a próxima
parte disso vai entrar. Novamente, verifique se você
compilou e salvou aqui. Em seguida, vamos
entrar em nosso BP e pegar moedas. Então, encontre seu caminho
dentro deste projeto. O que vamos
fazer é, primeiro voltar
a esse pequeno roteiro em um
pouco de tempo. Mas eu vou
deletar esses dois nós. Marcação do evento,
ator do evento, início, sobreposição. E eu quero sair do
evento e começar a jogar aqui. O que eu quero fazer é criar uma referência
ao nosso controlador
de jogador BP para que eu possa então chamar esse evento personalizado Adicionar
moedas Para fazer isso, vou escrever,
clique no espaço vazio e digite o controlador Get Player. O que vamos fazer então
é arrastar isso e digitar controlador
cast two BP player Gostar. Então,
basicamente estamos dizendo, ok, ao começar a jogar, queremos descobrir se
o controlador do BP player, aquele que definimos nas configurações do
nosso projeto, é o que estamos de fato usando Então, o que podemos fazer aqui é clicar com
o botão direito do mouse nesse pino, clicar com o botão
direito do mouse e
promover isso para uma variável. Ao fazer isso, o que você
notará é que, no meu painel de plantas, você acabou de criar uma
variável de controlador de player que armazenará seu controlador BP
Player Vou apenas encurtar o nome aqui, clique com
o botão direito do mouse. Vou renomeá-lo
como meu Player Controller, que possamos clicar com o botão esquerdo do mouse e
arrastar e tocar na tecla Este será meu
script em que criarei uma referência ao meu
Player Controller que estamos usando
neste projeto. Vou configurar isso
para ser preto imediatamente. Preto como minha alma. Ok, e então
vamos nos
debruçar sobre esta área do nosso projeto E vamos implementar um pouco mais de
script aqui embaixo. Então, vamos continuar e mudar
isso, clicando com o botão esquerdo do mouse e arrastando Então, o que vamos fazer é trazer uma referência ao nosso controle de player e clicar com o botão
esquerdo do mouse e arrastar. Queremos obter isso agora porque temos uma referência
ao nosso controlador de jogador, podemos chamar esse evento personalizado de
moedas de anúncio que existe dentro do
nosso controlador de jogador. Vamos voltar para o nosso BP, pegar a moeda e, do
nosso controle de jogador, vamos digitar as moedas Eu realmente deveria chamar isso de
moedas publicitárias. Na verdade, eu vou fazer isso. Vou clicar no meu evento personalizado de
ad coins aqui nos detalhes. Vou atualizar
isso para adicionar moedas. Vamos compilar isso e salvar. E agora você pode ver
novamente na minha BP pegar moedas que também foram
atualizadas Portanto, observe que esse
nó
chamará esse evento do cliente. Vai
mandar ele disparar. Agora observe que
adicionamos essa entrada, nossas moedas para adicionar aqui de volta
em nossa moeda de coleta da BP Podemos ver que agora está no lado de entrada desse nó. Se for verdade que nosso jogador ou nosso personagem estão
sobrepondo essa esfera, vamos conectar isso Então não perca isso aqui. Certifique-se de sair do
ramal verdadeiro em que você está conectando isso. Então, agora temos que nos
dizer quantas moedas
queremos adicionar? Vou escrever,
clique nessa variável, mas primeiro confira esse truque. Vou colocar o
número um nesse campo. Então eu vou escrever,
clique neste alfinete. Vamos promover
isso para uma variável. Dê uma olhada em nosso painel My
Blueprint. Isso agora é chamado de moedas para adicionar. Tem o mesmo
nome, moedas para adicionar. Se eu compilar nosso blueprint, você pode ver que ele
carregará o valor padrão
que
tínhamos dentro dessa caixa Agora, aqui está outro pequeno bônus. Vamos
marcar esta caixa para nossas moedas adicionem variáveis
à instância Editável Agora, o que isso vai fazer
é nos permitir personalizar quantas moedas
cada moeda vale. Então, se
quiséssemos, poderíamos fazer uma única moeda valer uma moeda, cinco moedas, dez
moedas, etc Dessa forma, será altamente
personalizável. Tudo bem, esse será
o nosso roteiro aqui. Vamos clicar com o botão esquerdo, arrastar, tocar na torre C,
que será chamada de
nosso script de coleta de moedas. Vou clicar aqui mesmo. Clique em OK.
Amplie um pouco aqui. Você pode pausar o vídeo
aqui se precisar. Vamos
compilar e salvar isso. Agora vamos verificar
se isso realmente funciona. Vou voltar ao meu editor de nível
principal aqui. Agora observe que, com minhas moedas
selecionadas aqui no meu nível, vou manter pressionada a tecla Alt, clicar com o botão
esquerdo e arrastar. E eu vou colocar outra
moeda de volta aqui. Posso fazer com que essa
moeda valha a pena, veja meu
painel de detalhes definido como um. Eu posso fazer esse à esquerda. Eu posso fazer com que valha
100 se eu quiser,
para realmente ver esse número sendo exibido
na tela, nosso total de moedas. Na verdade, vamos ajustar
temporariamente nosso script de controle do player. Eventualmente,
mostraremos isso nossa tela por meio de um Hud com aparência mais
oficial Mas o que podemos fazer é
clicar com o botão direito do mouse em algum espaço vazio. Vou trazer um nó de string de
impressão novamente. Eventualmente, vou
me livrar disso, mas vamos fazer isso. Sempre que coletarmos uma moeda, colocarei isso no final. Na verdade, vamos
tirar isso do galho falso. Na ramificação verdadeira, essencialmente, vou conectar
os dois aqui. Vou interromper isso
e colocar um nó de acréscimo. Novamente, tudo isso é temporário. Então, podemos ver esse
cuspir na tela. Vou colocar
moedas, espaço base. Então, dentro do nosso valor B, vou colocar nossa moeda. Arraste isso aqui, moedas, nós vamos pegá-lo,
conectá-lo aqui. Ele vai convertê-lo
de um inteiro em uma string. Vamos continuar e compilar isso. Salve e jogue. Agora você verá que vou
coletar nossa primeira moeda aqui no canto superior
esquerdo da janela de exibição, que diz moedas uma vez mais. Veja o canto superior
esquerdo da minha janela de jogo aqui. Agora, diga moedas mais uma vez, porque
terminamos, fomos de 1 a 101. Só para demonstrar isso,
vou pegar
mais algumas
moedas segurando a tecla Alt, clicando com o botão
esquerdo do mouse e arrastando, tipo “Então, vamos jogar Eu dei uma olhada no canto superior
esquerdo do meu Viewport 123. Agora este vale 100, então eu deveria voltar para três. Tudo bem, e aí está. Concluímos nosso script de
coleta de moedas e o
tornamos altamente personalizável para
que, para
cada instância , cada cópia de nossa moeda, possamos ajustar
a quantidade de moedas
que cada uma vale E se você quisesse fazer isso e torná-lo um pouco
mais claro visualmente, você poderia configurá-lo para
valer dez moedas. Você pode selecionar em
seu painel de detalhes
a malha cilíndrica que
representa nossa moeda. Você pode
trocar o material um material diferente,
talvez uma moeda diferente. Talvez você possa
definir a escala para que toda a coleta
seja maior no geral Assim, você pode
configurá-lo para um valor total de três,
algo assim. E com isso bloqueado, se
você definir um valor como três, ele define todos como três. Então aí está, pessoal, isso vai acabar com este. Nos vemos na próxima.
20. Concorrência de som de captação de moedas: Bem-vindo. Neste vídeo, nosso objetivo é criar um ativo de simultaneidade de som e , em seguida, usá-lo em
nosso script de coleta de moedas para impedir nosso
áudio de coleta de moedas seja
apagado sempre que pegar uma
tonelada de Agora, eu tenho um exemplo configurado aqui em que meu
jogador vai aparecer aqui em cima e descer para coletar
uma tonelada de moedas Então, vou expor o
problema para vocês agora mesmo. Não é ótimo, certo?
Então, para corrigir isso, vamos criar
esse recurso de simultaneidade de som, e eu vou
fazer isso na
pasta de áudio do meu jogo de plataforma ali mesmo Eu fiz um teste antes de
gravar este vídeo. Estou gravando este vídeo bem depois de o curso
ter sido gravado. E vou
clicar com o botão direito do mouse e criar um novo recurso de
simultaneidade de som
clicando em em Concorrência
de áudio e som Vou me livrar desse
alerta da Dell aqui. E então eu vou
renomear isso imediatamente. Se eu selecioná-lo e pressionar F dois, chamarei essa
moeda de sublinhado Cc e, se eu clicar
duas vezes nesse ativo
ou com ele selecionado, basta pressionar a barra de espaço Você verá alguns parâmetros
associados a esse ativo. Agora, basicamente,
o que esse recurso nos
permite
fazer é definir algumas regras em relação a esse tipo
de cenário em que
podemos ter um monte de sons tentando
tocar ao mesmo tempo. E só para mostrar
onde vamos
eventualmente inserir esse recurso
sonoro, vou voltar
ao meu nível aqui. E eu vou
abrir minha planta de moedas. Eu poderia selecionar uma aqui no
meu nível ou no esboço, posso ver que também tenho um monte de moedas aqui embaixo Você pode simplesmente clicar em
Editar BP Coin Pickup. E onde vamos
inserir isso é
em nossa função de reprodução de som TD. Este é o nosso script de coleta de moedas. Se você clicar nesse menu suspenso, aqui
mesmo, ele exibirá mais
parâmetros E uma delas é uma configuração de
simultaneidade. Vou inserir isso imediatamente,
mesmo que não tenhamos feito
nenhuma alteração em nosso ativo de simultaneidade de moedas aqui.
Vá para selecionar isso. é o que eu criei antes de gravar este vídeo. Vou inserir a moeda em
simultâneo. Em que estamos trabalhando. Então, já está encaixado.
Agora vamos voltar ao nosso ativo de
simultaneidade de moedas Dentro daqui, você tem alguns parâmetros com os quais você
pode mexer contagem máxima é o número de sons simultâneos
que podem ser reproduzidos por vez Vou limitar
isso a três,
e chego a esse número por meio de alguns testes de jogo. Então, três é muito bom para esse cenário. Regra de resolução. Isso é para o que acontece quando nossa contagem máxima é atingida e você tem
várias opções aqui. E ao passar o mouse
sobre cada um deles, ele dirá
exatamente o que ele faz. Para testar isso, eu
gosto de parar com o mais antigo. Então, basicamente, se eu ultrapassar
esse número de três, vou parar
o som mais antigo que eu acionei e
vou começar um novo E neste momento de reativação, vou deixar de lado, mas fique à vontade para
mexer nisso também Mais uma vez, a dica da ferramenta mostra exatamente
o que isso faz. Essa é a quantidade
de tempo de espera em segundos entre diferentes
sons para serem reproduzidos. Vou seguir em
frente e salvar isso. E com isso já
inserido na minha moeda de coleta da BP, vou prosseguir
e compilar O roteiro está tudo bem aqui.
Salve isso também, volte para o meu nível. E se eu clicar em Play, você vai ouvir uma experiência
muito diferente Agora você não obtém
aquele cacapone de áudio ,
se quiser, ao jogar Tudo bem, pessoal, isso bastaria para oferecer este. Nos
vemos na próxima.
21. Barra de fogo (parte #1): Bem-vindo. Ao longo
dos próximos vídeos aqui, vamos
criar esse cara,
nosso primeiro
perigo, uma barra de fogo E vamos fazer isso de uma forma
altamente personalizável para que
possamos determinar quando ela é
colocada em nosso editor de níveis, quanto tempo queremos que
essa barra de fogo dure,
quão rápido ela gira, quão rápido ela gira que direção ela gira,
todo esse tipo de Então, vamos direto ao assunto. Tudo bem aqui e Unreal na pasta plantas da
minha plataforma. Vou clicar com o botão direito
em algum espaço vazio. Eu vou escolher a classe de
projeto. Este será um plano de aula de
atores ,
porque será
um modelo que colocaremos no mundo E vou chamar isso de BP
underscore fire bar. Vamos
clicar duas vezes nele para abri-lo. E vamos adicionar alguns
componentes imediatamente. O primeiro que
vou digitar,
caixa, será um componente de colisão de
caixa Vou deixar isso como
o nome da caixa. E eu não vou me preocupar com
a extensão disso
agora, porque vamos calcular
isso dinamicamente por meio algum script de construção que escreveremos aqui no futuro Em seguida, vou selecionar
nossa rota de cena padrão, mais
uma vez porque
quero anexar
esse próximo componente à rota de cena
padrão, essencialmente o
ponto central aqui, não a caixa. Essa será a malha estática de
instância,
não a malha estática instantânea hierárquica A malha estática instantânea, na verdade,
vamos deixá-la de lado. A malha estática instantânea é boa. Poderíamos chamá-la de bola ou
algo desse tipo, mas com isso selecionado
no painel de detalhes, vou transformar nossa malha
estática em uma esfera. Clicando nessa esfera
suspensa, quero uma que seja
chamada simplesmente de esfera. Esse cara aqui
na de 100, bem ali no
meio, diz tamanho
aproximado de
100 por 100 por 100 Está na pasta de formas
básicas do motor. Você pode ver esse
caminho no topo. Esse é o que eu estou procurando. Então, para material,
qualquer coisa para isso serve. Embora eu queira algo
que pareça um pouco chamativo, vou fazer uma busca por M. Underscore Fire underscore 03 É esse
aqui que vem do pacote de efeitos Infinity
Blade Novamente, o material realmente não
importa, mas eu quero algo que
pareça um pouco chamativo. Também adicionaremos isso. Agora, ainda não vemos nenhuma dessas malhas estáticas de
instância. Embora possamos preencher
nossa bola de fogo aqui dinamicamente por meio do script de construção
em pouco tempo Agora, há mais um componente que
eu quero adicionar aqui. Mas antes de fazer isso, esqueci uma coisa que quero
mudar na malha
estática de nossa instância aqui,
rolada para mudar na malha
estática de nossa instância aqui, baixo no painel de detalhes
abaixo
das configurações de colisão e onde diz Vou mudar
isso de bloquear
totalmente dinâmico para sem colisão. O motivo é que
faremos com que nossa caixa seja a única
que verificará a colisão qualquer uma dessas
esferas de instância que formarão essa barra de fogo Eu não quero que nada
colida com isso. Tudo será feito
por meio do nosso colisor de caixas. Tudo bem, em seguida, vou adicionar mais
um componente aqui
no canto superior esquerdo e esse será nosso
componente
de movimento de podridão. Movimento rotativo Esse
será o componente, não
está ligado a nada. É apenas um modelo específico
aqui que vai
girar nossa arma de fogo de
uma forma ou de outra Vou definir a taxa de
rotação
no painel de detalhes para
ter uma taxa
de rotação de 50 no Y. Vou
configurá-la para zero Tudo bem, em seguida,
vamos criar algumas variáveis aqui e vamos
clicar nesse botão de adição. E o primeiro que eu
quero será
chamado de número Flame Ball. Isso vai ser um número inteiro. E isso determinará
quantas dessas bolas
de fogo formarão nossa barra de
braço ou barra de fogo aqui. Também vou,
no painel de detalhes, mudar
algumas coisas. Quero tornar essa
instância editável, para que possamos alterar o
número delas no editor Então, eu também quero definir uma categoria para
isso, para que tenhamos essas poucas variáveis
que vou
criar dentro de uma categoria
em nossa seção de variáveis. Se eu clicar aqui, posso simplesmente sobrescrever onde
diz padrão E eu vou chamar isso,
vou chamar de personalização da barra. Lá vamos nós. Lá vamos nós. Agora você pode ver em
nossa seção de variáveis que
temos uma categoria chamada personalização de
barras E um
número de bola flamejante está
contido nessa categoria.
Com este selecionado. Vou controlar D
nele para duplicá-lo. Essa vai ser
chamada de distância da bola. À parte. Eu quero que isso também seja editável
por instância Definiremos alguns
valores padrão aqui em breve. Vou adicionar
mais uma variável aqui. Este vai se chamar Flame Ball. Isso vai
determinar o tamanho de cada uma dessas bolas de fogo. Vou definir isso como uma variável vetorial
para que possamos determinar o tamanho x, y e z disso. Vou configurá-lo para
ser editável por instância. E confira aqui em nossa categoria, você pode ver que na verdade
não está listado em nossa categoria de personalização de
barras Mas, no
painel de detalhes, posso especificar personalização da
barra clicando no menu suspenso e agora
ela está nessa categoria última variável aqui que
vamos adicionar
será chamada de taxa de rotação. Isso vai ser um rotador. No painel de detalhes,
vou verificar isso. Torne uma instância
editável também, para que possamos personalizar
a taxa de rotação E também vou definir isso para a categoria de
personalização de barras categoria de
personalização de Vamos compilar
isso para que possamos definir alguns valores padrão para o número da
minha bola flamejante Eu vou definir
isso, vamos dizer cinco. Teremos uma barra de
chamas que consiste em cinco, por padrão, uma distância de distância. Vou definir isso como 60,
60 porque esse é um valor que eu
predeterminei com antecedência,
o tamanho da bola flamejante. Vou definir isso para
0,5 em toda a linha. Mais uma vez, eu predetermino
isso com antecedência. A taxa de rotação,
vou fazer com que corresponda à
taxa de rotação que eu tinha no meu movimento rotativo
aqui de 50
no Y. Vou definir que seja 50 no Y
também para essa variável Tudo bem,
vamos salvar isso imediatamente para
não perdermos nenhum trabalho aqui. E então vamos passar
para o nosso roteiro de construção. Vamos colocar
um script aqui em
nosso script de construção
porque isso
mudará a aparência da
nossa Fireball durante o tempo de design, antes de o
jogo realmente rodar Temos algumas coisas legais
que vamos
fazer nesta seção. A primeira coisa que quero
fazer é inserir o número da nossa bola flamejante, arrastar e soltar aqui. Nós vamos conseguir isso. Vamos tirar
isso e subtrair isso Introduza um nó de subtração. Vamos subtrair
isso pelo número um. E você verá o porquê aqui
em pouco tempo. Porque vamos
conectar a saída
disso em um nó de quatro loops Vamos digitar
quatro voltas, não quatro voltas. Com break just four loop, eu realmente quero que isso seja
conectado ao último índice Vou manter pressionado o botão
esquerdo do mouse e arrastá-lo para baixo até
nosso último índice. A razão pela qual estou subtraindo
isso por um é porque estamos começando esse loop
com o número zero Então, vamos dar
uma olhada nisso, queremos realmente adicionar cinco bolas de fogo,
o número cinco. Se começarmos a
contar em zero, precisamos subtrair um, fazendo com que a saída
desse quatro seja 01234 É quantas vezes
vamos passar por isso. Tecnicamente cinco
vezes, mas começando
pelo número zero, ok? Fora desse corpo de loop, vou trazer
um nó de sequência mantendo pressionada a tecla S
e clicando com o botão esquerdo. Vamos trazer uma
sequência porque há várias coisas que
vamos fazer aqui. Vou adicionar
outro pino imediatamente. A primeira coisa que vou
fazer é sair desse índice e
inserir um nó
de multiplicação Toda vez que examinarmos isso, ele exibirá
o número do índice aqui, 0123, etc. E eu quero
multiplicar isso pela distância da nossa bola de fogo Podemos arrastar e soltar isso
aqui desse jeito. Agora, como resultado disso,
vamos nos
conectar, em última análise, a um nó vetorial make Voltaremos a
isso daqui a pouco, mas a primeira parte do
script é que vamos
adicionar instâncias
de nossa bola flamejante. Vou arrastar em nossa
instância uma malha estática. Eram essas bolas de
fogo esféricas, se você quiser. Vou sair
daqui e digitar uma instância. Agora poderíamos
ter feito isso. Agora, ele adicionará outra
cópia dessa instância, malha
estática, da qual eu não preciso. Vou
deletar esse. É só mais uma cópia. Em última análise, o nó da sequência
se conectará aqui. O nó de sequência nos permitirá
fazer várias coisas
praticamente ao mesmo tempo,
sequencialmente, mas
para nossos propósitos, quase ao mesmo Agora vamos especificar onde adicionar uma instância Vamos arrastar isso para trás
e digitar transform, make transform Isso
especificará um local, uma rotação e uma escala. Agora, para a balança,
podemos simplesmente inserir tamanho
da nossa bola flamejante. Essa será a
nossa escala para cada uma
dessas malhas estáticas de instância Vou clicar duas vezes
nesse fio apenas para inserir um
nó de redirecionamento Faça com que pareça um pouco
mais limpo agora para nossa localização. Vou me arrastar para trás
e digitar make vector porque um local
consiste em dados x, y e z. Realmente, eu só quero
especificar a distância aqui na direção,
na direção z. Vou conectar isso diretamente
ao meu Z e ele converterá o valor inteiro que será gerado
aqui em um flutuante, porque esse nó precisa de
uma entrada flutuante como essa Tente
limpar isso um pouco. Ok, essa será
a primeira parte do nosso roteiro aqui. Ok, isso vai
clicar com o botão esquerdo e arrastar, tocar no céu. Eu vou dizer que adicione
instâncias de Flame Ball. Ok, essa é a primeira coisa que
vamos fazer. Vou tentar enquadrar isso, então se você quiser pausar
o vídeo aqui, você pode ver o que isso está fazendo Ok, então se eu
arrastar uma cópia disso, vou compilar
e salvar isso imediatamente. Vou apenas arrastar
uma cópia dessa barra de fogo para o nosso nível, ok? E na verdade, você sabe o que,
deixe-me fazer isso da maneira correta. Vou definir isso para
estar no meu nível principal aqui. Certifique-se de que minhas duas
fotos em D estejam ativadas. OK. Assim, você pode ver mais ou menos
o que parece lá. Então, no painel de detalhes, eu poderia especificar um
número de bolas flamejantes. E você pode ver que vai
se estender para cima, o
que é muito bom Agora, separando a distância da
bola de fogo, eu também poderia definir isso. Você vai ver o
quão dinamicamente podemos fazer isso.
Isso é muito legal. Podemos até mesmo alterar
o tamanho da bola flamejante. Se eu quisesse, eu poderia
mudar isso para 1 e 1.1 Isso vai
torná-lo um pouco maior. Agora, essa taxa de rotação ainda
não fará nada, mas deixe-me definir
tudo isso de volta ao padrão. Você notará aqui que quando eu mudo isso, está
tudo bem, mas vamos verificar
a colisão aqui,
nesta caixa de colisão E isso não está se estendendo para
coincidir com meu número de bolas flamejantes Esse será nosso
próximo roteiro aqui. Vamos voltar para
nossa barra de incêndio BP. O que vamos fazer é
extrair esse resultado aqui e trazer um nó
de divisão. Divida, e vamos
dividir isso pelo número dois. Isso será usado em algumas de nossas contas
para ajustar o tamanho do
nosso componente de caixa aqui. Vamos trazer a caixa aqui, nosso componente de caixa. E então vamos arrastar isso
e digitar a extensão
do set box. Essencialmente, o que
queremos fazer aqui é alterar nossos parâmetros de extensão de caixa aqui
mesmo por meio de um script. Ok, traga isso. Também vamos
arrastar esse tipo na localização relativa definida. A caixa será nosso
alvo para ambos. Ok, quanto à localização da nossa caixa, vou arrastar para trás
a partir da nova localização e digitar make vector Então, vou pegar o resultado dessa matemática aqui e
inseri-lo em nosso valor. Vamos garantir que conectemos esse
nó de sequência
imediatamente para realmente fazer com que
esse script seja acionado. Agora, realmente não importa se conectarmos isso aqui primeiro, mas queremos que
ambos sejam acionados. Certifique-se de que não importa
se você coloca este ou aquele
primeiro, ok. Em seguida, também queremos especificar um vetor make
para a extensão da nossa caixa. Vamos digitar make vector aqui. Vamos
pegar o resultado
dessa mesma matemática que podemos
extrair da mesma saída. Vamos conectar
isso ao nosso Z e vamos mudar nosso
X para um valor revestido de dez e um Y de 50. Vamos compilar
e dizer isso mais uma vez. Agora, se olharmos para trás
em nosso editor de níveis, você verá que esse
trecho de script realmente
estenderá nossa caixa de colisão Você pode vê-lo
meio que cortando todas as bolas
dinamicamente, de modo que
se eu aumentasse,
digamos, o número da bola flamejante aqui, você pudesse ver que aquela caixa também
está se ajustando Agora, novamente, vou
manter isso fino, mas se eu
contornar esse ângulo,
você pode ver que estou tornando isso
um pouco mais grosso a partir dessa visão de viagem para
que ele não perca nosso jogador quando tentar
colidir com Ok, mais um
script que
temos que fazer em nosso BP Fireball. Volte para lá. O que vamos fazer é
personalizar nossa taxa de rotação. Deixe-me
clicar com o botão esquerdo em todos esses nós,
mantendo pressionado o controle. Vou
puxar para o lado, apertar a tecla C aqui e vou chamar essa caixa de tamanho de extensão como Então, mova isso para cá. Ok, então vamos trazer nosso componente de movimento
rotativo. Vamos arrastar isso para dentro. Vamos parar com isso, vamos digitar a taxa
de rotação definida. Essencialmente, o que
queremos fazer com esse
componente de movimento rotativo é ajustar manualmente
nossa taxa de rotação Agora, atualmente, temos nossa variável de taxa de
rotação. Vamos arrastar e soltar
isso diretamente nesse conjunto de nós com
exatamente o mesmo valor, mas como tornamos essa instância
variável editável, podemos ajustá-la por
instância dessa barra flamejante Isso vai ser muito bom, então vamos
clicar com o botão esquerdo para destacar isso. E vou chamar isso de “
permitir uma taxa de rotação personalizada em nosso script final será
mais ou menos assim. Vou tentar enquadrar
tudo assim. Tudo bem, vamos
compilar isso e salvar. Vamos trazer algumas dessas barras
de fogo aqui. Vou segurar a tecla Alt, clicar com o botão
esquerdo e arrastar para
a segunda aqui. Eu só vou fazer com que
o número de chamas seja dez. Vou mudar a taxa de rotação. Vamos para menos 100. Então, ele estará indo
na direção oposta e
um pouco mais rápido. Agora, se eu fosse
entrar e jogar, você pode ver que
temos duas barras de fogo girando em direções opostas Na verdade, eles ainda não fazem
nada comigo, mas estão girando
conforme o esperado Eles estão girando
em ritmos diferentes, têm
comprimentos diferentes, etc. Então, temos um
ótimo começo para nosso projeto de barra de chamas Agora, mais trabalho a ser feito aqui , pois realmente fazemos com que
isso afete nosso jogador. Mas pessoal, isso vai
fazer tudo por esse. Nos vemos na próxima.
22. Barra de fogo (parte #2): Tudo bem, bem-vindos de
volta a todos. Agora temos nossa
barra de fogo BP e ela gira, mas na verdade não
causa danos aos nossos jogadores Então, a segunda parte
aqui abordará isso. Vamos criar um
script para danificar nosso jogador. Para isso,
vamos mergulhar em nossa pasta de terceira pessoa aqui. Desenhos em terceira pessoa do nosso
BP, personagem em terceira pessoa. Vamos clicar duas vezes nesse cara para abri-lo. A primeira coisa que quero
fazer é selecionar meu Eu. Vou entrar na minha guia
Viewport para que possamos realmente
ver nosso personagem E eu vou mudar o material de
nossos personagens aqui no painel de detalhes,
aqui temos materiais, temos um elemento
zero e um elemento. Eles correspondem a
diferentes aspectos desse código de pintura. O visual do nosso Me
one é para o logotipo no meio e o resto é
essencialmente para essa armadura, se você quiser Vou mudar o
elemento zero aqui para azul. E compartilhar azul, algo azul
puro assim. Ok, o que vamos
fazer aqui é quando nosso
personagem for danificado, simplesmente
trocaremos esse material Basta um simples interruptor visual
para ajudar a indicar que sim, nosso player foi danificado. Tudo bem, em seguida,
vamos ao nosso gráfico de eventos e
vamos adicionar um evento personalizado. Vamos clicar com o botão direito do mouse
em algum espaço vazio digitar adicionar um evento personalizado. E vamos chamar
isso de Just hit Points. E com isso selecionado no painel
de detalhes, adicionaremos uma entrada, clicando neste botão de adição. E vamos chamar
isso de modificador de pontos de vida. E eu vou mudar
isso de um lingote
para um inteiro que
é um número inteiro Em seguida, vamos
criar uma variável, no painel de detalhes
aqui, criar uma variável. Isso
será chamado simplesmente de pontos de vida. Eu vou mudar o
tipo aqui para ser um número inteiro, isso vai
ser um número inteiro Vou compilar
meu plano aqui e vou alterar
o valor padrão para 22 pontos de vida para
começarmos Tudo bem, vamos criar um script aqui e
vamos fazer algumas coisas com base no número de pontos de vida que nosso personagem tem. Então, vamos mover isso para
o lado aqui. Vamos encerrar
nosso evento de ajuste de pontos de vida para
clientes. E vamos trazer um
nó de sequência. Um nó de sequência porque
faremos algumas coisas com esse evento personalizado quando ele finalmente for chamado. Tudo bem, a primeira coisa que
vamos fazer é retirar
nosso modificador de pontos e qualquer número que eventualmente
passarmos pela chamada
desse evento personalizado Vamos adicionar isso, vamos adicionar
isso aos nossos pontos de vida que nosso jogador terá
atualmente. Arraste e solte isso
aí mesmo. Em seguida, vamos pegar essa matemática resultante e
vamos corrigir isso Vamos
fixar esse número inteiro entre um valor zero e um máximo de dois para garantir que nossa matemática aqui nunca
saia desses limites Em seguida, vamos colocar isso de
volta em nossos pontos de vida. Vamos definir
nossos pontos de vida. Se eu arrastar e soltar meus
pontos de vida nesse valor de retorno, ele trará um setter Faremos isso com nosso
pino zero, então. Ok, então o que vamos
fazer
é sair disso e trazer
um nó igual. Vamos descobrir se nossos
pontos de vida são iguais a zero. E eu vou
trazer um galho, como se nossos pontos vida fossem iguais a zero,
faremos alguma coisa. E se não for igual a zero, faremos outra
coisa. Se for igual a zero, tudo o que queremos fazer é arrastar o
galho verdadeiro e digitar o ator
de destruição com o
alvo sendo nós mesmos. Basicamente, quando você atingir zero pontos de vida,
destrua a si mesmo Você está pronto. Tchau tchau. Agora, se não
atingimos zero pontos de vida, o que queremos fazer é
mudar nossa malha, nossa malha é material. Este material está
associado a essa malha. Ok, observe que isso
está no elemento zero. Esse elemento azul é zero. Nossos braços e pernas aqui. Está bem? Então, vamos
arrastar uma referência à nossa malha. Arraste e solte o que eu
vou arrastar para fora daqui. E eu vou
digitar o material do set. Se for falso que
nossos pontos de vida não sejam, vamos mudar o elemento zero da nossa malha, elemento zero. Vamos mudar
o material
disso para outra cor. Agora, qual outra cor
vai depender quantos pontos do quadril ainda
nos restam. Vamos usar um nó de
seleção para isso, e esse é um dos
nós mais legais em
todos os scripts de blueprint Vou arrastar para
trás e digitar Selecionar Veja como esse
nó
funcionará com base em
algum número de índice, neste caso, nosso
número de pontos de vida Vamos conectar
isso aqui mesmo. Vamos escolher
um material diferente. Se isso for zero, vamos
mudar nossa opção. Se for zero, fique vermelho. Vou digitar anum red para encontrar um material vermelho reto Se nosso índice de entrada, o número de pontos de vida, for um, vamos mudar
isso para um verde de compartilhamento Vamos adicionar mais um
pino aqui na opção dois. Se nossa quantidade de pontos no quadril
for dois,
ele escolherá, produzirá o material associado à opção dois aqui. E esse
será nosso anum blue. Com base em qualquer que seja
esse índice de entrada, exibiremos a opção
associada 01 ou duas Se o índice for zero, ele exibirá esse anum neste material para alterar
nosso material de mensagem Se for um, ele produzirá
este. Se o índice for dois, ele produzirá o
material associado a isso. Muito legal. A seguir, vamos lidar com alguns dos efeitos
sonoros associados à obtenção
ou perda de um ponto de vida. Então, o que vamos fazer
é
voltar aqui até nosso modificador de
pontos E vamos sair
disso, vou trazer
um nodo maior que. Vamos dizer que se esse modificador de pontos de vida
recebidos for maior que zero, se for esse o caso, vamos trazer outra Então, vamos
garantir que nossa então única
dor da sequência, serpenteie aqui embaixo Se isso for verdade,
vamos tocar um som para sair
daqui e digitar play. Sound Two D. O som que vamos
tocar para isso será um som de power up. Clique aqui,
no menu suspenso, digite power up, Mario power up. Você pode clicar
aqui e ajustar o volume, se quiser. Eu vou derrubar isso. OK. Se for falso que não
seja maior que zero, vamos conectar isso a
outra ramificação que usaremos. Ok, volte
aqui para dizer que, se
ganharmos um ponto de vida, basicamente tocaremos
um arrasto sonoro de
power-up para fora daqui, mais
uma vez, o modificador
Hitpoints E vamos trazer um
nó menor que. Vamos dizer que se
for menor que zero, significa que fomos atingidos, estamos subtraindo um Essencialmente, vamos conectar
isso a um
nó E e a um booleano Também vamos verificar
outra condição aqui. Se ambos forem verdadeiros,
vamos pegar
nossos pontos de vida,
arrastá-los para dentro,
vamos pegá-los, depois vamos
arrastar para fora daqui e digitar não igual,
não igual a zero E então vamos conectar
isso ao nosso nó de ramificação. Em seguida, vamos sair da nossa verdadeira filial aqui e
trazer outra peça. Soe para D. Para isso, aí está, Mario Warp.
Vamos continuar com isso. Agora, basicamente, o que
esse trecho de script está dizendo aqui é que se
perdemos um ponto de vida, ou
seja, é menor que zero, perdemos um ponto de vida em nossa quantidade atual de
pontos de vida não é zero, significa que temos pelo menos
um ponto de vida restante Se ambas forem verdadeiras, vamos tocar esse tipo de efeito sonoro negativo,
esse som
de Mario Warp Deixe-me ir em frente
e ir direto ao assunto. E a maneira como eu
pulo para isso é que eu simplesmente cliquei nessa
lupa ali Ele vai navegar
até esse ativo, e aqui está, para que você possa
ver como isso soa. Ok, deixe-me
voltar aqui um pouco. Vou tentar
emoldurar tudo isso. Certifique-se de ter examinado
todos esses nós com cuidado. Garantir que você tenha
os valores corretos
nos campos corretos,
é fácil cometer um erro aqui. Então, analise isso com cuidado e, em
seguida, vamos
compilar esse script E salve-o.
Vamos clicar com o botão esquerdo do mouse e arrastar
todos esses nós também. Vou tocar na tecla C para que possamos adicionar um
comentário sobre isso. E vou chamar isso de
meu script de modificação de pontos de vida. E eu vou compilar e
salvar isso mais uma vez. Ok, está tudo bem
, mas, mais uma vez, esse evento personalizado
precisa ser informado de quando começar. Então, vamos examinar nossas plantas de barra de fogo para
trabalhar um pouco mais Agora posso navegar por
isso acessando nossa pasta de plantas e clicando
duas vezes nela dessa forma No entanto, você também pode
acessá-lo aqui no Outliner. Se você a
colocou em seu nível, clique em editar, BP, barra de
fogo, qualquer uma delas serve Isso o abrirá imediatamente. Agora, o que queremos fazer é começar na seção de
variáveis, vamos adicionar mais
algumas variáveis. Clique nesse botão de adição. O primeiro que vamos
adicionar será chamado Pontos, Ajustes ao Jogador. E você pode ver que,
a cada mudança nosso
script de construção é acionado, porque ele será
acionado com qualquer alteração. Vamos fazer
disso um número inteiro. Vamos adicionar
outro imediatamente. Isso será chamado de velocidade de acerto
do jogador. Isso vai ser um vetor. Então, o terceiro que
vamos adicionar será chamado de hit down. Você verá para que tudo isso é usado em pouco tempo. Vou mudar isso
para um valor flutuante. Vou compilar
isso imediatamente. Então eu posso adicionar alguns valores
padrão para isso, nosso ajuste de ponto de vida. Vamos começar com aquele
cara. Vamos definir isso como menos um. Essencialmente, quando você for atingido, você perderá um
ponto de vida aqui, menos um. Ok, para o nosso jogador acerte a velocidade. Vamos
prosseguir e selecionar isso. Vou tornar essa
instância comestível caso queira alterar isso
no editor E vou
mudar a velocidade de
acerto do jogador para 500 Essencialmente, isso fará com que o jogador apareça um
pouco quando for atingido. Essa é a ideia,
é que eles sejam atingidos e o jogador apareça um
pouco Então, este último,
nosso hit, esfrie, vou mudá-lo
para 1,0 e isso será essencialmente
1,0 segundo. Tudo bem, novamente, com
qualquer mudança, novamente, você viu meu
roteiro de construção sendo acionado Porque é aí que o script
de construção acionado no momento do projeto. Sempre que alguma alteração for
feita em seu plano, vou sair daqui
e acessar nosso gráfico de eventos
porque é aqui que queremos que o script de tempo de
execução seja acionado Agora, o que queremos fazer
é que algo
aconteça quando sobrepomos essa caixa Você lembra que nossa caixa é
essa caixa aqui, caixa
invisível que não podemos
ver enquanto
jogamos conosco. Clicando com o botão direito do mouse
nesse componente, podemos adicionar um
evento em Begin overlap Isso nos levará de
volta ao gráfico de eventos. O que queremos fazer
é verificar se o outro ator era
nosso personagem de jogador. A partir daqui, você pode transmitir BP em
terceira pessoa em terceira pessoa. Você pode adicionar esse nó dessa forma e, em seguida, continuar o
script dessa forma. No entanto, vou usar
um método diferente
caso eu queira mudar o personagem
que estou usando. Vou sair do outro tipo de
ator
no sinal de igual e ver se isso
é simplesmente igual ao nosso nó de obtenção de personagem de
jogador Dessa forma,
realmente não importa qual modelo de personagem eu estou usando que
reflita meu personagem de jogador Ok, o que eu quero
fazer se isso for igual? Vou levar isso para um nó de
ramificação. Se forem iguais, é
verdade que são iguais. Vou sair
daqui em Do uma vez. O que eu quero fazer uma vez? Bem, o que eu quero fazer é ajustar a quantidade de
pontos de vida que nosso
jogador terá. Agora, mais uma vez em nosso BP, personagem em
terceira pessoa, eu tenho esse evento personalizado chamado
just hit points Então, eu gostaria de
pedir que isso acontecesse. Agora eu cometi um erro aqui
ao tentar adotar essa abordagem. Porque se eu
saísse disso,
pegasse o personagem do jogador e
digitasse ajustar pontos de
vida, não
conseguiria encontrá-lo para
poder realmente usar esse método,
além de acessar esse evento personalizado de ajuste de
pontos de vida. Então, neste caso,
terei que
arrastar meu elenco de
outros atores para
meu personagem de terceira pessoa da BP, porque
meu
personagem em terceira pessoa
é aquele que tem esse
evento personalizado de pontos de vida dentro dele Lá você me viu
cometendo um erro em tempo
real e eu ajustando
em tempo real Ok, isso é o que eu quero fazer. Quando eu quiser chamar
esse evento personalizado, vou clicar duas vezes nele para abrir um nó vermelho. Agora vou ajustar isso até. Meu ajuste do ponto do quadril
para a variável do jogador. Vou conectar isso. Então eu vou sair
daqui
mais uma vez e digitar o movimento do
personagem. Agora, esse é um componente, esse componente de movimento
do personagem que vive no meu personagem em terceira
pessoa, esse componente de
movimento do personagem. Agora, aqui dentro, há um parâmetro para a velocidade.
Eu vou procurá-lo. Velocidade, velocidade, que será atualizada à medida nosso personagem se move
pelo nível Eu quero ajustar a velocidade
dos personagens. Se eu sair daqui, posso digitar a velocidade definida Isso trará um nó
setter como esse. A quantidade que eu gostaria de
ajustar essa velocidade
será
determinada pela
variável de velocidade de
acerto do nosso jogador aqui determinada pela
variável de velocidade de
acerto do nosso jogador variável de velocidade de
acerto Você pode conectar isso assim. Então, a última coisa que
quero fazer aqui é inserir um
nó de atraso. Eu vou sair daqui. Introduza um nó de atraso. Vou atrasar nosso
tempo de resfriamento. Colocando esse nó para cima
e este para baixo. Portanto, atualmente, isso tem
um valor de 1 segundo. Vou fazer isso para
que, em seguida,
reiniciemos nosso nó único Então, basicamente, haverá uma pausa de 1 segundo entre o momento em que nossa bola de fogo pode danificar o
jogador ao chamar isso, ajustar os pontos do quadril para que
nosso jogador se levante um pouco
e quando ela poderá fazer isso
novamente para que isso não
aconteça, e quando ela poderá fazer isso
novamente para que isso não como acontece a cada centésimo
de segundo Tudo bem, com isso,
vamos clicar com o botão esquerdo e arrastar. Vou tocar na tecla C. Vou chamar
isso de atropelamento por barra de fogo. Vou compilar esse
script, vou salvar. E então eu vou
entrar e jogar. Vamos ver o que acontece. Tudo bem, nosso personagem
está atualmente azul. Eles têm dois pontos de vida. Eu vou ser atingido uma vez, coloquei meu personagem um pouco
acima, ele mudou para um
ponto de vida representado por Green. Eu vou ser atingido
novamente, bam, morto. Essa é a sua visão quando você
está morto. Não se preocupe Vamos mudar a sequência da
morte mais tarde. Mas isso indica a morte
de um jogador. Agora, se você está recebendo
um erro como esse, isso faz todo o sentido. Porque o que está acontecendo aqui é dizer que está tentando acessar nossa velocidade definida,
mas não acessa nenhuma O que aconteceu aqui, em nosso personagem em terceira pessoa aqui, é que estávamos tentando
ajustar nossos pontos de vida. E lembre-se de que isso está sendo
chamado do nosso bar de bombeiros. Estávamos tentando nos ajustar aos
pontos de vida e isso
nos reduziu a zero. Então, no momento em que estamos
tentando ajustar a velocidade, nosso personagem
já se
despediu por meio desse trecho de
script aqui Então nosso personagem é destruído. Está tentando
chegar aqui dizendo: “Ei, ajuste-se à velocidade, não consigo Então, como você pode
consertar isso? Bem, você pode tentar trocar
o pedido aqui Então, vamos tentar fazer
isso aqui rapidamente. Vamos abrir
o player primeiro. Vou tentar desembaraçar
esses fios um
pouco para que tenhamos uma configuração que
se pareça um
pouco mais com esta Na verdade, posso deletar isso, isso pode ser conectado
diretamente a ele dessa forma. Tudo bem, se eu compilar novamente, vamos tentar e
ver se obtemos esse erro Atingido no segundo golpe, estamos mortos. Vou clicar em Escape e não
receberemos mais esse
erro porque agora
estamos matando o jogador
depois de ajustarmos essa velocidade Tudo bem, pessoal,
aí está? Isso vai
valer para este C quando for para o próximo
23. Layout de HUD: Bem-vindo. Então, agora que
estamos chegando a um ponto em nosso projeto em que
temos algumas coisas para coletar, como moedas, temos algumas vidas que podemos perder ou ganhar. Vamos adicionar um Hud ao nosso
jogo, um heads-up display. Então, se você não está familiarizado
com o que é um Hud, é esse tipo de informação
que é exibida
na tela
enquanto
você joga e , embora não estejamos criando exatamente
isso, será
algo assim E você vai poder
ajustar isso ao seu gosto. Mas só para dar
uma prévia que,
essencialmente, vamos
tentar criar Tudo bem, de volta aqui no
Unreal, vamos começar. Vamos criar
uma pasta totalmente nova em nossa plataforma ou pasta. Então, vamos clicar com o botão
direito do mouse em adicionar nova pasta. Vamos chamar isso
de dentro da nossa pasta de interface de usuário, vamos criar
um novo ativo clicando com o botão
direito do mouse e abaixo
da opção de interface do usuário. Neste menu suspenso, vamos escolher um modelo de widget Agora, os esquemas de widgets são
ativos que você deseja
criar para criar telas de menu ou
Hud de jogo Você só tem uma opção de classe
principal aqui que está na seção
comum, então escolha essa
opção no widget do usuário, seremos
solicitados a fornecer um nome Vou fazer isso um
pouco maior. Mantendo pressionado o controle
e rolando para cima. Vou chamar
isso de WBP para Widget,
Blueprint, underscore, Blueprint E então vamos clicar duas vezes
sobre isso para abri-lo. Agora, o que você vê à sua
frente neste espaço em branco, vou segurar o botão direito do mouse e fazer uma
espécie de deslocamento. Essa é a nossa visão de designer. Isso é o que realmente veremos
e usaremos para criar
nosso layout Hud Agora, atualmente, não temos nenhum widget aqui ocupando
nossa guia de designer Então, vamos
mudar isso. Ao adicionar nosso primeiro widget
no painel da paleta, podemos encontrar uma
lista completa de E você pode expandir qualquer uma
dessas categorias para encontrar uma grande variedade de extras. Agora eu tenho um curso totalmente
separado que aborda tudo isso em grande
profundidade. Não vou entrar em detalhes
sobre tudo isso, vou apenas fazer o que
precisamos fazer e seguir em frente. Mas um curso de interface de personagem em Unreal é o
nome desse curso Se você quiser se
aprofundar como aprender a
usar todas essas coisas. O primeiro widget
que vou adicionar à nossa guia de designer aqui é
chamado de painel de tela Agora, um painel de tela, e eu posso adicionar um deles
simplesmente arrastando-o e soltando-o em
nossa visualização de designer Aqui está essencialmente uma espécie de prancha de
aderência. Portanto, se você estiver familiarizado
com a placa de aderência, poderá fixar coisas nela E é basicamente
assim que isso vai funcionar. Vamos fixar,
adicionar
outros widgets para complementar isso no topo do nosso quadro
de aderência Agora, atualmente, nossa escala
aqui é 16 por nove, que podemos ver
no canto inferior esquerdo. Mas se você quiser
alterar seu dispositivo, o tamanho da tela aqui, é
assim
que você faz isso para telefones, tablets, laptops, etc Vou deixar isso
inalterado porque
gosto dessa proporção de 16 por
nove Agora você notará
que depois de adicionar esse painel de tela
à nossa visualização de design, ele também o adicionou à nossa
hierarquia Nosso painel de tela
será nosso componente básico aqui. Nós vamos
adicionar coisas a ele. Vamos limpar
nosso painel de tela e adicionar nosso segundo widget aqui E essa será uma imagem aqui
na seção comum. Vou simplesmente
arrastar e soltar uma imagem em nossa visão de designer. Vou colocá-lo
em algum lugar no canto superior esquerdo aqui. Este pequeno
ícone de flor, se você quiser. Isso mostrará o ponto de
ancoragem desse widget. Então, ele tentará manter esse widget de imagem ancorado na parte superior esquerda
da tela Agora vou
renomear isso imediatamente. E eu posso fazer isso selecionando aqui e pressionando dois. Como alternativa, com esse widget selecionado no painel de detalhes, você pode alterá-lo
logo na parte superior Chame isso. Essa vai
ser uma pequena imagem de Mario. E só um pouquinho, deixe-me
adicionar meu segundo widget aqui. Meu segundo widget será
um widget de texto. Não é um texto rico, mas simplesmente. Vou
colocá-lo aqui mesmo. Mais uma vez, vou
renomear isso, vou renomear o widget X do meu
personagem Isso vai ser simplesmente um símbolo do tipo
multiplicação, então é por isso que eu o estou
chamando de caractere x. Então eu vou prosseguir e trazer outro widget de texto E eu vou arrastá-lo e
soltá-lo aqui. Não sou muito exigente
com o posicionamento porque vou
ajustá-lo aqui
daqui a pouco E eu vou chamar
isso clicando dois neste widget ao vivo do
meu personagem Agora vou selecionar minha primeira
imagem de personagem, widget aqui E vou
entrar no painel de detalhes e mudar alguma coisa. A primeira coisa que
vou mudar é a localização exata disso. Vou ampliar isso mantendo
pressionado o controle e usando
minha roda de rolagem. Botão direito do mouse
para se deslocar. No painel de detalhes, tenho meu ponto de ancoragem definido na
âncora superior esquerda Isso é o que é por padrão. Então, essas posições x
e y serão
relativas a esse ponto de ancoragem A posição x que vou
definir aqui será 24. E a posição y também será 24. A direção
x positiva será para
a direita e a
direção y positiva será para baixo a partir dela. Ok, em seguida, vou
definir uma imagem seção de imagem do
pincel de aparência. Eu posso escolher uma imagem
clicando neste menu suspenso. E eu tenho sublinhado super. Eu quero escolher isso,
Super Mario pulando. Agora, você deve ter importado essa textura logo
no início do núcleo. Então é aí que eu
estou entendendo isso, obviamente coloque a imagem
que você quiser. Porém, se você estiver jogando
em casa, vou aumentar o
tamanho dessa imagem de 32, 32 para 80, 80. Isso vai aumentar
um pouco. Agora você realmente não viu
nada mudar aqui. No entanto, se eu alterar
esse tamanho para conteúdo, na verdade, ele aumentará o tamanho
para ajustar o tamanho da imagem. Ainda um pouco exagerado aqui, você pode ajustar
isso ao seu gosto Mas vou dizer que é
bom o suficiente por enquanto. Em seguida, para meu componente
X de personagem aqui, esse widget de texto,
vou mudar algumas
coisas sobre isso Primeiro, começando
com a posição X, vou mudar
isso para um oh dois, na posição y para 60. Vou mudar
o texto desse bloco de texto para simplesmente
ser um x minúsculo. Isso funcionará como
meu símbolo de multiplicação Pressione enter
para ver essa mudança. E então eu vou descer
para
a seção de fontes de aparência, porque eu quero mudar
a família de fontes. Eu não quero Roboto aqui. Em vez disso, quero essa
nova fonte Supermarrio. E essa foi uma fonte que
importamos logo no início do curso. É aí que você pode encontrar isso. Eu incluí algumas outras fontes nessa importação no
início do curso. Então você pode mudar
isso. Você também pode explorar alguns desses
outros tipos de fonte. Mas eu gosto muito dessa nova fonte Super
Mario. Ok, eu também vou
mudar o tamanho dele aqui. Vou alterá-lo para 30
e, em seguida,
adicionarei um esboço a ele Deixe-me ampliar isso porque
o contorno é um
pouco difícil de ver Mas as configurações do contorno, vou mudar
para duas, e posso ver um pequeno contorno preto ao redor que
parece muito bom E também clicarei nesse
tamanho na caixa de conteúdo. E o que isso vai
fazer é mudar esse tipo de seletor aqui para contorná-lo
bem, assim Tudo bem, em seguida,
vou escolher o componente de vida do
meu personagem. Eu poderia selecioná-lo
aqui na minha hierarquia ou posso selecioná-lo aqui
na minha revisão de design De qualquer forma, vamos
selecioná-lo para a posição X. Para isso, vou
mudar isso para 130 e a posição y, vou mudar isso para 32. O que vou
fazer então é mudar a família de fontes para
o novo Super Mario. Vou mudar o tamanho
para 50, muito maior. Isso vai
cair aqui. Também vou adicionar um
esboço a isso. O tamanho do contorno
definirá isso como dois. Agora, em vez de
dizer bloco de texto, vou mudar para
um valor de 99 por enquanto. Como isso serve para
representar nosso número de vidas, esse é apenas um valor
reservado Eventualmente, vamos vincular esse VS Code para realmente representar quantas vidas nosso
personagem terá Agora, outra coisa que eu quero
fazer aqui é adicionar um pouco de
sombra projetada a isso. Posso adicionar uma sombra projetada
a isso entrando minha configuração de cor de sombra, na
seção de aparência aqui. Vou clicar nessa barra de
cores aqui. E eu vou
mudar o valor R, que é o valor vermelho para um. O valor, esse também é o valor
alfa de um. O valor, o valor alfa, vai 1 a 00 significa que você não pode vê-lo Um significa que
é totalmente opaco. Em algum lugar no meio,
cerca de 0,5
significaria algo como se você pudesse ver
parcialmente através dele. Você poderia mexer
com isso, mas eu gosto dessa cor avermelhada Atualmente, não vemos
nada aqui porque precisamos
ajustar nosso deslocamento de sombra projetada Então, vou definir isso
para ser quatro no X, depois cinco no Y, e agora você pode ver um
pouco de sombra projetada lá. Agora, este é um pequeno toque agradável, podemos aplicar contorno à
sombra projetada marcando esta
caixa. Então, verifique isso. Ao fazer isso, também adicionamos um contorno preto ao redor
dessa sombra Agora também, para agrupar esse seletor aqui
em torno do nosso valor aqui, vou apenas verificar
esse tamanho em relação ao conteúdo Então, opa, lá vamos nós. Ele vai ajustá-lo
ao tamanho da nossa fonte. E isso parece muito bom. Tudo bem, depois de usar um
pequeno atalho, vou selecionar todos esses
três widgets Então, vou manter
pressionada a seleção de controle. Eu tenho todos
os três selecionados aqui. Vou clicar com o
botão direito do mouse sobre eles. Vou copiar todos eles. Em seguida, vou
selecionar meu painel de tela e clicar com o botão direito do mouse. E então eu vou
colá-los uma vez. E então eu vou selecionar
meu painel de tela novamente, e vou
colá-los duas vezes. Essencialmente, tenho texto com imagem. Na verdade, eu quero
encomendá-los novamente. Vou tirar minha vida aqui e vou parar com isso. Se você arrastá-lo e soltá-lo, poderá movê-lo para baixo,
como para reordená-lo Não vou me
preocupar em ser perfeito com eles por enquanto. Eles estão todos confusos. Mas vamos
reposicioná-los
daqui a pouco para reordenar
tudo o que fiz aqui Pegamos aquele cara,
deixe-me arrastar isso para lá. E eu tenho mais um desses. Vou arrastar
isso para baixo desse jeito. Ok, então temos
duas imagens de texto,
duas imagens de texto, dois textos. Ok, vamos
começar a renomeá-los. E eu vou começar com
essa imagem aqui. Atualmente, está ao
lado do Hud aqui, porque esse
painel de tela representa a tela Atualmente, isso está
de lado. Vou renomear
isso clicando
em dois em vez da imagem do
personagem Esta será a imagem da moeda para esse componente específico. Vou ancorar isso
no canto superior esquerdo, tudo bem. Mas eu vou mudar a
posição x para isso para 52 e a posição y para 120. Essencialmente, isso
vai ficar um pouco abaixo de Mario aqui. Vou mudar a
imagem do nosso Mario pulando para uma moeda de sublinhado Para isso, vou usar
a moeda retrô porque
não? Algo parecido. Vou ajustar
o tamanho aqui para ser 50,50 algo assim Eu digo que isso é muito bom. Em seguida, abaixo,
em vez do caractere X, só para manter nossos
nomes corretos aqui, vou citar dois sobre isso. E isso vai
ser chamado de moeda X. E para ajustar a
posição disso, vamos com
uma posição x de 12 e uma posição y de 124 Como eu
criei o resto
desses parâmetros e defini a fonte, o contorno, etc., o contorno, etc.,
antes de duplicá-los,
ele os
transferiu para este também É por isso que defini todas essas configurações
antes de duplicá-las, porque ao
duplicá-las, todas essas configurações
aparecem durante o passeio Muito bom, certo. Em seguida, vou selecionar a imagem ao vivo do
nosso personagem,
essa duplicada Vou renomear isso
em vez do personagem Lives, vou chamar
essas moedas de valor Esse
será o número de moedas que estamos segurando. Vou mudar a
posição x para 130, a posição Y para 100. Vou ficar feliz com todas essas configurações,
e com certeza vamos deixar isso. Em vez de 99, vamos
mudar para zero porque, por padrão,
vamos começar
com zero moedas. Tudo bem, nossa próxima imagem aqui, vamos renomeá-la a partir da imagem dois do
personagem,
atingindo dois na imagem do cronômetro Com esse cara selecionado. Vou mudar os pontos
de ancoragem. Vou apenas ampliar um pouco aqui. Vou mudar a
âncora no painel de detalhes para ficar
no meio superior, assim E então eu vou
mudar a posição x para zero e a posição y. Vou
reduzir isso um pouco, eu não sei, vamos para
24. Algo parecido. E agora você pode ver que, como
a posição x é zero, ela está essencialmente
alinhada com aquele canto superior. Vou alterar
o alinhamento aqui para 0,5 no x. E isso basicamente
dividirá a diferença
de onde esse widget deve estar localizado em relação
ao ponto de ancoragem Obviamente, eu não quero
essa imagem do Mario. Então, vou mudar isso
para um cronômetro de sublinhado. Mais uma vez, essa é
uma textura que
importamos no
início do curso. É uma espécie de coisa
parecida com um relógio. E vou mudar o
tamanho da imagem aqui para 100.100, então vamos chamar isso de muito bom Em seguida, vou selecionar meu
personagem X. Aumentando o zoom. Atualmente, está bem ali. Eu vou mudar isso
para ser, você sabe o que? Na verdade, vou
deletar esse. A razão pela qual vou
excluir este é porque eu quero ter
esses parâmetros, esse sombreamento para o meu valor de
tempo também Então, eu vou pegar isso e vou duplicar aquilo Eu posso simplesmente clicar com o
botão direito nele e duplicá-lo. O Controle D fará
a mesma coisa. Agora eu tenho dois desses.
Vou selecionar este aqui
e renomeá-lo imediatamente. Pressionando dois, isso
será chamado de texto. Vou chamar isso de
valor do meu cronômetro, algo assim. Vou mudar
a posição disso para ter uma âncora desse meio
superior bem ali em cima Agora, porque eu tenho isso, vou mudar a
posição x para zero também. Defina isso de volta para zero, o alinhamento no x, vou dividir
a diferença, 0,5 para centralizar
isso na posição y. Eu posso clicar aqui e arrastar isso um pouco para cima ou
para baixo. Eu só vou
colocá-lo ali mesmo. Eu vou definir um valor fixo de algo como 60,
talvez algo assim. Vamos descer 80% um
pouco mais baixo. Lá vamos nós. Podemos
ajustar isso ao nosso gosto. Ok, por último, mas não menos importante, temos este último texto que atualmente
diz Character Lives. Vamos mudar isso
para simplesmente dizer pontos, pressionando F dois sobre isso, mudando para pontos, vou
ancorar isso no canto superior direito Mudando a âncora para o
canto superior direito dessa forma. Agora preciso mudar
a posição relativa. A exposição relativa
será de menos 240. Então você pode ver aqui, este é o nosso ponto de ancoragem E esse é o deslocamento
em relação ao ponto de ancoragem, menos 240 para a posição Por quê? Vou definir isso para 32. Abaixando um pouco. Então eu vou
simplesmente mudar o texto
aqui de 99999999, então isso vai
representar nossa pontuação Então, mais uma vez, esse será nosso Hud. Vá em frente e salve isso. Boa música, é do seu agrado. Você não precisa ter
esse layout exato, mas esse é o layout
que eu vou escolher. Tudo bem, então criamos nosso layout
Hud a seguir. Precisamos realmente exibir
isso na tela. Então é isso que está por
vir. Nos vemos lá.
24. Display HUD: Bem-vindos de volta a todos.
Neste vídeo, vamos adicionar
nosso lindo capuz
aqui mesmo à nossa janela de visualização Então, vamos direto
ao assunto aqui em nosso editor de nível
principal, vamos usar nosso
modelo de controlador de jogador BP que
criamos quando estávamos trabalhando em nossa moeda colecionável Vamos usar
isso para chamar
nosso widget a ser criado
e adicionado à nossa janela de visualização Vamos clicar duas vezes nele
para abri-lo. Se você esqueceu o
caminho onde estava, é aí
que você pode encontrá-lo A razão pela qual
vamos usar esse plano é porque
o plano do controle
do jogador
persistirá, independentemente de seu
personagem estar vivo ou não Portanto, esse é um ótimo local para
hospedar esse tipo de código. Como você se lembra anteriormente quando estávamos
trabalhando em nossa moeda, é
aqui que,
na verdade, estamos fazendo as contas para somar nossas moedas.
Aqui em cima. Vamos, você deveria começar um
evento aqui. Por padrão, se você excluiu
acidentalmente, como eu fiz, você pode
recuperá-lo clicando com o botão direito do mouse e digitando Iniciar, Há Event, Begin, Play. Este evento será acionado quando você iniciar o jogo O que queremos fazer
é sair dele e criar um widget E o widget que
gostaríamos de criar é nosso hub BP que acabamos de Agora, não basta
apenas criá-lo. Precisamos pegar esse valor de
retorno aqui, arrastar e dizer
adicionar ao Viewport E essa é uma função
que realmente adicionará nosso Hud à nossa tela Vou tocar na tecla C depois de clicar com o botão esquerdo
e arrastá-la. E eu vou dizer janela de visualização hud, como se eu fosse mudar
a cor do comentário
aqui para preto E então eu vou compilar
e salvar apenas para
ter certeza de que meu código aqui está pronto para ser usado. E
parece que é. Agora, se eu entrar no jogo, você pode ver que nosso Hud é
exibido em nossa janela de exibição Agora, nada aqui funciona
como se eu coletasse uma moeda, isso não
aumentasse meu total de moedas Se eu perdesse uma vida, nada
mudaria aqui também. Mas isso está por vir. Agora que temos
nosso Hud na tela, podemos realmente vincular nossos vários valores
aqui, duas variáveis Para que possa realmente refletir
quantas vidas temos, quantas moedas
temos, etc E vamos
começar com isso
no próximo vídeo.
Nos vemos lá.
25. Encadernação de HUD: Tudo bem, agora que
nosso Hud está aparecendo em nosso jogo, é hora de vincularmos
algumas variáveis a esses
vários widgets de texto Porque, no momento, todos esses
são valores de espaço reservado. Na verdade, eles não
atualizam, não mudam, não
fazem nada
desse tipo de coisa. Então, vamos seguir em frente e corrigir isso. E para isso, vamos
trabalhar um pouco dentro do nosso controlador BP
Player Então, se você esqueceu
onde está, esse é o caminho, clique
duas vezes nele
para abri-lo Atualmente, temos duas
variáveis aqui,
uma variável de moedas e uma variável de vidas para armazenar seus respectivos
dados, moedas e vidas. Vamos criar mais
algumas aqui, então vou simplesmente clicar com o
botão direito do mouse em nossas vidas aqui. E eu vou duplicar isso. E vou duplicar
isso porque quero que próximas
duas variáveis também
sejam números inteiros Este
será simplesmente um número de pontos. Se eu pressionar o controle D com essa variável
já destacada, isso também a duplicará Este
será chamado de tempo de nível. Agora, se eu compilar
meu plano aqui, posso definir valores padrão no
painel
de detalhes para todos eles Para o tempo de nível, vou definir que
seja 500 para pontos, vou fazer com que seja
zero para vidas. Deixe-me realmente mudar que é às três, vamos
manter às três. E moedas, também teremos
isso em zero. Ok, muito importante aqui, você deve compilar esse plano para que a próxima etapa funcione Então, compile e salve o controlador do seu player
BP aqui. Nosso próximo passo é fazer algum trabalho
dentro de nossas cabanas da BP. Se você esqueceu onde está,
está na pasta I da sua plataforma Tudo bem, entrando aqui, agora
vamos
pular da
nossa guia de designer aqui no canto superior direito para a guia do gráfico Agora, a guia do gráfico é
onde você pode adicionar alguns scripts ao seu esquema de
widget Vamos
fazer algo fora da construção de eventos aqui. Isso já está aqui por padrão. Só vou parar
com isso. Vou clicar com o botão esquerdo, arrastar e deletar
esses dois caras. Você pode pensar que a construção do
evento é o início da reprodução do
seu projeto de widget E o que vamos
fazer aqui é, a partir da construção do evento, criaremos uma
referência ao nosso projeto Como nosso blueprint do
controlador do player contém essas variáveis, queremos poder acessar
esses dados variáveis dentro do
nosso controlador do player
e apontá-los para nossos vários widgets de texto
aqui dentro do nosso Primeiro, precisamos
criar uma referência ao nosso controlador de player.
Como fazemos isso? Bem, se clicarmos com o botão direito do mouse
em algum espaço vazio aqui, podemos digitar get
player controller. E se continuarmos com isso, podemos lançar um controlador de dois jogadores de
BP Então, basicamente, o que
estamos verificando aqui é, ei, esse é o controle do
player? É esse o que estamos realmente
usando em nosso projeto? E sim, é aquele
que configuramos para ser usado nas configurações do nosso
projeto. Só para revisar isso rapidamente, ele mapeia e modifica na classe de controlador de
jogador. Este é o controlador Player
que nosso projeto está usando aqui em nosso capô de sublinhado W
BP. Basicamente, estamos fazendo a
pergunta sobre como começar a jogar Esse é o
controle do player que estamos usando? E se for, gostaríamos de
criar uma referência a ele. Agora, a maneira de fazer isso é clicar
com o botão direito do mouse aqui neste modelo e promovê-lo
para uma variável Ao fazer isso, adicionamos uma variável no painel
Meu blueprint Vou simplesmente encurtar isso para Player Controller. Assim. Então eu posso clicar com o botão esquerdo e arrastar todo esse
script. Pressione a tecla C. Vou chamar isso de minha
referência de criação ao Player Controller. Vou definir a cor do cometa
aqui para preto também. Agora, por que isso é importante? Mais uma vez, estamos
tentando
extrair esses dados variáveis do nosso controlador
BP player aqui em nosso BP Vamos sair
daqui para nossa visão de designer. Agora eu posso selecionar esses
vários widgets de texto aqui, começando com nossas
vidas aqui, vidas de
personagens, aquele cara Em seguida, no
painel de detalhes, onde mostra o texto 99, podemos vincular isso a uma variável Agora, se eu clicar aqui, posso encontrar meu controlador de
player. E agora eu posso apontar para a variável adequada que está dentro do nosso controle de
player. Para isso, quero
escolher vidas. Agora você não verá
a atualização aqui, mas quando jogarmos nosso jogo, você verá nossas vidas variáveis de dentro do nosso
controle de jogador refletidas aqui. Agora vamos fazer isso
com nossos vários widgets de
texto para nossas moedas Selecione o valor de suas moedas
aqui na área de texto. Vamos vincular isso à nossa variável de moedas do
controlador de jogador. Aqui em cima estará nosso valor temporal selecionando isso. Vamos vincular isso ao tempo do nível
do controlador do jogador. Então, por último, mas não menos importante, aqui no canto superior
direito eu tenho meus pontos. Vamos até o painel de
detalhes e vamos
vinculá-lo aos pontos de
controle do nosso player Tudo bem, certifique-se de
compilar e salvar isso. Agora vou jogar nosso
jogo. E aqui vamos nós. Agora olhe para o canto superior esquerdo, agora
temos três
vidas, zero moedas, 500 para o nosso tempo, e nossa pontuação
atualmente também é zero. Agora vou pegar algumas moedas. Mas antes de fazer isso, gostaria de ressaltar que, dentro do nosso controlador BP
player, temos esse script
em que vamos incrementar quantas
moedas temos Podemos excluir isso agora porque
tudo isso era um espaço reservado para mostrar quantas moedas
tínhamos na tela
antes de usarmos nosso capuz Então você
pode excluir isso, mas por meio desse script, vamos incrementar
a quantidade de moedas E se obtivermos
mais de 100 moedas, aumentaremos
a quantidade de vidas Portanto, eles devem ser atualizados à medida
que coletamos algumas moedas. Lembre-se desse
evento personalizado dentro do nosso controlador de jogador BP
para adicionar moedas Isso está sendo chamado de
dentro de nossa moeda de coleta da BP quando sobrepomos nossa esfera
em nosso script de moedas Vamos chamar esse evento personalizado de ad coins que pertence ao
nosso controlador de jogador, incrementando
assim nossas E se
conseguirmos moedas suficientes, aumentaremos nossas vidas Vamos ver isso no trabalho.
Clique em Jogar aqui. Agora, ainda não tenho minhas vidas
configuradas para serem incrementadas. Se eu for atingido e morrer, no entanto, coloquei algumas moedas com antecedência,
essa vale uma. Você viu o incremento
no canto superior esquerdo. Essa moeda vai
valer mais 13. Agora eu configurei essas
moedas grandes com antecedência. Cada uma vale 50, então eu tenho 53 moedas. O próximo que eu colecionar
deve me render até 103, o que deve
envolver meu contador de moedas. Agora você vê que eu tenho
três moedas e quatro vidas, porque aquela valia
51, vai valer 50. Então, temos
535-45-5506, etc. Então você vê que minhas vidas
estão funcionando e minhas moedas estão funcionando,
nosso tempo de nível e nossos pontos ainda não funcionam. Mas, ao longo do
curso, também vamos incrementá-los No entanto, observe que
as variáveis no controlador
do player
estão, na verdade, conectadas a esses valores para que,
quando as incrementarmos,
elas também sejam atualizadas Só para mostrar
mais uma vez aqui no nível, eu criei algumas duplicatas
dessa moeda e fiz essas maiores, selecionando uma aqui
no meu editor de níveis, eu a fiz no painel de
detalhes no valor de 50 Então é por isso que eles
valiam 50. Eu também os
avaliei um pouco, esses menores que
fiz valeram um, só para que eu também pudesse mostrar o aumento
de vidas Tudo bem,
aí está. Agora temos algumas encadernações de cores e
farei tudo por Nos vemos na próxima.
26. Biblioteca de funções de blueprint: Tudo bem, vamos
voltar nossa atenção agora
para a criação de alguns blocos
interativos. E vamos
começar de uma forma um pouco
interessante, criando
algo conhecido como biblioteca de interessante, criando funções de
blueprint Agora, uma
biblioteca de funções de blueprint nos permite criar funções de uso
geral que podem ser acessadas de qualquer blueprint Vamos usar
isso neste caso para criar uma
função de efeito de impacto de bloco que podemos então chamar de qualquer um dos
vários blocos que criamos. Além disso, porque esse é
um bom conhecimento geral para demonstrar aqui na Un rail. Tudo bem, então vá até a pasta de
plantas da
sua plataforma de conteúdo Eu vou escrever. Clique em algum espaço vazio
aqui e eu vou criar uma biblioteca de
funções de blueprint blueprint Vá em frente e selecione isso.
Vamos chamar isso de nossa biblioteca BP
underscore Underscore E então eu vou
clicar duas vezes sobre isso para
abri-lo imediatamente. Tudo bem, dentro daqui,
ele já está
me solicitando a criação de uma nova função Agora vou chamar
essa primeira função, Play block interact X. Vamos renomeá-la aqui,
Play block interact, X, abreviação de Em seguida, no painel de detalhes, quero adicionar algumas entradas Então, vou adicionar 123.4 e vou
nomeá-los da seguinte forma Este primeiro será chamado apenas
de FX,
que será a
abreviação de efeito sonoro. Vou mudar o
tipo aqui daqui a pouco, mas vou renomear
todos eles primeiro. O próximo
será efeitos. Entre parênteses,
vou colocar Niagara, vou colocar Niagara, porque esse é o nome do sistema de partículas que o Unreal usa Agora, no Unreal Engine Five, também
vou
usar outro campo aqui chamado partícula de
sublinhado do efeito V, apenas para dar acesso aos efeitos
de partículas em
cascata, se você quiser efeitos
de partículas em
cascata Esse é o sistema de
partículas mais antigo. E então, neste último, vou colocar a localização dos efeitos visuais, a localização dos nossos efeitos
visuais Agora, precisamos definir os tipos associados a cada um deles. Para efeitos sonoros,
clique neste menu suspenso. Estou procurando uma base sonora que seja o tipo de
referência de objeto base sonora de entrada para Niagara Vou clicar aqui e,
na barra
de pesquisa, vou
digitar Niagara Referência de objeto do sistema Niagara. Referência de
objeto do sistema Niagara para partículas efeito
V.
Clique nesse menu suspenso. Vou pesquisar o tipo de objeto do
sistema di, referência de
objeto do sistema de
partículas Não se deixe enganar com a
estrutura do sistema de partículas, é a referência do
objeto do sistema de partículas a localização do efeito, isso simplesmente será
uma localização vetorial x, y e Com isso, vamos
continuar e criar a funcionalidade
que queremos que aconteça quando essa
função de efeito de
interação do bloco de reprodução for chamada. partir desse pino de execução, vou trazer uma
peça Sound two D node. O som que eu
vou querer tocar vai
passar por aqui. Em seguida, vou me
arrastar até aqui e digitar o sistema de
desova no local Esse será o
nosso sistema de Niágara, então precisamos especificar o local
onde isso surgiria para que
possamos conectá-lo
ao Em seguida, vou arrastar o emissor de
spawn no local. Este é o sistema de partículas em
cascata mais antigo, então vou apenas
conectá-lo a ele Clique duas vezes
nesse nó apenas para inserir um
nó de redirecionamento como esse. E a localização
também pode ser conectada aqui. Também vou
clicar duas vezes nessa linha. Ok, então essa será nossa primeira função que existirá aqui em
nossa biblioteca de funções BP Vamos
compilar e salvar isso. E agora criamos
uma função que pode ser usada dentro
de qualquer blueprint Vamos usar
isso em muitos dos
nossos projetos de blocos que
estão por vir, pessoal Isso bastará para este. Veja quando será a próxima.
27. Interface de blueprint: Neste vídeo,
vamos criar algo conhecido como interface de
blueprint Agora, novamente, esse é outro recurso que vamos adicionar para
ajudar nos próximos blocos que
adicionaremos ao nosso nível. Esse é um conceito um pouco difícil
de explicar de antemão Então, o que vamos
fazer agora é simplesmente criar esse ativo e
, à medida que
avançamos, explicaremos
exatamente como ele funciona. Então, vamos clicar com o botão
direito do mouse na
pasta de esquemas da nossa plataforma de conteúdo, clicar com o botão direito E na categoria
blueprint, vamos escolher a interface de
blueprint E vamos chamar isso de B I BPI para interface de blueprint Underscore, vou
chamar essa plataforma. Em seguida, clicaremos duas vezes nesse ativo para abri-lo. Agora, tudo o que podemos fazer aqui
é criar uma função. Essa será uma
função vazia que pode ser chamada de dentro de outros projetos e personalizada de acordo com nossa preferência Tudo o que precisamos fazer aqui é criar uma função simples chamada. Vamos chamar essa função
específica de Block. Agora, mais uma vez,
não há nenhuma funcionalidade para criar aqui dentro de uma interface de
blueprint Você simplesmente cria
uma função nomeada, neste caso o bloqueio do quadril. E podemos então
personalizar essa função dentro de qualquer plano ao qual
essa interface seja adicionada E faremos isso um
pouco mais tarde aqui. Mas já fizemos esse trabalho de base e
pronto,
certifique-se de compilar
isso e salvar pessoal Isso é tudo o que
queríamos fazer neste vídeo. Um pouco mais de
preparação
nos próximos vídeos, mas
nos vemos lá
28. Widget de exibição de pontos BP: Bem vindo de volta. Neste vídeo, nosso objetivo é criar um modelo de
widget que será usado para exibir a
quantidade de pontos em um jogo quando,
por exemplo, interagirmos com um bloco Portanto, um pouco mais de trabalho
preparatório a ser feito aqui, mas isso renderá
dividendos a longo prazo Então, vamos
fazer tudo isso com antecedência, para que não
precisemos voltar e refazer um monte de coisas. Posteriormente,
criaremos esse ativo dentro da nossa pasta Platform I. Vamos clicar com o
botão direito do mouse em algum espaço
vazio interface do usuário. Vamos entrar
em Widget, blueprint. E vamos escolher esse widget de
usuário como nossa classe principal E vamos renomear
esse BP Underscore Points. Ok, então vamos clicar duas vezes sobre
isso para abri-lo. E vamos
adicionar alguns
widgets aqui em nossa
visualização de designer, na área da paleta A primeira que
vamos
pesquisar é uma sobreposição E podemos arrastá-lo
e soltá-lo aqui em nossa hierarquia ou
aqui mesmo em nossa visualização de design Então, o que vamos
adicionar além disso é
um widget de texto simples Vá em frente, arraste e solte isso em cima da sobreposição Com essa configuração,
nosso widget de texto é simplesmente anexado ao
nosso widget de sobreposição Estamos simplesmente usando
o widget de sobreposição como algo para
anexar nosso texto Agora vamos personalizar alguns detalhes do nosso widget
de texto Aqui, estou
verificando minhas anotações aqui. O que vou
fazer é
alterar o widget de texto
para simplesmente ler os pontos de
sublinhado do texto,
apenas dando a ele um novo nome alterar o widget de texto
para simplesmente ler os pontos de
sublinhado do texto, apenas dando a ele um novo Vou marcar essa
caixa para ver se é variável, o que significa que podemos atualizar esse valor real no futuro. Quanto ao alinhamento para isso, vou definir os alinhamentos horizontal
e vertical para ficarem bem
no meio Então, vou mudar o texto aqui de
bloco de texto para pontos. Mesmo que seja
apenas um espaço reservado vamos atualizá-lo Vamos mudar a família de fontes aqui para ser nossa fonte Super Mario. Nova fonte Super Mario. Vou mudar o
tamanho aqui para 50. Também terei um
tamanho de contorno de dois. E então vamos
compilar e salvar esse widget. Tudo bem, pessoal, isso é tudo queríamos
fazer para isso. Mais um trabalho a ser feito aqui, mas também temos um bom ponto de
partida para mostrar alguns pontos
em nosso jogo.
29. Anim de widget de pontos: Bem-vindo. Neste vídeo, nosso objetivo é
criar uma animação. Assim, quando nosso widget de pontos, modelo aqui apresentado,
for introduzido no jogo, ele ganhará vida de
uma forma interessante e atraente A ideia é que, quando
interagimos com um dos blocos que
vamos criar, ele
meio que flutua e mostra quantos pontos
fazemos valer um bloco Tudo bem, para
criar uma animação aqui dentro do nosso esquema de
widget E se você esqueceu
onde está, atualmente
está localizado
nesta pasta Bp points é o que chamamos de pontos. Precisamos abrir a janela
de animação. Onde podemos encontrar essa janela? Na parte superior da nossa janela de
interface aqui, podemos encontrar animações
aqui Clique nisso. Então,
nesta janela de animação, precisamos criar
uma animação nomeada. Em seguida, defina alguns
quadros-chave ao longo dessa linha do tempo. Então, vamos criar nossa
primeira animação nomeada. Então, clicando nesse botão de
adição de animação, vou chamar isso de animação
Points Underscore E então, com essa
animação selecionada, vá em frente e clique nela. Precisamos adicionar uma faixa. Assim, podemos adicionar uma
faixa clicando no botão de adição de faixa
aqui neste pequeno
menu suspenso. Temos todos os widgets nomeados. E o que queremos animar
são nossos pontos de texto, não o espaço de sobreposição O texto aponta para aqui. Então vá em frente e clique nele. Em seguida, o que queremos fazer é clicar no botão Mais
aqui para ver a faixa adicional. Isso trará
essa pequena mosca no menu. E queremos adicionar
uma faixa de transformação. Clique aqui, ele exibirá esse conjunto de opções. Vou
clicar neste
triângulo suspenso . A transformação
consiste em parâmetros de
translação, rotação, escala e distorção que possivelmente
podemos alterar O que queremos fazer aqui é
mudar a tradução. Então, vou clicar aqui para abrir. Vamos fazer
isso flutuar. Também vamos mudar
a escala desse
texto ao longo do tempo. Queremos que isso não apenas aumente quando
surgir
, mas também aumente a escala Ok, agora que os
revelamos, podemos adicionar alguns quadros-chave
à nossa linha do tempo aqui Agora, os quadros-chave nos
permitem especificar um determinado valor em um
determinado momento. Em primeiro lugar, desça
sua linha do tempo aqui, se você segurar o botão
direito do mouse, poderá deslocar sua
linha do tempo para frente e para trás Se você mantiver pressionada a
tecla control e usar a roda do mouse, poderá esticá-la ou comprimi-la. Essa linha verde representa o início da sua linha Essa linha vermelha
representa o fim. E você tem esse
pequeno purificador de tempo aqui para arrastar para frente e para trás Agora, se você colocar
o cursor do mouse aqui, verá que tem esses
dois tipos de barras de colapso. É aqui que você pode
especificar o início e o fim do seu cronograma aqui Então eu vou
arrastar este para
a direita e vou arrastá-lo
para cerca de, e você pode ver no azul,
quantos segundos? Vou demorar cerca de 0,95 segundos e vou
ampliar aqui E você pode ver
imediatamente que ele define alguns quadros-chave aqui, esses pontos vermelhos representam
alguns quadros-chave Eu quero configurá-los manualmente. Só para mostrar esse
processo, vou
clicar com o botão esquerdo e arrastar para a direita até aqui. E então eu vou
excluí-los para me livrar deles. Esses pontos vermelhos representam os tempos e os valores de determinadas
propriedades aqui Ok, então a primeira
coisa que quero alterar aqui é minha tradução y. Essa é a alta e a baixa
desse valor de pontos
para adicionar um quadro-chave. Em primeiro lugar, vou pegar meu depurador de cronogramas aqui e colocá-lo no Vou começar na
marca de zero segundo e
vou alterar essa
propriedade Y, a de cima e de baixo Então, para adicionar um quadro-chave aqui, posso clicar nesse botão de adição Botão de adição minúsculo ali mesmo. E com isso eu posso
especificar um valor. Eu tenho meu
purificador de cronograma logo acima dele. Está definido como zero agora. Mas eu também poderia clicar com o botão
direito e definir a propriedade. Aí está meu tempo
zero, meu valor zero. Então, eu poderia configurá-lo
dessa forma também. Um valor associado
ao tempo para isso. Quero que o tempo e o
valor sejam zero, ok? E eu vou trabalhar
dessa maneira. Vou arrastar
meu controle deslizante
de linha do tempo agora para 0,2 segundos. Vou adicionar outro
quadro-chave para a tradução y. Clicando neste
pequeno botão de adição aqui, posso especificar um valor
conectando-o aqui ou posso escrever Clique aqui e
vá para Propriedades. E vou definir
o valor
para isso como menos 200. Em seguida, pressione Enter.
Você verá isso imediatamente mover
os pontos da palavra para cima. Ok, em seguida, vou pegar
meu controle deslizante de linha do tempo aqui, deslizá-lo sobre 2,45 e vou
adicionar outra Se eu clicar com o botão direito do mouse sobre isso, posso ver que a hora está definida como 2,45 e o valor está
definido como menos 200 Na verdade, vou
reduzir isso um pouco
de menos 200. Vou fazer algo
como talvez menos 150 para que possamos obter esse efeito. E você pode ver
que quando eu arrasto
isso, ele vai aparecer e
depois trazê-lo de volta para baixo. Talvez eu altere isso com o tempo. Se eu clicar no meu botão Play aqui, posso ter uma ideia de como isso vai acontecer
com o tempo. Algo parecido. Apareça, então você pode, obviamente, personalizá-lo
ao seu gosto Ok, em seguida, vou
ajustar a escala dos
nossos pontos aqui. Então, vou clicar no controle deslizante da
minha linha do tempo novamente. Vou arrastar
isso até
a marca de zero segundo. Agora eu quero ajustar a escala, x e y uniformemente. Em vez de clicar no
botão de adição aqui para x e y. Se eu clicar no botão de adição, diretamente na
linha de escala, adicionarei chaves aos valores x e y. Para os dois. Vou
começar com um valor e estou
clicando aqui com o botão direito. Um tempo de zero e
o valor de zero,
essencialmente, serão infinitamente pequenos Não podemos ver isso. E
eu vou fazer isso para os dois aqui, clique com o botão direito. Defina esse valor como
zero aqui também. Em seguida, vou mover meu controle deslizante da linha do
tempo até a marca de
0,2 segundos
aqui na linha de escala Vou clicar
nesse botão de adição. Se eu destacar esses dois
valores, basta clicar com o botão esquerdo do mouse e
arrastar os dois Vou clicar com o botão direito do mouse.
E, infelizmente, não
consigo definir o valor para
os dois ao mesmo tempo. Achei que
talvez pudesse ir lá. Infelizmente,
vou ter que clicar com o botão
direito do mouse em cada uma
dessas propriedades. Para isso, o valor
será 1,5. Então, vou
definir o texto para ser 1,5 vezes maior,
clique com o botão direito do mouse em propriedades 1,5. E você pode ver
que quando eu defino isso como
1,5, ele mostra esse valor de
1,5 aqui também. Ok, seguindo em frente,
vou ajustar minha linha do tempo. Deslize para fora até a
marca de 0,45 segundos na linha de escala. Aqui eu vou clicar
nesse pequeno, minúsculo botão de adição. Ele adicionará
quadros-chave para X, Y. Para isso, vou
definir a propriedade como
11 para o valor y. Em seguida, vou
arrastar minha linha do tempo até a escala de
0,85 segundo Clique neste botão de adição
para adicionar quadros-chave e marcadores em nossa linha do tempo
para a marca de 0,85 segundo Se eu escrever, clicar
em cada um deles, a propriedade está
atualmente definida como uma, que é o que eu quero. Então, por último, mas não menos importante, vou arrastar meu controle deslizante de linha do
tempo aqui até
0,95 no final de
nossa linha do Vou clicar
nessa escala novamente. Ele adicionará quadros-chave para X e Y. Vou escrever, clique na minha tecla X aqui Vou definir a
propriedade como zero, o valor de zero vez
0,95 e aqui
vamos definir o
valor dessa propriedade como zero também Então, agora, se eu fosse jogar isso, você veria que teria esse
tipo de efeito. Vamos
flutuar, meio que explodir, depois afundar e ir embora
. Tudo bem, legal. Agora, criamos uma
animação de widget que pode ser chamada, que é instruída a ser reproduzida
sempre que pedimos que ela seja reproduzida E dica, dica, acorda, pisca. Vamos dizer
isso para jogar quando
interagirmos com um bloco e
ganharmos alguns pontos
com tudo isso pronto, vamos
compilar e salvar os caras Isso vai
acabar com este. Nos vemos na próxima.
30. Pontos de exibição Ator Class BP: Bem-vindos de volta a todos. Neste vídeo,
vamos criar um
plano de classe de ator que aparecerá no jogo sempre
que interagirmos com
um de nossos blocos Isso, por sua vez,
mostrará esse modelo de widget, nossos pontos aqui para
mostrar no jogo E também vamos chamar nossa animação de pontos
para jogar. Para facilitar tudo isso,
precisamos de um plano de ator. Ok, vamos continuar, volte para o nosso editor de nível principal aqui. Vamos criar
esse ativo dentro da pasta de
diagramas da nossa plataforma aqui em algum espaço vazio Vá em frente e
clique com o botão direito na classe Blueprint. Vamos escolher
uma classe de ator porque ela
será introduzida no jogo E vamos chamar
isso de BP Underscore Points. Não deve ser confundido com Widget. Pontos de sublinhado do Blueprint. Ok, vá em frente e clique
duas vezes nisso. Para abri-lo,
basta adicionar um único componente aqui
no painel de componentes. Clique em Adicionar. Vamos
adicionar um componente de widget Não é uma interação com um widget,
mas simplesmente um widget. Vou manter o nome do widget com esse componente selecionado No painel de detalhes, podemos especificar uma classe de widget E aqui nesta lista suspensa, podemos escolher nossos pontos WP. Vá em frente e selecione
isso. Você notará imediatamente em nossa janela de visualização isso mostra que o texto
aponta mais uma vez Vamos alterar
esse texto dinamicamente Quantos pontos
gostaríamos de adicionar? Bem, vamos
adicionar uma variável para isso no painel meu plano
na seção Variável Clique nesse botão de adição. Vamos chamar isso de Add. Vamos fazer
disso um número inteiro. Podemos alterá-lo aqui ou
no painel de detalhes, tipo de
variável, vou alterá-lo para simplesmente um número inteiro
com isso selecionado Vou prosseguir
e compilar imediatamente. Vou examinar o painel
de detalhes. Vou tornar essa
instância editável. E também vou verificar
essa exposição no spawn. Isso fará com que, quando esse determinado ator for
gerado no jogo, possamos
expor
essa variável específica e seja fácil de alterar
para
torná-la facilmente editável expor
essa variável específica e seja fácil de alterar
para torná-la facilmente editável Portanto, precisamos que essas duas caixas de
seleção estejam marcadas. Vamos deixar o
valor padrão aqui definido como zero. OK. Em seguida,
adicionaremos alguns scripts e, para isso,
entraremos em nosso gráfico de eventos. Queremos fazer algo com
o event start play, que já existe aqui. Então, vamos clicar com o botão
esquerdo e arrastar. Livre-se desses dois caras. Aqui está o evento, comece a jogar. Se você excluir isso acidentalmente, mantenha pressionada a tecla
e clique com o botão esquerdo para obtê-la
ou clique com o botão direito do mouse e faça uma
busca pelo início do evento.
Jogue. Você vai encontrá-lo. Vamos querer trazer
nosso componente de widget aqui Vamos clicar com o botão esquerdo
e arrastar isso para dentro. A razão pela qual vamos
querer trazer isso
é porque
queremos ver se esse widget é, de
fato, nossos pontos P. Para fazer isso, vamos
sair daqui digitar cast two BP. Na verdade, ainda não podemos
lançá-lo. Preciso sair
daqui e pegar o widget. Obtenha o widget.
Basicamente, estamos dizendo que queremos obter
essa classe de widget Se eu digitar get widget, widget, já trazemos outra cópia
disso Só precisamos disso do nosso widget, você arrasta para fora
daqui e digita get widget Você quer esse nodo aqui. Para que possamos então
sair daqui e fazer um elenco. Dois pontos BP. Agora, toda essa configuração é
necessária para que possamos
extrair algumas informações do
nosso plano de widget Ao transmitir isso, poderemos solicitar
especificamente que nossa animação de
pontos seja reproduzida aqui. Na verdade, esse
será nosso próximo passo aqui. Então, volte para seus pontos BP. Vamos retirar nossos pontos
de BP e digitar uma animação de pontos Queremos obter uma animação de pontos. Essa é a animação
que acabamos de criar. A razão pela qual estamos recebendo
isso é porque vamos sair daqui e digitar animação
de reprodução.
Reproduza a animação. E, ao fazer isso, ele
conectará isso como a animação
que queremos reproduzir. Agora, para o alvo, queremos que esse seja nosso widget, ponto de
planta Vamos conectar isso ao alvo. Essa nota é legal aqui. Essa animação teatral?
Não, porque podemos especificar não apenas o
número de loops, que neste caso só
queríamos jogar uma vez Também podemos especificar o modo de
jogo, avançar, reverter ou pingue-pongue,
bem como a velocidade de reprodução Então, se você não estiver satisfeito
com a velocidade da animação, você também pode ajustá-la
aqui. Vou deixar tudo
isso inalterado. Ok, em seguida, quero personalizar o valor real do ponto que
é exibido agora. Tudo o que tenho é esse texto
Points que diz pontos. Então, eu quero ser capaz de ajustar o valor real do texto associado a isso
aqui no painel de detalhes. Então, como podemos fazer isso? Bem,
aqui em nossos pontos BP Podemos retirar do nosso
elenco dois pontos de BP e fazer uma busca por pontos Queremos obter nossos pontos de texto. Isso se refere especificamente a esse widget de texto aqui. Com isso, queremos alterar nosso conteúdo de texto
arrastando para fora daqui para eu
poder digitar o texto definido Eu quero definir o texto. Basicamente, estamos
dizendo que queremos
alterar esse valor de texto
associado a esse widget de texto Vou apenas diminuir um
pouco o
zoom mantendo
pressionado o controle. Vamos colocar isso para dentro, então eu vou trazer isso
para cá desse jeito Eu clico duas vezes sobre isso para
trazer um nó de redirecionamento. Como se o
texto real que eu quero exibir aqui fosse determinado por
esses pontos a serem adicionados. Se eu incluir isso em nosso
gráfico, vou obtê-lo. Eu posso tentar inserir esse
número inteiro neste texto. Ele vai convertê-lo
de um número inteiro em texto. Também trará aquele cara quando
você tentar fazer isso. Agora ele exibirá zero
em vez de pontos. Agora, outra coisa que
queremos fazer
aqui, indo um
pouco para o lado aqui, é destruir esse ator depois de inseri-lo
no jogo Uma maneira muito fácil de
determinar quando destruir isso é determinar quando terminará nossa animação. Quando nossa animação terminar, vamos destruí-la. O que posso fazer aqui
é arrastar para fora da minha animação de pontos dessa forma. Digite get end time, isso nos dará o horário de
término em segundos. Então eu posso arrastar para fora
daqui e conectar isso um atraso de controle de fluxo do nó de atraso. Só vou manter esse
fluxo de execução nesse fio branco que vai
dessa configuração de texto até
nosso nó de atraso. E quando isso estiver concluído, clicaremos com o
botão direito do mouse em destruir o ator. O alvo aqui é o próprio
significado desses pontos de BP. Lembre-se, esses
pontos BP destruirão essa
tela aqui Agora eu sei que isso diz
pontos aqui, mas quando incluirmos
isso no jogo, o que ele vai
fazer é, na verdade mostrar nossos pontos
a serem adicionados aqui Atualmente, é zero, mas poderemos mudar isso dinamicamente quando fizermos com que os pontos
desse BP
apareçam em Com tudo isso feito, vamos compilar
e salvar novamente. Depois de dizermos que isso
apareça em nosso jogo, quando
interagirmos com o bloco, descobriremos se estamos lidando com esses pontos de WBP Na verdade será com ele que
estamos lidando. A razão pela qual estamos
usando isso é para que
possamos extrair a
animação de pontos que criamos. Diga a ele que toque também para modificar o texto que está
contido nele, vamos alterá-lo, esse texto para ser o número
de pontos a serem adicionados. Depois que nossa animação
de pontos terminar de ser reproduzida, obteremos
o tempo de 0,95 segundos. Vamos
atrasar esse valor
antes de destruirmos o ator. Vamos esperar
quase um segundo antes destruirmos a exibição desse ponto. E tudo isso vai
se encaixar muito bem em
pouco tempo Aqui pessoal, isso vai
fazer tudo por este. Nos vemos na próxima.
31. Função de adicionar pontos: Tudo bem, então temos várias coisas relacionadas a
pontos,
todas reunidas em preparação para juntar nossos blocos e
marcar alguns pontos No entanto, ainda falta uma
coisa importante somar pontos quando realmente marcamos alguns
pontos. Atualmente, temos
nossa variável de pontos. No momento, ele está vinculado a esse widget de texto
aqui em nosso WBPud Essa variável existe dentro
do nosso controlador de player. Então, vamos
mergulhar nisso a seguir. Voltando ao nosso editor de nível
principal, vamos clicar duas vezes no
controle do player. Dentro daqui, estamos fazendo uma pequena adição para
somar nossas moedas, mas ainda não estamos
somando pontos. Atualmente, é apenas uma variável que está aqui e essa variável está vinculada ao
nosso WBP Vamos fazer
um pouco de matemática aqui. Clique com o botão direito em algum espaço vazio, vamos
procurar um evento personalizado. Vamos chamar
isso simplesmente de Adicionar pontos. Com este evento personalizado selecionado.
Deixe-me aumentar o zoom. Mantendo pressionado o controle e ampliando o zoom no painel de detalhes, vou adicionar uma entrada Ao clicar neste botão de adição, chamarei esses pontos de
dois pontos para somar, não apenas pontos,
dois pontos para adicionar, vamos
torná-lo um número inteiro e nossa matemática aqui será super simples Eventualmente,
forneceremos alguns pontos e ele os
exibirá aqui sempre que esse evento para clientes for convocado. E vamos adicionar
esse arrastamento, clicando no botão Adicionar
à nossa quantidade atual de pontos, arrastar e soltar aqui E então vamos definir
isso como nosso novo valor de pontos. Basta arrastar e soltar seus
pontos nessa saída, que exibirá um setter E aí está.
Isso será fundamental para que nossos
blocos avancem. Portanto, certifique-se de
compilar e salvar. Você pode clicar com o botão esquerdo e
arrastar tudo isso. Chamaremos isso de cor preta do nosso
script de pontos de anúncio. E pessoal, isso vai
fazer tudo por esse. Compilando e salvando.
Mais uma vez. Nos vemos
no próximo vídeo.
32. Base de bloco: Bem-vindo. Agora, como você sabe
dos jogos anteriores de Mario, há uma variedade de blocos
interativos dentro deles. Vamos começar a criar nossos blocos começando
com um bloco base. Agora, esse
será um
tipo de bloco pai em que reunimos
todos os componentes básicos, variáveis, scripts, etc E então vamos criar blocos
secundários a partir
dessa base principal. Então, essa será uma
espécie de base
para nos preparar para todos
os outros blocos que estão por
vir que eles herdarão desse pai
que estamos prestes a criar Agora, antes de começarmos
com tudo isso, certifique-se de ter
importado essas texturas e esses arquivos de
áudio muito antes, logo no
início do curso, porque
vamos
usá-los ao longo
deste vídeo Agora, para começar
aqui, vou
entrar na
pasta de texturas da minha plataforma e
criar materiais três
texturas diferentes Temos nosso uso de blocos. Vou usar
esse bloco de perguntas, embora tenha algumas
variedades aqui que
você pode escolher. Mas não importa
qual você escolher, eu vou escolher esse bloco, a primeira pergunta, e depois
vou escolher esse
bloco quebrável Então, estou apenas
mantendo o controle. Então, eu tenho todos
os três selecionados. Em seguida, vou clicar com o botão direito do mouse em qualquer um dos que
selecionei e criarei um
material a partir de cada um deles. Ok, agora ele adicionou
três materiais separados, 12.3 e só para organizá-los, vou arrastar todos os três para minha
pasta de materiais, assim Vou movê-los para
cá. Deixe-me entrar na minha pasta de Materiais
depois que isso for concluído, apenas para ter certeza de que eles estão lá e parece que estão versão 12.3. Em seguida, criaremos um plano Então, vá para a pasta de
diagramas do seu jogo de plataforma, nós vamos escrever Clique em alguma classe de projeto de
espaço vazio. Este
será um
modelo de classe de ator para o nome Vamos usar o bloco de
sublinhado da BP. Base de sublinhado. Então, vamos
clicar duas vezes nesse cara para
abri-lo no
painel de componentes na parte superior, vamos adicionar um componente. Vamos adicionar
um componente de cubo. Vou deixar esse
nome como cubo com esse componente selecionado
no painel de detalhes, vou inserir nosso
material Vou
digitar o bloco de palavras. Eu tenho meu bloco quebrável, esse será meu material
padrão aqui Em seguida, vamos ao meu painel de plantas e
criaremos algumas variáveis Mais uma vez, como esse será nosso bloco base, nossos blocos secundários
que herdarão
desse pai também herdarão
essas variáveis Vou clicar aqui mesmo. A primeira variável que
vamos adicionar
será chamada de interação finalizada Eu gostaria de colocar um ponto de
interrogação no final de uma variável de ouro.
Isso será um lingote. A segunda que vou
criar aqui será chamada de moedas para adicionar, será um número inteiro Na próxima, vou acrescentar que vou clicar com o botão direito do mouse e duplicar
serão pontos No próximo, clicar
no botão de adição se chamará Interact X. Vou colocar entre parênteses,
Niagara Vou mudar o tipo
aqui para ser um sistema de Niágara. objeto
do sistema Niagara. Lambendo. Outra variável sobre
isso será
interagir x e, entre parênteses, será partícula Niagara é o sistema de
partículas mais novo, mas poderemos escolher entre o sistema de
partículas mais novo e
o mais antigo
apenas para oferecer alguma flexibilidade aqui partículas mais novo e
o mais antigo
apenas para oferecer alguma flexibilidade apenas para No tipo que vamos
escolher o sistema de partículas, é a referência do
objeto do sistema de partículas abaixo dos tipos de objetos Em seguida, vamos adicionar o
Interact X, que é efeito sonoro. Para este, será uma base sonora, uma referência de objeto baseada em
som. Este top aqui, por
último, mas não menos importante,
vamos clicar nele
e ele se chamará Interact Material. Esse tipo vai simplesmente entrar na categoria de tipos de
objetos. Referência do objeto.
Ok, então vamos compilar isso imediatamente e nos
dar alguns valores padrão Clique em Compilar
na parte superior. Aqui, terminando de interagir, podemos deixar isso como falso É perfeitamente
normal que nossas moedas sejam adicionadas. Essa é a quantidade de moedas que
gostaríamos de adicionar. Absolutamente por interagir
com esse bloco. Vou tornar essa
instância editável para que
possamos alterá-la por
instância de um bloco Se escolhermos, vou
deixar isso como zero agora. Você sabe o que? Vou
configurá-lo para um por enquanto. Mas é claro que podemos
atualizar isso conforme
quisermos , vou selecionar isso. Também vamos tornar essa
instância comestível. O que significa que podemos atualizar isso quando um bloco herdado
desse pai é
colocado em nosso nível Definirei os pontos
como dez por padrão. Para os efeitos
do Interact V na partícula do Niágara, vou escolher Para a partícula de
efeito Interact V,
vou usar um pote de
sublinhado quebrável Isso vem daquele pacote de efeitos de
lâmina infinita que eu adicionei Agora, novamente, você pode escolher o que
quiser para eles. É exatamente isso que estou
escolhendo. Esse é apenas o padrão
para o Interact. Vou fazer
do Interact x uma moeda por último, mas não menos importante,
para nosso material do Interact. Vou fazer com que esse seja meu bloco usado para
que possamos interagir. Este bloco, para alguns deles
que não são quebráveis, vamos trocar por
esse determinado material Tudo bem, com tudo isso feito, vamos passar para o nosso gráfico de eventos
e vamos
adicionar um pouco de script. A primeira coisa que vamos
fazer aqui é excluir esses dois nós
do nosso evento. Comece a jogar. com o botão direito em
algum espaço vazio. Vamos digitar
get player controller. Em seguida, vamos transmitir isso
para o nosso controle de jogador. Transmita para o controlador Player, nosso controlador BP Player Vamos
configurar isso clicando com o botão direito do mouse nesse pino,
transformando-o em uma variável. Vamos criar uma referência ao nosso controlador
Player. E vou
encurtar o nome para Player Controller porque
queremos que nossos blocos secundários, os blocos que eventualmente
herdarão
desse bloco básico,
tenham uma referência ao nosso controlador de jogador Clique com o botão esquerdo e arraste. Vou chamar isso para o
player Controller. Lembre-se de que nosso plano de
controle de jogador é o modelo poderoso
que estamos usando para fazer coisas como somar
moedas Isso será importante no
futuro aqui. Tudo bem, a seguir, o que
queremos fazer é detectar quando nosso bloco é atingido. Então, basicamente, o que
queremos fazer é detectar quando nosso bloco é atingido
pela parte inferior aqui,
OK, com nosso
componente de cubo selecionado Basta
clicar com o botão direito do mouse e ir para algum espaço vazio aqui. Clique com o botão direito do mouse no
evento para ver o componente ser atingido. Agora, do outro ator, podemos trazer um símbolo igual. E vamos
verificar se o outro ator é igual a O. E você já me viu
fazer isso antes. Obtenha o personagem do jogador. Se for nosso personagem jogador
que atingir esse bloco, faremos algumas coisas. Mas o que precisamos
fazer também é detectar que
forma
atingimos esse cubo Só queremos que algo realmente
aconteça quando atingirmos a
parte inferior desse bloco Agora, felizmente, quando
atingimos esse cubo, podemos extrair algumas informações sobre esse impacto diretamente
desse Então, se eu arrastar até aqui, posso digitar break e
clicar em Resultado assim. Esse nó nos permitirá
extrair algumas
informações dele. Clicando nesta seta
para baixo aqui, podemos ver todas as
informações que ela contém. Em particular, estamos
interessados nessa saída
normal de impacto que vou
retirar dela e digitar o vetor
de quebra. Essencialmente, isso nos
permitirá detectar em que direção
atingimos esse tijolo. Queremos descobrir
se a direção z,
a direção para cima e para baixo
é igual a agora um impacto do valor
um na direção z. Basicamente, estamos
verificando se atingimos isso
por baixo Um negativo
seria o lado superior, um
positivo fora do
impacto normal aqui. Essa superfície plana
detectará se a atingirmos
pela parte inferior Queremos descobrir se essas duas
coisas são verdadeiras. Se foi um
personagem do jogador que atingiu esse cubo e se o atingimos
pela direção inferior Como queremos descobrir
se os dois são verdadeiros, arraste para fora de qualquer um
desses pinos vermelhos Digite a palavra e
vamos trazer um booleano. Queremos descobrir se
isso e isso são verdade. Se ambas forem verdadeiras,
vamos conectar isso a
um nó de ramificação dessa forma. Se ambas forem verdadeiras, o que queremos
fazer é que, fazendo backup aqui dentro da
nossa interface de blueprint, queremos chamar essa
função hit block É chamado apenas de hit block. Se eu arrastar para fora da ramificação
verdadeira aqui, vou digitar hit block e você verá esta mensagem de
hit block. Agora, se você clicar aqui, eu trarei
este nó que tem
esse pequeno ícone de envelope
para o alvo aqui Você pode simplesmente arrastar
para trás e digitar self porque
o alvo será você mesmo. Queremos obter uma
referência para nós mesmos, e esse será
nosso script de blocos de sucesso Agora, o que vamos
fazer aqui
também é adicionar
essa plataforma BPI,
essa interface de projeto
a esse plano Para fazer isso,
abordaremos as configurações de
classe e,
na seção à direita,
temos uma seção para interfaces implementadas. E é aqui que podemos
adicionar nossa plataforma BP I. Agora, isso vai
ser importante porque queremos que nossos blocos que herdam dessa
base também tenham isso Agora, a mágica dessa configuração se
tornará aparente à
medida que criarmos alguns blocos secundários a partir
dessa base de blocos da BP Em nossos blocos secundários,
precisaremos apenas convocar um evento de hit block. E então podemos fazer coisas
específicas para esses blocos, evitando
assim ter que enxaguar e repetir esta seção
do código aqui. Tudo bem, com
tudo isso feito, vamos
compilar e salvar os caras Isso vai
acabar com este. Nos vemos na próxima.
33. Bloqueie quebrável: Bem-vindo. Neste vídeo,
nosso objetivo é criar um bloco secundário que herde
a funcionalidade básica
de nossos pais,
nossa base de blocos BP Em seguida, personalizaremos
nosso bloco infantil para ser quebrado ao ser atingido. Agora, antes de começarmos
com tudo isso, vou criar
outra pasta dentro do nosso navegador de conteúdo. Aqui, especificamente para tijolos. E eu vou fazer isso
dentro da pasta de plantas, direita, clicando nas
plantas aqui Vou criar uma nova pasta e vou simplesmente
chamar isso de blocos. E então, imediatamente,
vou clicar novamente na minha pasta de plantas
e arrastar
essa base de blocos para a minha pasta de blocos E se você deixá-lo
aqui, você pode movê-lo direto para lá dessa forma. Ok, agora estou
neste diretório, minha pasta de blocos, vou
criar um filho
desse bloco base. E podemos fazer isso
clicando com o botão direito classe
Create a Child blueprint Isso vai
nos levar a dar esse nome. Então eu vou chamar esse bloco BP
underscore Breakable. Esse vai ser
um bloco quebrável. Tudo bem, vamos clicar duas vezes sobre
isso para abri-lo. Muitas coisas se
juntarão neste vídeo. Agora, para começar,
quero mostrar como
as coisas
foram herdadas No canto superior direito, podemos ver nossa classe principal
é a base de blocos BP No painel de componentes, podemos ver que
herdamos esse componente do cubo Se eu entrar nas configurações de aula, posso ver que
herdamos nossa plataforma BPI,
nossa plataforma de interface de blueprint E aqui,
no lado esquerdo o painel do meu projeto Podemos ver dentro da nossa interface de
blueprint que
temos essa função de bloco de acertos Agora, só para voltar
aqui, minha pasta de plantas. Aqui está minha plataforma de BPI na qual temos essa
função chamada hit block Também quero ressaltar
que herdamos nossas variáveis que
configuramos em nosso bloco pai aqui Agora, se você não
os vê aqui embaixo, se você clicar neste ícone de engrenagem, você tem essa caixa de seleção para
mostrar variáveis herdadas Se estiver desativado, você
não verá
as variáveis herdadas
com ele ativado, você verá Deixe-me expandir a categoria de
variáveis mais uma vez. Essas variáveis que
configuramos em nossos pais,
nosso bloco base. E a razão pela qual
queríamos fazer isso é porque temos esses
padrões, se você quiser Mas podemos
personalizá-los para as crianças. E, em particular, uma
das coisas que eu sei que
vamos querer
ajustar para esse bloco quebrável
é nosso efeito sonoro aqui Por padrão, temos esse efeito
sonoro do Interact configurado como uma variável e nosso valor aqui atualmente é
um efeito sonoro de moeda. Para isso, vou
querer mudá-lo para um quebrável, uma quebra de tijolo Então, vamos mudá-lo para o som de quebra de
tijolos imediatamente. Ok, agora vamos
pular para o nosso gráfico de eventos. E vamos
adicionar um script
para personalizar o que queremos
que aconteça quando
interagimos com esse bloco. Então, vou pular
para o nosso gráfico de eventos aqui. Agora você pode ver que
esse evento começou a ser jogado. E está vinculado ao início da brincadeira
dos pais. Agora, vale a pena notar isso aqui, porque se eu for até nossa base de blocos da
BP aqui, posso navegar até onde está no navegador de conteúdo, ou posso abrir o principal Vamos abrir o pai.
Aqui está o pai, nossa base de blocos da BP Basicamente, estamos
garantindo que, ao começar a jogar aqui
em nosso breakable, todo esse código também apareça Tudo bem, aqui no nosso bloco BP quebrável,
isso é Vamos deixar tudo
isso. Vou clicar com o botão esquerdo e arrastar, e vamos
deletar isso. Agora, o que eu quero fazer
é trazer um evento para nosso hit
block, nossa interface aqui. Então, se eu clicar com o botão direito em
algum espaço vazio e digitar hit block, posso adicionar um evento para
acertar o bloco Agora, esse evento será
acionado quando nosso bloco
for interagido Agora, lembre-se de que nossa base de blocos BP contém todo o script
para quando interagimos Atingimos a parte
inferior desse cubo. Encerramos esse script de
interação solicitando esse hit block. Agora, quando chegarmos a esse
ponto em nosso script, ele fará com que esse evento de bloqueio de
acertos aqui
em nosso filho seja acionado e, em seguida, faça com que um script
personalizado ocorra. Portanto, não precisamos
repetir todo esse script aqui que já foi feito para
nós no pai. Essa chamada aqui é
boa o suficiente para, em seguida, transmitir essa funcionalidade
aqui em nosso filho. Ok, o que
queremos fazer com isso? Bem, queremos que várias coisas
aconteçam quando atingirmos esse bloco. E como queremos que
várias coisas aconteçam, vou trazer
uma nota de sequência. Agora, a nota de sequência é
muito útil para organizar várias coisas que gostaríamos que acontecessem. Gostaríamos que algo
acontecesse aqui e depois aqui. E então, na verdade,
vamos adicionar um terceiro pino clicando aqui. Então, teremos três coisas
distintas acontecendo. Essa é uma maneira muito boa, organizada e ordenada de
fazer isso acontecer Está bem? A primeira coisa que eu
gostaria de fazer aqui é reproduzir alguns efeitos de
interação com blocos. E se você se lembra
aqui em nosso navegador de conteúdo, criamos essa biblioteca de
funções do BP E aqui dentro, configuramos essa função para reproduzir os efeitos de
interação do bloco. Isso vai
entrar em jogo agora mesmo, aqui, dentro do nosso
bloco BP quebrável Se clicarmos, podemos pesquisar os efeitos de interação do bloco de
reprodução e podemos ver que
essa função está
em nossa biblioteca de funções BP Agora podemos acessar isso aqui
dentro deste projeto. Agora, tudo o que precisamos fazer
é inserir o tipo de efeitos
sonoros e visuais que
queremos reproduzir. Isso vai
ser bem simples. Vamos apenas
inserir esse N zero em nosso bloco de jogo
Interact Effects. Vou clicar duas vezes
nesse fio para fazer um
pequeno redirecionamento Observe que, para fins organizacionais agora podemos inserir
nosso efeito sonoro, nosso efeito sonoro Interact, que atualmente
é quebrar tijolos, arrastá-lo e soltá-lo diretamente
neste pino de efeito sonoro
para nosso efeito visual. Novamente, estou lhe dando
duas opções aqui. O novo sistema de efeito de
partículas do Niágara
ou o sistema de efeito de partículas mais antigo Para isso, vou trazer minha partícula mais antiga do Interact VX É esse pote quebrável. Vou simplesmente conectar
isso aí. Observe que isso é um ou outro. É assim que isso
deve ser configurado. Você pode fazer as duas coisas, mas escolha apenas uma para a localização do VFX O que vou fazer é clicar com o botão direito do mouse e digitar a localização do ator. O alvo aqui é
autossuficiente, onde quer que esse bloco quebrável da BP
esteja localizado no mundo Agora vou compensar
isso um pouco. Eu poderia jogar isso no ponto
central desse bloco, mas onde eu quero
gerar isso é na verdade um pouco acima do eixo z. Então, vou
arrastar para fora daqui e colocar um símbolo de adição. Vou trazer
um operador de publicidade aqui. E vou simplesmente
adicionar 50 no eixo z, só para gerar isso
um pouco acima da
localização exata desse bloco, quebrável por
tentativa e erro Eu aprendi que isso
é muito bom. Ok, eu só vou
repassar
um pouco esse roteiro
aqui em cima Vou mudar esse pai para
cá um pouco assim. E esse será nosso
primeiro script aqui,
jogando esse bloco de interação X. Ok, a próxima coisa que
eu quero fazer é gerar nossos pontos de BP Queremos desovar em
alguns pontos e também adicionar alguns pontos ao
desovar em Configuramos esse ator de
pontos B P aqui. Queremos incluir
isso no jogo, que exiba a quantidade
adequada de pontos Neste ato, pontos de BP,
é o que pretendemos gerar aqui em nosso bloco de
BP A maneira de fazer isso
é evitar isso. Em seguida, com um pino,
geraremos o ator da classe. Este é um nodo que
queremos trazer. Aqui é onde podemos gerar pontos de sublinhado da classe BP. Agora temos que dar
uma transformação de spawn de onde queremos que
ela apareça Se clicarmos, podemos dizer
get actor transform. transformação consiste em dados de localização, rotação e escala. Nosso objetivo aqui é dizer que
esse bloco de BP é quebrável. Estamos obtendo a
localização, a escala
e a rotação desse bloco
em particular. É aí que
vamos gerá-lo.
Neste nó, temos
esses pontos para adicionar entrada A razão pela qual isso
existe é porque aqui em nossos pontos de BP que configuramos, criamos essa variável
chamada pontos para adicionar Over no painel de detalhes, dissemos expor na geração marcando esta caixa,
tornando essa instância
comestível tornando essa Exponha no spawn, marcando
essas duas caixas. Isso é feito para que, quando
estamos tentando gerar esse ator,
essa variável seja
disponibilizada para nós E podemos
personalizá-lo a partir daqui dentro do nosso
bloco BP quebrável Então, aqui está o que podemos fazer. Podemos inserir nossos pontos
em nossos pontos para somar e podemos determinar quantos pontos
queremos que sejam quando separarmos esse bloco Vou deixar isso
às dez agora. Ok, próximo. O que também
queremos fazer é trazer uma referência ao
nosso controlador de jogador. E temos uma referência ao nosso controlador de
player
porque ela foi herdada aqui em nossa lista
de variáveis herdadas Controlador do jogador,
vamos arrastar isso para dentro. Vamos pegá-lo
e, em seguida,
vamos sair disso e digitar pontos de adição. Agora vou abrir
nosso controlador de player aqui em pouco tempo. Você só
encontrará esses pontos de adição
se arrastar para fora da referência do controlador do
player. De volta ao nosso controlador BP
Player, criamos esse
evento personalizado chamado adicionar pontos A razão pela qual
pudemos chamar isso de pontos de adição é porque tudo
isso existia em
nosso controlador de jogador. Quando chamamos isso de quebrável em nosso bloco de BP,
dizemos: ei, controlador
do jogador
dispara aquele evento personalizado adicione pontos para que possamos
adicionar quantos pontos quiser Alimentamos isso com nossa quantidade
atual de pontos e, em seguida, definimos isso
como nossa nova quantidade de pontos. Lembre-se de que essa
variável de pontos aqui, dentro do nosso controle de jogador, está vinculada ao nosso hud
aqui em nosso ud, nossa variável de pontos em nosso controlador de player
está vinculada aqui, então ela refletirá
isso aqui em nosso hud Muito fofo. E veja como tudo
isso está se encaixando. Obviamente, precisamos nos dizer quantos pontos queremos adicionar pois isso será alimentado por meio desses eventos personalizados. Então, se eu clicar
duas vezes Adicionar pontos
aqui, nossos pontos a serem adicionados, fluirão por aqui, por aqui e os adicionarão à nossa
quantidade atual de pontos existente. É por isso que
adicionamos essa entrada,
nossos pontos a serem adicionados , para que
aqui em nosso bloco quebrável, possamos inserir quantos
pontos gostaríamos de adicionar E vamos simplesmente arrastar e soltar nossos pontos
em cima disso. Agora eu poderia simplesmente tirar a droga daqui
e colocá-la aqui também. Não importa se
você tem múltiplos
desses coletores de variáveis ou se você os arrasta para fora
do mesmo, ele fará a mesma coisa Ok, agora estamos reproduzindo
alguns efeitos de interação. Estamos gerando uma exibição de
pontos e, na verdade, somando a
quantidade de pontos A última coisa que precisamos fazer é simplesmente destruir esse ator. Então, se eu tirar os meus dois, posso digitar destroy actor. E queremos ter certeza de que essa é a última
coisa que fazemos. Então, quando atingirmos esse bloco, tocaremos os efeitos, apareceremos
em nossa exibição de pontos
e, na verdade, somaremos alguns
pontos Essa deve ser a
última coisa que fazemos, porque se fizéssemos disso a
primeira coisa que fizemos, nenhuma dessas outras
coisas aconteceria. Ok, aí está nosso script
finalizado, então vamos
compilá-lo e salvá-lo E parece que nosso roteiro
está pronto para ser o próximo. Vamos simplesmente arrastar e soltar um bloco quebrável
em nosso nível aqui, algum lugar perto do início dos meus jogadores Apenas para fins de teste, coloquei minhas duas
configurações de encaixe D no nível
principal aqui, então vamos encontrar nossos blocos Vou apenas
arrastar isso para dentro, então vou trazer alguns
casos como esse. E vamos entrar e jogar. Agora eu podia ver minha exibição de
pontos que,
na verdade, estava sendo exibida
sem a câmera voltada para a frente. O que posso fazer aqui
é acessar meus
pontos B P e selecionar meu componente de
widget aqui Vou apenas girar isso para
que fique voltado para a câmera Atualmente, está
sendo exibido assim. Então, tudo que eu preciso fazer aqui
é simplesmente girá-lo. Vou apenas
pressionar a barra de espaço. Girar. Na verdade, deixe-me definir meus incrementos nas minhas configurações de
snap aqui. Vamos girar essa face a câmera. Eu
vou guardar isso. E agora, se eu entrar e jogar e interagir
com esses blocos, tenho que tomar cuidado com
aquela barra de fogo lá. Eu posso destruir esse bloco. Eu vejo os pontos realmente sendo exibidos no canto superior direito. Você pode ver no
Hud que, como cada um desses blocos
valia dez pontos cada, agora
tenho 20 pontos no total Então, tudo parece
estar funcionando como design. Tudo bem, pessoal, isso vai
fazer tudo por esse. Nos vemos na próxima.
34. Block Coin: Tudo bem, então aqui está o acordo. Como você pode ver nesta filmagem
clássica de Mario, Mario está interagindo
com vários blocos E com alguns dos blocos com os quais
ele está interagindo, como o que está agora, uma moeda está surgindo a Agora, nosso objetivo neste vídeo é
criar um modelo de
classe de ator de uma moeda de bloco que
surgirá de vários blocos quando
Mario interagir Ok, para começar
aqui, de volta ao nosso editor, vou fazer isso na pasta de blocos
do
blueprint da plataforma de conteúdo Vou escrever clique em
Nova classe Blueprint. Essa será uma
aula de atores porque vamos incluir isso
no jogo E eu vou chamar isso de moeda de
pontuação de bloco de sublinhado da BP pontuação de bloco de sublinhado Não, novamente, isso vai ser diferente da nossa coleta de moedas. Deixe-me pressionar Enter aqui, pois
essa será uma que surgirá no mundo
e fará a coisa giratória quando
interagirmos com vários blocos Vamos clicar duas vezes
sobre isso imediatamente. Para abri-lo no painel de
componentes, vamos apenas
adicionar um componente. Vai ser uma malha estática. Vou chamar essa moeda
no painel de detalhes. Tenho várias coisas
que eu quero definir. A primeira é uma malha estática. Vou configurar isso
para ser um cilindro. Vou escolher esse
cilindro aqui mesmo. Eu também vou
girá-lo de lado imediatamente, então vou definir a
rotação para B. Eu tenho algumas configurações escolhidas com
antecedência, menos 70 O y vai
ser menos 90, o z vai
ser menos 20. Para a escala, vou
definir isso como 0,750
0,75 e, em seguida, 0,07,
algo muito fino E como eu tinha minhas configurações de bloqueio de
escala ativadas, sempre que eu altero um
desses parâmetros, ele muda todos eles. Então, se eu desbloqueá-lo, posso
configurar tudo isso individualmente. Então isso foi 0,75 no x
e 0,75 no y. Eu quero 0,75 no z para deixá-lo bonito e fino
na Tudo bem, também o que
eu quero fazer é colocar um material aqui. Vou digitar uma moeda. Vou definir isso para o material de moeda
mais recente, embora realmente não
importe muito qual delas eu escolher na
seção de colisão,
vou alterar
minha predefinição de colisão
aqui para que não haja colisão,
porque quero
garantir que não haja chance de alguém colidir com
ela como um inimigo
que
criamos no futuro vou alterar
minha predefinição de colisão aqui para que não haja colisão,
porque quero
garantir que não haja chance de alguém colidir com
ela como um inimigo
que como um inimigo
que Tudo bem, com tudo isso feito, vamos passar para
nosso gráfico de eventos. E vamos criar
em algum espaço vazio aqui. Certo, clique em uma linha do tempo. Cronograma. Porque há várias coisas que
queremos mudar com o tempo. Então, vou adicionar uma linha do tempo. Vou chamar isso de minha moeda, uma linha do tempo
pressionando o controle, girando o
mouse
para cima para ampliar isso Vou
clicar duas vezes nisso para
abri-lo em nossa
guia de linha do tempo aqui, vou adicionar duas
faixas imediatamente. Ao clicar na faixa,
vou pressioná-la uma vez. Vamos adicionar
uma pista flutuante. E eu vou chamar
isso de primeiro movimento. Isso determinará
o movimento de nossa
moeda ao longo do tempo. Então eu vou adicionar outra
faixa aqui, uma pista flutuante. E essa vai
ser chamada de rotação porque vamos querer girar
nossa moeda ao longo do tempo.
Quanto tempo? Bem, vamos
definir a duração da nossa linha do aqui em 0,4 segundos. Tudo bem, e agora trabalhando
em nossa linha de tempo de movimento, primeiro vou clicar com o botão
direito do mouse e movê-la para o meio, aumentar um pouco o zoom
usando minha roda de rolagem, vou manter pressionada
a tecla shift e vou clicar
três vezes 123. Agora, realmente não
importa onde eu clico, porque vou
definir manualmente um tempo em um valor
para cada um deles, ou este último quadro-chave que
selecionei aqui, vou definir o tempo
para 0,4 e o valor 2200 ou agora você pode ver que ele
saltou da tela Isso é bom. Para o próximo, vou definir o tempo 0,25 e o valor como 300 E para esse
primeiro quadro-chave, vou definir o tempo zero e o
valor como zero. Agora, se eu clicasse nas
minhas setas aqui, Zoo Line sairia um pouco Posso destacar todos esses quadros-chave
clicando com o botão esquerdo do mouse e arrastando E o que eu quero fazer é com
todos eles destacados, eu vou clicar com o botão direito em qualquer um deles. Eles estão
todos destacados. Quando estiverem azuis,
vou clicar com o botão direito do mouse sobre eles. E vou definir a interpolação de
teclas como automática. O que isso vai
fazer é
suavizar essa linha
curva aqui Em vez de ser uma linha
reta, uma linha reta, vai
torná-la uma linha
suave e curvilínea como essa Agora, com tudo isso destacado, vou clicar
nas setas mais uma vez. E você pode ver essa curva com um
pouco mais de precisão. Agora, essa curva
serve para alterar um valor flutuante ao longo tempo para determinar o
movimento de nossa moeda Então, basicamente, indo de
sua posição
inicial para o ar e
depois descer um pouco. Ok, em seguida, vamos alterar nossas configurações de rotação porque queremos essa moeda
quando ela aparecer Não apenas para subir
no ar e
depois descer um pouco, mas também para girar. Para isso,
precisaremos de apenas dois quadros-chave. Então, vou manter pressionada a tecla shift e
clicar com o botão esquerdo na primeira
que vou definir para um tempo
zero e um valor zero. E então eu vou clicar com o botão
direito do mouse em qualquer lugar aqui, vamos adicionar outra chave Essa é outra maneira de
adicionar um quadro-chave para esta, vou definir o tempo como
0,4, essencialmente o final
da nossa linha do E o valor pressionando a guia
saltando para esse campo de
valor que vou
definir como 720,
essencialmente Vou clicar
nessas setas aqui para exibir cada um desses
quadros-chave Estou bem com uma linha
reta aqui. Eu não preciso
curvar isso de jeito nenhum. Minha moeda
vai subir
no ar e depois
cair um pouco E então ele também
fará duas rotações completas, 720 graus ao longo
de 0,4 segundos Tudo bem, agora vamos
voltar ao nosso gráfico de eventos aqui, fora da nossa linha do tempo de moedas E você pode ver que agora temos dois pinos de saída para
valores flutuantes de nossas faixas flutuantes Portanto, isso produzirá
o valor de cada flutuação ao longo do tempo Ele
mudará em 0,4 segundos para movimento
e rotação. Precisamos recuar um pouco
aqui. E vamos começar
nosso evento. Jogue na
frente deste gráfico. Esse nó deveria ter
existido quando você criou esse blueprint
pela primeira vez Caso contrário, você
pode clicar com o botão direito do mouse e pesquisar o evento Begin. Jogue. O que vamos fazer
com Event Begin Play é abordar nossas variáveis no painel
My blueprint Entre em componentes
e agora você deve encontrar este componente coin anum que
está se comunicando com esta linha do
tempo coin anum Vamos arrastar isso para fora, soltá-lo e pegá-lo. A razão pela qual
vamos
divulgar isso é porque
vamos parar com
isso e digitar a taxa de jogo definida. Atualmente, esse cronograma
tem 0,4 segundos de duração. E vou
definir as taxas 1,0. Você pode pensar nisso
como um campo percentual, 0,5 seria metade de sua taxa de jogo
normal. Então, eu vou jogar
isso no ritmo normal. Observe, no entanto, que se você quiser alterar
a taxa na
qual isso é reproduzido, alterar esse número aqui permitiria que você
alterasse o
ritmo em que ele é reproduzido sem precisar ajustar a própria
linha do tempo Agora eu poderia conectar isso ao
play ou jogar desde o início. Vou
jogar desde o início, porque quero que isso jogue desde
o início. Sempre que esse
plano específico começar, jogue. Agora, isso vai
disparar para começar a jogar sempre que incluirmos
isso em nosso jogo Então vá para a direita aqui. Traga uma referência à minha moeda no painel de
componentes, porque eu quero ajustar
a localização e a
rotação dela ao longo do tempo. Clique com o botão esquerdo e arraste. O que vou fazer então é sair disso
e digitar set. E eu quero mudar
a localização relativa e a rotação disso ao longo do tempo. Quero mudar o relativo em relação à localização
dessa moeda ao longo do tempo, à medida que
atualizamos nossos valores ao longo do tempo. Aqui, quero atualizar
onde nossa moeda mora. Vou me arrastar para
trás da nossa nova localização aqui
e digitar make vector Como um local
consiste em x, y e z. E eu só quero
alterar um deles, vou copiar isso. Controle de nó C
controle V controle D. Poderia ter simplesmente duplicado
isso imediatamente. Desculpe, eu não quero
criar vetores para este. Eu quero fazer
essa nova rotação. Vou escrever, clique aqui para
se conectar à
nossa nova rotação. Agora, vamos pegar nossos valores flutuantes e
inseri-los em um campo específico Novamente, eu só quero mover
minha moeda para cima no eixo Z. À medida que mudamos nosso
valor ao longo do tempo, atualizaremos nossa localização
z da moeda, a
localização para cima e para baixo da moeda. E lembre-se, aqui
em nossa linha do tempo, vamos passar
da nossa posição inicial até 300 unidades irreais e, em seguida,
desceremos no final para 200 unidades irreais
para Vou fazer
a rotação aqui e queremos
girá-la ao longo do eixo z. Isso vai
girá-lo como
um pião à medida que
sobe no ar E novamente aqui em nossa linha do tempo, vamos
girar a 720 graus São duas vezes as revoluções
em 0,4 segundos. E esse é um bom roteiro
para simplesmente mover nossa moeda, mas eu quero adicionar um
pouco de jazz aqui. Então, o que vou fazer é
arrastar nosso pino de chegada. Quando essa animação
terminar de ser reproduzida, vou sair daqui no emissor de
spawn no emissor de
spawn Sistema de geração no local é o nome do
nó que você gostaria usar se
quiser usar
um sistema de partículas do Niágara Esse é o sistema de
partículas mais antigo. O que eu quero fazer é aparecer em um emissor conhecido como underscore lot
pick up aqui Este existe no pacote
infinity blade EfFx. O que
precisaríamos fazer então é arrastar uma referência à nossa
moeda, sair daqui e dizer obtenha a localização mundial
e insira isso aqui. Então, essencialmente, à medida que
atualizamos a localização
de nossa moeda, quando terminarmos com
essa linha do tempo, ela gerará um efeito de partícula,
uma
espécie de efeito de partícula na localização
mundial atualizada de
nossas moedas, só para fazer com
que a moeda exploda
em uma chama de glória em Tudo bem, com
isso, vamos compilar e salvar Isso garantirá que
nosso roteiro esteja pronto para ser usado. Agora podemos fazer
uso disso daqui para
frente em vários de
nossos blocos futuros. Caras, isso vai fazer
tudo por esse. Nos vemos na próxima.
35. Block Coin: Tudo bem, então aqui está o acordo. Como você pode ver nesta filmagem
clássica de Mario, Mario está interagindo
com vários blocos E com alguns dos blocos com os quais
ele está interagindo, como o que está agora, uma moeda está surgindo a Agora, nosso objetivo neste vídeo é
criar um modelo de
classe de ator de uma moeda de bloco que
surgirá de vários blocos quando
Mario interagir Ok, para começar
aqui, de volta ao nosso editor, vou fazer isso na pasta de blocos de
blueprint
da plataforma de conteúdo Vou clicar com o botão direito do mouse na
nova classe Blueprint. Essa será uma
aula de atores porque vamos incluir isso
no jogo Vou chamar isso de moeda de blocos BP
Underscore. Agora, novamente, isso vai ser diferente de nossa coleta de moedas. Deixe-me pressionar Enter aqui, pois
essa será uma que surgirá no mundo
e fará a coisa giratória quando
interagirmos com vários blocos Vamos clicar duas vezes
sobre isso imediatamente. Para abri-lo no painel de
componentes, vamos apenas
adicionar um componente. Vai ser uma malha estática. Vou chamar essa moeda
no painel de detalhes. Tenho várias coisas
que eu quero definir. A primeira é uma malha estática. Vou configurar isso
para ser um cilindro. Vou escolher esse
cilindro aqui mesmo. Também vou
girá-lo de lado imediatamente, então vou definir
a rotação para, tenho algumas
configurações escolhidas antecedência, menos 70 O y vai
ser menos 90, o z vai
ser menos 20. Para a balança,
vou definir isso como 0,750 0,75 e depois
0,07 , algo muito fino porque eu tinha minhas configurações de
bloqueio de balança ativadas Sempre que eu
mudo um desses parâmetros, ele muda todos eles. Se eu desbloqueá-lo, posso
configurá-los todos individualmente. Então isso foi 0,75 no x
e 0,75 no y. Eu quero 0,75 no Z para deixá-lo bonito e fino
na Tudo bem, também o que
eu quero fazer é colocar um material aqui. Vou digitar uma moeda. Vou definir isso para o material de moeda
mais recente, embora realmente não
importe muito qual delas eu escolher na
seção de colisão,
vou alterar
minha predefinição de colisão
aqui para que não haja colisão,
porque quero
garantir que não haja chance de alguém colidir
com ela como um inimigo
que
criamos no futuro vou alterar
minha predefinição de colisão aqui para que não haja colisão,
porque quero
garantir que não haja chance de alguém colidir
com ela como um inimigo
que com ela como um inimigo
que Tudo bem, com tudo isso feito, vamos passar para o
nosso gráfico de eventos E vamos criar
em algum espaço vazio aqui, clique com o botão
direito em uma linha do tempo. Linha do tempo porque
há várias coisas que
queremos mudar com o tempo. Então, vou adicionar uma linha do tempo. Vou chamar isso de minha moeda, uma linha do tempo pressionando o controle do mouse girando para
cima para ampliar isso Vou clicar duas vezes
sobre isso para abri-lo. Em nossa guia de linha do tempo aqui, vou adicionar duas
faixas imediatamente. Clicando na faixa.
Vou pressioná-lo uma vez. Vamos adicionar
uma pista flutuante. E eu vou chamar
isso de primeiro movimento. Isso determinará
o movimento de nossa
moeda ao longo do tempo. E então eu vou adicionar outra faixa aqui,
uma pista flutuante E essa
vai ser chamada de rotação porque
vamos querer girar nossa moeda
ao longo do tempo Quanto tempo? Bem,
vamos definir o comprimento da
nossa linha do tempo
aqui em 0,4 segundos. Tudo bem, e agora trabalhando primeiro em nossa linha do tempo,
vamos clicar com o botão direito do mouse
e movê-la para o meio. Aumente um pouco o zoom
usando minha roda de rolagem. Vou manter pressionada
a tecla shift e clicar
três vezes 123. Agora, realmente não
importa onde eu clico, porque vou
definir manualmente uma hora em um valor para cada um
desses ou este último quadro-chave que
selecionei aqui Vou definir o tempo para 0,4 e o valor para 200. Agora você pode ver que ele saltou
da tela aqui. Isso é bom. Para o próximo, vou definir o tempo 0,25 no valor como 300 Para esse primeiro quadro-chave, vou definir o tempo zero e o
valor como zero. Agora, se eu clicasse nas
minhas setas aqui, o Zoo se alinharia um pouco Posso destacar todos esses quadros-chave
clicando com o botão esquerdo do mouse e arrastando O que eu quero fazer é com
todos eles destacados, eu vou
clicar com o botão direito em qualquer um deles. Eles estão todos destacados.
Quando estiverem azuis, vou clicar com o botão
direito do mouse sobre eles. E vou definir a interpolação de
teclas como automática. O que isso vai
fazer é
suavizar essa linha
curva aqui Em vez de ser uma linha
reta, uma linha reta, vai
torná-la uma linha
suave e curvilínea como essa Agora, com tudo isso destacado, vou clicar
nas setas mais uma vez. E você pode ver essa curva com um
pouco mais de precisão. Agora, essa curva
serve para alterar um valor flutuante ao longo tempo para determinar o
movimento de nossa moeda, essencialmente indo
de sua
posição inicial para o ar E depois recue um pouco. Ok, em seguida, vamos alterar nossas configurações de rotação porque queremos essa moeda
quando ela aparecer Não apenas para subir
no ar e
depois descer um pouco, mas também para girar. Para isso,
precisaremos de apenas dois quadros-chave. Vou manter pressionada a tecla
shift e clicar com o botão esquerdo. Este primeiro eu
vou definir para um tempo de zero e um valor de zero. E então eu vou clicar com o botão
direito do mouse em qualquer lugar aqui. Vamos adicionar outra chave. Essa é outra maneira de
adicionar um quadro-chave para este.
Vou definir o tempo como
0,4, essencialmente o final da nossa linha
do E o valor pressionando a guia
saltando para esse campo de
valor que vou
definir como 720,
essencialmente Vou clicar
nessas setas aqui para exibir cada um desses
quadros-chave E eu estou bem com uma linha
reta aqui. Eu não preciso
curvar isso de jeito nenhum. Minha moeda
vai subir
no ar e depois
cair um pouco E então ele também
fará duas rotações completas, 720 graus ao longo
de 0,4 segundos Tudo bem, agora vamos
voltar ao nosso
gráfico de eventos aqui fora da
nossa linha do tempo da moeda. E você pode ver que agora
temos dois pinos de saída, dois valores flutuantes de
nossas faixas flutuantes Portanto, isso produzirá
o valor de cada flutuação ao longo do tempo Ele
mudará em 0,4 segundos para movimento
e rotação. Precisamos recuar um pouco
aqui. E vamos começar
nosso evento. Jogue na
frente deste gráfico. Esse nó deveria ter
existido quando você criou esse blueprint
pela primeira vez Caso contrário, você
pode clicar com o botão direito do mouse e pesquisar o
evento Begin Play. O que vamos
fazer com o evento Begin Play é abordar nossas variáveis
no painel My Blueprint Entre em componentes
e agora você deve encontrar este componente de moeda anum que
está se referindo a esta
linha do tempo, moeda Vamos arrastar isso para fora, soltá-lo e pegá-lo. E a razão pela qual
vamos
divulgar isso é porque
vamos parar com
isso e digitar a taxa de jogo definida. Atualmente, esse cronograma
tem 0,4 segundos de duração. E vou
definir a taxa 1,0. Você pode pensar nisso
como um campo percentual, 0,5 seria metade de sua taxa de jogo
normal. Então, eu vou jogar
isso no ritmo normal. Observe, no entanto, que se você quiser alterar
a taxa na
qual isso é reproduzido, alterar esse número aqui permitiria que você
alterasse o
ritmo em que ele é reproduzido sem precisar ajustar a própria
linha do tempo Agora eu poderia colocar isso em jogo. Jogue. Vou
jogar desde o início, porque quero que jogue desde o início.
Sempre que esse
plano específico começar , jogue Agora, isso vai
disparar. Comece a jogar sempre que incluirmos
isso em nosso jogo Então vá para a direita aqui. Traga uma referência à minha moeda no painel de
componentes, porque eu quero ajustar
a localização e a
rotação dela ao longo do tempo. Clique com o botão esquerdo e arraste. O que vou fazer então é sair disso
e digitar set. E eu quero mudar
a localização relativa e a rotação disso ao longo do tempo. Quero mudar o relativo em relação à localização
dessa moeda ao longo do tempo, à medida que
atualizamos nossos valores ao longo do tempo. Aqui, quero atualizar
onde nossa moeda mora. Vou arrastar para
trás da nossa nova localização aqui e digitar vetor porque uma localização
consiste em x, y e z. E eu só quero mudar uma
delas e
vou copiar isso Controle de nó C controle V controle D. Poderia ter simplesmente
duplicado isso imediatamente. Desculpe, eu não quero
criar vetores para este. Eu quero fazer um rotador
para essa nova rotação. Vou escrever o rotador de
cliques. Isso vai se conectar
à nossa nova rotação. Agora, vamos pegar nossos valores flutuantes e
inseri-los em um campo específico Novamente, eu só quero mover
minha moeda para cima no eixo z. À medida que mudamos nosso
valor ao longo do tempo, atualizaremos nossa localização
z da moeda, a
localização para cima e para baixo da moeda. E lembre-se, aqui
em nossa linha do tempo, vamos passar
da nossa posição inicial até 300 unidades irreais e, em seguida,
desceremos no final para 200 unidades irreais
para Vou fazer
a rotação aqui e queremos
girá-la ao longo do eixo Z. Isso vai
girá-lo como um pião à medida que
sobe no ar Novamente, aqui em nossa linha do tempo, vamos
girar a 720 graus São duas vezes as revoluções
em 0,4 segundos. E esse é um bom roteiro
para simplesmente mover nossa moeda, mas eu quero adicionar um
pouco de jazz aqui. Então, o que vou fazer é
arrastar nosso pino de chegada. Quando essa animação
terminar de ser reproduzida, vou sair daqui no emissor de
spawn no emissor de
spawn Sistema de geração no local é
o nome do nó que você gostaria de usar se quiser
usar um sistema de partículas do Niágara usar um sistema de partículas do Niágara Esse é o sistema de
partículas mais antigo. O que eu quero fazer é
aparecer em um emissor conhecido como
underscore Pegue aqui mesmo. Este existe no pacote
Infinity Blade Ef X. O que precisaríamos fazer então é arrastar uma referência à nossa moeda, sair daqui e
dizer get world location. E conecte isso aqui. Essencialmente, à medida que atualizamos
a localização de nossa moeda, quando terminarmos com
essa linha do tempo, ela gerará
um efeito de partícula
desse efeito de partícula ruim na localização mundial atualizada de nossas Finalmente, antes de
terminarmos este vídeo, precisamos limpar algumas coisas. Quase esqueci que, depois de nosso emissor de spawn
estar aqui, precisamos destruir o
próprio ator por meio desse Você pode obter um desses
clicando com o botão direito do mouse em algum espaço vazio ao
digitar e destruir o ator A ideia é que,
depois de
inserirmos essa moeda do bloco BP no jogo e
terminarmos a animação
da moeda, precisamos nos livrar dela para destruí-la,
caso contrário, ela simplesmente ficará
no mundo Por fim, nossa malha de moedas aqui. Esqueci que definimos nossa
rotação aqui para ser menos 70 e menos 90 no
X e Y, respectivamente. Precisamos defini-los como nossos rotadores iniciais para X e y neste nó rotador make Se não fizermos isso, essa
moeda não
girará ao longo do eixo
como pretendíamos. Então,
certifique-se de definir seus x e y para menos 70 e menos 90 para coincidir com nossos caras de rotação
inicial de moedas .
Isso vai funcionar com esta. Nos vemos na próxima.
36. Bloqueie quebrável falso (moeda dentro): Neste vídeo, vamos
criar um bloco quebrável falso Esse é um bloco que parecerá quebrável, como nosso bloco BP, quebrável que já
criamos No entanto, quando nosso personagem
interage com ele, ele aparecerá
em nossa moeda de bloco BP. Nosso jogador ganhará alguns pontos e aumentará
seu total de moedas. E esse bloco
não vai ser totalmente destruído,
vai ficar por aqui. E nosso jogador pode
usá-lo como uma plataforma. Tudo bem,
vamos começar. Aqui vamos clicar com o
botão direito do mouse em nosso bloco BP quebrável E vamos criar uma duplicata disso para
ajudar a economizar tempo Vamos chamar esse
bloco BP de falso Underscore E então eu vou pressionar
enter sobre isso. Vamos clicar duas vezes nele
para abri-lo. Agora, como podemos ver, isso herda da nossa base de
blocos BP, que é nossa mãe Como também podemos ver, também
copiamos
todo o código que pertencia ao nosso bloco BP Aqui está nosso bloco
quebrável e tudo isso, porque criamos
uma duplicata dele, está presente em nosso
falso Isso vai nos poupar
um pouco de tempo, embora façamos algumas edições aqui Tudo bem, a primeira
coisa que vamos fazer é mover esse pequeno
roteiro aqui. Vou pegar nosso
bloco de interação, FX. Temos que clicar com o botão esquerdo
e arrastar isso. Vou tocar na
tecla e depois vou colocar zero parênteses Este será o
nosso roteiro do tipo play, Whoops, play FX Vou comentar a
cor desse preto
no painel de detalhes aqui apenas para adicionar um
pouco mais de contraste. Isso é apenas para ajudar a
manter as coisas um
pouco mais organizadas e organizadas Agora, queremos reproduzir
esses efeitos de interação de blocos
quando atingirmos esse bloco. No entanto, vou estender um pouco
nossa funcionalidade
aqui. O que queremos
fazer, além reproduzir alguns efeitos de
interação com blocos, é alterar o material
associado aos nossos cubos. Vou arrastar e
soltar isso em nosso gráfico. Vou sair daqui
e digitar o material definido. Aí está. Material do conjunto. Aumentaremos o zoom mantendo
pressionado o controle e
rolando para dentro Queremos mudar o
material desse bloco quando interagimos com ele
para o nosso material do Interact. Lembre-se de que herdamos todas essas variáveis de nosso pai,
nossa base de blocos BP. E eles estão expostos aqui, mostram variáveis
herdadas Se você não tiver
essa caixa de seleção ativada, vou arrastá-la e soltá-la em nossa
entrada de material aqui Basicamente, estamos dizendo que quando
interagimos
com esse bloco, vamos
mudar o material associado ao nosso cubo
aqui com o nosso bloco Aquele cara, vamos
mudar isso para esse material, essa aparência de bloco usado. Não vai mais
ter essa aparência de tijolo. Vai ter uma aparência marrom
sólida. Ok, então isso vai
sair do pino zero
do
nosso nó de sequência. Em seguida, vou clicar com o botão
esquerdo do mouse e
arrastar para tocar na tecla. Vou chamar
isso de nossos pontos. Na verdade, vou fazer o
01 para mostrar que isso está saindo de uma sequência. Que tal apenas um? Esses serão nossos pontos adicionais. Vamos aparecer
nesse widget de pontos
e Nós vamos colorir
isso de preto também. Agora, o
que é ótimo nisso é que podemos modificar quantos pontos
damos para esse bloco, atualmente ele está definido como dez, mas vamos fazer isso 100. Podemos alterar isso selecionando
nossa variável aqui, ou você pode selecionar a variável real
dentro do próprio gráfico. Vou definir isso para 100. Então, outra coisa
que eu vou fazer, já que acabei de modificar
essa variável de pontos, eu
também vou voltar aqui E vamos modificar o efeito sonoro associado à interação
com esse bloco Atualmente, está configurado
para quebrar tijolos. Quando
interagirmos com isso, na verdade estaremos surgindo em uma moeda.
Então, vamos mudar isso. Clicando nesse menu
suspenso, vou digitar uma
moeda para um efeito sonoro. Ok, descendo
um pouco mais. Vou adicionar
mais alguns pinos aqui. E eu vou deletar
esse ator de destruição porque não
vamos destruir esse tijolo. Exclua isso. Vamos adicionar mais alguns pinos aqui, 12 clicando nesse botão A próxima coisa que vamos
fazer é gerar outro ator, botão
direito do mouse em gerar
ator da classe O que eu quero gerar
aqui é nossa moeda de bloco BP. Moeda em bloco Bp underscore. Vamos conectar isso
imediatamente ao nosso,
então, para fixar agora, temos que
dar a isso uma transformação que é um local em uma rotação que vamos gerar isso Então, se eu clicar com o botão direito
em algum espaço vazio, obter a transformação, isso obterá a localização e a rotação do nosso bloco falso onde quer que
ele esteja no mundo. Vamos conectar
isso dessa forma. Em seguida, vamos
arrastar e soltar
nossa referência do Player Controller. Vamos tirá-lo
daqui e vamos adicionar moedas. Aqui é onde podemos realmente
adicionar as moedas ao nosso total. Quantas moedas
gostaríamos de adicionar? Bem, temos essa
variável aqui. Atualmente, o
padrão é um. Na verdade, você poderia
fazer isso valer dez moedas se
quisesse uma dose valendo dez moedas. Vou deixar como está e
simplesmente conectá-lo assim. Agora vou
arrastar esse trecho do roteiro. Clique com o botão esquerdo, arraste, pegue. Vou chamar isso de adicionar moedas, um pouco de script colorindo
esse preto também. Eu queria destacar
uma coisa aqui: lembre-se de
que dentro do
nosso controle
de player foi onde
criamos nosso script de moeda publicitária. E isso vai
chamar esse evento personalizado. Na verdade, aqui está uma pequena
dica para saber que, se clicarmos duas vezes
nessas moedas publicitárias aqui, isso abrirá
nosso controle de jogador
e nos levará até onde está
esse evento personalizado. Este é o
evento personalizado que estamos chamando de nosso
bloco falso, quebrável, e é aqui que
a adição
das moedas está realmente
ocorrendo Agora, observe que estamos inserindo
nossas moedas para adicionar. Isso vai alimentar esta chamada e essas
moedas a serem adicionadas serão geradas
aqui mesmo em nosso evento personalizado. Então, estamos alimentando
o número um aqui. E aqui, em nosso
evento personalizado, ele o
distribui aqui para adicionar
ao nosso total de moedas. Então, só queria
deixar isso claro. Ok, a próxima coisa que quero
fazer é adicionar uma pequena animação ao nosso
bloco para que, quando o atingirmos,
ele esbarre
um pouco no
ar e
depois caia de volta Porque lembre-se, esse bloco não será destruído. Para facilitar essa animação em
bloco, vou trazer
uma linha do tempo Então, vamos clicar com o botão direito do mouse
em algum espaço vazio. Insira uma linha do tempo, clicando com
o botão direito do mouse,
procurando por horas. Uma linha do tempo está
na parte inferior. E vou chamar
esse meu bloco de Anum. Tudo bem, vamos simplificar
isso um pouco mais. Vou reduzir nosso
nó de sequência um pouco mais. Então, quando finalmente
conectarmos isso, agora esse bloco anum, podemos clicar duas vezes
nele
para criar algumas faixas de anum aqui para criar algumas faixas de anum Clique duas vezes sobre isso. adicionar uma faixa de movimento aqui. Será do tipo
flutuador,
então vamos clicar neste botão
Plus Track Vai ser uma pista flutuante. Vamos chamar
esse movimento. Nossa faixa aqui
terá três décimos
de segundo de duração Então, vou mudar
nosso comprimento
aqui para 0,3 segundos. Essa animação em bloco será bem rápida. Vou manter pressionado o controle
e rolar. Ligue a roda para cima. Em seguida, vou
clicar com o botão direito do mouse e deslizar para
ver nossa linha do
tempo de 0,3 segundo aqui. Agora vou
adicionar três pontos,
três quadros-chave
ao nosso gráfico aqui. Vou clicar com o botão direito do mouse,
vou adicionar um quadro-chave. Este primeiro eu
vou definir para um tempo de zero e um valor de zero. Essencialmente, dizendo que
, no início nosso movimento estará exatamente onde está agora. Vou clicar com o botão direito novamente. Bem por aqui. Vamos adicionar outra chave e vamos dizer que
na marca de 1 segundo, nosso valor será 50. Agora ele vai pular
do topo aqui, mas se eu clicar nessa seta
vertical aqui, ele vai colocá-lo à vista. Estou basicamente dizendo que em
um décimo de segundo,
pule nosso bloco de
50 unidades irreais Em seguida, vou
clicar com o botão direito do mouse novamente aqui embaixo. Vamos adicionar outra chave, e vou dizer que na marca de 0,3
segundo no final
de nossa linha do tempo aqui, nosso valor será zero
novamente , agora vou destacar esses
dois quadros-chave Eu tenho aquele
selecionado ali mesmo, mantendo pressionado o controle
, clicando com o botão esquerdo,
este aqui. Em seguida, você pode clicar
com o botão direito do mouse em qualquer um deles. E vou definir a
interpolação de teclas aqui para ser automática E o que isso vai
fazer é deixar isso cheio
de curvas Então, vamos escalar esse bloco em um
décimo de segundo, muito rapidamente,
de forma linear E então vamos
acalmá-lo novamente. Isso vai acontecer rapidamente, mas vai
facilitar o processo. Se você clicar com o botão esquerdo do mouse e
arrastar para destacar todos esses pontos, todos
eles serão selecionados. Você pode clicar nas duas
setas para emoldurá-las e ter uma visão um pouco melhor de como será a aparência Ok, agora saindo da
nossa linha do tempo e voltando ao gráfico de eventos, podemos ver que nosso
pino de movimento agora está E podemos usar isso em nosso script
para
ajustar a localização do
nosso cubo, nosso bloco aqui Então, vou trazer
uma referência ao nosso cubo aqui, nosso componente de
bloco Vamos sair disso e
digitar a localização relativa definida. Vamos
mudar a localização do nosso bloco aqui em relação a
onde ele existe atualmente. Se arrastarmos para trás
do novo local, podemos digitar make
vector para expor o x, y e z de uma forma como essa Agora, só queremos mover isso
para cima
na direção que é para
cima e para baixo,
não para frente e para trás, para a esquerda e para a
direita, para finalizar nosso roteiro. Aqui saímos do
nosso pino de sequência. Vamos
colocar isso em prática desde o início. À medida que isso for atualizado ao longo dos 0,3 segundos que
configuramos em nossa linha do tempo, atualizaremos a localização,
a localização relativa
do nosso cubo Tudo bem,
feito isso, vamos clicar com o botão esquerdo, arrastar e tocar nessa tecla. Isso vai ser
chamado de nosso bloco. Hum, nós vamos colorir
isso de preto também. Agora podemos realmente
compilar isso e salvá-lo. Nossos scripts parecem bons e
podemos testá-los em nosso nível, mas haverá um problema, que resolveremos
aqui em alguns instantes. Mas só para ver como isso
vai ficar, eu tenho minhas duas configurações de D snap
no meu nível principal aqui Deixe-me trazer esse cara aqui. Vou trazer alguns
deles imediatamente. Então, há um pressionando a tecla Alt, botão
esquerdo e arrastando para trazer
uma duplicata como essa Vamos lá, vamos entrar e
jogar e verificar nosso total de moedas. E nossos pontos, devemos
receber os dois. Então, vamos lá. Eu tenho uma moeda, eu
tenho 100 pontos. Está tudo bem, você tem que escolher o segundo. Agora tenho duas
moedas e 200 pontos. Mas aqui estão alguns problemas. Eu posso simplesmente continuar
interagindo com ele. Então, obviamente, isso não é desejado, então é necessário mais script. Tudo bem, então o que
temos que fazer para resolver isso? Bem, vamos voltar
para nosso bloco falso quebrável Vamos trabalhar um
pouco no início disso. E então também vamos
incluir algo a partir
disso, depois quatro pinos. Então, adicione um pouco
de espaço entre nosso bloco de ocorrência de eventos e
nosso nó de sequência aqui. Agora, o que queremos é que essa
sequência faça essencialmente
o que vai
fazer na primeira vez que
atingirmos esse bloco na segunda vez, nós meio que queremos
reproduzir um efeito sonoro de banco,
um efeito sonoro de colisão de tijolo Assim, podemos facilitar tudo isso
trazendo nosso booleano de
interação final que
configuramos de volta em nossa base de blocos Novamente, tudo isso é
herdado de nossa base de blocos da BP que
configuramos há muito tempo Novamente, é assim
que mostramos essas
variáveis herdadas ali mesmo Nós vamos trazer isso
, nós vamos pegá-lo. Por padrão, esse booleano
é definido como falso. Vamos sair daqui
e trazer um nó de ramificação. Vamos
reprogramar isso assim. Vamos clicar com o
botão esquerdo e arrastar. E vamos dizer que, se essa condição que
começa como falsa for falsa, faremos toda
essa interação de blocos como você acabou de me ver fazer. No entanto, se isso for verdade, vamos nos arrastar para fora
do galho verdadeiro. Vamos tocar Sound two D. E, em vez disso, o que vamos
fazer é
tocar um efeito sonoro de colisão tocar um efeito sonoro de colisão Mario brick, bump, meio que
um efeito sonoro estranho. Está bem? Então, está
tudo muito bem. No entanto, isso levanta a questão: se isso está
começando como falso, toda vez que atingimos esse bloco, deveríamos essencialmente sair
desse galho e fazer
todas essas coisas, certo? Quando isso vai
se tornar verdade? Bem, é aí que
vamos construir
a partir disso. Em seguida, com quatro pinos, vamos manter pressionada
a tecla Alt, clicar com o botão
esquerdo e arrastar. Ao manter pressionada a tecla Alt, você exibirá imediatamente
um setter dessa variável E se retirarmos
os quatro pinos, diremos que
isso é invertido para verdadeiro depois de interagirmos
com ele pela primeira vez Então, podemos colocar isso aqui,
então, essencialmente, o que está
acontecendo é que a primeira vez que
atingimos esse bloco, vamos dizer, ei, terminamos de interagir com Não, é falso. Então, vamos fazer todas essas coisas. Vamos tocar
esses efeitos. Vamos adicionar esses pontos. Vamos adicionar essas moedas. Vamos reproduzir
aquela animação em bloco. Ah, sim, e a propósito, vamos mudar
essa variável agora para verdadeira para , na segunda vez
que atingirmos esse bloco, seja avaliada como verdadeira. E, em vez disso, vamos
simplesmente sair
desse galho onde
apenas tocamos aquele som. Vamos compilar isso,
salvar e experimentar. Agora eu estou interagindo com
esse bloco uma vez, ganhamos 100 pontos, pegamos uma moeda e eu
interajo com ela novamente. O quarteirão não sobe aqui. Aquele
efeito sonoro estranho. Salte sobre isso. Ainda é interativo em termos de que eu posso superá-lo Tudo está funcionando
agora conforme o esperado. Tudo bem Emprego. Bem feito. Agora, só para enquadrar tudo
isso,
caso você queira
pausar o vídeo e fazer uma captura de tela ou o trabalho que
fizemos aqui Essa é a
parte superior do nosso roteiro. Apenas seguindo em frente, essa é a
parte inferior do script. A parte intermediária do roteiro, se você quiser, e depois voltando até
o final. Tudo bem, pessoal, fizemos um bom trabalho aqui e, na verdade, isso está nos
preparando muito bem para o próximo tijolo que
vamos fazer, pessoal, que funcionará para este. Nos vemos na próxima.
37. Bloquear? (moeda dentro): Bem-vindo. Neste vídeo, nosso objetivo é criar um bloco de perguntas que quando nosso personagem
interage com
ele, produza uma moeda Agora, a boa notícia
aqui é que esse será o vídeo
mais curto de todos os tempos, porque basicamente criaremos uma cópia do nosso bloco quebrável falso e
apenas alteraremos Então vá em frente e
clique com o botão direito no seu bloco, falso quebrável. Vamos
duplicar isso Vamos renomear
esse bloco BP Q, sublinhando Então. Vamos
clicar duas vezes sobre isso para abri-lo. Literalmente,
manteremos todo esse
script da mesma forma. A única coisa que
vamos mudar
está aqui. Vou selecionar nossa guia Viewport e, em
seguida, selecionar nosso Cubo Vamos mudar o
material associado isso para que fique bloqueado. Primeira pergunta, Matt. Podemos dizer isso imediatamente. Agora, se quiséssemos, você poderia mudar quantas
moedas isso vale. Vou deixar isso de uma vez. A única razão pela qual estamos criando esse bloco é
porque ele é
fácil e oferece um pouco mais de variedade
visual no nível. Em muitos jogos de Mario, existem blocos de
perguntas que
rendem uma única moeda, é por isso
que
vamos adicioná-la. Vamos tentar,
entrando e jogando. Como você pode ver,
podemos interagir com ele, mudar o material,
obtemos 100 pontos. Nós ganhamos uma moeda,
pronta , pessoal, isso vai
fazer tudo por esta. Nos vemos na próxima.
38. Bloqueie moeda invisível: Bem-vindos de volta a todos.
Neste vídeo, vamos criar um bloco que
começará invisível. No entanto, se nosso personagem jogador encontrar e interagir com ele, ou
seja, acertá-lo
pela parte inferior, ele o tornará visível
e receberá uma moeda A boa notícia aqui é
que podemos duplicar muito do que criamos aqui
para nos dar uma vantagem inicial Nossa moeda BP bloco Q aqui.
Clique com o botão direito nesse cara. Vamos duplicar isso. E vou chamar esse bloco BP de moeda de sublinhado
invisível. Vamos clicar duas vezes nele
para abri-lo imediatamente. Muito desse código
vai ser bom. Na verdade, tudo
isso vai ser bom. Vamos adicionar
um pouco a isso. Mas eu quero
começar em nossa janela de exibição. Agora, isso começará
invisível para o jogador. No entanto, o designer
poderá
ver isso ao trabalhar
no editor de níveis. Na verdade, deixe-me arrastar e soltar isso em nosso
nível agora. Agora, o problema aqui é que,
se você for o designer, esse bloco será
idêntico ao nosso bloco de moedas Q. Então, tudo o que eu quero fazer aqui
é adicionar um visual diferente
a esse bloco, apenas para
destacar para o designer que isso é invisível,
alguma indicação. Agora, antes de
gravar este vídeo, entrei na minha pasta Texturas Cliquei com o botão direito no nosso bloco, pergunta dois, e criei
um material a partir dele Depois de criar
esse material, eu simplesmente o arrastei e soltei E eu o movi para nossa pasta
de materiais. E você pode ver que aqui, vou aplicar isso ao
nosso cubo aqui neste bloco de BP, invisível para que tenhamos
alguma diferença visível Tudo bem, selecionando nosso cubo no
painel
de detalhes em Materiais, mudaremos para a pergunta
do bloco dois apenas para fazer com que
pareça um pouco diferente Ótimo, agora com nosso
componente de cubo selecionado, vamos adicionar
mais um componente aqui Vamos adicionar uma
caixa de busca de caixa. Estou procurando uma colisão de caixa, adicione este componente, pressione
Enter para manter o nome da caixa Com isso selecionado
no painel de detalhes, quero ter uma caixa extensa. Vai ser
100 por 50 por 100. Então, vamos criar essa caixa
invisível ao redor dela. E eu quero
configurá-lo na direção z. Vou definir isso como 51. E a razão pela qual estou configurando isso é porque quero
fazer com
que mal atravesse
a parte inferior do bloco A parte inferior do bloco
está realmente exposta. A ideia aqui é que
nosso jogador seja capaz de bater e colidir
com a parte inferior No entanto, se eles pularem de um ângulo superior
ou pularem assim, eles
colidirão com essa caixa e desativarão a
colisão dela Sendo assim,
é possível não interagir com ele. Esta caixa
poderá ser usada por nós,
o designer, para desligar e ativar a colisão desse bloco Ok, para isso, vamos
pular para o nosso gráfico de eventos. Agora, com nossos componentes de caixa selecionamos a caixa,
a caixa invisível. Vamos clicar com o botão direito
sobre isso. Vamos adicionar um evento para quando
começarmos a sobrepô-lo Vamos reduzir isso
um pouco mais. Em seguida, clicaremos com o botão
direito do mouse na caixa novamente e queremos
adicionar um evento para quando terminarmos de
sobrepor Agora, verifique se você está
falando com o componente da caixa. Está escrito entre parênteses aqui. Caixa de caixa, não o cubo. Queremos nos sobrepor
e acabar sobrepondo a caixa. Vamos clicar com o botão direito do mouse em algum espaço vazio aqui
e
digitar o personagem do jogador. Em seguida, vou clicar com o botão direito do mouse
em algum espaço vazio e digitar o sinal de igual. E eu vou trazer
alguns
nós iguais de controle D
para duplicar isso E eu vou colocar isso
como qualquer outro ator para conseguir o personagem
do jogador. Outro ator para obter o personagem
do jogador. Em seguida, vou inserir alguns nós de ramificação mantendo
pressionada
a tecla B e
clicando com o botão esquerdo
em mantendo
pressionada
a tecla B e
clicando com o botão esquerdo 1.2 Tudo bem, nosso código será
assim : se for nosso personagem de
jogador, se nosso personagem de jogador for o outro ator que se
sobrepõe à caixa, queremos falar com
nosso cubo aqui, o bloco real com o qual
queremos conversar e arraste-o para nosso gráfico de eventos Queremos definir apenas a
colisão ativada. Queremos desativar a colisão deixando esse novo
tipo sem colisão A ideia aqui é
que, se fosse o personagem do jogador o outro ator
se sobreponha à caixa Se isso for verdade, vamos
dizer ao nosso cubo que
desative a colisão O que significa
que nosso personagem vai
passar direto por ele com
esse nó selecionado. Faça o controle D para duplicá-lo. Por outro lado, diremos, certifique-se de inserir seu
cubo aqui embaixo, que se fosse nosso personagem de
jogador, se você usar o outro ator que acabou sobrepondo aquela caixa,
se isso for verdade, contaremos ao Essencialmente, para reativar
sua colisão. Colisão ativada ali mesmo. Consulta em física ativada por colisão. Vamos clicar com o botão esquerdo e arrastar
ao redor dessa tecla
C e eu vou carregar isso,
nosso script de colisão de blocos
de alternância E vou colorir esse preto
imediatamente no painel de detalhes,
selecionando essa barra de cores. Tudo bem, vamos
compilar e salvar
isso imediatamente. E mais uma vez aqui
em nosso editor de níveis, vemos esse bloco. Meu personagem vai
aparecer à direita à esquerda
dele, por assim dizer Vamos jogar isso. Se pudermos vê-lo agora, se eu bater na parte de baixo,
posso colidir com No entanto, se eu
jogasse isso de novo e desta vez
passasse pela parte superior,
cortaria direto
pela parte inferior , poderia colidir na parte inferior, colidir na parte inferior, mas eu passaria por ela
ou passaria por ela se me aproximasse por um lado
ou por cima dessa forma Ok, então algumas
coisas para corrigir aqui. Vamos voltar ao nosso bloco BP. Moeda invisível, vou
descobrir que nosso evento começa a jogar, que
existirá aqui em cima. Lembre-se de que esse bloco, em última análise, herda de nossa base de blocos Então é por isso que esse trecho de
script aqui existe. Vamos construir a
partir disso
trazendo nosso cubo dessa forma Vamos sair disso e digitar a visibilidade definida. Podemos estender esse script aqui. Estamos dizendo hey cube. Ao começar a jogar, você
não estará visível. Então, se eu fosse
compilar e dizer isso,
agora, se eu fosse
entrar no meu nível, podemos vê-lo aqui
no editor de níveis Mas quando começo a jogar, não
consigo ver esse cubo Ok, eu posso interagir
com ele ainda, mas não podemos vê-lo
desde o início. Um pouco mais de
trabalho a fazer aqui. Vamos voltar ao
nosso roteiro aqui. Vamos rolar para trás. Vamos adicionar
outro pino ao nosso nó de sequência aqui
fora do bloco de ocorrência de eventos. Vamos adicionar mais um pino. E eu vou
usar esse acabamento interação que estava fora
dos então quatro pinos Vou apenas mover isso
para os cinco pinos da época. Mantendo pressionado o controle, clique com o botão
esquerdo e arraste. Eu posso mover esse fio para
baixo até cinco. Deixe-me mover meu
nó de sequência um pouco para cá ,
porque vou adicionar script aqui embaixo. Agora, aqui embaixo, vou
trazer uma referência ao meu cubo. Mais uma vez,
arraste e solte isso aqui. Vamos
arrastar isso e digitar somente
a visibilidade definida. Desta vez, vamos
marcar essa caixa. Vamos conectar isso a partir
dos então quatro pinos, assim. Nossa ideia é
que, quando
atingirmos o bloco, diremos ao nosso
cubo que fique visível, poderemos
vê-lo novamente. Outra coisa que
também gostaríamos de fazer aqui é quando
atingimos esse bloco, e agora é no jogo
que o jogador o vê. Vamos dizer ao
nosso colisor de caixas aqui, arraste e solte esse gráfico
interno Vamos dizer
que, para ser destruído, digite o componente destruidor porque, depois de
revelarmos esse bloco oculto, não queremos mais poder
passar por ele. Vamos clicar com o botão esquerdo e
arrastar esse toque na chave do assento, vou chamar isso de nossa visibilidade de quatro pinos para
ativar como. Então, vamos virar esse bloco para criar um
pouco mais de contraste. Então esse será o
nosso roteiro ali mesmo. Vou mover nosso nó de sequência
aproximadamente de volta à posição. Vamos
compilar e dizer isso. E volte ao nosso editor
de níveis aqui. Vou mover esse
bloco logo acima da cabeça do
nosso personagem para que
saibamos onde ele vai ficar. Vou clicar em play.
Agora, se eu fosse pular, você pode ver que o bloco foi revelado e agora eu posso
colidir com ele, como de costume Tudo bem se eu tentar bater na parte de
baixo novamente, sem mais moedas, tudo bem. Agora vamos tentar abordar
isso de lado. Então, vou selecionar isso, vou
tentar abordar isso de um ângulo lateral, em algum lugar por
aqui. Você pode ver que simplesmente passamos por ela como se
nada estivesse lá. No entanto, se eu bater
nele pela parte inferior, seremos capazes de interagir com ele. Aí está, pessoal. um bloco de moedas invisível
que morrerá por causa deste. Nos vemos na próxima.
39. Caixa de moedas de bloco: Neste vídeo, vamos
criar uma caixa de moedas. E se você não tiver
certeza do que é
isso, será um bloco que parece um bloco
quebrável normal, mas aí está, ele
vai ter moedas dentro E, eventualmente, ele
expirará e se
transformará em um bloco sólido, sem
mais nem menos. É isso que estamos procurando.
Para começar aqui, vamos entrar em nossa pasta de blocos de
plantas Vou clicar com o botão direito do mouse
em nossa moeda de bloco BP. Vamos duplicar
isso imediatamente. E vou chamar esse
ativo de caixa de moedas em bloco BP. E então, com isso destacado, podemos simplesmente pressionar
a barra de espaço ou clicar
duas vezes nela para
abri-la com ela destacada. Gosto de usar a barra de espaço
para abri-la imediatamente. O que vou
fazer é trocar
o material
associado ao nosso cubo Se eu selecionar nossa
janela de visualização, nosso cubo, quero que pareça um bloco quebrável
no painel de detalhes Vou abordar os
materiais e vou alterá-los para bloquear o sublinhado do material
quebrável ali mesmo E então eu também vou
adicionar algumas variáveis no meu painel
de plantas A primeira variável que
vamos criar
será chamada de quantidade do cronômetro Isso determinará
quanto tempo teremos para coletar máximo de moedas possível antes que elas se
transformem em um bloco sólido. Vou mudar o
tipo aqui para um flutuador. E também vou clicar nesse pequeno ícone de globo ocular
aqui para tornar essa
instância editável Portanto, observe que quando
clicamos nesse globo ocular, ele também marca essa caixa Então, essas são
as mesmas: marcar esta caixa ativa esse globo ocular Clicar neste globo ocular
marca essa caixa. Em seguida, vou
criar outra variável. Este será
chamado se o cronômetro expirou. interrogação. Essa será
uma variável booleana Vamos compilar
isso imediatamente para que possamos definir alguns valores padrão.
O Tim er expirou. Vou deixar isso como
falso por tempo ou quantidade. Vou definir isso para um
valor de 5,0 para começar. Em seguida, vamos
passar para o gráfico de eventos. E vamos modificar nosso
script aqui um pouco. O que eu quero fazer
é, para começar, sob essa
seção zero do roteiro, cortar esse fio aqui
mesmo onde estamos
colocando o material Vou manter pressionada a tecla
Alt e clicar com o botão esquerdo. E eu vou
mover isso para o início do nosso roteiro. Vamos adicionar
um script
na frente aqui. Se você quiser criar algum espaço entre esse nó de sequência
e nosso evento, clique em bloquear. Vou colocar
isso em algum lugar
aqui embaixo para falar sobre isso
daqui a pouco. Então, o que vou fazer
é soltar nossa e
terminar de interagir aqui embaixo Então, vou manter
pressionada a tecla Alt e clicar com o botão esquerdo. Solte isso Então eu vou desligar todos
esses fios um pouco porque quero um script novo
que não seja zero. Então, vou manter o
controle pressionado e vou
colocar esse de lado,
nossos pontos de adição. Na verdade, vou cortar
esse fio pressionando a tecla Alt e clicando com o botão esquerdo do mouse aqui Bem, na verdade, eu não vou mudar a posição
de tudo isso. Eu deveria ter
mudado isso para baixo. Vou apenas manter
pressionada a tecla de controle. Vou descer ou adicionar moedas. Vou conectar isso assim, embora isso produza efeitos, vou desligá-lo. Mantendo pressionado o controle clicando com o botão
esquerdo. Nós vamos reduzir
isso também. Agora eu sei que todos os meus números
aqui estão um pouco errados. Eu posso ajustá-los no devido tempo. Talvez eu faça isso
no final do vídeo. Mas vou reduzir
tudo isso por
enquanto , porque quero construir a
partir do pino zero. Queremos essencialmente definir um cronômetro do nosso pino zero, porque só queremos ter permissão
para interagir com esse bloco
por um determinado período de tempo Então, o que vamos fazer
aqui é inserir um nó único, manter pressionada a tecla
e clicar com o botão esquerdo, que levará você a um
nó único. E então o que eu
quero fazer isso é
arrastar e digitar cronômetro
definido por evento,
aquele cara aqui E vou adicionar
um nó de evento personalizado. Então clique com o botão direito do mouse no evento, vou chamar
esse cronômetro expirado Então, o que eu quero fazer é conectar
isso aos nossos eventos personalizados. Podemos retroceder em nosso horário definido ou, por
evento, conectá-lo aqui Nosso tempo será determinado por esse
tempo ou quantidade. Eu posso arrastar e soltar
isso aqui. Então, se
nosso cronômetro expirar, o que eu quero fazer é definir se nosso cronômetro expirou Podemos arrastar isso para
dentro e dizer configure. Eu quero verificar se isso é verdade. Essencialmente, o que
vai acontecer é que,
na primeira vez que
interagirmos com esse bloco, vamos
passar por aqui uma vez. Vamos definir um cronômetro. Após esse período de tempo, 5 segundos ou o que quer que tenhamos
definido expiraram Isso iniciará
esse evento para clientes. E isso vai transformar nosso
ouro expirado no cronômetro Hes Vamos clicar com o botão esquerdo e
arrastar o toque na tecla C. Este será nosso
novo script de zero pinos, defina o tempo de interação do bloco. E eu vou colorir isso de
preto também. E agora, por
uma questão de tempo, não
vou ajustar
todos esses números aqui. Isso é opcional apenas para ajudar a indicar
que está
saindo de um ou
dois pinos, etc No entanto, vou
rolar para baixo e encontrar meu setter de
interação finalizado aqui embaixo. Também vou mover isso
para o início do nosso roteiro,
porque vamos mudar nosso foco para
a parte inicial
desse roteiro. Como você se lembra, o que
estamos fazendo no início é
atingir esse bloco, tentando descobrir se
terminamos de interagir, que esse ouro
aqui embaixo transforma Por padrão, isso é falso. Então, nós apenas interagimos
com nosso bloco. Queremos construir a partir
desse falso galho. Então eu vou quebrar
esse fio segurando as
teclas alt e esquerda. E vou trazer nosso lingote expirado
com cronômetro. Então, vou manter pressionado o
controle e clicar com o botão esquerdo. E se mantivermos pressionado o controle clicarmos com o botão esquerdo
e arrastá-lo para dentro, isso exibirá um setter Em seguida, vou tirar
isso e trazer um nó de ramificação. Vamos trabalhar assim. Por padrão, isso
será falso. Então, na primeira vez
que
atingirmos esse bloco, vamos dizer, ei, ainda não
terminamos de
interagir Vamos descobrir se o
cronômetro expirou. Fora isso, vamos fazer
uma vez manter pressionada a tecla e clicar com o botão esquerdo. Vamos fazer algo
uma vez se for verdade, se for falso que o cronômetro
não tenha expirado, vou conectar isso totalmente ao
nosso nó de sequência e vou
trazer alguns nós de
redirecionamento redirecionamento Clicando duas vezes nesse fio. Vamos trazer alguns nós de
redirecionamento. Agora, se for verdade, depois de atingirmos
esse bloco pela primeira vez e esse cronômetro expirar, transformando esse
ouro Se isso for verdade, queremos que
algo aconteça uma vez. Bem, o que
queremos que aconteça? Bem, na verdade, queremos que
algumas coisas aconteçam aqui. Vou trazer
o nó da sequência, manter pressionada a tecla S
e clicar com o botão esquerdo. A primeira coisa
que vamos
fazer é colocar nosso material aqui. Queremos configurar nosso material para parecer que foi usado agora. Nosso cubo aqui é para o qual estamos
configurando o material. O material do Interact
que queremos configurar para esse
bloco usado, como nós temos. Essa é a primeira coisa que
vamos fazer. E então também
vamos configurar isso
para terminar de interagir
logo depois disso. Depois de alterarmos
esse material,
diremos, ei, terminamos de interagir aqui, terminamos de interagir
aqui, terminamos Então vá em frente e altere
essa variável agora para verdadeira. Na próxima vez que nosso personagem
tentar interagir com ele, ele simplesmente jogará aquele
banco de tijolos. Som. Ok. A primeira
coisa que queremos fazer, a segunda coisa que
queremos fazer é simplesmente continuar
em nossa sequência. Na verdade, isso não acontece apenas no interesse da
organização aqui. Vou pegar nosso então
pino zero e conectá-lo aqui. Isso eu posso conectar
aqui assim. E vamos tentar arrumar isso
para que
nosso roteiro revisado pareça,
então , na primeira vez que chegarmos ao nosso obstáculo, descobriremos se
terminamos Por padrão, isso
será falso. Então vamos
até nossa filial e descobriremos,
ei, o cronômetro expirou Por padrão, será falso, que significa que
vamos interagir com isso na primeira vez. Em nossa primeira interação, uma vez
definiremos esse cronômetro. Então o relógio está correndo, neste caso 5 segundos. Vamos fazer então
todas essas coisas imediatamente após
o cronômetro ser configurado Então, todas essas coisas virão
imediatamente. Depois de 5 segundos,
isso se torna verdade. Portanto, se tentarmos
atingir o bloco após o tempo expirar,
se for verdade, definiremos
nosso material para ser
esse bloco usado, basicamente
permitiremos mais uma colisão, mais
uma interação
e, em seguida, inverteremos isso como verdadeiro, fazendo com que, da
próxima vez que tentarmos atingi-lo, toquemos
aquele som Vamos continuar e compilar isso. Vamos arrastar isso para o nosso
nível e ver se funciona. E então eu vou enquadrar esse
pequeno roteiro na câmera para todos
vocês, para que vocês possam
revisar se precisarem Aqui vai estar nossa caixa de moedas. Agora você notará,
deixe-me trazer dois desses. Vou até Alt e
arrasto em um segundo. Então, ambas são caixas
de moedas no painel de detalhes. Posso personalizar por quanto tempo essa caixa de
moedas permanecerá ativa. Então eu vou definir este segundo,
este da extrema esquerda
aqui para 10 segundos. E eu direi que cada vez que
eu interagir com
ela, ela adicionará
cinco moedas em vez de uma e, em vez de 100
pontos para cada moeda, vou defini-la como 500. Portanto, esta primeira caixa de moedas, parâmetros
padrão
bastante normais. O segundo vai ser
um pouco mais extremo. Vamos
dar uma chance a isso. Tudo bem, nossa caixa de
moedas normal vai ficar viva por 5 segundos aqui, 12. Você pode ver que está incrementando uma moeda por vez,
100 pontos por vez Depois de 5 segundos, não consigo mais
interagir com ele. Este vai ficar
vivo por 10 segundos. Aqui vamos nós. Cada um de nós vale 500 pontos
e, como você pode ver, está
adicionando cinco moedas por vez. Após 10 segundos,
isso expirará. Aí está. Temos uma caixa de moedas
altamente personalizável Vamos colocar
isso na tela mais uma vez, para que você possa pausar o vídeo
aqui se precisar Essa é a
parte inicial do script. Então, saindo do nosso nó de
sequência aqui, temos nosso novo pino zero. Verifique se você marcou essa
caixa aqui. Valor do tempo definido como algum valor
padrão e tudo isso será o
resto como era antes. Tudo bem, pessoal, isso vai
fazer tudo por este. Nos vemos na próxima.
40. Bloqueie a flor de fogo #1: Ao longo dos
próximos vídeos aqui, trabalharemos para dar poder floral ao nosso
personagem. Mas precisamos
começar criando um bloco que, quando
interagido, na verdade gera uma flor de fogo Então é nisso que
vamos nos concentrar ao longo dos próximos
dois vídeos. E então vamos nos concentrar em dar
aos nossos jogadores algumas bolas de fogo
para atirar primeiro, bloquear, depois a habilidade de
realmente atirar bolas de fogo Vamos direto ao assunto
aqui em nosso navegador de conteúdo. Vamos usar um
atalho mais uma vez
criando uma duplicata
da nossa moeda Q do bloco B. Você pode clicar com
o botão direito do mouse para duplicá-lo ou Control plus D também
o duplicará Qualquer um dos métodos funcionará bem. Vou chamar isso de BP
Block Fire Flower. Então, como de costume, vamos clicar
duas vezes nele para abri-lo. Vamos
começar adicionando alguns componentes aqui. Deixe-me ir para minha guia Viewport. E eu quero ter certeza de
que esses componentes estão conectados ao nosso cubo
aqui, nosso bloco Vamos selecionar nosso
cubo aqui primeiro. O primeiro que
vou adicionar será um colisor de caixas E isso vai ser encontrado
aqui, uma colisão de caixa. Então vá em frente e selecione isso. Vou chamar essa caixa de
Underscore Flower. E então, com isso selecionado, vamos definir a extensão
da caixa
imediatamente para que eu tenha um valor em mente. Vai ser 40 por 40 por 40. Vou pressionar Enter lá. Também vou fazer a espessura
da linha. Vou definir isso para cinco, só para tornar isso
um pouco mais proeminente e fácil de ver. Agora não vemos nada
ainda porque isso está enterrado dentro do nosso cubo Mas a ideia aqui é que, quando atingirmos a parte inferior
desse cubo, ele realmente se moverá
para cima
desse jeito Agora anexado a esse componente, quero adicionar uma malha estática. Portanto, certifique-se de ter sua
caixa de farinha selecionada aqui. Vamos adicionar um componente de
malha estática. Este, podemos simplesmente
chamar-me de farinha de sublinhado. E com isso selecionado, nossa malha estática será um plano. Vamos simplesmente
usar dois cartões D. Vamos escolher esse plano
aqui embaixo para o material que
realmente precisamos para criar esse material aqui
em nosso navegador de conteúdo. Vamos voltar para nossa pasta
Texturas. Eu tenho um aqui para os nossos quatro,
aí está, sublinhe Fire Flour Se clicarmos com o botão direito do mouse sobre isso, podemos convertê-lo
em um material. Vamos
deixar esse nome. Então, vou
pressionar Enter. E então eu vou mover isso
para a minha pasta de materiais, arrastando
e soltando Vamos dizer, mova-o para
cá. Em seguida, vamos entrar em nossa pasta de materiais. Vou clicar duas vezes nele imediatamente para
abri-lo, porque há algumas modificações que eu quero
fazer aqui. Quero mudar o modo de mesclagem de opaco para translúcido O que isso vai fazer
é tornar esse pino de opacidade
disponível para nós E vamos
querer pegar esse valor e conectá-lo
à opacidade E ao fazer isso, deixe-me colocar isso em uma esfera. Vou colocá-lo,
digamos, em uma caixa como essa. Agora podemos ver
como isso realmente vai aparecer para
o jogador no jogo. Só vamos
projetar isso em um avião, então vai ficar assim. Isso vai ser muito bom. O que podemos fazer aqui também. Vou selecionar nosso nó de material
mestre. Também podemos marcar a caixa de seleção nos dois
lados. Não devemos precisar
disso porque isso
só vai estar voltado para um lado. Mas isso fará com que seja fácil para nós ver
isso,
não importa para que lado o jogador
esteja voltado para o jogador. Vamos em frente e economizemos aqui. Então, podemos ir em frente e
fechar isso novamente. E então vamos
voltar ao nosso bloco BP. Flor de fogo com nossa flor de
malha selecionada. Vamos
colocar isso em um avião. Vamos aos nossos materiais
e se eu digitar farinha de fogo assim, aí
está nossa flor de fogo. Agora também quero
ter certeza de que esta carta que vai
aparecer daqui
está voltada para o nosso jogador Agora, só para mostrar do
que estou falando, vou selecionar
minha caixa de farinha. Quando atingirmos o lado inferior, mais
uma vez isso vai
subir assim. Mas observe que nossa malha
não está voltada para o jogador
com a selecionada. Vou passar para a configuração
de rotação. E vou definir
minha rotação x para
90 para que fique voltada
para o jogador Você pode ver como isso
vai funcionar quando
interagirmos com esse bloco que simplesmente
se levantará assim. E vamos usar
essa caixa para realmente detectar quando nosso personagem está se
sobrepondo a ela para que possamos coletar a farinha Agora, mais uma coisa que preciso fazer aqui com nossa farinha de malha. Volte e selecione isso. Temos essa rotação definida para 90. Nós configuramos o material. Há mais uma
coisa que precisamos fazer. Precisamos definir a
predefinição de colisão aqui para que não haja Não queremos que nada
colida com isso, sem colisão. Mais uma vez, vamos
simplesmente usar esta caixa de
farinha para verificar se estamos sobrepondo essa
farinha, coletando-a assim Tudo bem, com tudo isso feito, vamos ver nosso gráfico de eventos e modificar nosso script
aqui um pouco. Algumas delas
vamos conseguir guardar, algumas das quais vamos nos livrar agora, não
vamos
adicionar nenhuma moeda aqui. Então, podemos simplesmente nos
livrar desse pequeno script. Clique com o botão esquerdo
e arraste, e podemos excluí-lo , adicionando alguns pontos. Nós vamos fazer
isso um pouco mais tarde, não nesta parte
do roteiro. Então, vou cortar esse fio
segurando
a tecla Alt e clicando com o botão esquerdo E eu vou arrastar
isso para o lado por enquanto para o nosso play X. A única coisa que eu quero
mudar sobre isso é o nosso efeito sonoro
Interact Atualmente está configurado como moeda, vou
definir isso como item e depois vou descer e ver quais modificações podemos
fazer com nosso bloco anum Ok, para começar
aqui, tudo vai ficar bem exceto que eu quero adicionar um
pouco de script Depois de terminarmos essa animação em
bloco, quero adicionar um pouco de efeito de
partícula brilhante Então, o que vou fazer
é trazer
uma referência à nossa
flor de malha, arrastá-la e soltá-la. Vamos
adiar isso e dizer: obtenha localização
mundial dessa forma. E vamos conectar isso
a um emissor de spawn no local Emissor de geração no local. Novamente, isso usará
o sistema de partículas mais antigo sistema de desova no local
seria usar um efeito de partícula de
Niágara Agora, a razão pela qual
vou
escolher isso é porque tenho um
efeito de partícula específico em mente E se eu clicar aqui, isso virá do
nosso pacote de lâminas infinitas Isso vai sublinhar Dead Man's, Dead Man's Lute Vou jogar isso depois
de terminarmos aqui, assim. E então o que eu também
vou fazer é promover
isso para uma variável, então isso vai
gerar esse emissor Vou clicar com o botão direito do
mouse nesse valor de retorno. E vamos promover isso
para uma variável porque,
mais tarde,
vamos querer destruí-la assim que coletarmos
a flor de fogo. Então, depois de clicar, clicar com o
botão direito do mouse promove uma variável,
eu posso dar um nome a isso Vou chamar isso de
meu brilho de power up. Parece um bom nome. E mais uma vez, vamos usar isso para destruí-lo mais tarde. Agora, tudo isso será
para nossa animação em bloco, nosso bloco
se movendo no ar. Vou apenas manter
pressionado o botão esquerdo do mouse. E eu vou mover isso
até o nosso então único pino. Na verdade, vou
rotular isso novamente como tal. Agora preciso trabalhar em
nossa animação de flores. Então esse é o tipo
de bloco que está sendo jogado no ar Mas e a
flor que realmente brota do quarteirão No momento, está enterrado
dentro do bloco. Precisamos de algo
para tirar isso daqui. próxima parte do
nosso gráfico
de eventos será construída
abaixo do nosso bloco. Animação como. Então, vou clicar com o botão
direito do mouse em algum espaço vazio
e inserir uma linha do tempo. Vamos adicionar uma linha do tempo. Vou chamar isso de meu fluxo de ar. E flor anum. Deixe-me ampliar isso
usando minha roda de rolagem. Dentro disso, vamos clicar
duas vezes nessa linha do tempo. Temos nossa nova aba aqui. Vamos adicionar
uma pista flutuante. Clicando em mais faixa, vou chamar esse movimento. E vou adicionar dois
quadros-chave à nossa faixa. Aqui, novamente, algumas
maneiras de adicioná-las. Você pode adicioná-los mantendo
pressionada a tecla Shift, a tecla Shift e clicando com o botão esquerdo. Ou, alternativamente,
você pode clicar com o botão direito do mouse em algum espaço vazio
e adicionar uma chave. De qualquer forma, faremos
nosso primeiro quadro-chave. Em vez disso, vou
selecioná-lo. Um tempo de zero e
um valor de zero. Então, para o nosso segundo quadro-chave, eu vou selecionar isso
e vou definir o tempo de 0,5. Então, isso
vai levar meio segundo, e eu vou definir
o valor como 100. Posso enquadrar tudo isso
clicando nessas setas, Y 100. Bem, se eu for ao
meu Viewport e
selecionar minha flor de malha
aqui, veja isso. Eu vou mudar
a localização aqui. 100 unidades irreais é
, em última análise, o que
queremos fazer para tirar isso
do quarteirão Vamos movê-lo 100 para
cima na direção Z. Ok, vamos nos certificar de que
definimos o comprimento da nossa linha de tempo para na verdade, ser meio
segundo agora, para corresponder ao
nosso último quadro-chave Então, vou definir 2,5 e
voltando ao nosso gráfico de eventos, vamos conectar isso ao nosso nó
de sequência. Faremos isso com
nossos então dois pinos. Nós vamos jogar isso. O que queremos fazer é conversar com nossos quatro. Nossa farinha de malha, nossa farinha de malha. Vamos fazer a farinha da caixa que precisamos
para mover a flor da caixa para cima. É importante notar que, embora queiramos que a
farinha de malha em si suba 100%, ela vai
aparecer durante o passeio. Quando subimos a flor da caixa, é importante
movê-la porque,
eventualmente,
verificaremos
se há sobreposição
desse colisor eventualmente,
verificaremos se há sobreposição
desse A flor em caixa é
a coisa que
realmente queremos que cresça. O cartão Mesh Flour
aparece para a viagem de volta
em nosso gráfico de eventos. Vamos arrastar nossa caixa de flores assim. Nós
vamos conseguir isso. Vou clicar com o botão direito do mouse
sobre isso e vou
convertê-lo em um get validado, o que significa que só
faremos esse movimento se for validado que essa flor em caixa realmente
existe Vamos
destruir isso quando finalmente o coletarmos aqui. Basicamente, estamos dizendo: esse componente ainda existe? E o que vamos
fazer é que, quando
atualizarmos nossa linha do tempo aqui
em mais de meio segundo, só
faremos algo se esse
componente de flores em caixa existir Se ele não existir e não existir
depois de coletá-lo, não
faremos nada. O que queremos
fazer se ela existir. Então, vamos nos
afastar disso e dizer que definir localização
relativa é localização
relativa. Agora, a nova localização que
vamos arrastar para trás
daqui e digitar make, aí está, make vector Só queremos mover isso para
cima na direção Z. Nosso movimento aqui, mais uma vez, nossa linha do tempo está especificando
que em mais de meio segundo ela subirá
100 unidades irreais Esta
será a nossa animação, clique com o botão
esquerdo, arraste a tecla. Isso está saindo
do nosso fluxo de dois pinos. Hum, vamos colorir isso de
preto imediatamente. Ok,
está tudo muito bem. Por fim,
vamos subir nosso
setter de interação final Na verdade, podemos eliminar
isso e depois quatro pinos. Então, vou manter pressionada a tecla de controle e clicar com
o botão esquerdo. Mova-o até os
três pinos. Clicando com
o botão direito do mouse sobre isso, vou remover o pino de execução. Essa será a primeira parte
da nossa flor de fogo aqui. Um pouco mais de trabalho
a fazer. Eventualmente, adicionaremos
pontos, mas nosso roteiro final ficará assim. Vamos tentar
enquadrar isso em porções de cada vez. Há essencialmente
a parte superior e, em seguida, segue para baixo para
as duas e depois três. Essa será
nossa parte inferior. Vamos continuar e compilar isso. Vamos economizar agora. Precisamos jogar para testar isso. Mais uma vez, ainda
não conseguiremos coletar
a flor de fogo,
mas devemos ver
a flor de fogo surgir do bloco
assim que interagirmos com ela. Aqui vamos nós. Voltando aos nossos blocos,
temos nosso bloqueio, fluxo de
fogo, vamos colocá-lo
em posição aqui. Entrando e brincando. Tudo bem, interagindo
com o bloco, a flor se levanta, vemos aquela partícula brilhante Obviamente, ainda não podemos
coletá-lo. Mas concluímos nosso roteiro inicial
. Trabalho feito, pessoal.
Vamos passar para a parte número dois e terminar com
isso. Nos vemos lá.
41. Bloqueie a flor de fogo #2: Bem-vindo. No último vídeo, criamos uma planta de bloco
que gerará
uma flor de fogo
quando nosso personagem
interagir com ela quando nosso personagem
interagir No entanto, não criamos um script
na funcionalidade de
coleta da referida flor de fogo. Então é isso que vamos
fazer na parte número dois. Vá em frente e
clique duas vezes em seu bloco BP Fire flower
para mergulhar de volta aqui A primeira coisa
que quero fazer é adicionar um novo componente aqui. E isso vai
ser simplesmente um ponto no espaço. Eu tenho minha
raiz de cena padrão selecionada aqui. Vou adicionar um componente. Isso vai ser
um componente de seta. Se eu for até o ponto de vista, isso é simplesmente essa
seta vermelha aqui Eu quero mudar a localização
disso e vou
definir a localização z como 150. Meu único uso para esse
componente, novamente, o usuário não
verá essa seta
quando estiver jogando,
é revelar um ponto no espaço
em que eu quero que um
valor de pontos apareça Tudo bem, com tudo isso,
vamos selecionar nossa flor de caixa, que é esse
componente do colisor de caixas que está enterrado dentro Vou clicar com o
botão direito sobre isso. Vou adicionar
um evento para quando nosso personagem começar a se sobrepor
a isso Isso nos levará de
volta ao nosso gráfico de eventos. O que queremos fazer é
verificar se é
nosso personagem que está fazendo a sobreposição Mais uma vez, vamos inserir
um sinal de igualdade. Vou me arrastar para trás. Obtenha um personagem de jogador para que você também possa
escalar seu personagem em vez de
fazer esse tipo de configuração. Mas eu venho fazendo isso
durante todo o tempo, ou
faremos, vamos trazer
um nó de ramificação como esse. Se for nosso personagem jogador que está fazendo a sobreposição, vou trazer um
nó de sequência porque há algumas
coisas que eu gostaria de fazer Mantendo pressionada a tecla S, vou clicar com o botão esquerdo e
inserir um nó de sequência. Então eu vou
ampliar aqui de volta. E vou mover esse trecho do
roteiro para cá, onde vou examinar nossa seção de pontos de
adição do script. Agora, a primeira coisa
que quero fazer é adicionar alguns pontos para
coletar uma flor de fogo. Então, vou colocar
isso em posição. Aumente o zoom um pouco, enquadre isso assim com nosso pino zero,
adicionaremos alguns pontos nos
quais clicaremos para adicionar um
pequeno nó de redirecionamento adicionaremos alguns pontos quais clicaremos para adicionar um
pequeno nó de redirecionamento Eu preciso especificar, vou colocar
um zero lá. Onde exatamente eu quero que
isso apareça. Bem, eu adicionei esse
componente de seta por esse motivo. Então, vou
arrastar e soltar isso em nossa transformação get. E você pode ver que isso
realmente não vai funcionar porque esse não
é um ator. Eu tenho que deletar isso. Vamos arrastar e soltar
nossa flecha aqui. E eu vou
sair daqui e digitar get world transform. Portanto, esse é um componente de cena em
oposição a um ator. Esse é o local onde eu
quero aparecer em nossos pontos. Agora, como essa
é uma flor de fogo, posso especificar quantos
pontos eu gostaria que tivesse. Em vez de 100, vou
fazer com que valha 1.000. Novamente, você pode personalizar isso para
essa variável específica. Isso agora acrescentará alguns pontos. A segunda coisa que eu quero fazer
é destruir alguns componentes. Vou trazer minha caixa de flores. Vamos arrastar e soltar
isso no gráfico. Vou me arrastar para fora disso
e digitar um componente. Agora eu não quero
destruir o ator inteiro. Eu quero que o quarteirão fique juntos. Eu não quero que essa
coisa toda desapareça. Mas há alguns componentes que eu quero destruir com isso. Eu quero destruir minha flor de caixa, que é a
caixa de gatilho, aliás. Eu também quero destruir
nossa flor de malha. Vou arrastar
isso aqui e
podemos conectar os dois a
esse componente de destruição. E eu também quero destruir
nosso brilho de power up mais uma vez. Fizemos uma referência
a isso
aqui em nossa animação em
bloco. Clicamos com o botão direito do mouse e
transformamos isso em uma variável. E fizemos isso para que
pudéssemos destruí-la quando o personagem
coletasse aquela flor de fogo,
caso contrário, esse brilho
ficará lá E mais uma vez, aqui é onde
estamos destruindo aquela flor de caixa Então, na primeira vez, isso será válido
e o
jogador verá essa localização
relativa da nossa flor em caixa crescer. Mas na segunda vez após a
coleta, ela não
será válida, então
não haverá nada para avançar. Destrua a flor da caixa,
a flor da malha e nosso power up brilhará em
todas as três Vou simplesmente selecionar tudo
isso e tocar na tecla C. Vou chamar isso de destruir os componentes
da fechadura. A cor do script também é preta. Temos isso muito bem emoldurado na
tela. Vamos
compilar e salvar isso Agora vamos
testar isso novamente em nosso nível Agora devemos ver, quando
jogamos nosso jogo, devemos ver a flor
surgindo disso. E agora devemos ser capazes de
coletá-lo dessa forma, agora nada realmente
acontece ainda. Na verdade, não ganhamos nenhum poder
floral, se você quiser. Então, isso virá no próximo vídeo. Mais trabalho a ser feito para dar poder floral ao
nosso personagem.
42. Transformação de jogadores de flores de fogo: Neste vídeo, nosso objetivo
é criar um roteiro, notificando nosso personagem de
que ele recebeu uma flor de fogo, para que o personagem
possa reagir de acordo Agora, esse
script transformará o jogador ao
coletar a flor de fogo. Há muito trabalho a
ser feito neste. Vamos direto ao assunto
e não percamos tempo. Vou
começar aqui no meu projeto de BP, personagem em
terceira pessoa Então, vou apenas selecioná-lo. Pressione a barra de espaço
para abri-la. E dentro daqui eu
quero começar. Vamos primeiro ao nosso Viewport. E vamos selecionar
nosso componente de cápsula. Esse é o nosso principal componente aqui, com o qual outras coisas estão associadas a esse recuo mostrando uma relação de apego Vou reduzir
isso imediatamente. E eu posso escalar isso
uniformemente
no painel de detalhes
clicando neste pequeno botão de bloqueio E então pressione 0,75.
Em seguida, pressione Nor, para reduzir nosso
personagem Por padrão, queremos que
nosso personagem, nosso personagem jogável,
comece com um tamanho menor Agora, também vou definir
a meia altura
e o raio da cápsula aqui para serem ligeiramente diferentes Vou definir a
metade da altura da nossa cápsula para 96. E vamos definir o
raio de nossa cápsula aqui 34, algo um
pouco mais fino assim, um pouco mais alto, só para
perdoar um pouco Tudo bem, em seguida,
vamos entrar no
nosso gráfico de eventos e vamos
criar um evento personalizado. Então, dê uma olhada, com o botão direito do mouse. Vou
clicar com o botão direito do mouse, digitar eventos
personalizados e adicionar eventos personalizados. Vou chamar isso de
Got Flower Power. Agora, novamente, eventos personalizados
precisam ser chamados manualmente, então teremos que
chamar isso eventualmente. Mas agora já
temos isso em vigor. Então está tudo muito bem. Em seguida, vamos
criar duas variáveis. Clicando no
painel do meu projeto, o botão de adição. O primeiro será
chamado de escala de jogador pequena. Isso vai ser um vetor. Então eu vou adicionar
outro chamado tem flor de fogo e este
vai ser um booleano Tudo bem, se eu compilá-los, quero que tenham barras de flores
Fire
que sejam
falsas, por padrão, nosso
jogador seja pequeno, eu quero que seja uma em todos
os aspectos Ok, em seguida, o que eu quero fazer é criar uma
categoria na qual eles vivam. Na seção de categorias
do painel de detalhes,
podemos criar uma categoria. Então, vou chamar isso de
minha categoria de Saúde do Jogador. Saúde do jogador pressionando Enter. Agora você pode ver que adicionamos uma categoria chamada
Player Health no painel My blueprint e
o Player
Scale
Small está lá Eu também vou colocar uma flor de
fogo lá dentro. Com essa categoria
selecionada, estará a saúde do jogador. Tudo bem, a seguir, o que eu
quero fazer é criar uma linha do tempo
que
controlará o crescimento do nosso personagem quando eles
coletarem a flor de fogo. Vai ser esse
tipo de encolhimento e crescimento muito rápido, uma
espécie de efeito Então, vou
clicar com o botão direito do mouse em algum espaço vazio e digitar a linha do tempo. E vou nomear isso como
nosso cronograma de crescimento. E essa provavelmente será a linha
do tempo mais difícil que criaremos
neste curso Vou clicar duas vezes
nele para abri-lo. Vamos adicionar
uma pista flutuante. Rastrear. Float Track,
e eu chamarei isso de nosso multiplicador de crescimento Agora vou definir
a duração disso para 0,8 segundos. Então eu vou definir
as chaves a cada 0,05 segundos. Vou tentar fazer isso uma forma relativamente
organizada
e,
em seguida, definiremos as chaves e os valores para
eles à medida que avançamos. Vou apenas manter
pressionado o controle e rolar. Bem, só para expandir um pouco mais nossa linha do tempo aqui Então, nossa primeira chave, clique com o botão direito,
vamos adicionar uma chave. Essa primeira chave será definida
para um tempo zero e um valor de 0,9. Pode trazê-los assim. Nosso próximo, vou colocar aqui embaixo, clique
com botão
direito do mouse em Adicionar chave. Isso vai ser
um tempo de 0,05 e um valor de 0,65 Novamente, isso vai ser
um multiplicador de escala Talvez seja necessário
clicar nessas setas para exibi-las constantemente e rolar para dentro e para fora. Na próxima, vou clicar em
Adicionar uma chave. Esse vai durar
0,1 segundos. O valor será 0,9. No próximo, clique com
o botão direito, adicione a chave, 0,15 e o
valor será 0,65. Assim, você pode ver
esse efeito de serrar o mar Na próxima, vou
clicar com o botão direito do mouse aqui. Vamos adicionar uma chave. Serão 0,2
segundos e um valor de 0,9 Então, mais um, aqui
embaixo, clique com o botão
direito, adicione uma chave, 0,25
e um valor de 0,65 Ok, agora vamos
aumentar um pouco Teremos um crescimento menor,
um crescimento médio
e um alto crescimento. Na próxima, vou clicar aqui, clicar
com o botão direito mouse em Adicionar chave. Vai ser
um tempo de 0,3 e um valor de 1,1 No próximo, vou clicar aqui, clique
com o botão direito do mouse. Serão 0,35 na época e o
valor será 0,65 Essas partes inferiores da
nossa lâmina de serra aqui serão
essencialmente 0,65.
Role um pouco para trás, vou clicar aqui, tecla
Adicionar Este será de 0,4 segundos, 1,1 clique com o botão direito do mouse na tecla Adicionar, 0,45 0,65 para o
valor.
Clique com o botão direito. Adicione outra chave. Isso
vai levar 0,5 segundos e 1,1 Vamos adicionar
outro, aqui mesmo. Clique com o botão direito, 0,55 é a hora, 0,65 é o valor Então, temos
mais algumas para fazer aqui. o botão direito.
Planejando isso. Vou clicar com o botão
direito do mouse aqui.
Vamos adicionar uma chave. Este será de 0,6 segundos,
o valor
será
1,3 Vamos clicar em Adicionar uma o valor
será
1,3 Vamos chave,
0,650 0,65
clique com o botão direito do mouse em Adicionar uma chave, 0,7 e 1,3
Clique com o botão direito do mouse em Adicionar chave Isso será 0,75
e 0,65 para Então, por último, estamos quase lá, pessoal, adicionem essa tecla, será
0,8 e um valor de 1,3. Então, vou destacar
todas essas rolagens,
rolar, voltar, ela será
0,8 e um valor de
1,3. Então, vou destacar
todas essas rolagens,
rolar, voltar, clicar com o botão
esquerdo e arrastar Todos os meus pontos aqui
estão destacados e podemos
enquadrá-los assim. Agora você tem um
padrão de gangorra que se parece com isso. Então, todos esses
quadros-chave inferiores têm um valor de 0,65. Eu separei todos
esses 0,5
segundos aqui Você pode ver a
hora. Você está meio
que vendo o padrão aqui, então tudo bem, acho que
você o tem a partir daí. Tudo bem, então pulando
daqui e voltando ao
nosso gráfico de eventos Então,
temos nosso poder floral. O que eu quero fazer é,
depois de ligarmos para isso, e nos preocuparmos com
a ligação para isso mais tarde, é colocar nossa
flor de fogo em chamas. Então, vou arrastar
nossa flor de fogo. Eu vou configurá-la e
vamos dizer,
sim, agora temos
a flor de fogo, então vamos
transformar isso em realidade. Vamos
tocar um som logo
após tocar o Sound two D, e nosso som aqui será nosso power up Sound Power up, assim. Então, queremos
ajustar os pontos de
vida, porque se tivermos
a flor de fogo, basicamente
adicionaremos um ponto de vida. Então, se eu clicar com o botão direito do mouse
e
digitar ajustar pontos de vida, e se você esquecer onde
isso acontece aqui, deixe-me dar uma
olhada um pouco Vamos conectar isso. Voltaremos a isso em apenas um segundo. Vou
clicar duas vezes nisso. Isso nos levará a chamar esse evento personalizado,
essa modificação
de nossos pontos de vida. Todo esse roteiro que fizemos
no início do curso. Então, vamos fazer uma chamada para modificar nossos pontos de vida. Agora eu preciso voltar para esse script de flor de fogo em
que estamos trabalhando,
porque quando obtemos
a flor de fogo,
queremos ajustar nossos
pontos de vida porque quando obtemos
a flor de fogo, um para cima aqui. Modificador de pontos de
vida, vamos adicionar um para que esse valor de um seja passado aqui
para esta equação Ok, então depois disso, ajustamos os pontos do quadril ao
pegar nossa flor de fogo. É aqui que vamos
introduzir nossa linha do tempo. Vamos jogar do início para garantir que sempre
comecemos do início. Observe que temos esse multiplicador de
crescimento. Vamos
usar isso para
multiplicar em nossa pequena escala de jogadores Então, vou
manter pressionado o controle, clicar com o botão
esquerdo e arrastar. Esse é o valor de um
em geral aqui, então vamos usá-lo para multiplicar em relação ao nosso
multiplicador de
crescimento Vou clicar com o botão direito do mouse
em algum tipo de espaço vazio na
tecla de multiplicação para inserir um operador de multiplicação e multiplicaremos
nosso multiplicador Que está oscilando para baixo
e para cima e para baixo e para
cima e para baixo e para cima Os valores disso continuam
mudando rapidamente ao longo do tempo. Vamos multiplicar isso por unidades em toda a linha aqui Agora vamos
usar isso para
escalar nossa malha por nossa malha. Estou falando sobre, se eu
for ao nosso ponto de vista aqui, essa verdadeira malha de
manequim de três D Vamos voltar ao
nosso gráfico de eventos e vou trazer uma
referência à nossa malha. Vamos
arrastar isso e digitar escala relativa
definida três D. Então, à medida que nossa linha do tempo
está sendo atualizada aqui, vamos modificar a escala
da nossa malha por meio dessa parte da
matemática aqui Agora, isso pode levantar a questão: por que estamos escalando nossa malha em vez de
nosso componente de cápsula Porque se escalarmos
nosso componente de cápsula, todo
o resto
surgiria durante a viagem. Por que não fazer isso dessa maneira? Bem, a razão para
isso é porque, se escalarmos isso,
em vez de nossa malha, nosso braço de mola e
nossa câmera configurados aqui
farão coisas estranhas Então, vamos seguir essa abordagem e, em seguida, vamos modificar manualmente o tamanho do nosso componente
da cápsula. Então, isso virá aqui
em pouco tempo. E, na verdade,
cuidaremos disso a partir
do alfinete
de nossa linha Aqui vou me arrastar para
fora de nossa direção. Isso pode nos dar
a direção de nossa linha do tempo a
ser retirada daqui E vou digitar o
botão na direção da linha do tempo. Agora temos uma direção para frente
e para trás na nossa linha do tempo pode ser
reproduzida a partir desse
conector de pino de acabamento. Assim, queremos trazer uma referência
ao nosso componente de cápsula Agora arraste isso para dentro, o que queremos fazer é
arrastar isso e digitar cápsula
definida com meia altura. E então eu também vou tirar
isso e digitar
o raio definido da cápsula Quando terminarmos de jogar nossa linha do tempo na direção para
frente, queremos definir a altura da
cápsula porque nossa malha
será essencialmente maior Precisamos que a
altura da cápsula que envolve nosso personagem aqui também
se ajuste em tamanho. Vamos definir a
metade da altura da cápsula para 120. Opa, 120. Vamos definir nosso
raio aqui como 40 Certifique-se de conectar
isso assim. Então, estamos
avançando e, essencialmente, crescemos em tamanho. Outra coisa
que eu quero fazer aqui é trazer
outra referência à nossa malha.
Arraste
isso assim. Vamos arrastar isso
e digitar o local definido. Na verdade,
também vamos
ajustar manualmente a posição de nossa malha a posição de nossa malha para caber perfeitamente dentro desse componente
de
cápsula redimensionado Então, descobri todos
esses valores por meio algumas narrativas experimentais
para nos poupar algum E vou definir
nossa nova localização aqui como menos 90. Ok, então isso
vai sair da linha
do tempo.
Direção para frente. Ok. Agora, se quisermos jogar
essa linha do tempo ao contrário, o que significa que fomos atingidos, queremos essencialmente
reverter esses efeitos Então, o que vou
fazer é controle pressionado e me
certificar de selecionar esses
nós aqui, 1.234,5. Deixe-me
realçá-los Vou pressionar o controle
D para duplicar todos eles. E eu vou
colocar outro conjunto
deles fora dessa direção
inversa Se estamos basicamente reproduzindo
essa linha do tempo ao contrário, o que significa que fomos atingidos, quero redefinir nosso componente de
cápsula volta ao tamanho normal E nossa meia altura
era 96 por padrão. Nosso raio era 34 por padrão. E nossa localização
aqui era, por padrão, aproximadamente 8.060,86 negativos.
Isso é o que eu tenho em De qualquer forma, esse é um trecho de roteiro saindo
da parte final de nossa linha
do Agora, obviamente, nada reproduzirá esta linha do tempo aqui ao contrário a menos que tenhamos algum
evento que diga que sim O que vou
fazer é clicar um pouco em panorâmica. Vou clicar com o botão direito novamente. Eventos personalizados. Queremos chamar esse
jogador de Damaged. Portanto, temos um evento personalizado
chamado Player Damage. Vamos conectar isso
ao inverso da ponta, então temos que dizer
isso manualmente quando quisermos chamá-lo. Agora, com isso implementado, podemos acessar nosso script de ajuste de
pontos de vida e modificar um pouco
as coisas. Então, vou clicar duas vezes
nisso para acessar esse
trecho do script. Nosso ajuste dos pontos de vida aqui embaixo, no
canto inferior direito. Se você quiser interpretar
tudo isso, você pode, mas essencialmente é
aqui que estamos sendo prejudicados. Onde estamos sendo atingidos aqui, vamos
acender nosso lingote de flores de fogo,
vamos arrastá-lo para cima
desse alfinete assim Isso trará um
setter automaticamente. Vamos fazer com que
isso volte a ser falso. E também vamos tirar
isso e digitar o jogador danificado. Fazendo uma chamada para aquele evento
personalizado que
acabamos de criar e conectar no verso
da linha do tempo Então, quando basicamente
perdemos um ponto no quadril, vamos transformar essa flor de
fogo em falsa
e vamos chamar esse evento personalizado
para
reproduzir nossa linha do tempo ao reproduzir nossa linha do tempo Tudo bem, quase pronto aqui. Agora precisamos chamar isso de evento personalizado Got
Flower Power. Vamos
compilar e salvar aqui. É muito importante compilarmos
e salvarmos, e agora precisamos
chamar isso de nosso plano de
incêndio Então, vamos abrir nosso bloco de flores de
fogo. Blueprint, Onde está nossa flor de
fogo? Aí está. Vamos clicar duas vezes
nisso. Vá para dentro de lá. O que queremos fazer é
chamá-lo de algum lugar aqui. Agora, atualmente, estamos verificando
se é nosso personagem jogador que está fazendo a sobreposição e depois coletando a
flor de fogo e todo aquele jazz Está tudo bem,
mas na verdade precisamos
acessar este evento personalizado da Got Flower
Power. E essa configuração aqui
não vai funcionar. Isso é suficiente para
detectar uma sobreposição. Mas queremos verificar se é nosso personagem em terceira pessoa
que está fazendo a sobreposição A razão para isso é que precisamos nosso personagem de terceira pessoa para chamar esse evento personalizado. Vamos simplesmente deletar esses três
aqui, 12.3 Em vez disso, vamos nos afastar
de nosso outro ator forma e vamos escalar
para um personagem em terceira pessoa E a razão pela qual vamos
usar essa configuração é porque agora podemos sair
daqui e digitar got flower
power fazendo essa
ligação para nosso personagem em terceira
pessoa. E então podemos conectar isso
ao nosso nó de sequência. Ok, vamos tentar, compilar e salvar E voltando ao nosso editor de
níveis aqui, vou começar a jogar. Você notará que eu
sou menor por padrão, então vamos interagir com o bloco e pular para cima. Você pode ver que eu
cresci de tamanho e a colisão do meu
tamanho maior parece estar intacta Agora vamos em frente e seremos atingidos. Vamos ver se isso
acontece ao contrário. Ao
sermos danificados, diminuímos novamente e parece que nosso componente de capital também
diminuiu Parece que tudo
está funcionando conforme o esperado. Vamos apenas enquadrar
nosso roteiro final dentro do nosso personagem de terceira
pessoa da BP Se você quiser dar uma olhada
novamente, verdadeiro
modificador de ponto de quadril power up definido como um E então é aqui
que estamos ajustando crescimento do
nosso personagem e também
modificando o tamanho dos
componentes da cápsula e também a
localização de nossas malhas dentro desse Tudo bem, pessoal, isso vai acabar
com essa. Nos vemos na próxima.
43. Blueprint de Fireball: Tudo bem, agora
que podemos colher a flor de fogo e
nosso jogador se transforma, o próximo passo é fazer com
que o jogador possa atirar algumas bolas de fogo E para fazer isso, precisamos
criar um plano de bola de fogo. É isso que vamos
realizar neste vídeo. E vamos
realmente começar aqui dentro das configurações do nosso projeto, vamos criar algo conhecido como canal de colisão E isso
será usado dentro do
nosso plano
de Fireball, no canto superior direito Temos essas configurações, vamos
clicar nesse menu suspenso. Queremos acessar as configurações
do nosso projeto. Dentro das configurações do nosso projeto, acessaremos
a seção de colisão aqui no lado esquerdo Agora, aqui onde
diz canais de objetos. Vamos criar
um novo canal de objetos. Aqui, clicando aqui, seremos
solicitados a fornecer um nome Vou chamar isso de Fireball e vou deixar a resposta
padrão como bloco E eu clicarei em Aceitar. Agora vamos colocar isso em
uso aqui daqui a pouco,
mas, por enquanto, podemos fechar as configurações
do nosso projeto. Tudo o que precisávamos
fazer aqui era criar um novo canal de
colisão Em vez disso, clique em sair daqui ou em
um novo canal de objetos. Vamos entrar na pasta de
plantas da nossa plataforma e vamos
encontrar um espaço vazio Vou manter pressionado o
controle e rolar roda para trás para encontrar
algum espaço vazio aqui. Clique com o botão direito na classe Blueprint. Essa vai
ser uma aula de atores. Planta. Vou chamar isso de
BP underscore Fireball E com isso selecionado,
vou tocar na barra de espaço
aqui para abri-la. A primeira coisa que quero adicionar
aqui é um componente esférico, então vou clicar em Anúncio e escolher
o componente esférico logo abaixo de uma malha estática E vou deixar isso
chamado de esfera. Agora, na verdade, vou fazer disso meu componente raiz
para projéteis Você quer fazer
o que quiser projetar. Nesse caso, esse
será um componente raiz de projétil, então vou arrastá-lo
e soltá-lo sobre a
raiz da minha
cena padrão dessa forma E isso vai
fazer dela a nova raiz. Agora, no painel Detalhes, preciso expandir meu painel
Detalhes novamente. Há algumas
configurações que eu quero alterar aqui para estrelas. Vou mudar
o material para isso na minha seção Material. Vou clicar
nesse menu suspenso. E eu tenho uma dentro
dessa lâmina infinita do pacote
X chamada lava
underscore hot Vai ser esse
M fluindo de lava quente. E isso só
vai dar uma olhada em bolas de fogo,
muito legal E, abaixo,
no painel de detalhes, temos nossa seção de colisão E para predefinições de colisão, vou expandir
isso aqui Vou mudar
isso para ser personalizado. E então eu vou
mudar nosso tipo de objeto aqui para ser uma bola de fogo Agora, a razão pela qual isso
existe é porque acabamos configurar isso dentro das configurações do
nosso projeto. Vou configurar
isso para Fireball. Agora, isso é rotulado como
um tipo de objeto Fireball e agora podemos definir configurações de
colisão para vários tipos Agora vou definir isso como um bloqueio para a maioria deles. No entanto, vou configurar isso
para ignorar alguns canais de rastreamento aqui. Também vou
configurar isso para ignorar o peão que somos nós,
nosso personagem de jogador E também vou configurar isso
para ignorar outras bolas de fogo. Isso vai ser importante
porque seremos capazes de atirar
várias bolas de fogo e não queremos que elas possam ricochetear
umas nas outras Então, isso vai ser importante
para isso aí mesmo. Então, apenas para revisar a predefinição de
colisão,
defina-a como personalizada, você deseja
que seu tipo de objeto seja
definido como Fireball Acabamos de criar isso nas configurações do
nosso projeto. E então, para as respostas de
colisão, certifique-se de
configurá-las da seguinte maneira Em seguida, vou adicionar
outro componente aqui. Parece uma espécie de máscara de fogo, mas também vou adicionar
um sistema
de partículas mas também vou adicionar
um sistema
de partículas. Clique em Adicionar. E o que eu estou procurando
é digitar uma
partícula e
adicionar um componente do sistema de partículas
em partícula e
adicionar um componente do sistema de cascata Este é um sistema de
partículas mais antigo. As versões mais recentes do
Unreal usaram o Niágara. Mas eu sei que
essa determinada partícula que estou prestes a inserir
aqui existe dentro do nosso conteúdo
inicial aqui Eu vou usar esse sistema de partículas. Você pode escolher qualquer partícula
de sua escolha para mim. Eu vou vir aqui
com esse componente selecionado. E onde diz modelo de
partículas, vou escolher
underscore fire Mais uma vez, isso existe dentro do
meu pacote de conteúdo inicial. Você pode experimentar qualquer um
desses outros, mas eu vou escolher este. Então, agora vai dar
uma olhada nisso. Agora, só para fazer isso parecer
um pouco mais perigoso, se você quiser, vou definir
a dilatação temporal personalizada Essa é essencialmente
a taxa de jogo desta vez dez, porque,
uma vez que
atirarmos, queremos garantir que nossas
chamas não fiquem muito atrasadas Por trás desse sistema de partículas
está ligado a essa esfera. E ao definir nossa
jogada aqui, nossa dilatação temporal personalizada para dez, fará com que
pareça que está constantemente pegando fogo Ok, mais um componente para adicionar aqui na adição superior esquerda, estamos procurando o componente de
movimento do projétil E isso é o que realmente
vai ser capaz de fazer essa bola de fogo se mover em nosso ambiente, é esse componente de movimento de
projéteis Com isso selecionado,
há várias propriedades que eu quero alterar
no painel de detalhes. A velocidade inicial e máxima. Essa é a velocidade inicial e depois máxima. Vou defini-los para 2.500, respectivamente.
Para os dois. Eu também vou
pular aqui porque
quero que isso salte do
chão Então marque essa caixa de seleção. Então eu também vou
descer, há uma elasticidade e uma configuração de
atrito Vou definir
a elasticidade 0,5 e o atrito Então, podemos ver que
essas propriedades aqui foram alteradas. É isso que aquela
pequena flecha traseira fica à
vontade para jogar com elas à medida que
as introduzimos em nosso Tudo bem, e por último, mas não
menos importante, aqui temos nosso
botão Defaults de classe que determina algumas propriedades sobre esse esquema de classe de
ator Vou rolar para baixo
em direção a eles, não exatamente em direção ao fundo. Aqui está, expectativa de vida inicial. Na verdade, podemos definir a vida útil desse ator aqui Novamente, um valor padrão de zero. Como você pode ver na dica de ferramenta significa que ela viverá
para sempre. Vou definir isso como 2.0, o que significa que após 2 segundos isso seria destruído automaticamente. Com isso, vou seguir
em frente e salvar esse projeto. Isso é tudo o que queríamos
realizar neste. Nos próximos dois vídeos, vamos fazer com que
possamos
atirar essa bola de fogo.
Nos vemos lá.
44. Atire bolas de fogo (básico): Bem, agora que criamos um plano de
Fireball, vamos trabalhar para que
nossos jogadores o eliminem Para isso, trabalharemos
dentro da nossa pasta de blueprints Selecione seu BP,
personagem de terceira pessoa com ele selecionado. Toque na barra de espaço para abri-la. E eu vou
acessar nossa guia Viewpoort imediatamente porque
vamos
adicionar um componente aqui que eu gostaria
que todos vocês Agora vou
selecionar nosso eu aqui. E a razão pela qual estou selecionando
isso é porque quero anexar outro
componente à nossa malha. Desde que seja selecionado
primeiro e adicionemos um componente. E vou clicar em Adicionar, vou adicionar um componente de
seta. Portanto, esse componente agora está
conectado à nossa malha. Atualmente está aos pés deles, mas vou alterar a posição aqui daqui a pouco Vou renomear isso para
meus Fire Ball Spawn Points, porque é para isso que
vamos usar isso Opa, eu esqueci o ponto de desova
lá. Com isso selecionado,
vou definir alguns detalhes
no painel de detalhes,
na localização Y. Vou definir esse 240. Vou colocá-lo um pouco na frente do nosso personagem A localização z, vou subir
para 135 assim. E então eu vou
girar essa rotação, a rotação y, eu
tenho menos 30 E a rotação z, eu vou definir isso como 90. Essencialmente, teremos nosso componente de seta apontado
nessa direção descendente Está preso à nossa malha dois. Quando viramos nosso personagem
em nosso nível, essa flecha
também gira Agora, isso não está apenas
indicando o ponto de desova, mas vai aparecer
aqui mesmo Quando tocamos em uma tecla, ela gera uma bola de fogo Também vai
gerá-lo nessa direção. Então, saiba que se
você quiser alterar
a trajetória da sua bola de fogo, você também pode mexer
nesse ângulo Ok, em seguida,
voltaremos ao nosso navegador de
conteúdo e usaremos
o sistema de entrada que veio junto com nosso personagem em terceira
pessoa. Isso foi introduzido em versões
recentes do Unreal. E vamos entrar em
nossa pasta de ações aqui. E o que precisamos adicionar é
um novo ativo de ação de entrada. Agora podemos fazer isso clicando com o botão
direito do mouse
no navegador de conteúdo. Aqui neste diretório, eu vou entrar em input, e vamos
adicionar a ação de entrada. E eu vou chamar esse tiro de sublinhado,
underscore E então, se eu pressionar a
barra de espaço para abrir isso, você pode ver que nossa entrada será do
tipo booleano, como aconteceu? Não foi? Está
tudo muito bem. Vamos salvar isso. E então vou
voltar ao navegador de conteúdo. Em nossa pasta de entrada, aqui
temos esse IMC, sublinhado padrão, esses são os
mapeamentos de entrada E eu vou selecionar isso e pressionar a barra de espaço também Por padrão, é a abreviação de contexto
de mapeamento de entrada. Vou pressionar a
barra de espaço aqui para abrir isso. E agora preciso inserir
nossa ação de entrada de atirar
bola de fogo aqui dentro Então, vou clicar
nisso mais o mapeamento. Vou inserir
nosso recém-criado
underscore Fireball
ou, em vez disso, atirar Fireball vez disso, atirar Fireball Atirou em uma bola de fogo. Agora eu também tenho que
decidir qual botão ou botões eu gostaria de
mapear para essa ação. Algumas coisas que
podemos fazer aqui é que, se você selecionar esse teclado dessa forma, agora
você pode mapear qualquer tecla
do teclado para ele. Então, se eu tocasse na tecla F, você pode ver que agora ela vai
mapeá-la ali mesmo. Então, a tecla F vai
fazer essa entrada acontecer. Também vou pressionar o
botão mais uma vez
e, para aqueles que têm
um controle disponível, podemos configurá-lo como um controlador também
podemos configurá-lo como um controlador se você simplesmente
selecionar este teclado. E eu tenho um controle
conectado e vou
pressionar o botão X no
meu controle Xbox, que é o botão esquerdo Você também pode ver como ele o
mapeia automaticamente lá,
pressionando a tecla
ou, no meu caso, meu controle
Xbox, para o botão X que
chamarei para que essa entrada seja acionada. Vamos
salvar isso imediatamente. Agora, se você não se lembra
do início do curso, onde diabos tudo
isso está sendo usado Bem, dentro do nosso personagem de
terceira pessoa da BP, dentro do nosso gráfico de eventos Aqui, eu tenho que encontrá-lo. Logo no
topo, é aqui nosso contexto de mapeamento de entrada está associado ao nosso personagem de
terceira pessoa BP É por meio dessa função
aqui, esse padrão do IMC. É aqui que está dizendo ao
nosso personagem em terceira pessoa que use essa coleção de
ações, por assim dizer. Tudo bem, eu
vou acabar com isso. Certifique-se de que, salvo,
você possa fechar isso , assim como sua bola de fogo IA
shoot Ok, vamos fazer a primeira passagem do nosso tiro com
a bola de fogo acontecer Vou encontrar um
espaço vazio aqui e tenho meu poder
floral aqui. Na verdade, vou clicar com o botão esquerdo e arrastar tudo isso. Toque na tecla C e digite got. poder das flores. Só para que
eu possa identificar facilmente esse trecho do script,
torná-lo preto. E então, logo abaixo eu vou atirar na bola
de fogo Então, vou
manter pressionado o controle e aumentar um pouco o zoom. Clique com o botão direito em
algum espaço vazio. Vou apenas digitar tiro, aí está meu evento de
ação de entrada para atirar a bola de fogo.
Eu vou trazer isso. O que eu quero que aconteça é que,
quando começarmos essa ação, eu vou abrir uma ramificação e
descobrir
se expandirei no
meu painel de plantas, na seção de saúde
do jogador Quero descobrir se
temos a flor de fogo. Vou arrastar e soltar
isso. Além de nossa condição, só
queremos poder desovar, ou
seja, atirar bolas de fogo
se tivermos a flor de fogo Agora, se eu clicar com o botão direito na minha flor de fogo
aqui, neste
lingote, posso encontrar referências a isso neste gráfico
e dar uma olhada Se você clicar duas vezes
em qualquer um deles, poderá ver onde, quando obtemos o fluxo de fogo, o poder da flor, quando esse evento personalizado
está sendo chamado, estamos transformando isso em verdade É assim que você pode
descobrir onde várias variáveis
estão sendo usadas. Você pode simplesmente clicar
duas vezes
neles depois de clicar o botão direito do mouse
e encontrar a referência Ok, então
vamos perguntar, nosso jogador tem a flor de fogo? Se isso for verdade, vamos sair
daqui em Spawn Actor da aula Bem, acabamos de criar
um plano de Fireball, então vou clicar
aqui e digitar Seria
um pouco estranho
aparecer minha bola de fogo BP em uma barra de fogo e agora preciso nos dizer onde quero
que ela Bem, acabamos de criar um ponto de desova
de Fireball. Vamos prosseguir e
arrastar esse componente. Então, arraste daqui e
digite get transform. Queremos transformar o
mundo, transformar o
mundo aqui mesmo. Transforme o mundo onde quer que esteja localizado no mundo. No momento, pressionamos a tecla F
e, em seguida, também tocamos um
som dessa tecla. Então, vou sair
daqui e digitar o som. Você pode reproduzir um som em
um local ou dois D Sound. Acho que vou tocar um som no local
do nosso personagem. Posso clicar com o botão direito do mouse
em algum espaço
vazio e digitar a localização do ator. Essa será a localização
do nosso
personagem em terceira pessoa. Para o som. Eu tenho uma bola de fogo. Tudo bem, então haverá nosso script básico aqui. Vamos
compilar e salvar. E depois volte para o
nosso editor de níveis aqui. Agora, antes de clicar em jogar, vou realmente expor um problema com isso logo
de cara, que vamos resolver Mas vou entrar na minha pasta de
plantas e colocar algumas moedas no caminho do meu personagem,
garantindo que minhas duas configurações de encaixe D estejam no
nível Vou colocar uma moeda aqui. colocarei um acima, porque estou tentando
expor o problema Tudo bem, vamos
entrar e brincar e ver se quando eu tiver
a flor de fogo, eu posso atirar uma bola de fogo Tudo bem, no jogo aqui, tocando na tecla F, veja se podemos atirar uma
bola de fogo direto da Eu não posso. Vamos pegar
a flor
de fogo transformada. Vou tocar na tecla F agora. Obviamente, aquela
bola de fogo é um
pouco grande e pudemos ver
um problema aqui, o que eu esperava Deixe-me descer.
Opa. Nós morremos lá. Vamos
voltar e jogar. Você viu o primeiro problema. Está colidindo contra o, com nossa moeda invisível Então, teremos que lidar com
isso em apenas um momento. Mas ao tentar cair aqui, você também descobrirá
que ela também colidirá com o volume de colisão
ao redor de sua moeda Então, alguns problemas
aqui para resolver. O problema número um que
vamos resolver é que nossas bolas de fogo colidem
contra algumas coisas que não
queremos, como
essa caixa
de gatilho
aqui e esse volume de gatilho aqui E podemos fazer isso
entrando nossas configurações, configurações do projeto. E nós estávamos aqui há
pouco , sob a seção de
colisão Vamos usar nossas várias predefinições
aqui embaixo Então, basta clicar nessa
predefinição aqui. E há alguns
deles que eu quero editar. A primeira delas se
sobrepõe a todas as dinâmicas. Se você selecionar essa sobreposição dinâmica e clicar em Editar, poderá ver suas respostas
atuais a essas várias
colisões de colisão No momento, nossa bola de fogo, qualquer coisa rotulada como bola de fogo,
como nossa bola de fogo da BP,
está configurada para bloquear qualquer coisa rotulada como bola de fogo,
como nossa bola de fogo da BP,
está configurada para bloquear. Isso está configurado para bloquear
uma resposta do Fireball. Vou configurar isso para ignorar. Mais uma vez, dentro
de nossa bola de fogo BP, podemos ver que nossa esfera está
configurada para ser do tipo bola de fogo Voltando à
nossa configuração de projeto, queríamos sobrepor
toda a dinâmica, queríamos trocar Também
entraremos para sobrepor tudo e editaremos
isso Isso também está configurado para
bloquear nossa bola de fogo. Vamos configurar isso para
ignorar e aceitar. Também vamos
selecionar nossa predefinição. Vamos fazer
isso. E vamos configurar isso para
ignorar e clicar em Aceitar. Precisamos fazer I
porque nosso componente de
widget de pontos BP usa a predefinição de colisão de interface
do usuário Agora, talvez seja necessário
fazer isso para outros tipos de objetos
mais adiante no curso. Portanto, saiba que
se sua bola de fogo está colidindo contra coisas, ela não
deveria estar colidindo Para voltar aqui dentro
das configurações do seu projeto, vá até a seção de colisão altere algumas
das configurações
predefinidas de colisão aqui,
como acabei Vamos voltar ao nosso
nível, clicando nessa tecla. Não está deslizando lá. Em seguida, vamos tentar ajustar
o tamanho da nossa bola de fogo. Então, vamos voltar ao
nosso projeto de bola de fogo com nossa esfera selecionada aqui Vamos até aqui,
onde obtivemos nossa balança. Vou escalar isso
uniformemente, então certifique-se de que temos
nossa fechadura configurada aqui Você pode ativar e desativar isso. Isso fará com
que a alteração
de um desses parâmetros
altere o resto. Vou definir isso
2.3. Vamos tentar isso. Então, vai ser um
pouco menor. Então, se voltarmos
ao nosso nível, entre e jogue. Vamos ver o que temos aqui. Ok, vamos ver. Vou pressionar a tecla. Não está mais colidindo
contra aquele bloco. Então, isso é muito bom e também não parece estar colidindo com nossas
moedas Então, obviamente, você pode alternar o
tamanho da bola de fogo ao seu Vou deixar isso
como está por enquanto. Mas pessoal, isso
vai bastar para essa versão básica de
atirar nossa bola de fogo Em nosso próximo vídeo,
adicionaremos algumas regras para
acentuá-lo ainda mais. Nos
vemos lá.
45. Atire bolas de fogo (avançado): Tudo bem, bem-vindos a todos. Neste vídeo,
vamos levar nossas bolas de fogo para o próximo nível implementando algumas regras E com isso quero dizer que
vamos restringir o número de bolas de fogo vivas que
temos por vez Também vamos restringir
o número de saltos que a bola
de fogo pode fazer o número de saltos que a bola
de fogo Vamos gerar alguns
efeitos visuais quando nossa bola de fogo quicar duas vezes
aqui e, irreais, trabalharemos dentro de nossa bola de fogo BP e de nosso personagem Então, talvez
você queira abrir os dois. Vamos começar com nosso personagem de terceira pessoa de
BP e vamos
criar uma variável totalmente nova imediatamente. Isso restringirá
o número de
bolas de fogo vivas por vez Então, a palavra certa diz
variáveis aqui. Clique neste botão de adição e
criaremos uma chamada bolas
de fogo ao vivo E eu vou mudar
isso para um número inteiro. Isso vai acompanhar
quantas bolas de fogo ao vivo
temos por vez Vou compilar aqui,
começaremos com o valor padrão de zero Agora venha e encontre seu script atual de tiro
de Fireball. Porque vamos
modificar isso
e, em particular, vamos
pegar esses três nós puxá-los para
o lado aqui. Vamos criar
uma lacuna aqui mesmo. Então, dê a si mesmo
um pouco de espaço assim. E vamos
modificá-lo como tal. Depois de atirarmos uma bola de fogo aqui, se tivermos a flor de fogo, vamos
arrancar o galho verdadeiro E agora vamos
ter todos os atores da classe. E vamos receber todos os
atores da nossa turma de Fireball. Vamos apenas digitar Fireball. E então o que vamos
fazer é clicar com o botão
direito do mouse nesse
pino de atores. E vamos promover
isso para uma variável. Vamos chamar isso de
nossa matriz de bolas de fogo. E vamos conectar isso, então, o que
isso vai
fazer é que toda vez que
lançamos uma bola de fogo, basicamente descobriremos
, ei, quantas bolas de fogo existem no mundo? E vamos
armazenar isso em nossa lista. Agora, a razão pela qual
vamos fazer isso é porque vamos nos
arrastar para fora desse pino. E vamos descobrir
o tamanho da nossa matriz, o comprimento da nossa lista,
quantas bolas de fogo existem nessa lista E a razão pela qual vamos fazer
isso é porque vamos definir nosso número
de bolas de fogo ao vivo Então, aqui no painel do
meu projeto, encontre sua
matriz de bolas de fogo ao vivo e podemos simplesmente
arrastá-la e soltá-la neste outpin
desta Se, por exemplo,
lançássemos rapidamente duas bolas de fogo
pressionando a tecla F duas vezes,
Bang, bang, viríamos Temos a bola de fogo?
Sim. Ou flor de fogo? Sim. OK. Existem duas
bolas de fogo no mundo. Vamos
adicioná-los à nossa lista. Esses dois estão lá fora.
Esse será o comprimento. Essa variável terá
o número dois dentro. Agora, isso vai ser valioso porque, em seguida, vamos
sair daqui e trazer um nó. Vamos descobrir que
bolas de fogo ao vivo são menores que duas. Somente se tivermos
menos de duas bolas de fogo
vivas permitiremos
a desova Vou conectar
isso a uma ramificação como será nosso script. E vou destacar essa parte do meio aqui. Toque na Sea Key e
este será meu número
restrito de scripts Fireballs ao vivo Isso vai ser opcional, mas eu gostaria de
ter isso aqui e se você joga jogos de Mario, eles realmente fazem isso. Vou colorir isso talvez um pouco de azul escuro,
algo parecido. Só para ampliar o
que temos aqui, esse será nosso roteiro. Se você quiser pausar um vídeo a qualquer momento
aqui para ver isso, certifique-se de ter o número dois E isso é menos
do que um nó aqui. Ok, vamos
compilar isso rapidamente e então podemos
testar isso imediatamente. Então, eu vou entrar e jogar. Então, agora vou falar com Sam na
minha tecla F aqui, ver quantas. Então você pode ver que eu só tenho
duas bolas de fogo vivas por vez, e elas precisam morrer antes que eu possa
gerar algumas novas Em seguida, vamos restringir o número de saltos que
uma bola de fogo E para isso, vamos
entrar na nossa bola de fogo da BP. Dentro daqui,
vamos adicionar uma variável clicando ali mesmo. Isso vai ser chamado de nosso. Contador de saltos de bolas de fogo, isso também será um
número Se eu compilar isso imediatamente, quero deixar isso com
um valor padrão de zero A seguir, vamos ver
nossa lista de componentes. Então, vamos clicar com o botão direito do mouse
em nosso movimento de projétil. Vamos adicionar um evento e vamos adicionar um
evento no projétil bounce Quando fizermos isso,
vamos pular para o
nosso gráfico de eventos. Toda vez que nosso
projétil saltar, ele será disparado daqui. O que vamos
fazer aqui é trazer nosso contador
de saltos de Fireball Vou manter pressionado o botão esquerdo
do mouse e arrastar. E então, se eu sair disso posso trazer um nó de
incremento. E o que isso vai
fazer é adicionar uma à nossa variável aqui e depois
colocá-la de volta aqui. Não precisamos nos
preocupar em definir nosso contador
de saltos de
Fireball do outro lado Esse nó de incremento especial simplesmente descobrirá
qual é o valor disso Ele o adicionará
e, em seguida,
o colocará de volta aqui. Agora, desse pino de saída,
vou arrastar para fora e
vou trazer um valor
maior ou igual a, se for maior ou
igual ao número dois. Vou conectar isso
a um nó de ramificação mantendo pressionada a tecla B e
clicando com o botão esquerdo, aparece uma ramificação distante. O contador de
saltos do Fireball é maior ou igual a dois Vou gerar o
emissor no local. Emissor Spawn, o
emissor que eu usaria, eu gosto de usar a explosão
para quase tudo Também está no conteúdo
inicial, então é por isso que eu uso a explosão P
underscore A. Novamente, você pode criar um sistema de desova no local para uma Eu preciso fornecer um local para
isso. Então, o que vou
fazer é obter a localização
da nossa esfera aqui. Vamos arrastar isso para dentro , então vamos arrastar o tipo para
fora daqui e obter localização
mundial onde quer que
esteja localizada no mundo. É aí que vamos
gerar essa explosão. Claro, é bom ter um pouco de som também. O que vou fazer é depois de
gerarmos a localização do emissor, vou sair daqui e digitar o som de
desova
anexado desova
anexado Posso simplesmente pegar
nosso valor de retorno e anexar ao
componente dessa forma. E isso vai
aparecer. Preciso inserir um som de explosão aqui. Vou simplesmente usar
o sinal de explosão. Então, no final,
vou simplesmente arrastar e dizer:
destrua o próprio ator, ou
seja, essa bola de fogo Tudo bem, então
vou tentar
enquadrar tudo isso para que
você possa conferir isso. Certifique-se de que
você tem esses dois. É uma explosão maior ou
igual a uma explosão. Para facilitar o teste, vou selecionar nosso movimento de
projétil E, temporariamente, vou
diminuir nossa velocidade aqui, porque agora não
vamos ver esse salto duas vezes Deixe-me mudar isso para
algo como 500, 500. vou mudar isso aqui Eventualmente, vou mudar isso aqui, provavelmente
entre os vídeos. Então eu vou compilar isso, vamos jogar aqui Quantas vezes ele salta? 12, boom. 12. Ele está
sendo destruído automaticamente, vendo esses efeitos e
outros enfeites naquele segundo salto Tudo bem, antes que eu
esqueça, vou
ajustar minha velocidade aqui novamente
para ajustar minha velocidade aqui novamente 2.500.2500 Mas, novamente, você pode mexer com Ok, a próxima coisa que quero
fazer aqui é verificar se nossa bola de fogo está atingindo uma superfície
quase vertical
e, se estiver, vamos
explodi-la instantaneamente Em vez de esperar que nossa bola de fogo salte
duas vezes e depois exploda Agora, para fazer isso, vou
arrastar meu projétil um pouco mais e podemos revelar o
resultado do impacto E podemos fazer isso
arrastando até aqui e digitando
break, Hit Então, eu vou expandir isso, faça. O que eu quero fazer é encontrar nosso normal. Vamos sair
disso, vou digitar em vetor, obter abs. Então eu vou
pegar isso e
vou quebrar isso. Vamos
quebrar esse vetor. Vamos
descobrir o z a partir disso. E vamos arrastar
isso para um nó menor que, e vamos
descobrir se isso é menor que 0,9. E veremos alguns exemplos de cenários
aqui daqui a pouco. Vou manter pressionada
a tecla B e
clicar com o botão esquerdo para abrir
uma ramificação como essa. E eu vou arrastar
isso assim. OK. O que vamos
fazer então é descobrir qual número está sendo
gerado aqui simplesmente trazendo uma nota de string impressa
temporária. Então, vou
clicar com o botão direito do mouse em algum espaço vazio. Digite a sequência de caracteres de impressão. Isso vai
ser apenas uma nota temporária. Vou
inserir temporariamente o verdadeiro, o falso, a isso, e
vou pegar esse valor Z. E conecte-o diretamente aqui. Só para que você possa ver esse número sendo exibido na tela Agora vou colocar uma superfície
aqui embaixo e depois atirar
uma bola de fogo nela Na verdade, vou
colocá-lo na parte superior aqui para que possamos
ver alguns valores que são emitidos quando
estamos atirando nossa bola de fogo Então, eu vou
trazer um cubo aqui. Eu simplesmente vou fazer um
pouco assim. Eu vou girar um
pouco desse jeito. Vou movê-lo um
pouco para baixo assim. Eu vou atirar
de uma superfície como essa. Está bem? Entrando e brincando Tudo bem, então vamos lá. Você pega essa bola de fogo.
Você vai querer dar
uma olhada
no ícone do Mario na parte superior desse número
impresso na tela. Então vamos lá, 0,5 0,5 0,5 Ok, então você meio que tem uma ideia
dos valores que estão sendo divulgados aqui Deixe-me desligar minhas configurações de encaixe
angular. Gire isso um pouco mais, ok, deixe-me inclinar assim 0.7 0.7 0.7
Incline-o agora para ficar um pouco
mais vertical assim Aqui vamos nós. É, o primeiro número é
0,178 e, em seguida, ele está obtendo um valor de um ao ricochetear naquela superfície plana O valor
absoluto garantirá que
não tenhamos um
número negativo lá. E o que estamos essencialmente
querendo fazer aqui, vou simplesmente destruir
esses nós, é isso. Quero incrementar
nosso contador de saltos. Na verdade, vou recuar um
pouco assim
e, na verdade, vou
reduzir isso um pouco. Se isso for considerado verdadeiro, quero
gerar esses efeitos imediatamente Ok, nem queremos
incrementar esse contador de saltos Ok, deixe-me
deixar isso aqui. Vou
enquadrar isso da melhor maneira possível. Então, vamos continuar
e compilar isso. E então o teste é
voltar ao meu nível, jogar. Então você vai ver, vai filmar isso principalmente na vertical. Ele vai destruí-lo
imediatamente, sem esperar
por um segundo salto Vou inclinar
isso um pouco mais desse jeito. Vamos tentar isso. Vamos destruir
isso imediatamente. Se eu fosse simplesmente, não diria principalmente vertical, diria um pouco vertical. Portanto, agora não
vamos nos preocupar com um
ambiente levemente inclinado Isso vai
permitir que ela salte, mas enquanto tivermos uma
superfície levemente inclinada como essa, ela a destruirá
imediatamente Não vai esperar
por um segundo salto. Tudo bem, mais uma
coisa que vamos consertar com nossas bolas de fogo Antes que eu esqueça, esqueci abordar nosso bloco
invisível aqui Aqui está o problema atual. Se eu voltar
e jogar , vou pegar
nossa flor de fogo. E você pode ver que
eu tenho
blocos invisíveis aqui embaixo. Se eu tocar na tecla F, você pode ver que ela ainda está colidindo contra aquele bloco
invisível, então temos
que resolver esse problema Então, vamos mergulhar em nosso bloco invisível, a planta Você pode selecionar qualquer um
desses blocos invisíveis. Eu posso editar o
bloco invisível indo direto para lá. O problema atual é que
vou ampliar onde
estamos começando a jogar. Aqui mesmo, nosso cubo. Atualmente, se eu
selecionar nosso cubo e entrar nas configurações de colisão, você pode ver que adicionamos a bola de
fogo e ela está configurada
para bloquear a bola de fogo aqui
fora do início do evento O que podemos fazer é
arrastar para fora do nosso cubo digitar a resposta de colisão definida para canalizar esse nó aqui Vamos conectar isso. Vamos definir
o canal para ser Fireball e, em seguida, vamos definir
a nova resposta Certifique-se de que isso
esteja configurado para ignorar. Vá em frente, compile
e salve isso. Então, se eu entrar
e jogar e deixar minha barra de fogo sair
do caminho até aqui, na verdade
eu só tenho um bloco
lá nas barras de fogo, parecendo que está descansando dentro dela de
forma que não deveria mais me atingir OK. Eu vou
entrar e jogar aqui. Faça aquela flor de fogo bater. E você pode ver que
não está mais colidindo com aquele bloco invisível Deixe-me pegar isso. Vamos ver se consigo atirar
uma bola de fogo com isso. Você pode ver agora que o
problema é que ele está passando por aquele bloco
depois que eu interajo com ele. Então,
tenho que me certificar de
reativar a colisão assim que revelarmos
aquele bloco invisível Para fazer isso, vou voltar
para o meu bloco BP, moeda invisível E diremos que, depois de terminarmos de
interagir com isso, vou voltar para onde estamos ativando
nossa invisibilidade Vamos colocá-lo nesta
área aqui. Eu só vou puxar isso para trazer nosso cubo Vou digitar,
na verdade, vou roubar
aquele
nodo daqui de cima Foi chamado de
resposta de colisão definida ao canal. Vou apenas
copiar esse nó. Vamos
trazê-lo de volta cá e eu vou colar
esse nó. Vamos colocar
isso aqui mesmo. Certifique-se de conectar
seu Cube como alvo. E desta vez diremos que, depois de
interagirmos com ela, não vamos mais ignorar
a bola de fogo.
Em vez disso, vamos bloqueá-la Então vá em frente, compile e
diga isso, vamos tentar isso. Mais uma vez,
voltando e jogando. Você pode ver que está passando por
lá, atingindo aquele outro bloco, não vai interagir
com esse bloco Agora, se eu tentar
atirar nesse bloco, ele está interagindo com ele e
colidindo onde deveria Tudo bem, agora temos
uma versão avançada dos caras do Fireball que fará
tudo por este Nos vemos na próxima.
46. Componentes e funções de bloco básico: Ao longo
dos próximos vídeos. Aqui vamos
montar um bloco. E o que um bloco faz para aqueles que não estão
familiarizados é transformar blocos
regulares em moedas por
um período limitado de tempo. Quando o cronômetro expira, os blocos que se transformaram em moedas voltam a ser blocos Para que possamos fazer
isso de volta ao motor aqui, faremos
algumas modificações nosso bloco base BP Vá em frente e selecione isso, em seguida, pressione a barra de espaço para abri-lo. Dentro daqui, vamos adicionar alguns componentes. Deixe-me voltar para a visualização da minha
janela de visualização aqui. Vamos adicionar um componente.
O primeiro vai ser uma criança. Se digitarmos criança, será um ator infantil depois ligado ao
nosso ator infantil. Portanto, verifique se você
selecionou isso. Vamos adicionar colisão
esférica. E podemos descobrir isso
aqui embaixo da seção de
colisão Colisão de esferas, vou
chamar isso de meu colisor de moedas. Com nosso colisor de moedas selecionado, vou mudar
o raio da esfera Eu só vou torná-lo
um pouco maior para 35. Ele está enterrado no interior
do nosso bloco agora, o que queremos, não
queremos que seja exposto do
lado de fora do nosso bloco. E nosso ator infantil,
no painel de detalhes, podemos participar de uma aula de ator
infantil. Vamos deixar
isso em branco por enquanto. Agora, dentro das
plantas, queremos expor uma moeda
quando o bloco é atingido, vamos definir isso como
BP, pegar a moeda, mas não vamos
fazer isso aqui dentro dessa Em seguida, vamos
criar algumas
funções aqui dentro da nossa base
de blocos BP E eles
servirão para ativar e
desativar os vários efeitos quando
interagirmos com nosso bloco. Então, aqui no painel do meu plano, em funções, vamos clicar nesse
botão de adição Este primeiro
chamaremos de bloco. No segundo, ligaremos
clicando neste botão de adição. Mais uma vez, vou
cancelar o bloqueio. Simples o suficiente. Com
cada uma delas criada, adicionamos algumas guias na parte superior aqui para
nossas várias funções Vou começar
com meu bloco ativado, então certifique-se de
que ele esteja selecionado. A funcionalidade que eu
quero adicionar aqui é que
vou arrastar uma
referência aos nossos cubos. Você pode arrastar e soltar
isso da seguinte maneira. Em seguida, vou me arrastar para
fora e digitar visibilidade
definida quando
nosso bloco estiver ligado, interagimos com nosso bloco, vou desativar a visibilidade do
cubo Então, vamos
deixar isso desmarcado. Então eu vou sair
do nosso cubo mais uma vez aqui. E vou digitar
set collision enabled. Então, vamos configurar
nossa colisão para esse cubo não tenha colisão
porque os blocos colocados não
queremos ser capazes de
colidir com Então, o que queremos
fazer é trazer a referência
ao nosso ator infantil. Em seguida, vamos arrastar
esse tipo na visibilidade definida. Estamos ativando a visibilidade de
nosso ator infantil para nosso bloco de funções. Vou clicar com o botão esquerdo arrastar para copiar o controle C. Agora vou entrar na minha função de bloqueio apenas
para economizar algum tempo aqui. Vou clicar
aqui e depois fazer o controle V para colar tudo isso. Isso será basicamente
semelhante, exceto que só precisamos inverter todas essas
várias configurações aqui,
então, quando nosso bloco estiver desativado, queremos ter certeza de que
nosso cubo está ligado novamente Também queremos ter
certeza de que
reativamos a colisão. Então, para isso, vamos fazer uma consulta ativada por
colisão em física E então, o ator infantil, queremos torná-lo invisível quando o bloco
for desligado. Uma vez que esse cronômetro tenha expirado. Tudo bem, em seguida,
vamos adicionar um pouco mais de script
aqui com nosso colisor de moedas Vamos clicar com o
botão direito sobre isso. Vamos adicionar um evento e vamos
fazer Begin Overlap E quando o fizermos, voltaremos
ao nosso gráfico de
eventos aqui. Vou ampliar para
trás e vou encontrar um
espaço vazio para colocar isso. Vou colocar isso aqui embaixo. Vamos ampliar isso novamente. E então o que vou
fazer é tirar pino
do outro ator e digitar o símbolo de igual e descobrir se isso é
igual ao nosso personagem de obtenção de
jogador Se for igual, vou inserir
isso em uma nota de ramificação mantendo
pressionada a tecla B e clicando com o botão esquerdo. Se isso for igual, vamos simplesmente
ao ator ator, ou
seja, esse bloco em si. Isso
garantirá que, se você coletar a moeda de bloco interna, basicamente seja a hora do bloqueio. Essa moeda foi exposta, então o bloco em si
será destruído e, portanto,
não voltará. Depois que o tempo de bloqueio expirar, vou clicar com o botão esquerdo do mouse
e arrastar essa torneira A tecla C digita no bloco moeda do
bloco dentro é coletada E eu vou deixar
isso preto também. E pessoal, isso é tudo
o que queríamos realizar neste. Então, vou
compilar isso e salvar. E com isso,
estabelecemos algumas
das bases para o nosso bloco P. Isso bastará para este. Nos vemos na próxima.
47. Tag de bloqueio infantil e ator infantil: Bem-vindos de volta a todos.
Neste vídeo, nosso objetivo é adicionar uma tag e definir uma
classe de ator infantil em blocos. Gostaríamos de ter nos
transformado em moedas. Quando nosso bloco está ativo, você pode escolher em quais blocos deseja
configurá-lo. Vou colocar apenas
dois de nossos blocos, nosso bloco quebrável e
nosso falso quebrável, para ter moedas dentro quando finalmente
interagirmos
com nosso Mas observe que você também pode definir isso
para outros blocos. Se eu abrir esses
dois agora, vou apertar
a barra de espaço para fazer com que
os dois se abram O que podemos ver é
que em cada um deles, o bloco quebrável e
o falso quebrável, eles agora herdaram o ator secundário e
os componentes
do colisor de moedas
que instalamos em
nossa base de blocos que instalamos em Então, configurando-os em nossa base de blocos, os
filhos dela, incluindo nosso bloco quebrável e falso quebrável.
Ambos os têm. OK. Para
ambos, vou entrar e
ambientar
o ator infantil, então esse é meu falso quebrável Vou colocar primeiro
no ator infantil, vou colocar
isso na minha moeda, pegar BP, pegar moeda E então eu vou fazer o
mesmo dentro do meu quarteirão. Ator infantil quebrável, ator
infantil, moeda de classe. E vamos
configurá-lo para pegar a moeda. Então, para cada um deles,
vou ficar abaixo dos padrões da classe Clique em Padrões de classe
na parte superior e
adicionaremos uma tag para E você verá
onde a tag
entra em jogo um pouco
mais tarde aqui, mas isso nos permitirá. E então eu vou
entrar no painel de detalhes aqui e pesquisar por tag. Permita-nos adicionar uma tag aqui clicando
neste botão de adição. E eu vou criar um
chamado simply block. Assim, vou pressionar o controle C
aqui depois de destacar isso. E então, no meu
BP fake Breakable, selecionarei os padrões de classe,
procurarei por uma tag e criarei uma tag Vou apenas destacar isso e controlar V para pagar o Sap. E esse é um rótulo
essencialmente que
estamos associando a
cada um desses blocos Novamente,
usaremos isso no futuro para qualquer bloco em que quisermos
ter uma moeda dentro Certifique-se de
adicionar também essa tag. Então, vou
fazer esses dois blocos,
mas, novamente, se você quiser
adicioná-los a outros blocos, certifique-se de que,
depois de fazer isso,
tenha feito toda a tarefa de
compilar e salvar E isso vai fazer
tudo por esse pessoal. Nos vemos na próxima.
48. Blueprint de shake de câmera: Bem-vindos de volta a todos.
Neste vídeo nosso objetivo é criar um
plano de vibração da câmera que possa ser reproduzido quando interagimos
com nosso bloco Então, um pouco mais de trabalho de
preparação antes de
começarmos a criar nosso próprio esquema de
blocos Vamos colocar isso dentro
da nossa pasta de plantas. Clique com o botão direito, é
um espaço vazio. Esta será uma classe
principal. Para isso, não
vamos escolher nenhuma
dessas principais classes principais comuns Vamos
ver todas as classes em sua barra de pesquisa aqui. Faça uma busca por trepidação da câmera. O que você está procurando
aqui é a vibração da câmera, base. Vá em frente e selecione isso. E então vamos
escolher selecionar aqui. Vamos nomear isso imediatamente. Bp sublinha a vibração da câmera. E então vamos pressionar a barra de espaço para
abri-la aqui dentro.
Vamos definir
algumas configurações de vibração no painel de detalhes, onde diz padrão de vibração da câmera, padrão de vibração da
raiz Vamos clicar aqui
e escolher o oscilador de onda. Agora vamos
expandir isso e temos várias maneiras de
contornar isso. Vou sacudir isso
rotacionalmente. Você também pode sacudi-lo sacudindo
a localização real, mas o que vou fazer é
analisar a rotação,
o tom, a guinada o tom, a guinada e a função de cada uma delas Eu só vou definir a
frequência para ser cinco. Então, na categoria de
tempo, isso determinará a duração
do tempo de entrada e saída da
mistura. Vou definir a
duração
em 0,3. O tempo de mistura 0,1 e o tempo de
mistura
será 0,2. Essa
será a nossa configuração de shake,
algo
curto e abrangente que
chamaremos para jogar quando
pisarmos em nosso quarteirão, pessoal, isso é literalmente tudo que queremos fazer neste Vá em frente, compile e diga que se terminamos
com este, o próximo
49. Force Feedback: Bem-vindo. Achei que seria bom ter um pequeno feedback
forçado. Esse é o ruído do controlador
quando paramos em nosso quarteirão. Portanto, para aqueles que têm um controlador conectado ao
computador, fiquem por aqui Este vídeo é para você. Se você pretende apenas
tocar um mouse com teclado, fique à vontade para pular este Pois nosso objetivo é criar um recurso
personalizado de feedback forçado. Como esse é
um recurso único, não
vou criar uma pasta totalmente separada aqui. Você poderia fazer isso,
mas vou colocar esse ativo em nossa pasta de
blocos aqui. E para começar, vou
escrever clique em algum espaço vazio. Vamos entrar
em Entrada e
vamos criar um efeito de feedback
forçado. Clicando nisso, só
precisamos dar um nome. Vou ligar para o meu para obter feedback. E então eu vou pressionar a
barra de espaço para abrir isso. Dentro daqui,
vamos clicar nos detalhes do nosso canal aqui
e expandir nosso índice. E vamos
encontrar um editor de curvas. E, assim como você viu anteriormente neste curso com
nossos vários cronogramas, adicionaremos
alguns quadros-chave aos
nossos cronogramas para definir
alguns comentários sobre a floresta Vou clicar com o botão direito do mouse em algum espaço vazio aqui
para adicionar nossa primeira chave. Com isso selecionado,
vou adicionar um valor temporal de zero
e um valor de zero. E então eu vou clicar com o botão
direito novamente. Vamos adicionar outra chave. Desta vez, vou adicionar
um valor de tempo de 0,2 Então nosso shake vai
durar apenas 0,2 segundos, e desta vez nosso valor
será dez. Podemos ver esses
dois aqui clicando nessas
setas. Assim, se você quiser que sua sacudida dure mais tempo, obviamente,
você pode mexer
no valor do tempo obviamente,
você pode mexer E se você quiser
ter uma sacudida maior, você pode definir seu valor maior ou menor
se quiser menos sacudida E aqui em cima você tem seus atuadores que podem ser acionados dentro do
seu controlador Atualmente, vou deixar
isso para seus padrões, a esquerda grande, a pequena, direita grande e a pequena também Só vamos
guardar isso. E com isso feito, agora temos um recurso
de feedback forçado
que podemos usar em nosso próximo projeto de bloco
P, pessoal que
resolverá isso neste Nos vemos na próxima.
50. Materiais e sons de P Block: Bem-vindo. Neste
vídeo, vamos apenas garantir que
todos os ativos
de áudio , textura
e material estejam prontos antes de
prosseguirmos e criarmos nosso esquema de blocos, como você pode ver em nosso vídeo de pausa Essa é a aparência de um bloco
. Tem um interruptor de
aparência azulada na parte superior e uma base de aparência
prateada Só para ter certeza de que
temos tudo isso antes de criarmos
nosso plano de blocos, vamos analisar o que temos em nosso navegador de
conteúdo De volta aqui em nosso navegador de
conteúdo, estou em nossa
pasta de áudio e tenho esse som de pântano que
vamos
usar dentro do nosso bloco Certifique-se de que você tem
isso. Em seguida, dentro da nossa pasta Texturas, certifique-se de ter
acesso ao bloco, ao bloco quebrável
e a uma dessas moedas Agora,
já deveríamos ter lidado com o bloco quebrável
e a moeda, mas não transformamos esse
bloco em um material Esse será o
nosso próximo passo aqui. Vou clicar com o
botão direito sobre isso. Vamos criar
um material a partir disso. Vou deixar
esse nome padrão. Vou apenas
pressionar Enter aqui. E então vou mover isso
para dentro da nossa pasta de materiais. Então, vou arrastá-lo e
soltá-lo da nossa
pasta Texturas aqui, dentro da nossa pasta de Materiais Vamos movê-lo para cá. E então eu vou pular
para a nossa pasta de materiais, selecioná-la e, em seguida, vou clicar na
barra de espaço para abri-la. Agora, aqui dentro, há
algumas coisas que eu quero
ajustar em nosso painel de
detalhes. No modo de mesclagem,
quero mudar isso de opaco para translúcido Eu também quero marcar
esta caixa para dois lados. Agora, depois de tornar nosso modo de
mesclagem aqui, translúcido, também
disponibilizei
essa entrada de opacidade em nosso nó de material mestre O que queremos fazer é
pegar nosso valor alfa de nossa textura e
inseri-lo na opacidade Antes de fazer isso, vou
mudar nossa prévia aqui. Atualmente está em nossa esfera. Vou transformá-lo em
um cubo para que você possa
ver como isso se parece E, obviamente, isso
parece terrível, certo? No entanto, quando inserirmos esse
valor na opacidade, nosso alfa na opacidade, ele ficará muito
mais bonito ao eliminar essas faixas Quando vermos isso no jogo, veremos apenas um lado disso. É como se estivesse em um avião. Algo mais parecido. Então, acabei de selecionar um avião aqui para ver como
ele vai ficar. Ótimo, está tudo
muito bem. Então vá em frente e clique em Salvar. Podemos sair daqui então. E agora vamos querer
criar um material totalmente novo. Porque quando
paramos neste quarteirão, queremos que apareça uma espécie de
versão simplificada disso Então, basicamente,
queremos dar uma olhada nesse bloco que
manterá um pouco do azul, mas não veremos nenhuma letra
e parecerá uma lasca de azul desde que
pisamos no botão Então vá em
frente e saia daqui. E de volta à nossa pasta
de materiais. Vou clicar com o botão direito
em algum espaço vazio. Vamos criar
um material totalmente novo vindo
até aqui, eu vou. Este bloco de sublinhado. Sublinhado sublinhado azul. Vamos pressionar a
barra de espaço para abrir isso. Agora vou apenas
adicionar uma cor aqui. Mantendo pressionada a
tecla número três e clicando com o botão esquerdo. Isso trará um nó vetorial
constante de três. Vou conectar isso à nossa cor emissiva
aqui embaixo Eu quero que isso seja um
pouco brilhante. Mais uma vez, segurei a
tecla três
e cliquei com o botão esquerdo para obter esse nó. Isso serve para
que você possa simplesmente inserir um valor de cor acessando
o painel Detalhes. Você pode clicar
nessa barra de cores e escolher uma como essa. No entanto, eu tenho alguns valores
rígidos que
gostaria de inserir, então vou deixar o
R, o valor vermelho, em zero O valor que vou ser
0,5 e o valor que vou definir como um para criar uma cor
parecida com isso. E vamos chamar
isso de bom por enquanto. Seremos
capazes de fazer uso disso em
pouco tempo. Então, vou clicar em Salvar
e, em seguida,
podemos sair daqui. Depois de terminar de salvar, agora
estamos em
boa forma para começar a criar nosso
projeto de blocos, pessoal, que fará
tudo por este, vencerá o próximo
51. Blueprint de P Block: Bem-vindo. Neste
vídeo, nosso objetivo é criar um modelo de
classe de ator para nosso bloco P com o qual possamos
interagir e que
transformará outros blocos em moedas
por um determinado período de tempo Neste vídeo, vamos
apenas
montar nosso modelo de blocos Na próxima, vamos
realmente implementar o script para fazer com que toda
essa funcionalidade aconteça Agora, para começar
aqui, quero mover a vibração da
minha câmera BP que
criamos antes deste vídeo Vou mover isso para
a nossa pasta Blocos. Basta arrastar e soltar isso na nossa pasta Blocos.
Vamos movê-lo para cá. Em seguida, vou entrar na minha pasta
de blocos. Na verdade, vou criar uma
pasta de blocos separada dentro daqui. Então, vou clicar
na minha pasta de bloqueio, nova pasta,
vou chamar esse bloco. Em seguida, vou para
minha pasta de blocos. Vou selecionar a vibração da
minha câmera e meu
feedback de força, esses dois. E eu vou arrastar e
soltar aqueles dentro de lá. Vamos movê-los aqui para dentro da nossa pasta de blocos. Vou clicar, vamos criar
uma nova classe Blueprint Esta
será uma aula de ator,
e vou chamar isso de sublinhado do bloco de
pontuação da BP Então, vamos clicar na barra de espaço aqui para abri-la Dentro daqui, acredito que
temos seis componentes que
vamos adicionar. Tudo isso será anexado
à nossa cena padrão. Raiz. Este ícone aqui garante que tudo isso esteja anexado à rota de cena
padrão. Este primeiro, se adicionarmos, ele será
automaticamente anexado a ele. Então, isso vai ser
um avião aqui. Vou chamar isso de um bloco de sublinhado
no painel de detalhes Vou definir algumas
configurações para isso imediatamente. O material que vou definir
para isso
será nosso material de sublinhado em bloco, este com o ícone nele Também vou girá-lo
e movê-lo um pouco, então minha rotação aqui
será 90 Vai virar
tudo desse jeito. Vou definir o
local como 50. Isso vai movê-lo
um pouco para cá. Em seguida, no
painel de detalhes abaixo da colisão, vou definir a predefinição de
colisão para não seja uma colisão, não
quero poder colidir com
isso não
quero poder colidir com Em seguida, selecionarei nossa rota de cena
padrão para que o próximo componente
que eu adicionar
seja anexado a ela.
Nós vamos adicionar. Isso vai ser uma colisão de
bloco, então vou rolar para
baixo ou colisão de caixa,
não colisão de bloco, colisão Vou simplesmente deixar
esse nome como caixa. E com isso selecionado no painel
de detalhes, vou definir a extensão da minha
caixa aqui. Vou definir isso
para 42 por 42 por 100. Mais uma vez, determinei todos esses valores com antecedência. A predefinição de colisão
para essa rolagem baixo será Bloquear
todas as Defina isso para bloquear tudo. Em seguida, selecionaremos
novamente nossa rota de cena
padrão. Vamos adicionar um componente. Isso vai
ser uma malha estática. Vou chamar isso de
bloco sublinhado, sublinhado base, sublinhado
esmagado Isso será um cilindro
no painel de detalhes. Faça uma busca por um cilindro. E eu vou fazer isso
em nosso motor, formas básicas. Tem esse tamanho
aproximado de 100 por 100 por 100.
Então, vamos definir isso. Eu quero definir a
localização para isso, a localização z como
7,85 Eu vou definir
a escala disso para ser 0,92 no X. Na verdade,
vou
ter valores diferentes para tudo isso, desbloqueie
sua Dessa forma, podemos definir
valores exclusivos em cada campo. Vai ser
0,92 por 0,92 com 0,15 vai
ser algo quebrado,
parecido com isso ser algo quebrado, E eu vou configurar
o material aqui para ser uma bola cromada,
algo brilhante aqui. Essa bola cromada deve funcionar perfeitamente na seção de
renderização Para isso, vamos desativar
essa caixa de seleção visível. O que isso vai significar é não conseguiremos
ver esse jogo até que o
tornemos visível. Essencialmente, o que
vai acontecer é que, quando pisarmos nessa chave de bloqueio, faremos com
que ela reapareça Ok, em seguida, vamos
selecionar nossa raiz de cena padrão. Mais uma vez, vamos
adicionar outro componente aqui. Esta será
uma malha estática e esta
será chamada de block,
underscore, underscore,
top, underscore, smashed Com esse componente selecionado, vamos configurar a
malha estática para ser também um cilindro. Esse mesmo cilindro do
motor forma o caminho básico. E se você não tiver acesso
à pasta do motor, clique nesse
ícone de engrenagem e mostre conteúdo
do motor para garantir
que veja que vamos fazer
dele nosso cilindro aqui. Eu tenho um tamanho aqui em mente. A escala disso será 0,85 por 0,85 por 0,1, algo
menor assim Então, eu também vou
definir o valor z para que
isso seja 20 para cima um pouco. Também vou
definir o material para isso aqui como
aquele que acabamos de
criar, que será o sublinhado em
bloco,
esse material azul Basicamente, será assim que
faremos com que nosso interruptor pareça
depois de pisarmos nele Isso é para representar
a parte azul dessa chave aqui. Também vou entrar na seção de renderização, onde
diz visível aqui Vou apenas
desmarcar que, por enquanto, faltam
mais duas aqui Então, vamos selecionar nossa rota de cena
padrão. O próximo componente
que vamos
adicionar será a colisão de caixas Mais uma vez, entre
em colisão de caixas. Esta eu chamarei de caixa
sublinhada dois nela, caixa sublinhada esmagada
com esse Vou definir
a localização 13 no Z. Vou definir as extensões
da caixa
aqui embaixo para 42 por 100 por 13, algo pequeno assim Isso serve para representar
a área de colisão depois de
derrubarmos o bloco Também desça abaixo da seção de
colisão e
vamos definir a
predefinição de colisão para que ela seja bloqueada Mais um componente para adicionar aqui, clique na rota padrão da cena. Mais uma vez, vamos acrescentar que
este será um componente de áudio
logo no topo, Áudio. Vou deixar esse nome. Não, na verdade eu vou
mudar para Música. Em vez disso, vamos
transformá-lo em música. Música Com isso selecionado, no painel de detalhes, vamos mudar
nosso som aqui para ser nossa música inicial Nós rolamos para baixo. encontrar nosso plano de fundo inicial que Algo importante que também
precisamos lembrar de fazer aqui é desmarcar a ativação automática Caso contrário, vamos
ouvir isso imediatamente. Abaixo do
painel de detalhes, aqui. Você tem essa ativação. É ativado automaticamente, então não queremos que isso
seja reproduzido imediatamente. Então, vamos desmarcar isso. E com tudo isso feito, vamos
continuar compilando e salvando Aqui terminamos de
montar nossos componentes. No próximo vídeo, adicionaremos o script
para que essa funcionalidade aconteça nosso switch de bloco P.
Nos vemos lá.
52. Script de P Block (Parte #1): Bem-vindo. Neste vídeo, nosso
objetivo é adicionar variáveis e criar o script necessário para
transformar blocos marcados em moedas. Quando interagimos com um bloco P. Há muito trabalho a
ser feito neste. Vamos direto ao assunto
mergulhando em nosso bloco BP. Dentro daqui, vamos
adicionar três variáveis no painel do meu plano clicando neste botão de adição Esse primeiro será chamado
de tag. O tipo será um nome. O segundo será chamado
de blocos. Este será
do tipo ator. Nos tipos de objeto, referência ao objeto
ator. O terceiro tipo que
vamos
criar será uma variável flutuante E chamaremos isso de duração do tempo de
bloqueio. Vamos mudar isso para um carro alegórico. E então, com eles criados, vamos compilar
e alterar alguns
dos valores aqui, bem
como algumas
das outras configurações Começando com a duração do nosso tempo de
bloqueio, vou definir nosso
valor padrão como 8,08 segundos. Também vou marcar essa
caixa para ser editável por instância. Então, no editor, podemos
substituir isso se
quisermos na variável blocks Vou simplesmente mudar o tipo de variável de
uma única para uma matriz. Essencialmente,
vamos armazenar uma matriz de blocos. Qual matriz de blocos? Vamos armazenar
uma matriz de blocos,
um compartilhamento, uma
tag similar para a tag. Vamos selecionar isso
e no painel de detalhes,
sob o valor padrão,
vamos colocar a tag do bloco. Agora, se isso parece familiar, é porque esse bloco de
tags é
exatamente o mesmo que colocamos
em vários blocos. Aqui em nosso navegador de conteúdo. Eu adicionei isso ao nosso bloco quebrável, bem como ao nosso
bloco falso quebrável Se eu abrir um desses
que tenho meu nível aqui, tenho um bloco quebrável Podemos ver que, se eu entrar
na classe default em
uma busca por tag, adicionamos uma tag chamada blocks. Essencialmente
,
procuraremos todos os blocos que
tenham essa tag e
adicionaremos aqueles
que tenham essa tag a essa
matriz de blocos. Tudo bem, continue com nosso roteiro. O que vamos
fazer aqui é selecionar nosso componente de caixa e vamos escrever,
clicar nele. Vamos adicionar
um evento para quando atingirmos esse componente. Isso nos levará
ao nosso gráfico de eventos aqui. E queremos verificar
se o outro ator é igual ao personagem
do nosso jogador. Vou clicar em obter personagem
do jogador. Ok, então se isso for verdade, vamos conectar isso a uma ramificação mantendo pressionada a tecla B
e clicando com o botão esquerdo. Se isso for verdade, também detectaremos se atingimos
isso de uma certa maneira. Então, na verdade, vamos
verificar se duas coisas são verdadeiras aqui.
Deixe-me desconectar isso Mantendo pressionada a
tecla Alt e clicando com o botão esquerdo, extrairemos algumas informações sobre como
clicamos nessa caixa E eu posso fazer isso arrastando para
fora do nosso pino de saída de impacto. Eu tenho esse resultado de break hit. Vou expandir isso
e avaliar o impacto
do arrasto normal para fora daqui e digitar
um símbolo igual. Vamos
verificar se nosso impacto
dessa caixa na direção z
tem um valor de menos um. Essencialmente, o que estamos verificando aqui é que, quando
atingimos esta caixa, impactamos isso
na direção descendente? Definindo esse valor aqui, valor
z é menos um.
Vamos verificar isso. Queremos descobrir se
isso também é verdade. Esse é um valor de tolerância. Vou definir isso
com um valor muito pequeno. Vou apenas configurá-lo como 2.01 e vamos
verificar se ambos são verdadeiros Vou me arrastar até aqui
e digitar e estou procurando por um lingote And e vou conectá-lo
ao outro lado E então vamos conectar
a saída disso em nosso nó
de ramificação. Então, estamos basicamente verificando, ei, alguma coisa atingiu nossa caixa? Vamos ver, foi o personagem
do nosso jogador? Foi o outro
ator que fez sucesso? E, a propósito,
eles o atingiram em uma direção descendente?
Eles pararam com isso? Se ambas forem verdadeiras,
queremos fazer alguma coisa. A primeira coisa que
vamos fazer é lançar o personagem. Essa é uma função
específica de um personagem. Então, vou arrastar para fora do nosso personagem
get player e digitar launch. Você encontrará essa função se arrastar para fora do personagem get
player. A razão pela qual vamos fazer
isso é que vamos mostrar o personagem um
pouco quando ele pisar nele Isso só vai colocá-los um pouco
na direção Z. Vou definir isso como 400
e vou trazer
um nó de redirecionamento aqui para
que não precisemos desorganizar
um gráfico visual OK. Então, logo depois disso, o que vamos
fazer é
conectar isso a um nó de sequência, mantendo pressionada a tecla S
e clicando com o botão esquerdo. A razão pela qual estou trazendo
uma nota de sequência é porque queremos que várias
coisas aconteçam aqui. A nota de sequência nos
ajudará a mantê-la organizada. Então, vou
clicar neste pino de anúncio algumas vezes para adicionar
mais pinos de saída Ok, a primeira coisa que
quero fazer nosso pino zero é clicar com o botão direito do mouse e tocar um som. Toque Sound two D, e o som que
eu quero tocar, clicando neste menu
suspenso de som , será
nosso som de twamp Depois disso, vou
arrastar e digitar
o emissor de spawn no local Se você quiser fazer
uma partícula de Nagra, seria o
sistema de desova O sistema de partículas
que eu quero usar aqui chama pot bake Isso é daquele
pacote de lâminas
infinitas que eu adicionei no
início do curso Agora eu preciso fornecer
um local para isso, bem simples. Podemos escolher aqui um dos
nossos componentes onde gostaríamos que isso
fosse gerado. Vou escolher meu smash baseado em
blocos aqui, arrastá-lo
para dentro, vamos sair daqui e dizer obtenha a localização mundial A localização desse
componente é onde vamos aparecer
neste emissor O que eu também
quero fazer é tocar alguma
música imediatamente. Vou arrastar
nosso componente musical, depois vou sair
daqui, basta digitar play. Queremos jogar isso desde o início, então vou deixar
esse horário de início sozinho. Essa é a primeira
coisa que eu quero fazer. Quando pararmos em nosso bloco clique com o botão
esquerdo e
arraste, toque na tecla. Eu vou dizer que
este é o nosso quarteirão. Opa, bloqueie o script X. Vai ser bom o
suficiente colorir esse preto. Ok, está bem organizado. A segunda coisa que quero fazer, vindo um pouco aqui, é reproduzir
alguns efeitos de vibração da câmera e feedback forçado. Para isso, vou
arrastar e digitar play World Camera shake dentro
do meu world camera shake. Vamos clicar aqui e
temos nossa câmera BP tremer. A propósito, antes que eu esqueça,
esqueci uma coisa quando
criei nosso projeto mundial de vibração de
câmera Vamos prosseguir e navegar
até isso imediatamente. Isso vai te levar
para onde isso está. Vou pressionar a barra de espaço abrir
a vibração da nossa câmera Vou abrir o editor de
plantas completo no lado direito, abaixo
dos parâmetros de vibração da câmera Esqueci de adicionar um multiplicador de
amplitude de rotação, .
Esqueci de adicionar um multiplicador de
amplitude de rotação,
atualmente é zero. Defina isso como um e, em seguida,
vá em frente e salve isso. Vamos precisar disso
para realmente ver a câmera tremer abaixo
da raiz, tremer
,
girar, girar, girar, ampliar
, multiplicar Defina isso como um.
Voltando ao nosso quarteirão, essa será a vibração da
nossa câmera. Preciso especificar um epicentro. Vou clicar com o botão direito do mouse em
obter o personagem do jogador. Vamos
arrastar esse tipo obter a localização do ator. Esse
será nosso epicentro,
o raio interno e externo Vamos definir isso
para 1.000,2 mil. Você pode especificar ou
entender
exatamente o que eles especificam
examinando as dicas de ferramentas. Resumindo,
por meio de alguns testes, descobri que esse era
um bom alcance, dadas as configurações da
minha câmera, para fazer esse world
camera shake funcionar. Vou deixar o resto
desses parâmetros como estão. Isso fará nossa câmera tremer. Em seguida, vou clicar com o
botão direito do mouse para obter o controlador do player. Então, se
sairmos do controle do player, isso é só para vocês que
controlam. Um controlador físico. Vou jogar para receber feedback. Vamos receber o feedback da
força do cliente. Esse é o nodo que
estamos procurando. Novamente, se você estiver
jogando com mouse e teclado, você pode omitir isso Mas para aqueles que
têm um controle conectado, esse é um ótimo slot em
nosso recurso de feedback forçado E lá vamos nós com
esse pequeno roteiro. Vou seguir em frente
, toque novamente na tecla
do meu único pino aqui. Isso será chamado de
meu script de vibração de câmera e feedback
forçado.
Pinte esse preto também. Tudo bem, terminei esse
pequeno roteiro. Pause o vídeo aqui
se precisar. Em seguida, vamos trazer nossa nota de
sequência aqui embaixo para construir a partir dos
então dois pinos aqui. Vamos selecionar
nossas duas malhas de blocos. Vou destacar os dois que usam o controle
e clicam neles. Vou
arrastá-los até aqui, então tenho uma referência a ambos. Então, podemos sair de
qualquer um deles e eu
posso digitar a visibilidade definida. E podemos conectar os
dois aqui. Conecte isso também aqui, vamos
torná-los visíveis. Basicamente,
vamos fazer um pouco de truque
visual Nós os tornamos invisíveis
aqui em nossa janela de exibição. Se você se lembra,
na seção de renderização, nós os tornamos invisíveis,
essencialmente quando
paramos com isso, vamos
torná-los visíveis Voltando ao nosso gráfico de eventos, o que também queremos fazer é
pegar nosso bloco e nossa caixa, esses dois componentes,
arrastá-los para dentro. Se você arrastar qualquer um deles, poderá digitar int, queremos destruir
esses dois componentes. Se eu voltar ao nosso
ponto de vista aqui, nosso bloco, vamos essencialmente
destruir esse Vamos destruir
nosso colisor de caixas aqui. Destruindo aqueles dois e fazendo
esses dois aparecerem Portanto, é um pouco de
prestidigitação visual , se você quiser Ao clicar com o botão esquerdo
e arrastar, toque na tecla. Esse vai ser nosso show. Deixe-me colocar isso aqui para que você possa ver o que estou imprimindo aqui. Mostre malhas e
destrua componentes. Isso é o que estamos fazendo
com esse pequeno roteiro. Em seguida, vamos
diminuir o som e construir a partir de
nossos três pinos. É aqui que começamos a detectar qual dos nossos blocos tem a etiqueta. Vamos trazer nossa variável aqui. Nós vamos conseguir isso. Vamos conectar
isso a uma função para obter todos os atores. O que isso vai
fazer é devolver todos os atores que têm essa etiqueta
com todos os nossos atores externos. Podemos armazená-los em nossa lista. Vamos armazená-los
nessa matriz de blocos. Então, podemos
arrastá-lo e soltá-lo aqui. Qualquer bloco em nosso nível
que tenha essa etiqueta de bloco, ele encontrará todos eles. Ele
os armazenará nesta lista. E então vamos
sair daqui trazer quatro cada loop
para cada item da nossa lista. Certifique-se de conectar
isso também. Para cada item da nossa lista vamos arrastar para
fora daqui e lançar para nossa base de blocos B P. Vamos chamar a função dentro
do nosso bloco BP, com o bloco base ativado Vamos voltar
aqui só um momento. Eu vi como alguns de nossos
blocos têm essa etiqueta de bloqueio. Basicamente, estamos
encontrando todos eles, restaurando-os nesta lista O que estamos fazendo então é
examinar nossa lista
aqui, uma de cada vez. E para cada um deles,
estamos verificando se ele pertence
à base do bloco. Esse é o pai
dos nossos blocos aqui? Deixe-me abrir
nossa base de blocos aqui. Aqui está nossa base de blocos. Dentro daqui, nossa base de blocos. Criamos essa função
de bloqueio que desligará a
visibilidade do nosso cubo de blocos Isso vai esconder
nosso cubo de blocos. Isso vai desligar a
colisão do nosso cubo de blocos. E também vai aumentar
a visibilidade
do ator infantil. Agora, como temos
nosso bloco quebrável que herda de
nossa base de blocos de BP, ele propagará
esses efeitos até os filhos de nossa base de blocos
de Mais uma vez, o bloco
quebrável herda da nossa base de blocos BP aqui, dentro do nosso bloco P, dizendo,
ei, vamos descobrir se nossos elementos de matriz são
desse tipo de base de bloco BP Se estiverem, sim, faça essa função
aqui, basicamente
esconda o bloco, ative a visibilidade do ator infantil que está dentro. Isso é o que está acontecendo aqui. Clique com o botão esquerdo e arraste
ao redor, toque na tecla. Este será meu script de três alfinetes para dizer encontre tudo com etiqueta de
bloco e ative função encontrada
no bloco pai. O bloco principal é
nossa base de blocos da BP. Tudo bem, vamos
virar esse quarteirão também.
53. Script de P Block (Parte #2): Mais um pouco do roteiro aqui. Tenho que adicionar mais uma caneta. Essa será
uma questão importante que
vamos tirar daqui. E vamos
digitar o cronômetro definido por evento a partir disso Vamos nos arrastar para trás
desse pino de evento. E vamos trazer
um evento personalizado. Vamos chamar isso de nosso horário de
bloqueio em um evento personalizado. E isso vai disparar
quando nosso tempo expirar aqui, nosso tempo será determinado por essa variável,
atualmente 8 segundos. Quando pararmos nesse quarteirão, uma das coisas que faremos é definir um cronômetro que durará
8 segundos Depois que o cronômetro terminar, sairemos desse evento personalizado É assim que isso funciona.
Vamos sair daqui e digitar quatro
em cada loop. O circuito pelo qual vamos
percorrer são nossos blocos. Dragão, solte isso aqui. Para cada um dos nossos blocos, vamos
mais uma vez lançar na base do bloco. Em seguida, descobriremos
se esse bloco
na lista é válido, é válido porque
poderíamos ter colocado a
moeda dentro do bloco, destruindo completamente esse
bloco Se o bloco ainda for válido, que
significa que não
coletamos a moeda
que está dentro, ele ainda
existe, ainda é válido. Em seguida, vamos sair
daqui e dizer “bloqueie”. Vamos chamar qualquer
bloco que ainda exista, vamos chamar a
função chamada block off, que dentro da nossa base de blocos, o que isso vai fazer é tornar nossa malha de blocos, nosso cubo visível novamente Isso ativará a colisão
novamente e fará com
que a
criança lá dentro fique invisível Retornando ao bloco BP. Também queremos fazer mais uma
coisa depois disso, que é
trazer nossa música. Em seguida, tire isso e diga, ei, pare de tocar essa música. Nossa música tocará durante esse evento de bloco, se você quiser, mas vamos
desligá-la após 8 segundos. Vamos clicar com o botão esquerdo
e arrastar, tocar na tecla C. Deixe-me ampliar um pouco aqui. Puxe todo esse quarteirão. Você pode enquadrar isso como
pausar um vídeo, se necessário. Este será meu script de
cronômetro de bloqueio. Tudo bem. Pinte esse preto também.
Muita coisa está acontecendo aqui. Sei que passei por isso
muito rápido para tentar encaixar isso no meu limite de tempo de 20 minutos
por vídeo. Esta será
nossa configuração final aqui. Obviamente, precisamos
fazer um teste. Então, compilamos nosso script. Parece bom. Nós o salvamos. O que vou fazer agora
é trazer nosso bloco. Vou arrastar e soltar
isso no nosso nível. Vou pressionar a
tecla para pressioná-la. Agora note que eu tenho três
blocos no meu nível 12.3 que têm uma
moeda infantil dentro deles. Quando eu parar com isso, esses três blocos, 12,3, se
transformarão em moedas Vou coletar
apenas esses dois e vou deixar o cronômetro
expirar para que esse
volte a ser um bloco Antes de fazer tudo isso,
quero ressaltar que, com nosso bloco adicionado ao
nosso nível aqui, no painel
de detalhes,
você pode ver que a duração do meu bloqueio está exposta no momento. Então, eu poderia alterar
isso se quisesse. Eu poderia substituir essa configuração
padrão. E se você tivesse uma segunda
instância disso, se eu pressionasse a tecla Alt, clicasse com o botão esquerdo e arrastasse, eu poderia
definir isso como um valor diferente Ambos não precisam
ter 8 segundos de duração. Você pode alterá-los para
o que quiser que sejam. Vamos em frente e
nos dar uma jogada rápida aqui. Uma vez que eu pise neste quarteirão. Mudanças na música. Eu vejo esses
blocos transformados em moedas. Vou coletar esses
dois imediatamente. Vou deixar o cronômetro
expirar nesse último.
Você pode ver que posso pisar
no novo interruptor de bloqueio que parece
ter sido quebrado Na verdade, este foi
transformado novamente em um bloco. Vamos ter certeza de que
eles são de fato invisíveis e estão Eu ainda posso interagir
com este novamente e depois coletar a
moeda que está dentro, etc Ok, está tudo muito bem.
54. Correções de bugs no P Block (Parte #1): No desenvolvimento de jogos, as coisas nunca saem 100% de acordo com o planejado. E as coisas também deram um pouco errado
com nosso bloqueio Temos alguns bugs
que precisamos corrigir antes de
continuarmos. E você pode realmente ver um
dos bugs aqui mesmo em nossa porta de visualização em
perspectiva. Ou seja,
temos nosso ator infantil,
nossa moeda embutida
dentro desses blocos se estendem além do nosso bloco.
Então isso é um problema. E deixe-me entrar
e jogar aqui
e expor alguns problemas que estão
acontecendo apenas para mostrar
aquela primeira
daquelas moedas de ator infantil que
se estendiam além. Na verdade, subi em
cima desses blocos Você pode ver no canto superior esquerdo, eu estou realmente coletando
essas moedas. Isso não é o desejado. Outro problema aqui é que,
quando eu paro nesse bloco P, essa também não é a música que
eu queria tocar. Então, vários problemas estão aqui
para resolver antes de continuarmos. Ok, vamos
entrar no nosso bloco BP. Algumas coisas que eu
quero limpar aqui. Este primeiro é principalmente cosmético
porque funciona bem. Nosso componente de caixa aqui,
que você pode ver, eu tenho na minha janela de exibição, na verdade
também está
se estendendo um pouco abaixo do chão Isso realmente não é necessário. Então, tudo o que vou
fazer aqui é alterar a extensão z da
minha caixa
no painel de detalhes. Vou mudar isso para 50, mas também
vou aumentar 50 na direção z. Basicamente, isso nos dará o mesmo resultado sem que, estranhamente, permaneça
firme. Então esse é o problema número um. Eu queria apenas limpar. O segundo que eu queria
limpar é nossa música, nosso componente de áudio chamado
Music Over no painel de detalhes.
Eu o configurei acidentalmente para
iniciar a sugestão de fundo Na verdade, acertei na parte
inicial, mas o que eu queria colocar
aqui era música inicial Eu tenho essa sugestão musical inicial. Isso é o que deveria ter sido. Portanto, certifique-se de ir
em frente e limpar isso. Agora, outro bug
que descobri por meio testes de
bug está em
nosso gráfico de eventos, saindo dos nossos então quatro
pinos do nosso nó de sequência. Esse cronômetro de bloqueio, eu o tenho para
que, quando a duração do
tempo acabar, o tempo de
bloqueio acabe Estamos verificando quais atores ainda existem
em nossa matriz de blocos. E se eles ainda forem válidos, estamos desativando os efeitos de
bloqueio aqui mesmo. E isso está pulando
para nossa base de blocos da BP. Eu apenas clico duas vezes
nele para pular
até lá, e tudo bem. Mas se não houver mais blocos válidos
nessa lista, a música na verdade não para. Então, o que eu realmente quero
fazer aqui é fazer que, não importa se há
algum bloco nesta lista, se há blocos válidos ou não válidos, eu queira parar a música. Isso ocorreria
se eu parasse em nosso quarteirão aqui e
depois coletasse moedas, 12,3 se eu tivesse
coletado todas elas O que aconteceria então é que,
quando o tempo de bloqueio expirasse, a música continuaria tocando ao desligá-la ou
também não é válida Estamos garantindo que essa música vai parar de qualquer jeito, então certifique-se de
implementá-la também. Com isso, vou
compilar e proteger. Em seguida, vou abordar a questão
de
nossa moeda de ator infantil estender além
do
nosso quarteirão aqui Agora, o problema
com isso está dentro da nossa moeda de coleta da BP, temos um
raio de esfera aqui de 75, que é muito
maior do que o necessário E é por isso que
podemos pegar essa moeda quando ela é colocada
como atriz infantil em alguns de nossos blocos Deixe-me prosseguir e
selecionar nosso bloco quebrável aqui e aqui Dentro de nosso bloco quebrável, que herda de
nossa base de blocos, diz-se que
nosso ator infantil é nossa moeda
de coleta da BP Para evitar todo
esse problema, o que precisamos fazer é fazer com
que nosso raio
de coleta da BP que está
inserida como ator infantil, seja
muito Então, vamos seguir em frente e fazer isso. Isso vai
ser bastante simples. Em vez de 75, vou mudar
para 30, o que vai parecer
um pouco apertado. Mas, na verdade, não é porque o componente da cápsula que
envolve nosso personagem
se destaca um pouco. Então, isso vai
ser muito bom. Agora, lembre-se de nosso próprio cilindro que
viramos de lado, que não tem nenhuma colisão
associada a ele, então não precisamos nos
preocupar em esbarrar nele Então, uma esfera aqui de 30, esse será
um raio decente Agora vá em frente,
compile e salve isso. Eu quero que esse raio também corresponda ao raio do
nosso
colisor de moedas de bloco BP Agora, se você esqueceu, o raio do nosso
colisor de moedas dentro do nosso bloco BP será
usado para destruir Agora, a única maneira de podermos
realmente sobrepor isso é atingindo o bloco P
e, assim, ocultando
o bloco real em si e
sobrepondo a parte central Então, vamos definir o
raio da esfera do
colisor de moedas aqui como 30 também Se deixássemos em 35, o que aconteceria é que
sobreporíamos isso antes de sobrepormos a própria moeda Significa que destruiríamos o bloco antes de podermos pegar
a moeda. Definindo que ambos sejam
iguais aos 30. Isso significa que
pegaremos simultaneamente a moeda que está dentro e destruiremos o próprio bloco
inteiro. Tudo bem, vamos compilar
e salvar isso. Então, agora, se entrarmos e jogarmos, vou correr até o topo
primeiro, apenas para ter certeza de que não
podemos nos sobrepor e
pegar as moedas enterradas dentro de
alguns desses blocos E isso parece
muito bom, então vamos parar
em nosso quarteirão aqui. Eu vou ter esse
direito. Plano musical. Vou coletar
algumas moedas
aqui depois que o cronômetro expirar Nada com que colidir aqui. Eu ainda deveria ser
capaz de colidir com isso e tudo parece
estar de volta em ordem A música também tocou.
55. Correções de bugs no P Block (parte #2): Tudo bem, mais algumas coisas que vamos corrigir aqui que estão tangencialmente
relacionadas ao nosso bloco Alguns de vocês já
notaram, sem dúvida, que ainda podemos quebrar nossos bloqueios mesmo quando
somos pequenos assim. E isso não é
realmente o planejado. Queremos fazer
com que
só possamos quebrar nossos bloqueios
quando formos grandes. Agora, isso também vai
entrar em jogo aqui, porque vamos adicionar
um script aos nossos blocos
quebráveis
para que só possamos
quebrá-los quando formos grandes E depois de adicionarmos esse trecho
inicial do script, você notará
alguns outros problemas relacionados ao nosso sistema de blocos. Com tudo isso dito,
vamos entrar em nosso bloco quebrável e adicionar um pouco de script
aqui Vamos adicionar um
pouco de script entre
nosso bloco de ocorrência de eventos e
nosso nó de sequência aqui. E, felizmente,
poderemos usar um atalho
para algumas Mas esta primeira parte
precisamos escrever de novo. Então, vou manter pressionado o
controle e aumentar o zoom. A primeira coisa que quero fazer é clicar com o botão
direito do mouse em algum espaço vazio. Vamos pegar o personagem
do jogador, depois vamos sair disso e
lançar dois personagens em terceira pessoa. Agora, a razão pela qual
vamos fazer isso, vamos conectar isso assim, é porque dentro do nosso personagem em
terceira pessoa, temos uma variável
chamada pontos de vida. Então, vamos sair daqui
e digitar os pontos de vida. Vamos obter esse valor e depois vamos
avaliá-lo. Então, vou
sair daqui e dizer se
nossos pontos de vida são
maiores ou iguais a dois. Agora eu não pretendo que superemos
dois pontos de vida,
zero pontos de vida, você está morto Um ponto de vida, você é pequeno. Dois pontos de vida, você é grande, você tem poder de flor de fogo. Mas vamos dizer que
se você estiver acima disso,
você sabe que se você quisesse
adicionar um terceiro,
quarto, quinto
ponto de vida, você poderia. Então, vou manter
pressionada a tecla B e
clicar com o botão esquerdo e vamos conectar
isso como nossa condição. Então, se nossos pontos de vida forem
maiores ou iguais a dois, diremos que, sim, de fato, se você for grande,
vamos quebrar o bloco e fazer todo
esse tipo de coisa. Está tudo muito
bem. No entanto, e se tivermos apenas um ponto de vida e não formos maiores ou iguais a dois? O que
fazemos então? O que queremos construir a partir
desse falso galho. Então, a primeira coisa que
vamos fazer é criar um pouco de espaço
extra aqui. E eu vou
acabar com isso. E então vou
entrar no meu navegador de conteúdo e roubar um código
dentro de nossas moedas de bloco da BP Então vá em frente e mergulhe
aqui e vamos roubar esse bloco, um conjunto de
scripts, clique com o botão esquerdo e arraste,
controle C, volte para o
nosso bloco E eu vou controlar V também fora do
nosso galho falso. Vamos reproduzir essa linha do tempo de animação em
bloco. Mas antes de realmente fazermos isso, eu quero trazer um
som aqui também. Vamos eliminar nosso tipo de
galho falso no jogo. Sound Two D, eu vou dizer que
vamos tocar o Brick Bump Sound Em seguida, vamos jogar
nossa linha do tempo desde o início. Essa linha do tempo
simplesmente
fará com que elevemos um pouco
nosso componente do cubo na direção
Z. Vamos esbarrar nele
em vez de
destruí-lo para coincidir com Também vamos tocar
esse som aqui. Eu vou dizer que o jogador é pequeno, não destrua o bloco. Ok, então vamos adicionar
esse pequeno script aqui que estará fora
da ramificação falsa aqui. Certifique-se de ter
compilado
e salvo algo mais que eu
queira fazer enquanto estivermos aqui. Isso também será apenas
para fins visuais. Eu vou vir aqui, na verdade, quero mudar
os efeitos V associados a
essa quebra do nosso bloqueio. Na verdade, encontrei um que eu
gosto um pouco mais. E para isso, na verdade não precisaremos desse deslocamento aqui Então, eu vou me
livrar disso e vou conectar isso
aqui dessa forma. E a partícula de efeito V
que eu quero tocar, eu poderia colocá-la aqui também No entanto,
vou trabalhar um pouco
em
nossa base de blocos de BP, para que possamos configurá-la lá E então ele propagará essa mudança para
esse bloco infantil Então, na verdade, vou abrir nossa base de blocos da BP
aqui imediatamente, porque
precisaremos dela
daqui a
pouco. Vamos abrir isso. E aqui dentro da
minha base de blocos BP, vou selecionar minha partícula
Interact VFX E aqui vamos
mudar nossa partícula no painel de detalhes para ser misturada Que eu tenho esse conjunto misto, alto, eu gosto muito desse
. Então, observe que o configuramos
aqui em nossa base de blocos. Se eu compilasse e salvasse e agora voltasse para nosso bloco
BP breakable, que é filho da
nossa base de blocos BP Podemos ver que a mudança agora
se propagou. Tudo bem, então com isso,
devemos ser capazes de
testar se esse bloco
é quebrável ou não E então lidaremos com algumas
das ramificações em bloco do
que acabamos de fazer aqui Então, vou clicar em play. Posso quebrar esse tijolo? Não, eu não posso. Agora você vê
as ramificações do bloco Eu posso ver aquela moeda lá dentro. Vamos lidar com isso
daqui a pouco. No entanto, vamos tentar agora. Novamente, se eu for um pouco agora, teremos um efeito
um pouco mais explosivo quando
eu quebrar esse tijolo E isso está parecendo
muito bom. Tudo bem, a seguir, vamos
lidar com a questão de ver aquela moeda no
interior do nosso bloco aqui. Agora, a razão pela qual
estávamos vendo essa moeda está dentro da nossa base de blocos da BP Temos nosso
ator infantil aqui. Foi aqui que
realmente colocamos a moeda dentro de
nossos atores infantis Deixe-me falar com o ator infantil BP
Block Breakable. Você pode ver que é
aí que estamos inserindo nossa moeda
de coleta BP. Mas aqui em nossa base,
nossa base de blocos de BP e, novamente,
nosso bloco quebrável herda de nossa base de blocos
de BP Vá em frente e selecione
seu ator infantil. E no painel de detalhes, queremos garantir que, por
padrão, isso não esteja visível. Esqueci de desmarcar
essa caixa aqui. Agora, além disso, eu também quero fazer com que
nosso ator infantil fique preso
ao nosso próprio cubo Então, quando bloqueamos
nosso bloco de BP quebrável, quando somos pequenos,
nosso ator infantil
no colisor de moedas também ficará
bloqueado Eles vão subir
quando atingirmos o cubo, então vou clicar com o botão
esquerdo e arrastar
isso para a direita em cima do nosso cubo E agora você vê nosso
relacionamento como tal. Temos nosso cubo,
que é nosso bloco aqui, o ator infantil está
preso a ele por dentro E então nosso colisor de moedas, que estamos usando
para realmente destruir todo
esse bloco se nos sobrepormos, está ligado ao
nosso ator filho Então, vamos compilar
e salvar esse tipo de
relacionamento aqui Sendo isso anexado a isso,
que está anexado a isso, também
devemos ver refletido
em nosso bloco BP quebrável, agora que compilamos e
salvamos em nossa base, e pronto, vamos salvar nosso bloco
quebrável Agora, se eu
voltar para o meu nível, vamos jogar aqui. Note que sou pequeno, vou pular direto para cima. Eu latido isso. Não
vejo a moeda do lado de dentro. Isso é o pretendido. Ótimo. Vou
parar no meu quarteirão aqui. Agora. Eu vejo as moedas.
Eu posso colecioná-los. Vou deixar esse sem coleta
até que o tempo
acabe e eu possa
voltar para ele acabe e eu possa
voltar para Então, mais alguns bugs foram corrigidos. Mais uma coisa que devo mencionar, depois de fazermos essa alteração de
partícula dentro de nossa base de
blocos de BP aqui, uma vez que fizemos essa alteração
e compilamos e dissemos que a mudança
se propagou para todos os blocos filhos, o que eu sei que você pode não querer ter em seus
vários Então, se você definiu isso
aqui em sua base de blocos, o que você vai
querer fazer é voltar vários blocos
secundários, como sua moeda invisível, sua moeda BP, Q, etc E se você os abrir
e ficar abaixo dos padrões de
classe, você pode simplesmente limpar essa partícula de efeitos visuais de
interação para não ter
esse grande tipo de Além disso, esqueci de mencionar que
dentro do nosso bloco BP, falso quebrável, talvez
você queira
eliminar esse deslocamento que
tínhamos ao entrar aqui Eu fiz isso
entre as tomadas aqui, então talvez você queira
eliminar isso também. Aqui eu estou bem com isso. Interaja com a partícula VFX. Mas
pensei
em incluí-los antes de terminarmos este vídeo.
56. Script de bloco em P (Parte #3): Tudo bem, temos mais um problema relacionado a
blocos para resolver, e isso é com nossos blocos
invisíveis aqui. E como você pode ver,
eu tenho dois deles colocados ao lado
desses tijolos quebráveis E se eu entrar e jogar, obviamente você não
conseguirá
vê-los desde o início. E, de fato, você pode
interagir com eles como eu
farei com um desses
agora. O problema surge. No entanto, quando me aproximo
de um desses blocos invisíveis pela parte superior, eu caio
por
ele e tento interagir
com ele. Eu não posso. O que está acontecendo aqui?
Bem, se eu fosse voltar para minha base de blocos BP, esse é o modelo do qual todos os outros
blocos são derivados Você deve ter se lembrado de
que adicionamos um ator infantil em um colisor de moedas dentro
do nosso bloco base E isso tinha a
ver com o bloco RP. Agora, o que está acontecendo dentro
da nossa base de blocos
da BP, da qual todos os nossos outros
blocos derivam algum código, é que se
sobrepuséssemos aquele colisor de moedas, esse cara aqui,
destruiríamos o ator, ou
seja, o seja O que está acontecendo é que
quando estamos
passando pela parte superior do
nosso bloco de moedas invisível, aqui, deixe-me
abrir esta planta Há nosso bloco de moedas invisível quando estamos
passando pelo topo dele, e tudo é invisível. Na verdade,
estamos
sobrepondo esse
colisor de moedas que está
dentro dessa caixa, destruindo
assim Se cairmos do topo, na verdade
destruímos o ator, que significa que não podemos
interagir com ele novamente. Como podemos consertar tudo
isso? Bem, a solução é realmente muito fácil. Portanto, certifique-se de entrar no seu bloco BP, moeda invisível Encontre isso em seu navegador
de conteúdo. Vamos acessar
o
gráfico de eventos desse evento. Comece a jogar. Estávamos definindo a visibilidade do nosso
cubo para ser invisível Vamos apenas fazer backup
desses dois nós aqui. Na verdade, vou
mencioná-los um pouco mais alto. Vou colocar um
nó de sequência logo após
esses dois primeiros, então vou manter pressionada a tecla S e clicar com
o botão esquerdo. E vamos fazer duas
coisas fora do evento beginplay. A primeira coisa que continuaremos fazendo
é esconder nosso cubo, o bloco, para que
pareça invisível A segunda coisa que
vou fazer, no entanto, é trazer
uma referência à nossa moeda que é
essencialmente nosso ator infantil
aqui, nosso colisor de moedas Vamos trazer isso também. Recebemos essas duas referências. Vamos apenas
tirar um desses e dizer destruir o componente para isso. Podemos essencialmente
destruir
esses dois componentes porque não
queremos transformar esse
tijolo invisível em uma moeda. Quando paramos no bloco, vamos clicar com o botão esquerdo do mouse e
arrastar essa tecla ao redor deles. E eu vou dizer que se você tem funcionalidade de
bloco
implementada, se você tem a
funcionalidade de bloco implementada, esse código realmente
importa para você? Se você ainda não
implementou isso
, isso não importaria. Então, vamos
compilar isso e salvar. E entre e jogue mais uma vez, só para mostrar que meus
blocos invisíveis
estão ali . Eu vou aparecer
ali mesmo. Então, como você pode ver,
eu posso interagir com um desses
na parte inferior, assim. No entanto, agora, quando eu
desço de cima para baixo, ele não vai realmente
destruir aquele bloco. Então, agora, se eu pular, ainda
posso interagir com
aquele bloco invisível. Então é assim que você
resolve esse problema. Tudo bem, pessoal. Isso
fará tudo por este. Nos vemos na próxima.
57. Blueprint de Goomba: Agora que temos
alguns blocos no lugar, vamos criar nossa
primeira nação, uma goomba, para isso, vamos usar um Tanto no Unreal,
daremos a ele
algumas funcionalidades básicas para se mover para a esquerda e para a direita, em vez de
patrulhar o L sem pensar
ou procurar o ou procurar Também vamos
fazer com que nossas gengivas possam ser destruídas Ou estamos parando para atirar uma bola de fogo
no ataque Vamos começar. Agora, de volta aqui no Unreal, você deve ter essas
oito imagens diferentes do
Goomba que importamos no início do
curso E eles devem existir dentro
da pasta Texturas. Agora, o que vamos
fazer a seguir é clicar com o botão esquerdo na pasta do meu
jogo de plataforma, clicar com o botão direito do mouse
e criar uma nova pasta
chamada simplesmente sprites Em seguida, vou voltar
para minha pasta Texturas e selecionar todas essas
oito texturas E se eu mantiver pressionada a tecla shift depois de selecionar
a primeira aqui, posso selecionar a oitava
para selecionar todas
elas. No meio, posso
clicar com o botão direito
em qualquer uma para selecionar todas
elas. No meio, delas E, ao fazer isso,
posso entrar em Sprite Actions, Create Sprite Agora, ao fazer isso, teremos criado oito ativos de sprites Vou simplesmente
pegar tudo isso e você pode ver que estão todos
destacados agora. E eu vou clicar com o botão
esquerdo e
arrastá-los para essa pasta de sprites,
a pasta de sprites, em vez
de movê-los aqui E então, se entrarmos na nossa pasta
de sprites, você pode ver que todos eles
existem aqui Em seguida, o que vamos
fazer é garantir que todos os oito
sejam selecionados. Novamente, selecionarei
o primeiro, pressionarei a tecla Shift e
selecionarei o último. Depois, posso clicar com o botão direito e quero
criar um flip book. Eu simplesmente vou
chamar isso de Goomba. Agora, tenho certeza de que a maioria de vocês está familiarizada com o que é
um flip book, mas se eu simplesmente clicar duas vezes nesse recurso para
abri-lo na parte inferior, você pode ver basicamente que eu tenho todos os oito sprites diferentes
nesta linha do tempo e ele está sendo reproduzido
rapidamente No lado direito onde temos
nosso painel de detalhes, você pode ver que posso expandir
nossos quadros-chave aqui. Se eu clicar com o botão direito sobre isso, posso expandir tudo isso. Você pode ver todos esses sprites
diferentes. E está mostrando
que está jogando todos esses
oito sprites
em rápida sucessão Agora você pode
desacelerar ou acelerar isso ajustando esse valor de quadros por
segundo aqui Então, se eu definir, isso
é algo como três, e pressionar Enter, os argumentos aparecerão como se estivessem
andando muito mais devagar Isso funciona como um flip-book
infantil. Se eu acelerar
isso configurando algo como 30, vai parecer
que
Argumba está andando muito mais rápido Vou voltar
ao valor padrão de 15,
mas isso é essencialmente
o que é um flip book É um monte de imagens
reproduzidas em rápida sucessão. Vamos usar isso
em nosso ativo inimigo aqui,
nosso projeto inimigo para fazer parecer
que Argumba está Vá em frente, diga isso
e feche aqui atrás. Coma nosso editor de níveis. Vou entrar na
minha pasta de plantas e vou encontrar um
espaço vazio Vou clicar com o botão direito do mouse, vou criar uma
nova classe de blueprint Essa será uma classe de
personagem porque eu quero que esse inimigo
se mova. Então, isso nos
dará a habilidade de movê-lo pelo personagem. E eu vou
escolher o sublinhado BP, mas como o nome
com isso selecionado, vou pressionar a barra de
espaço aqui para abri-lo E, no painel de
componentes,
começaremos a adicionar
alguns componentes. Então, o que vou fazer
primeiro é adicionar os componentes na relação de
vinculação correta E então eu vou
voltar e definir os detalhes de cada um. Ok, então o
primeiro que vou
usar será anexado ao componente da
minha cápsula aqui. Vou clicar em Adicionar. Isso vai ser
Sphere Collision, e vou chamar isso de alcance de detecção do
meu jogador Em seguida, vou selecionar meu componente de
cápsula novamente e vou anexar
outro a ele. Vou clicar em Adicionar. Vou adicionar um pouco
mais de colisão esférica. Esse eu vou
chamar de Collider. Vou ter
diferentes colisores o jogador detecta o
alcance e este chamado Collider por diferentes
motivos. Você verá para
que servem e daqui a
pouco aqui Ok, com nosso
componente de colisão aqui selecionado, vou adicionar
tipo no flipbook. Vamos adicionar um flipbook de papel em
dois D. Vou simplesmente deixar o nome do
flip-book de papel. Isso é bom. Em seguida, vou
selecionar nosso colisor mais uma vez porque
quero outro
componente conectado ao nosso colisor. Clique em Adicionar. Isso vai
ser Box Collision,
Box Collision, aqui mesmo Esta
será nossa caixa Stomp. Vamos usar
isso para detectar quando nosso personagem jogador
parou em Argumba Tudo bem, vamos começar
a ajustar alguns detalhes desses
vários componentes Vou começar com meu componente de colisão de cápsulas Esse é um tipo de coisa
em forma de cápsula. Vou definir a meia altura da
cápsula para 55 e o raio para 45 Agora, observe que esse componente especifica que esse
será o tipo de peão Vou rolar para baixo até
a área de colisão. A colisão
predefinida aqui será peão. Portanto, você pode ver que,
embora isso esteja
configurado como uma predefinição de colisão de peões, seu tipo de objeto é
conhecido como E o que
resultará aqui é que outros objetos rotulados como
peão colidiriam O que significa que, se tivéssemos múltiplos desses gumbas, eles essencialmente
colidiriam um com O que eu não quero que eles façam. Eu quero que eles possam
passar um pelo outro. O que eu realmente vou
fazer aqui é mudar nossa predefinição de colisão de peão para personalizada e, em seguida, ajustar alguns de nossos canais de
colisão Vou fazer com
que tudo comece como ignorado, mas depois vou definir nosso mundo estático
e dinâmico mundial. Vou configurar
isso para bloquear para
que essa gumba não
caia pelo mundo Certifique-se de que esta
é a
configuração de colisão para o componente da
cápsula O tipo de objeto personalizado é peão
e, em seguida, essas várias configurações de
canal estão aqui Em seguida, vou selecionar
nosso player para detectar o
alcance do raio da esfera Para isso, vou
colocar um conjunto bem grande. Vou definir isso para 2000. E vamos simplesmente usar isso para
detectar quando nosso personagem de jogador
entrou nesse raio Então, a gumba pode começar a se mover de alguma forma,
forma ou forma Você pode
definir isso como quiser, mas o meu vai ser
bem grande para começar. OK. Em seguida, vou
selecionar nosso componente do colisor Aquele é esse pequeno
raio aqui. Para isso, vou definir o raio da esfera como
um pouco maior Vou configurá-lo para 55, um pouco maior assim. E então, nas predefinições de
colisão, vou expandir
isso para baixo também Vou mudar isso para ser personalizado em vez de
bola de sobreposição, vai ser personalizado Vou configurar
isso para bloquear
tudo, exceto que vou
alterá-lo para que peões,
qualquer coisa rotulada como um tipo de
objeto de peão, possa ser Detectaremos se um jogador, o jogador que também é tipo peão, se sobrepõe
para determinar se você,
o jogador, morre ou
perde
um o jogador, morre ou
perde Observe também que esse componente
específico bloqueará uma bola de fogo Vamos usar
isso para detectar se uma bola de fogo atinge esse componente, porque está configurado para
bloquear uma bola de fogo para determinar se
a gumba
deve ser Em seguida, vamos configurar nosso flip book de
papel. Vá em frente e selecione
esse componente. No painel de detalhes, temos uma área onde podemos
inserir um flipbook de origem Clique nisso. Temos
nosso flipbook Goomba Vai
começar bem grande, então vamos seguir em frente
e reduzi-lo. Clique no botão de bloqueio
para dimensionar isso uniformemente. Vou definir isso como 0,25 em toda a linha, então vai caber
muito bem lá Eu também vou descer e
configurar a colisão para não seja uma predefinição
de colisão de
colisão Vamos configurar isso
para que não haja colisão. Não vamos verificar se há nenhum
tipo de colisão. É para isso que nossos vários
outros aceleradores estarão aqui a seguir Vamos clicar em nossa caixa de parada E com isso selecionado
no painel Detalhes, vou definir
a extensão da caixa como 40 por 100 por três, algo meio
fino assim. E então eu vou
movê-lo para cima na direção Z. Vou mudar
isso para 60 para que fique cabeça de Argumba desse jeito E então eu preciso
descer sob a colisão. Você sabe o que, na verdade,
antes de eu entrar na predefinição de colisão, vou definir a espessura
da linha para ser um pouco
mais grossa Vou definir que seja
algo como três, só para deixar um
pouco mais óbvio
que essa será
nossa área de parada. Ok, então com isso selecionado, desça abaixo da seção de
colisão Vamos alterar a predefinição
de colisão aqui para ser personalizada E para isso, vamos
configurar isso para bloquear
tudo , exceto que
vamos ignorar as bolas de fogo, então não queremos que as bolas de fogo colidam magicamente contra elas Estamos bem com isso
passando por aqui. Vamos verificar
esse outro colisor para ver se ele está sendo
atingido por uma bola de fogo Nossa caixa de parada será estritamente para ver se um peão
vai parar em cima dela E vamos realmente
verificar ,
eventualmente, por meio de algum script, se nosso personagem
está caindo sobre isso na direção Z. Ok, mais uma coisa
que eu quero ajustar aqui será encontrada no componente de
movimento do nosso personagem. Isso surgiu automaticamente ao ter isso como um modelo de
classe de personagem Esse é o componente mágico
que determinará muitas das
características de movimento desse projeto de
classe de personagem Se eu descer abaixo
no painel de detalhes, acabarei encontrando
esta seção de movimento da plaina Quero restringir o
movimento de nossos goombas a um determinado plano. Então, vou
selecionar aqui e quero garantir
que restringimos nosso plano ao eixo y. Observe que, uma vez que eu defina
isso como Y, ela definirá nossa
restrição de plano como uma no eixo y. O que isso basicamente
fará é proibir nosso gumba de se mover
no eixo y. No entanto, é
permitido mover-se
no eixo x e no eixo z. Agora vou ajudar a restringir os meios
que não podem se mover
nesse determinado eixo Então, deixe-me compilar isso
e salvá-lo imediatamente. E coloque um
desses em nosso nível. Eu tenho meus dois principais
conjuntos de snapping em D na minha janela de visualização aqui. Deixe-me ir em frente e arrastar
e soltar em um estilo Goomba. Então. Toque na tecla para
encaixá-los no chão. Então você pode ver que o plano Y é indicado pela nossa seta
verde aqui Então, estamos essencialmente
dizendo que você não pode se mover ao longo desse eixo verde. Você pode se mover
ao longo do eixo x vermelho ou do eixo z azul, mas não ao longo do Y. Tudo bem, começamos muito
bem Então, com tudo isso feito,
certifique-se de ter salvo tudo. Você pode entrar no arquivo
e salvar todos os caras. Isso bastará para este, vencerá o próximo.
58. Goomba danifica jogador: Tudo bem, bem-vindo de
volta. Neste vídeo, nosso objetivo é fazer com que nosso Goomba possa
danificar o jogador Agora, como esse será um vídeo curto, vou mostrar
rapidamente como você também pode definir sua própria
imagem em miniatura aqui Porque agora nosso BP Goomba só tem esse rosto como
uma Se você clicar com o botão direito do mouse nesse ativo e acessar as ações do ativo, poderá capturar uma miniatura Então você pode ver, eu já tenho meu gumba meio que emoldurado
na minha janela de exibição aqui Vou apenas tocar na
tecla G para esconder todos esses ícones. O Gkey pode mostrar ou ocultar
todos esses ícones do editor. Vou clicar com o
botão direito sobre isso. Vamos até Act Actions
e capturaremos uma miniatura. Então, aí temos uma
bela imagem em miniatura. Deixe-me ir em frente
e entrar no nosso Goomba agora selecionando-o e
pressionando esta E agora vamos trabalhar para
que nosso gumba possa
danificar nosso jogador dentro
do nosso projeto de Goomba Vamos adicionar uma variável na seção My
Blueprint Clique no botão de adição da
variável aqui. Vou chamar isso de saúde para subtrair e vou
fazer disso um número inteiro Se eu compilar isso
no painel de detalhes, vou definir o valor
para menos um E você verá y menos
um em apenas um segundo aqui. Então o que eu vou
fazer é
clicar com o botão direito no nosso
componente do colisor, esse cara aqui Vamos ampliar para que você
possa ver de qual deles
estou falando. Então, queremos fazer com
que nosso personagem seja danificado
ao se deparar com nossa gumba Vamos usar esse componente do
colisor para isso. Clique com o botão direito do mouse no evento
para iniciar a sobreposição. Isso nos levará
ao nosso gráfico de eventos. Podemos verificar se nosso outro ator é nosso personagem em
terceira pessoa. Então, saia daqui e digite o personagem de terceira pessoa
que queremos transmitir para nosso personagem de
terceira pessoa. Porque dentro do nosso personagem em
terceira pessoa, se você se lembra do
início do curso, criamos um evento
personalizado chamado
adjust hip points. É aqui que podemos chamar esse evento personalizado
e, em seguida ,
inserir quantos
pontos do quadril queremos modificar e temos nossa saúde para subtrair aqui Tem um valor
de menos um. Então, podemos conectar isso
diretamente assim. Agora, só para deixar claro exatamente o que está acontecendo aqui, vou clicar duas vezes em nossa chamada de
pontos de vida ajustados aqui. Mais uma vez, esse
é um evento personalizado que vive dentro de nosso personagem em
terceira pessoa. E se eu clicar duas vezes
nisso, ele abrirá meu
plano de personagem em terceira pessoa e
me levará direto para onde esse evento
personalizado existe Agora você pode ver isso
no meu projeto do BP Goomba, estamos passando por
nossos pontos de vida
sendo modificados aqui
em nosso sendo modificados aqui
em Aqui estamos dizendo que,
nosso modificador de ponto de
vida, queremos passar
pelo valor de menos um O negativo fluirá
para este evento personalizado e seguida, descerá até aqui para ser ajustado a partir da quantidade
atual de pontos de vida de nossos personagens. Se nosso personagem
tiver dois pontos de
vida, se passarmos por menos 12 mais um negativo
, obviamente será um. É assim que isso funciona. Tudo bem, com isso,
vamos compilar nosso Goomba Salve, deixe-me clicar com o botão
esquerdo e arrastar. Vou fazer uma caixa de comentários em torno
desse jogador do Goomba Damages. E então entraremos nos testes de
jogo aqui rapidamente. Agora, antes de fazer isso, quero ir até meu
personagem de terceira pessoa da BP e ter certeza que
tenho tudo
resolvido aqui O que eu quero garantir é
que eu olhe para o meu ponto de vista. Atualmente, meu personagem
é pequeno e eles têm essa coloração azul e
material azul aplicados a eles. Quero ter certeza de que
nosso valor atual de pontos de vida também corresponda a isso. Então, vou definir meus
pontos de vida aqui. Atualmente, o padrão é dois. Na verdade, quero
padronizar isso para um. Quando temos um
ponto de vida, eu quero ficar triste. Deixe-me voltar
ao meu gráfico de eventos aqui, onde estamos ajustando
nossos pontos de vida, que
chamaremos de evento para clientes Quero ter certeza de que
nossos materiais que estamos trocando, com
base na quantidade de
pontos de vida que
temos, façam sentido Novamente, por padrão,
teremos um ponto de vida. Quero ter certeza de que, quando esse índice de pontos de vida for um, nosso material aqui será
realmente azul. Eu quero que seja azul. E
temos um ponto de vida. E quero ter certeza de que
, quando nosso valor de pontos de vida aqui for dois, na verdade
seremos verdes. E eu estou compartilhando o
verde e acho que esse é o único lugar onde
estávamos ajustando o material Parece que sim. OK. Então, vamos
compilar e salvar isso. E agora eu vou
começar a jogar. Estou triste agora, antes de
me deparar com esse idiota. Na verdade, vou
coletar essa flor de fogo aqui. Pulando para cima. Sou azul com um ponto de vida e tenho dois pontos de vida. Sou verde, isso é ótimo. Vamos encontrar nosso goomba aqui. Nada muda. Obviamente,
isso é um problema. Agora, o motivo desse
problema é porque atualmente não
estamos
enfrentando esse colisor, estamos enfrentando
essa plataforma Stomp. E é difícil ver
desse ângulo, mas se eu for da perspectiva do nosso
jogador, podemos ver que nossas gumbas estão
um pouco fora da nossa linha central aqui quando
colocamos nossa gumba em nosso nível E deixe-me tentar
colocar um novo. Atualmente, ele o está colocando em uma ampla profundidade de 63 negativos, que não é o que queríamos, mesmo com nossas configurações de snap ativadas Não sei por que está fazendo isso. Deixe-me deletar isso. Mas vou definir isso
como zero em Y. Dessa forma, nossa gumba deve estar
alinhada com nosso personagem Então, agora, quando eu entrar e jogar, começaremos a coletar
aquela flor de fogo, Al, certo? E vamos encontrar
nosso goomba aqui. Eu perco uma ponta no quadril e, tecnicamente,
estamos mortos agora. Então, isso parece
estar funcionando bem. Tudo bem,
limpei tudo aí, pessoal, isso bastará com este Veja quando será a próxima.
59. Destrua Goomba via Stomp: Bem-vindo. Neste vídeo, nosso objetivo é fazer com que
nosso goomba possa ser
destruído com um Então, vamos direto ao assunto. Vou selecionar nosso goomba
aqui em nosso controle de nível, mais E para abrir nosso A primeira coisa que vou
fazer é adicionar uma variável. Agora, essa
será uma variável inteira que
conterá um valor em pontos Então, vou
selecionar nossa saúde existente para subtrair
a variável inteira Vou fazer control
plus D para duplicar isso. E eu vou simplesmente chamar
isso de pontos. Pressione Enter. Então eu vou compilar isso, e vou dizer que pisar ou
destruir nosso Guba em geral valerá 200 pontos aqui no
painel de Doce. A próxima coisa que
quero fazer é encontrar algum espaço vazio
aqui em nosso gráfico. Vou fazer algo
fora do Event Begin Play. Então, vou clicar com o botão esquerdo
e arrastar esses dois. Livre-se disso logo
abaixo do Event Begin Play.
Vou clicar com o botão direito do mouse. Vamos comprar o controle
do player. E vamos sair
daqui e
lançar para controlar nosso controlador
BP Player E a razão pela qual
vamos fazer
isso é para que possamos criar uma referência ao nosso controle de
jogador aqui ao começar a jogar. Então, vou
escrever, clique neste alfinete. Vamos promover
isso para uma variável. Vou simplesmente encurtar o
nome para Player Controller. E isso bastará
para esse roteiro. Então, clique com o botão esquerdo e arraste, toque na tecla C e eu
chamarei isso de meu script F to Player Controller e
pintei esse preto como eu faço. Agora, meu motivo para adicionar essa referência ao controlador do Player é porque
vamos querer chamar nossos pontos de anúncio de evento personalizado dentro do nosso controlador
do Player daqui a pouco Mas antes de tudo, vamos nos
preocupar em criar nossa interação, nosso script de parada de interação. Então, para isso, vamos
voltar ao nosso Viewpoort que
possamos ver com o que
diabos estamos lidando aqui Criamos este colisor de caixas
Stomp. era assim que o chamávamos, está bem no topo da cabeça de nossos goombas E nós a chamamos de caixa Stomp. É uma colisão de caixas
que acabamos de esmagar. Vamos
clicar com o botão direito do mouse nesse componente
e, em seguida,
adicionar um evento para quando atingirmos esse componente. Ao fazer
isso, ele
nos levará ao nosso gráfico de eventos. E vou
reduzir isso um pouco. E o que queremos fazer é
usar nosso outro distintivo de ator, ter certeza de que é nosso personagem jogador que
está pisando Então, podemos fazer iguais
e, em seguida, podemos sair
desse personagem de obtenção de
jogador Como alternativa, você também
pode fazer um elenco para seu
personagem em terceira pessoa aqui. Para fazer uma verificação, vou tirar isso e
trazer um nó de ramificação. Vou conectar a
condição automaticamente. Mas, na verdade, há
duas condições que vamos
querer verificar aqui. Verificar se foi
o personagem do jogador que pisou é uma delas Mas a outra coisa
que queremos fazer é descobrir em que direção estamos
atingindo essa caixa de pressão Só queremos
continuar avançando se estivermos caindo até o
topo de nossa caixa de parada aqui Para isso, podemos quebrar
nosso hit aqui, arrastar para fora do resultado do
break hit. Vamos expandir
isso para baixo dessa forma. Vamos sair do
nosso normal de impacto aqui mesmo. E então vamos trazer
um nó de igualdade para
nossa tolerância Você
pode definir isso como algo pequeno, como 0,1. Isso é
essencialmente quanto perdão você quer ter em termos de quão
direta é nossa
queda no Z Para o nosso Z, queremos
verificar se estamos
caindo em cima dele em vez de
bater nele pela parte Para isso, vamos adicionar
um valor de menos um. Um valor de menos um
vai verificar se
estamos caindo baixo no eixo z,
descendo para baixo em cima dele E isso é só dar um
pouco de perdão. Então, essa é uma segunda condição
que
queremos verificar porque temos duas condições que
queremos verificar. Vou clicar com o botão direito e
trazer um e Bullull. Lá vamos nós. E ouro, se nosso jogador for a primeira coisa que
queremos verificar e
verificar se estamos
caindo um top É a segunda coisa que
quero verificar, se ambas forem verdadeiras, essa será nossa condição
final. Vamos verificar se
isso e aquilo são verdadeiros. O que queremos fazer é inserir um nó de sequência, manter pressionada a tecla S
e clicar com o botão esquerdo. Isso lhe dará um nó de sequência. E então vou
adicionar outro alfinete para que
possamos organizar
nossos próximos scripts aqui. Bonito e arrumado, mas
essa será
a parte inicial aqui.
Ok, do nosso então pino zero, temos várias coisas
que vamos fazer Então, vou dar uma
olhada aqui um pouco. A primeira coisa que
vou fazer é sair daqui e digitar play. Som Vamos tocar um som em dois D, e o som que eu quero
tocar será Swish Ok, a segunda
coisa que eu quero fazer é pegar nosso componente do
colisor Então, vou arrastar
isso para o nosso gráfico. Agora, se você não tem certeza de qual
é
o componente do colisor aqui em nossa janela de exibição, é aquela coisa que
está danificando no momento Jogador. Estamos verificando se nosso jogador
se depara com isso. E, na verdade,
se estende um pouco além da lateral de
nossa caixa de pressão aqui Conforme projetado, o que queremos fazer é
sair do nosso colisor Queremos ativar a
colisão. Vai trazer outra cópia do nosso colisor aqui Você pode excluir um deles. O que queremos fazer é mudar isso para
que não haja colisão, não
queremos mais ser capazes de
colidir contra A próxima coisa que queremos
fazer é trazer
nosso componente de caixa de parada.
Vamos arrastar isso para dentro. Vamos destruir esse componente. Depois de
pararmos em nosso gumbo aqui, vamos em frente e
destruamos toda aquela caixa de parada Não precisamos mais disso.
A próxima coisa que vamos fazer é trazer
nosso flipbook de papel, arrastar aquele cara para dentro e
vamos definir a escala mundial desse
conjunto em escala mundial três D, essencialmente vamos
esmagar isso Então, eu tenho alguns valores
rígidos que vou inserir aqui Vou definir isso como 0,25 por
0,25 por 0,1 Agora, podemos ajustar isso em
algum momento no futuro, mas vamos tentar
isso como nosso Agora, além de apertar
nosso flip-book, também
queremos movê-lo para
baixo na Porque se simplesmente
o esmagássemos,
ele o esmagaria dos limites superior e
inferior E pareceria que estava flutuando no espaço,
o que eu não quero. Vamos retirar nosso flip-book
de papel aqui e
adicionar compensação mundial E vamos
movê-lo um
pouco para baixo no eixo z, o quanto eu vou fazer com
um valor Z de menos 35. Novamente, podemos ajustar isso,
mas vamos começar com isso. Então, a última coisa
que eu quero fazer é desativar o movimento
desse goomba Agora, agora, nossas
gumbas não estão se movendo, mas faremos nossas gumbas se movam aqui em
pouco tempo E quero garantir que,
uma vez que paremos nela, ela não possa mais se mover,
mesmo
que nossas gumbas
não se movam agora Vamos
fazer com que
garanta que eles
parem de se mover
assim
que pararmos parem de se mover
assim
que pararmos arrastar o componente de movimento do nosso
personagem.
Você pode encontrar essa função para
desativar o movimento, Você pode encontrar essa função para desativar o movimento Então essa é a primeira parte do script que queremos fazer aqui. Vou
arrastar tudo isso. Clique com o botão esquerdo, toque na tecla. Então, eu vou dizer que do nosso pino zero, este será o nosso ME ha ha squish X. Vou colorir
esse preto imediatamente A próxima coisa que eu
gostaria de fazer é
entrar na primeira parte
da nossa sequência aqui. Deixe-me aumentar o zoom mantendo
pressionado o controle e usando
a roda de rolagem. Vou clicar com o botão direito do mouse. Vamos contratar um ator. É
aqui que vamos fazer alguns pontos trabalharem aqui. Vamos
usar nossa
transformação de ator porque vamos botão
direito do mouse e
gerar o ator da classe Vamos precisar de nossa transformação de ator,
nossa transformação de gumbos, para contar nossos pontos,
nossos pontos de BP para surgirem Você se lembra disso de antes, nossos pontos BP agora mais uma vez
em nosso plano de pontos P. Eu só vou navegar
até ele navegando até ele. Aqui está, em nosso navegador de
conteúdo, BP points, fizemos com que esses
pontos de adição de variáveis que vivem aqui sejam
expostos no spawn Isso faz com
que aqui em nosso BP, quando estivermos
gerando isso,
esse valor em pontos seja
exposto Para que possamos
personalizá-lo onde quisermos aqui. Dentro do nosso Goomba,
queremos adicionar 200 pontos. Então, vamos arrastar e soltar nossa
variável até nossa soma de pontos. Vamos apenas ajustar isso dessa forma. Então, isso vai gerar
essa tela no jogo. Essa é apenas a parte
de exibição. Agora precisamos realmente adicionar os pontos ao nosso controlador de
jogador. Então, para isso, temos nossa referência de controlador de
player. Arraste isso para dentro, nós
vamos pegar isso. Em seguida, vamos
sair disso e digitar pontos de adição. Mais uma vez, temos
esse evento personalizado dentro do nosso
controlador de jogador chamado Add Points. E aqui também
podemos inserir quantos pontos
você deseja adicionar? Bem, temos uma variável para a
qual você pode arrastar para fora dela e conectá-la dessa forma para que seja totalmente válida. No entanto,
vou adicionar
um novo apenas para fins
organizacionais. Então, agora, mais
uma vez, uma vez que
pisamos em nosso Goomba aqui e verificamos
que isso é verdade, nosso personagem está
pisando nele e nós estamos pisando em Vamos
adicionar esses pontos. E se eu
clicar duas vezes aqui, essa chamada dos pontos de adição, isso nos
levará do nosso BP Goomba para onde esse evento personalizado
realmente acontece dentro do
nosso controlador de jogador BP Então é aqui que
a adição real de pontos vai acontecer. E lembre-se,
mais uma vez, em nosso Hud, nosso Hud está vinculado a essa variável de
pontos aqui, dentro de nossos controladores de
jogador Então, isso
também será atualizado aqui em Argumba. Vou clicar com o botão esquerdo
e arrastar ao redor deles. Vou tocar na
tecla C e vou chamar isso meu script Adicionar pontos do programa e pintá-lo de preto como minha alma. Tudo bem, mais um
script aqui para adicionar. Vamos mover nosso nó
de sequência um pouco mais para baixo. Mantenha pressionada a
tecla de controle e aumente o zoom. Neste último trecho do roteiro, vamos destruir
Argumba em uma chama de glória Então, vamos
sair daqui, vamos trazer um
nó de atraso. E vamos atrasar
por meio segundo, 0,5 vai ser bom. Em seguida, clicaremos com o
botão direito do mouse e digitaremos Interact. Agora eu tenho essa função
que criamos em nossa biblioteca de plantas no
início do curso Foi criado para
bloquear interações, mas também podemos usá-lo aqui dentro do nosso Goomba. Vamos trazer
isso para cá. Ele está pedindo que incluamos um efeito sonoro em
alguns efeitos visuais, bem
como um
local de efeito visual para nosso efeito sonoro. Vamos codificar
isso como uma explosão. Vou usar a bomba de explosão. Vamos também codificar um efeito
de partícula, vou digitar Flame
Explode Esse também existe no pacote de efeitos Infinity
Blade Agora, para a localização do nosso efeito V, vou escolher a localização do nosso colisor aqui E então eu vou fazer
isso digamos, obter a localização mundial. Vamos usar a localização
do nosso colisor aqui como um local onde
vamos gerar esses efeitos visuais Então, quando tudo isso estiver pronto, vou sair
disso e digitar destroy actor dessa forma. Clique com o botão esquerdo, arraste, toque na
tecla que eu deveria fazer para destruir. Então vamos lá, colorindo esse preto também. Agora, isso vai
ficar muito bom aqui, então vamos diminuir o zoom um pouco. Seu roteiro final será
mais ou menos assim. Vamos
compilar e salvar. E agora vamos realmente
verificar se, ao jogar nosso jogo, podemos pisar
em nossa gumba. Aqui vamos nós. Tudo bem, obviamente o gumba não
está móvel no momento, mas pisando nele, algumas centenas parecem que Guba
foi esmagado. Guba morreu. Tudo parecia estar
funcionando como pretendido lá. Além disso, eu
também quero ter certeza de que, se batermos na lateral dela, colidiremos e
morreremos com
ela primeiro, antes de atingir
a caixa de detonação. Se nos aproximarmos
pela lateral, sim. Deveria morrer desse jeito. Mas se eu voltar e jogar, eu deveria ser capaz de
parar com ele mais uma vez. Veja como ele é
esmagado lá embaixo, e ele vive por meio segundo
antes de ser totalmente Então, podemos apreciar
o efeito de esmagamento. Excelente. Agora, se você quiser ver esses
scripts mais uma vez, destacarei cada parte aqui se
quiser pausar o vídeo Este é um nó igual que
é um nó negativo fora do pino zero, sem
colisão para
o colisor Estamos usando esse colisor para gerar
efeitos de partículas Este é o nosso efeito sonoro suave. 0,25 0,25 0,1 negativo 35. E o Z para o
show de compensação mundial adiciona pontos gerados
em nossos pontos de Criamos nossa
variável de pontos para inserir uma quantidade Z de pontos para adicionar
que atualmente está definida como 200. E, finalmente, estamos
jogando nossos efeitos de destruição. Depois de meio segundo,
temos meio segundo lá. Estamos usando a localização
do nosso colisor
para gerar um efeito de partícula, um efeito sonoro e, em seguida,
destruindo Tudo bem, pessoal, isso vai valer
a pena dessa vez. Nos vemos na próxima.
60. Destrua Goomba através do Fireball: Bem-vindo. Agora que podemos destruir nosso goomba pisando nele, vamos fazer com
que possamos destruir
nosso goomba atirando bolas de fogo nele nosso goomba atirando Então, vou
selecionar meu gumba
aqui mesmo no meu controle Viewport Além disso, E é uma tecla de atalho para
abri-lo imediatamente. E vou pular para minha guia Viewport e selecionar
meu componente de colisão. E deixe-me falar sobre isso. Você também pode tocar na tecla para se concentrar nela depois
de selecioná-la. Vamos dar uma olhada, mais uma
vez, como lembrete, com nosso colisor selecionado
no painel de componentes, como configuramos a colisão no painel de
detalhes,
configuramos para no painel de
detalhes,
configuramos que esse
colisor bloqueie Novamente, nosso projeto de bola de fogo é rotulado como um tipo de objeto de bola de
fogo Agora fizemos isso intencionalmente
para que pudéssemos detectar impactos quando bolas de fogo
atingissem esse Então, o que vamos fazer é botão
direito do mouse em nosso componente do
colisor Vamos adicionar um evento para quando outro
componente atingir isso. Vamos ser saltados da
nossa janela de visualização para
o gráfico de eventos Vou clicar com o botão direito do mouse
e dar uma panorâmica aqui embaixo. Aqui está nosso componente On,
bata no colisor. E o que queremos verificar
é se o outro ator que acerta isso é nossa bola de fogo da BP,
vamos lançar
uma bola de fogo da BP,
não uma bola de fogo com barra de fogo Então, tenha cuidado com isso. Então, o que queremos fazer é depois essa bola de fogo atingir aquele barulho, queremos destruir
a própria Vou tirar
minha bola de fogo da BP e dizer
destrua o ator que
destruirá a bola destrua o ator que
destruirá a E então vamos
trazer uma nota de sequência. Então, vou manter
pressionado o botão esquerdo do SK. E vamos
fazer várias coisas fora do nosso nó de sequência. A primeira coisa que quero
fazer é somar pontos, como se fôssemos
parar com isso. Então, eu vou trapacear
e vir aqui e pegar todo o nosso
programa, adicionar pontos Vou clicar com o botão esquerdo
e arrastar tudo isso. Pressione o controle C, eu
vou copiar isso. Em seguida, vou usar o botão direito do mouse para
voltar aqui, clicando com o botão
esquerdo do mouse aqui. E então controle V
para colar tudo isso. Coloque meu nó
de sequência lá também. Então, isso vai ser um
pequeno atalho. Nada mais a mudar
com esse script, embora eu
vá apenas alterar o comentário para ter
um zero na frente. Então essa é a primeira
coisa que queremos fazer, é mostrar e somar pontos. Vou
clicar duas vezes nesse fio
para inserir o nó de redirecionamento E então a segunda
coisa que eu quero fazer, e mais uma vez podemos roubar
alguns códigos do topo, são meus efeitos de play destroy Eu quero a maior parte disso, embora eu não queira
fazer esse atraso aqui. Então, vou selecionar tudo isso, vou fazer o controle C, depois vou
clicar com o botão esquerdo aqui. E então controle V em 3 passos. Também vou me
livrar desse atraso, porque quero que a bola de fogo a
destrua imediatamente E eu vou mudar essa caixa de
comentários também. Em nossa localização de colisores, vamos jogar
aquela explosão Essa partícula de explosão da chama. E então vamos destruir o próprio ator, ou
seja, Argumba Com tudo isso pronto, vou continuar compilando
e salvando E vamos entrar e
jogar. Aqui vamos nós. Vou coletar
minhas flores de fogo. Tudo bem, e depois
atirar uma bola de fogo. E espero que, bem,
tenhamos que bater nele primeiro. O boom se
incendeia imediatamente. Então, isso está funcionando conforme o esperado. Excelente. Agora
fizemos com que possamos atirar em nosso Umba e
destruí-lo mais uma vez. Essa é a
parte inicial do nosso roteiro. Estamos lançando para a bola de fogo. Destruindo a bola de fogo. E depois fora do
nosso nó de sequência. Aqui estamos mostrando e
adicionando alguns pontos. Mais uma vez, essa função de adição de
pontos. Isso chama esse evento personalizado no próprio controlador do player. E então vamos
reproduzir esses efeitos de destruição. Nós nos livramos desse nó
de atraso do trecho
do script Stomp acima Tudo bem, pessoal, isso vai
fazer tudo por esse. Nos vemos na próxima.
61. Goomba Patroller (Parte #1): Tudo bem, agora
conseguimos
que nosso Goomba possa causar danos a nós, ao jogador, e possamos
destruir
o Agora vamos fazer nosso Goomba girar em torno
de nosso nível. E vamos
começar dando a ele um comportamento básico de patrulha. E isso vai nos
envolver mais uma vez, mergulhando em nosso projeto de
Goomba Então você pode selecioná-lo
e outro meio de abri-lo está aqui em nosso
esboço com ele selecionado, vá para editar BP Gumba,
vamos
começar criando
algumas variáveis no painel M
blueprint Então, na seção de variáveis, clique neste botão de adição. Este primeiro,
vou chamar velocidade. Vamos
mudar isso para um flutuador,
e isso será usado para
determinar a velocidade com que
queremos que nosso Goomba A segunda variável que eu
quero criar aqui será chamada
de flip book. Multiplicador da taxa de jogo. Agora, dependendo da velocidade com que nosso Goomba se
moverá, talvez
queiramos ajustar a velocidade com que
nosso flip book Então, vamos configurar um
script para que possamos basicamente
ler a velocidade
do nosso Goomba e
ajustar a taxa de reprodução do nosso flip-book para que
nosso Goomba aqui possa
parar os pés mais rápido ou mais devagar parar os pés mais rápido ou mais devagar E então eu vou adicionar mais
uma variável aqui. Isso será
chamado de mover para a esquerda. Isso vai ser um lingote. Será
usado para determinar
se queremos que nosso Guba se
mova originalmente para a esquerda quando
começarem a patrulhar aqui se queremos que nosso Guba se
mova originalmente para a esquerda quando
começarem a patrulhar Agora, vou compilar para que eu
possa definir algum valor padrão,
alguns valores padrão Na verdade, há
algumas outras caixas de seleção que eu também vou
querer marcar. Vamos começar com nossa velocidade. Vou definir isso para
um valor padrão de 200
e também vou marcar
essa caixa, e também vou marcar por exemplo, editável Quando eu verificar isso,
você também
verá esse ícone de bola, vá lá. Eles fazem a mesma coisa, basicamente tornando essa instância
variável editável O que isso significa é que
depois de compilar, aqui no seu editor de níveis, você selecionou um Goomba Agora você pode ver essa propriedade
no editor de níveis. Em nosso padrão, se eu apenas pesquisar por padrão,
eu o encontrarei. OK. Há uma velocidade padrão. Deixe-me sair de lá. Tudo bem, voltando ao nosso projeto Gumbo,
nosso multiplicador de taxa de jogo
em flip book. Na verdade, vamos
calcular qual deve ser esse
valor. Então, tudo bem que
eu deixe isso como um valor zero por enquanto,
porque por meio de algum script, vamos
, por padrão, ter um valor aqui. E então nosso movimento
deixou o booleano aqui. Eu vou dizer que sim,
queremos mover para a esquerda por padrão. Então, vamos
verificar isso. E vamos tornar essa
instância editável também para que essa propriedade
também seja exposta no editor Vá em frente, compile e salve. Em seguida, vamos pular para nossa guia de script de
construção. Agora, o script de construção
é onde você pode configurar algum script que
deseja executar durante o tempo de design. Isso é útil para definir
alguns parâmetros que você pode querer ter em seu plano antes que o
jogo realmente comece a ser executado E vamos
usá-lo para esse propósito. A primeira coisa que vou
fazer é trazer componente
de
movimento do nosso personagem. Agora, nosso componente de
movimento de personagem determina muitas coisas
sobre como nosso personagem se move, incluindo uma propriedade muito
importante aqui chamada Max Walk Speed. Esse cara aqui dentro do componente de
movimento do personagem chamado Max Walk Speed determina a rapidez sua
classe de personagem pode se mover. Agora, eu quero essencialmente
ignorar isso. E a maneira de contornar isso
é arrastando o componente de
movimento do nosso personagem Depois de obtermos nosso componente, podemos conversar e editar qualquer uma dessas
propriedades diferentes em nosso painel de detalhes. Então, vou
sair daqui e digitar as velocidades máximas de caminhada definidas. Então, vamos lá. Arraste para fora daqui. Defina a velocidade máxima de caminhada. E você notará que
nossa velocidade máxima de caminhada é um valor flutuante
e, basicamente, substituiremos
nossa velocidade máxima de caminhada padrão
pela nossa variável de velocidade
aqui nossa velocidade máxima de caminhada padrão
pela nossa variável de velocidade Então, essencialmente, aqui durante o tempo de
design, vamos dizer:
Ei, eu sei que você tem essa velocidade de caminhada
padrão de 600. Mas, sim, antes
mesmo de o jogo rodar, vamos anular isso Vamos alterar
sua velocidade para ser o que estiver contido nessa variável
flutuante. Tudo bem. Mais uma vez, mencionei antes que
usaremos esse multiplicador de taxa de
jogo do flip book aqui
neste script de construção e
calcularemos automaticamente Agora, a maneira de
fazer isso é sair da nossa velocidade
máxima de caminhada dividir e dividir e
dividir por 100. 100? Bem, é porque é um valor que eu
determinei com antecedência, funcionou muito bem E vamos pegar
o resultado disso e fixá-lo Vamos fixar o flutuador. Vamos garantir
que esse valor gerado por meio dessa matemática
sempre fique entre 0,1 e
no máximo três. E isso, vamos conectar ao nosso multiplicador
de taxa de
reprodução do flip book Arraste e solte isso
em seu gráfico. Queremos definir isso. Então é aqui
que vamos configurar nosso multiplicador de taxa de
jogo do flip book Eu mencionei que
não ficaria no valor zero. Então, o resultado dessa matemática, vamos inseri-lo como nosso multiplicador de taxa de jogo do
flip book Então, se
pegarmos esse valor, nosso valor de velocidade de 200
e dividi-lo por 100, isso seria igual a isso,
estaria dentro dessa faixa. E esse seria nosso multiplicador de taxa de jogo do flip
book.
62. Goomba Patroller (Parte #2): Então, agora calculamos nosso multiplicador de
taxa de jogo do flip book, mas ainda não
o estamos usando e,
para isso , precisamos
pular para o gráfico Agora, aqui dentro do
nosso enxerto de eventos, vamos adicionar
um script para detectar quando nosso jogador está dentro do alcance Só faremos com que
nosso jogador comece a patrulhar quando estiver ao alcance Agora, deixe-me ir para
nossa janela de exibição aqui. Vou voltar
aqui um pouco e
tenho um raio gigante
ao redor do meu Guba Eu chamo isso de nosso alcance de detecção de
jogadores. Então é isso que
vamos usar para detectar se o
personagem do jogador está dentro do alcance. Se eles estiverem ao alcance, então vamos fazer
esse cara se mover. Então, vamos clicar com o
botão direito do mouse em nosso alcance de
detecção do player. Vamos adicionar um evento para quando começarmos a sobrepor isso Isso nos levará ao
nosso gráfico de eventos, o que é ótimo. E enquanto estamos
aqui, vamos
acabar com a sobreposição
imediatamente. Clique com o botão direito no alcance de detecção
do player. Vamos adicionar um
evento para finalizar a sobreposição. Para isso, vamos
detectar se é nosso jogador que
está
fazendo a sobreposição
ou encerrando a sobreposição Então eu posso clicar com o botão direito, eu vou pegar o personagem
do jogador. Se nosso outro ator for igual
ao personagem do jogador, você também pode, alternativamente escalar dois personagens em terceira
pessoa aqui. Este é apenas o método
que estou usando para verificar se é nosso personagem
jogável Vou duplicar
esse controle D para
duplicar esse outro ato Então, vou trazer duas notas de
ramificação mantendo pressionada a tecla B, botão
esquerdo, clique com o botão esquerdo, tipo. Então, vamos dizer que, se é
verdade que o
personagem do nosso jogador está sobreposto, esse jogador detecta Vamos conectar isso
essencialmente a um nó de porta. Para abrir o portão, basicamente
verificaremos em cada quadro se nosso jogador está ou não
dentro desse alcance. Para isso, precisaremos
de um carrapato. Se eu escrever Click em
algum espaço vazio, vou trazer um evento de
tick-node Tick, dispara
cada quadro. E então vou
escrever, clique em algum espaço vazio e insira um
nó de portão. Na verdade, se você
segurar a tecla G e clicar com o botão esquerdo, também abrirá
um nó de portão. cada moldura que vamos
entrar em nosso portão, você pode pensar nesse portão
como um verdadeiro portão de ferro. E você
vai fazer uma pausa aqui
neste portão até que o portão
seja instruído a ser aberto Agora vamos abrir
esse portão e, assim, avançar além desse ponto somente se nosso jogador estiver
sobrepondo o alcance de detecção do jogador No entanto,
fecharemos esse portão se nosso jogador acabar
sobrepondo esse alcance Você está vendo como isso
vai funcionar. Em cada quadro, estamos
essencialmente no portão. No entanto, não vamos avançar
além daqui, menos que nossos jogadores se sobreponham a
esse alcance de detecção E vamos
avançar além desse portão. Se tivermos sobreposto
esse alcance de detecção, fecharemos esse O que significa
que não avançaremos além daqui se acabarmos
sobrepondo esse intervalo Então, o que queremos fazer se estivermos indo além
do portão aqui? Bem, queremos
clicar com o botão direito do mouse e adicionar entradas de movimento Esse nó que
tem como alvo nosso peão, que é um personagem, pode mover automaticamente
nosso personagem Agora, em que direção
queremos movê-los? Bem, vamos
escolher uma direção para
mover nosso Guba aqui, para a esquerda ou para a direita, dependendo desse
lingote Agora, vamos retirar
nosso ouro de movimento para a esquerda e inserir um nó de seleção aqui Dependendo do nosso valor de
retorno aqui. Vamos recuar na direção
do nosso mundo aqui. Este é um vetor x, y e z. Seremos
capazes de indicar qual é
nosso valor de retorno aqui
com base em nosso ouro Se isso for verdade, vamos definir nosso
valor x como menos um. Essencialmente, isso
vai se mover para esquerda nessa direção
no editor de níveis. No entanto, se mover para a esquerda, se esse booleano for falso, exibiremos isso como
nossa direção mundial, definindo o valor x como um Você está vendo como
isso funciona aqui, dependendo do valor
desse booleano Se for verdade, vamos
produzir esse conjunto de valores como nossa direção mundial
para mover nosso Goomba Se isso for falso,
escolheremos
esse conjunto de parâmetros
como nossa direção mundial. Um pouco mais para ir aqui, só
precisamos agora. Traga nosso
flipbook, taxa de jogo, multiplicador, arraste
e solte Nós vamos conseguir
isso. E também nosso próprio
componente de flip book em papel Vamos arrastar nosso flipbook de
papel. Agora vamos
tirar nosso flipbook e dizer definir a taxa de jogo Qual é a taxa em que
queremos nosso flip-book de papel? Isso é apenas para o aspecto
visual em si. Bem, queremos jogar nesse
ritmo aqui. Novamente, tudo isso é
calculado automaticamente aqui em nosso script
de construção. Se
aumentássemos a velocidade do nosso Goomba para 300,
seria 300/100, o que
seria Nosso
multiplicador de taxa de flip play seria aumentado para refletir nosso aumento Esse será o
nosso roteiro aqui para mover o Guba em
uma determinada direção Vou clicar com o botão esquerdo e arrastar e tocar na tecla C. E vou chamar isso de minha Bomba. Em uma determinada direção somente se o jogador estiver ao alcance, eu vou colorir isso de preto. Está tudo bem. Agora vou compilar aqui apenas para
ter certeza de que nosso script está bom E é isso, vou
clicar em Salvar. Agora, se você ver minha
configuração aqui no nível, eu apenas reviso as coisas
um pouco entre os vídeos para encurtar a
duração desse Eu coloquei meu jogador
como ator inicial bem à esquerda aqui. Acabei de aumentar um pouco
meu nível e os coloquei
fora do alcance. Aqui é Guba. O
alcance de detecção do Goomba está aqui. Agora vamos dar uma olhada
no painel de detalhes. Se eu digitar por padrão
na área de pesquisa, agora vou rolar para baixo. E aqui na parte inferior, você pode ver que tenho meu valor de
velocidade definido como
200 e meu movimento para a esquerda está marcado. Quando meu jogador estiver
sobrepondo esse raio, ele deve começar a se mover para a esquerda Agora, ainda haverá
um problema com isso, mas vamos começar
, jogar e testar. Tudo bem, no meu nível eu
vou sobrepor essa faixa, aí vem o Sr. Agora, o problema que
você vai notar aqui é que ele não tem
como voltar atrás. Ele vai continuar se movendo para a esquerda até
cair do penhasco Existe alguma maneira de fazer com
que ele se mova corretamente? Bem, na verdade, existe. Vamos voltar ao nosso projeto
de goomba. E a maneira como
vamos fazer isso é detectar se nosso
goomba atinge E se eles atingirem algo
enquanto se movem para a esquerda, vamos simplesmente
atirar
na outra direção,
alternando esse movimento para a esquerda Para isso, vamos
rolar um pouco até aqui em nosso
gráfico de eventos. E vamos pegar nosso componente
de cápsula aqui no topo. Deixe-me pular para o
meu ponto de vista para que você possa ver onde está nosso componente da
cápsula Vou
clicar com o botão direito do mouse aqui e tocar
na tecla para pular até ela. Então, vamos usar
esse componente aqui, vamos detectar
um impacto naquele cara. Curiosidade, além de clicar
com o botão direito do mouse e adicionar um evento usando o menu do botão direito com
um componente selecionado. Você também pode arrastar para baixo
no painel de detalhes dessa forma. E você pode encontrar uma
lista de eventos aqui. Vou encontrar um
componente, clique aqui,
clique neste botão de adição e
eu vou direto para cá. Então, o que vou fazer
é divulgar meu sucesso aqui. Mantendo pressionado o controle, aumentando o
zoom, arrastando. Vamos quebrar nosso
resultado de sucesso. Expanda isso. Vamos usar nosso normal de
impacto aqui. Arraste esse tipo
no sinal de igual. Vamos adicionar um
pouco de tolerância aqui. Vamos fazer 0,1
E vamos dizer que, se impactarmos algo
nessa direção, definirei
nosso valor x 1,0. Em seguida, vamos retirá-lo e conectá-lo
a um nó de ramificação. Mas também quero ter
certeza de que façamos isso uma vez para que isso não
registre vários acertos. Vou manter pressionada a tecla e clicar com
o botão esquerdo. E vamos dizer que se nosso Goomba aqui
bater em alguma coisa, enquanto vamos alternar ou mover
para a esquerda uma vez, vamos arrastar isso para dentro,
vamos configurá-lo Na verdade, vou trazer
uma cópia disso
imediatamente , porque nossa configuração ficará assim Eu também vou trazer um nó de
flip-flop aqui. Chinelo. E nós vamos fazer isso, vamos fazer isso. E eu vou traduzir isso para todos vocês aqui em
pouco tempo. Certifique-se de que, com este movimento inferior, setter
esquerdo, marque esta caixa Deixe este na parte
superior, desmarcado. Depois disso, vamos
trazer um nó de atraso. Então, vou manter
pressionada a tecla e clicar com o botão
esquerdo, gerando um atraso. Vamos conectar
os dois aqui. Vou ter um atraso
de, digamos, meio segundo. Vamos dizer que
depois de meio segundo vamos
reiniciar isso uma vez. E eu odeio esses fios
cruzados, então vou
clicar duas vezes sobre isso algumas vezes para trazer isso de volta Vamos subir e recomeçar desse jeito. Este será essencialmente nosso roteiro para alternar
nosso movimento para a esquerda Esqueci uma coisa aqui fora do
nosso impacto normal Vou cortar
esse fio segurando a tecla Alt e clicando com
o botão esquerdo Eu quero obter o valor
absoluto aqui. Arraste para fora do impacto normal, vamos digitar o
vetor, obter Abs. Vamos pegar a
saída disso e conectá-la na parte superior,
assim, não importa em que
direção estejamos indo, esquerda ou para a direita,
obteremos o valor absoluto
desse impacto normal. Vamos dizer, ei,
isso é igual ao valor x de um? Se isso for verdade na primeira vez, vamos verificar o movimento para
a esquerda na segunda vez e depois vamos atrasar
por meio segundo. Vamos reiniciar isso.
Em seguida, eles batem novamente. Vamos ligá-lo novamente. Aperte outra coisa novamente.
Nós vamos desligá-lo. Bata em algo novamente,
ligue-o novamente, etc. Vou clicar com o botão esquerdo e
arrastar tudo isso, tocar na tecla C, isso será
chamado de detectar que Goomba atinge alguma coisa e muda de
direção se isso Tudo bem, vamos
colorir isso de preto e depois vamos testar isso. Compile isso e
salve Para testar isso, vou simplesmente
arrastar um bloco Pode ser qualquer bloco aqui, mas vou fazer um
bloco quebrável Vou tocar nessa tecla
para colocá-la no chão. E, na verdade, vou movê-lo um pouco para
cima para que não fique grudado
no chão. Lá vamos nós. Tudo bem. Entrando
e brincando No momento, não estou
na faixa de detecção. Está se movendo para a esquerda. Ele
vai atingir aquele quarteirão, ele vai atirar
nele agora mesmo. Vamos ver se isso realmente
moverá nosso Guba de volta para
o outro lado Vou mover meu Guba um
pouco mais dessa maneira. Me afaste um
pouco do caminho, e eu vou trazer
um segundo ali mesmo. Aqui vamos nós. Na área de
dissecação, goma atinge um bloco, vai na outra direção, atinge um bloco, vai na Então essa vai ser
uma patrulha muito simples. E, mais uma vez, podemos
personalizar nosso Gumba aqui determinando qual será sua direção padrão Eu selecionei meu Gumba, apenas digitei o padrão aqui para
ver meus parâmetros expostos Vou mudar a
velocidade desta vez para 300. E eu vou dizer que desta vez eu
não quero que eles se movam para a esquerda, então uma vez que eu sobreponha essa faixa, ele vai realmente
começar a se mover para a direita Então, vamos começar a
jogar rapidamente.
Começamos a andar para a direita. Como você pode ver,
ele está se movendo mais rápido, seu flip book está se movendo mais rápido Portanto, temos gumbas altamente
personalizáveis, você pode alterar esses
valores para qualquer instância Tudo bem, pessoal,
isso vai fazer
tudo para o nosso patrulheiro Gumba Nos vemos a todos
no próximo vídeo.
63. Goomba Seeker: Bem vindo de volta. Bem, temos um goomba que pode
patrulhar em Vamos criar uma versão um pouco
mais agressiva, que possa
buscar nosso jogador. Para fazer isso,
vamos mergulhar de volta no nosso BP Goomba Vá em frente e
clique duas vezes nele. Vamos
começar criando outra variável na
seção de Clicando nesse botão de adição, vou criar uma
que seja o Seeker Enemy Vou compilar imediatamente e tornar essa
instância editável, que
significa que posso ajustá-la quando tivermos nosso
Goomba E também vou
dizer que, por padrão, não é
um inimigo secreto. Nós o teremos como
patrulheiro por padrão. Mas se quisermos transformar isso
em um inimigo secreto, podemos fazer isso com essa variável
booleana agora criada Podemos usar nosso
script existente aqui. E vamos adicionar
um script
aqui para avaliar essa variável. Então, vou manter
pressionado o controle e
clicar com o botão esquerdo e arrastar
isso para aqui. E então eu vou
sair daqui e conectar isso a
um nó de ramificação. E vamos
ajustar nosso fluxo para fora desse portão para
que, em vez de mover
automaticamente nosso jogador alguma
forma de patrulha para a
esquerda ou para a direita, avaliemos se esse
é um inimigo caçador Agora, se é falso que
esse não seja um inimigo caçador, simplesmente
faremos o movimento de patrulhamento No entanto, se for verdade, o que vamos fazer é botão direito do mouse
em algum espaço vazio. Vamos pegar o controlador, o peão, pegar o controlador Também vamos clicar com o botão
direito do mouse e tirar o personagem do
jogador do
nosso controle aqui. Vou arrastar e
digitar um movimento simples para ator. Quem queremos
controlar aqui? O controlador do
nosso Goomba aqui, esse será o
nosso controlador e o objetivo é o personagem do nosso
jogador Agora, em vez de
mergulhar em algumas árvores de comportamento, que é a maneira certa fazer com que os inimigos
se movam pelo seu nível, esse é um
meio muito simples de ter IA muito simples, se você quiser. Diremos que, se for
um inimigo secreto, simplesmente
moveremos
nosso goomba até aqui para
atingir nosso jogador Esse vai ser o
objetivo. Isso é bastante simples. Outra coisa que queremos
fazer aqui é ficar sob a classe padrão do nosso gumba O que vamos fazer aqui é expandir isso um pouco. Vamos digitar o controlador e
queremos desmarcar isso,
usar a rotação do controlador ya Se isso for marcado, o que essencialmente
aconteceria é que, se nosso gumba fosse configurado
para ser um buscador, ele se viraria e
tentaria ir atrás Não queremos que nosso goomba
se vire de forma alguma. Queremos que eles fiquem orientados, meio que voltados para a câmera aqui. Então, ao desmarcar isso, basicamente
garantiremos que não
rotacionaremos nosso personagem de forma alguma Agora, se tentássemos começar e testar isso compilando,
salvando e acessando nosso editor de
níveis e dizendo que Argumba aqui é uma nota de
caçador de inimigos, eu estou pesquisando pela minha A propósito, a razão pela qual todas essas variáveis existem por padrão é porque todas essas variáveis que são configuradas para serem editáveis
por instância, deixe-me esclarecer o painel de
detalhes aqui A categoria nela
é chamada de padrão. Vou configurá-lo
para ser um inimigo buscador. Ao fazer isso,
todo esse movimento para a esquerda na verdade
não faz nada,
realmente não importa. Considere isso, avalie bem. O que vamos fazer
agora é testar isso. E assim que meu
jogador se sobrepuser, o Guba começará
a
procurar meu jogador Embora você
perceba um problema, parece
que estou ao alcance, parece
que estou ao alcance mas Gumba não está vindo
atrás de mim. O que está acontecendo? Bem, para fazer essa simples mudança para o nó do
ator funcionar, precisamos adicionar
algo conhecido como malha
de navegação ao nosso nível. Para fazer isso, precisamos voltar
ao nosso editor de níveis aqui e
no painel de atores locais. E se você não tiver o painel de atores de
lugares ativado, você pode obtê-lo vindo aqui, selecionando colocar painel de atores e digitando nav Queremos adicionar
algo conhecido como volume limites
de malha de navegação E o que isso
basicamente faz é especificar uma área do espaço onde você pode ter
inimigos como argumba aqui, onde eles podem navegar Depois de trazer isso
, será bem pequeno. Vou fazer com que isso seja
maior do que precisa ser. E eu posso fazer isso
selecionando-o no painel de detalhes. E eu quero encontrar minhas configurações de
pincel aqui. Onde posso definir o tamanho
desse determinado volume. Eu vou fazer
isso enorme na minha, eu vou fazer isso ser 40.000 algo enorme assim Muito maior do que eu
precisava ser algo para cobrir toda essa faixa de terra Vou definir o valor de y aqui para ser algo muito
maior do que eu precisava ser. Então, vou configurá-lo para ser
algo como 2000. E eu vou definir o
z como algo como 5.000 no caso de eu subir
esse nível verticalmente, algo enorme assim Está essencialmente envolvido em todo o
meu espaço de jogo aqui. Agora, para
realmente ver onde essa
malha de navegação está cobrindo, você pode tocar na
tecla P, como em Paul. E qualquer coisa em verde
aqui é essencialmente identificada como espaço
que pode ser navegado A tecla pode ativar ou desativar
isso. Além disso, se você
clicar na opção Mostrar aqui, poderá ver a navegação
mostrada ou ocultada por essa tecla. Você também pode clicar nele ou desativá-lo
usando esse método. Agora você pode observar algumas
áreas que não são cobertas pela nossa malha de
navegação verde aqui. Como em torno de nossos quarteirões
no chão e até mesmo
ao redor do próprio Goomba, esses designam áreas
onde nosso inimigo,
nosso Guba aqui, Eu quero estreitar um pouco
esse espaço, então eu tenho um pequeno truque aqui dentro
da minha goomba Vamos mergulhar de volta em
nosso goomba aqui. E vou selecionar
quatro componentes diferentes. E vou até minha
janela de visualização aqui só para que você
possa ver quais são esses
componentes Vou selecionar meu componente de
cápsula e, em seguida, vou manter
pressionada a tecla de controle e fazer com que meu player detecte o alcance, meu colisor e minha caixa de parada Todos os quatro, esses são
vários volumes de colisão. Em seguida, no painel de detalhes, vou fazer uma pesquisa para sempre. Tenho essa caixa de seleção
para N ever effect navigation Eu quero desmarcar isso. Agora, se eu salvar isso e
voltar ao meu nível, você pode ver que esse
espaço está apertado embaixo da nossa
gumba Isso fará com
que, quando nossa gumba se mover para frente e para trás, ela não pare na área em que
começou. Tudo bem? Então, com tudo isso,
certifique-se de ter sua gumba selecionada
em seu nível Em seus parâmetros padrão aqui que você
expôs ao editor. Você verificou
que é um buscador. Observe que, quando se trata de um buscador, esse movimento para a esquerda
realmente não importa Eu vou entrar e jogar. Agora, quando meu personagem se
sobrepõe no alcance de detecção, Argumba agora procurará O jogador não parece
muito diferente no momento, mas observe como ele está sendo muito agressivo
na forma como me procura. Mesmo que eu venha até aqui, você também me procurará. Agora você notará que ele está basicamente parando e se movendo em um centavo. E isso porque,
em argumbascript, estamos essencialmente avaliando cada carrapato, seja ele um inimigo secreto ou
não E se for verdade, vamos mudar
para nosso personagem de jogador. Agora, se você não
quiser que seja tão agressivo, o que você pode fazer é
ficar abaixo dos padrões de sua classe Vamos esclarecer nossa
busca pelo Ken para sempre. E você pode ajustar
sua taxa de ticks. Atualmente, isso está funcionando. Isso está disparando cada quadro. Mas você pode definir isso
para ser algo como digamos, 0,25 a cada
quarto de segundo Agora, você tem que ter
cuidado com isso. E eu vou te mostrar um problema
se você seguir esse caminho. Porque agora estamos definindo
nosso intervalo de ticks um quarto de segundo para
todos os nossos goombas Agora, se eu
entrasse em uma jogada, isso poderia fazer com que nosso inimigo buscador se movesse de forma um pouco mais
realista, para que não persiga nosso jogador tão rapidamente
, Há uma pequena
pausa aí. No entanto. O problema com isso é se você vai e
faz seu gumba, não um buscador, e então
você entra e Agora é apenas um patrulheiro
normal, ele não vai
se mover muito bem Ou eu recomendo não ajustar sua taxa de ticks aqui na
classe padrão de sua gumba, ou se você quiser
ter uma Sekumba
que tenha um intervalo de ticks mais
modificado,
talvez meio segundo, talvez a cada segundo,
crie uma duplicata
dessa goumba
dedicada a ser
apenas um buscador e não um apenas Dessa forma, você pode ter uma taxa de ticks mais modificada para isso. Com isso, vá em frente
, compile e salve, e pessoal, isso fará de tudo
para criar uma
versão buscadora do nosso Aqui. Nos vemos a
todos no próximo vídeo.
64. Blueprint de tubos de urdidura: Bem-vindo. Ao longo
dos próximos vídeos, trabalharemos na montagem
de um projeto de tubo de dobra E esse projeto será altamente personalizável, pois poderemos definir
a altura em que queremos
fazer nosso cachimbo, poderemos definir
para onde nos deformamos Seremos
capazes de interagir com o cano que desce por ele. Além disso, também poderemos interagir com esse tubo
subindo por ele. Agora, para começar aqui em nossa versão
de trabalho do projeto, vamos apenas criar o material
verde que
será colocado em nosso tubo, bem como montar o modelo da classe de ator
para o próprio tubo Concluiremos
adicionando os componentes necessários para esse tubo e
definindo os detalhes dele. E isso é o máximo
que vamos chegar neste. Primeiramente, para criar
o material verde, vou começar aqui na pasta
Materials da
minha plataforma de conteúdo. Vou clicar com o botão direito
em algum espaço vazio. Vamos criar
um material totalmente novo. Vou chamar isso de
M, Underscore Green. E então eu
vou clicar na
barra de espaço para abri-lo. Este será um material realmente
básico. O primeiro nó que
vou tentar
adicionar é chamado de nó de três
constantes. Podemos obter um
desses
pressionando a tecla três
e clicando com o botão esquerdo. E isso nos
permitirá conectar-nos ao nosso nó de material mestre
aqui e dar a ele uma cor base. Com esse nó selecionado
no painel de detalhes, você pode definir um valor R, G ,
B, que é vermelho,
verde ou azul. Você pode escolher
este seletor de cores aqui para escolher uma cor No entanto, vou apenas
definir um valor verde de um. Pressione Enter. Agora, essa
é uma cor verde plana, e eu quero que a minha pareça um
pouco mais metálica Temos essa entrada metálica no nó do material mestre
e, se inserirmos um valor 0-1, podemos especificar o quão
metálico queremos que seja Para isso,
adicionarei um nó constante mantendo pressionada uma tecla e clicando com o botão
esquerdo. Posso
adicionar um desses. Vou conectar isso
na entrada metálica. Aqui neste nó, vou
especificar um valor de um. E você pode ver
no pré-visualizador aqui que está um
pouco mais metálico Agora, eu também quero alterar a rugosidade disso
para aumentar esse Mantendo pressionada uma tecla novamente, vou
clicar com o botão esquerdo e
inserir esse valor
na rugosidade E você pode ver que, ao inserir
um valor de zero,
nós o tornamos super, super suave e, portanto, super
brilhante e Eu não quero que seja
tão reflexivo, então vou definir
o valor aqui 0,5 em vez disso, um pouco aproximado Essa vai ser a aparência
do nosso cachimbo ali mesmo. Verde. Um valor de
um em metal, um valor de 0,5 na rugosidade Vamos salvar isso e depois podemos
sair daqui. Em seguida, vou selecionar nossa pasta de esquemas
no navegador de conteúdo E vamos criar
nosso projeto de tubo de guerra simplesmente clicando com o botão direito do mouse em alguma classe de projeto de espaço
vazio Este será um plano de aula de
ator. Vou chamar isso de BP
underscore Warp Pipe. Então, com isso,
clicarei duas vezes nele para abri-lo. Dentro daqui, vou adicionar todos os componentes necessários. E então eu vou
voltar e definir os detalhes de
cada um, para esta parte. Adicionando os componentes, observe a
relação de vinculação, pois isso será importante Vou deixar minha raiz de cena
padrão aqui. Esse é esse ícone aqui. Todos os componentes que
vou adicionar serão anexados a isso. A primeira que vou
adicionar será conhecida como malha estática instanciada,
não a hierárquica, a malha estática não a hierárquica, a instância E eu vou
chamar isso de um corpo. Agora, com isso,
vamos definir uma malha estática que terá
forma cilíndrica E vamos adicionar seções delas por meio
de script. Dependendo de quão alto ou
grosso queremos que nosso cachimbo seja. Mais uma vez, adicionarei
esses detalhes mais tarde. O segundo componente
que eu quero adicionar, eu também quero adicionar à
nossa raiz de cena padrão. Vamos anexá-lo a
isso. Vamos adicionar um. Essa será uma malha estática
simples e
vou chamá-la de topo de tubo. Esta
será a parte superior do nosso cano que
será um pouco mais larga. Agora, com a parte superior do tubo selecionada, vamos anexar
dois componentes a isso. Verifique
se você selecionou isso. A primeira que vamos adicionar aqui
será uma malha estática e eu chamarei
essa tubulação interna. Isso será para a aparência
interna do nosso cachimbo, essencialmente colorindo-o de preto. É para isso que
vai servir. Vamos selecionar
a parte superior do tubo novamente, porque próximo componente também será preso à parte superior
do tubo
e, portanto, recuado Essa mesma profundidade. Isso vai
ser uma colisão de cápsula, aqui na categoria de
colisão, vamos chamar
isso de simplesmente Ok, temos mais dois
componentes que eu quero adicionar aqui. Ambos serão adicionados
à rota de cena padrão. Verifique se você selecionou
essa opção. O primeiro que
vamos adicionar será conhecido como outdoor Isso simplesmente
será um ícone que representará
um ponto no espaço. Então vá em frente e selecione isso. Você verá um ícone de
cabeça de dragão aparecer aqui. Isso será
chamado de nosso Warp in point. E então eu vou adicionar
mais um e ele vai
ficar na mesma profundidade. Selecione sua rota de cena padrão. Vou acrescentar, e
vou digitar na Billboard, esse será
nosso ponto Warp Esses ícones
simplesmente representarão um ponto no espaço
de onde instruiremos nosso personagem a entrar ou sair. Ok, com nossos
componentes prontos, vamos definir
os detalhes de cada um. Vou começar
com o corpo do meu tubo, certifique-se de selecioná-lo. Vou definir a
localização para isso, a localização z como cinco. E vou definir
a escala imediatamente, mesmo antes de definir meu ano de bagunça
estática Na verdade, deixe-me definir
a malha primeiro para que
você possa realmente ver algumas dessas mudanças. No ano da bagunça,
vamos usar um cilindro e vamos
escolher esse cilindro caminho
das formas
básicas do motor Você pode ver na parte superior
dessa dica de ferramenta. Com isso agora implementado, vamos definir a escala. Vou definir
a escala para 2,252 0,25 E, em seguida, vamos definir 0,1
para a Vou verificar esse
botão de bloqueio ou, em vez disso, desbloqueá-lo. Então, quando eu altero
um desses valores, eles não
mudarão todos ao mesmo tempo,
e isso será 0,1, eu também me
expressei mal porque essa
é uma malha estática de instância Não
veremos nenhum deles
adicionado à nossa
janela de visualização imediatamente. Esses caras serão adicionados por meio de nossos scripts de
construção, então você não verá
nada aqui ainda, mas espere por isso
em vídeos futuros. Além disso, o que eu
quero fazer é
mudar nosso material
aqui para ser verde. Porque isso
vai ser verde, vai ser nosso
material aqui. Esse será o
comprimento do nosso tubo, o próprio corpo do tubo. Tudo bem. Com tudo isso feito, vamos nos
mover até o topo do tubo. Vá em frente e selecione
isso para isso. Também vamos adicionar um tipo de
cilindro em cilindro. Mais uma vez, será do pacote
de formas básicas do motor. Vou configurar isso
para ser verde também. Esse mesmo material M, sublinhado em verde porque
é uma malha estática Veremos isso em nossa janela
de exibição na área de escala. Vou definir a escala para
2,75 no x e no y. Deixe-me ampliar um pouco
aqui Na minha janela de visualização, o
z será 0,5 para a localização z. Vou definir isso para 35. Estará
lá em cima um pouco ao lado de nosso cano interno. Vamos prosseguir e selecionar isso. Isso também será um
cilindro para a malha estática. O mesmo do
motor. Formas básicas embalam nosso material aqui, vou configurá-lo
para algo preto. Se você digitar material iluminado em
preto, encontrará um bom
tom de preto liso. Vou definir a localização
para isso no Z 25,5, então vai
aumentar um pouco Agora você está vendo alguns
lutando aqui pela balança. Vamos definir nossa escala
para 0,8 para x, 0,8 para y, e nosso z será
0,5. Agora, quando eu fizer isso, você terá
esse tipo de aparência. Então, vai parecer
o interior de um cano. Muito inteligente, não é? Tudo bem, seguir temos nossa colisão,
nossa colisão de cápsulas Vá em frente e selecione isso. O que vamos fazer aqui é mudar a localização disso. A localização Z será 80. Estamos começando a vê-lo espiar acima do topo do nosso cano aqui Precisamos tornar isso
maior também. A meia altura, eu vou
definir isso como 300. O raio da cápsula aqui
será ajustado para 40. E vamos usar isso para verificar quando nosso personagem está
acima do tubo ou se
esse tubo está invertido, se o caractere
está ou não sobreposto a Assim, podemos verificar se
o personagem está pressionando um botão para interagir com o cano e
afastá-lo. Além disso, precisamos entrar
na seção de colisão. Fique abaixo da predefinição de colisão. Vamos configurar
isso para ser personalizado. Vamos
ignorar tudo. Vamos aceitar
sobreposições do peão, ou seja, quando nosso
personagem estiver sobrepondo isso, nós o reconheceremos Vamos seguir em frente e selecionar
nosso ponto de distorção. Mais uma vez, isso
especificará um ponto que
começaremos a distorcer Para isso, vou definir nossa localização z aqui no Z.
Vou defini-la como 70 Ele vai colocá-lo bem ali, logo
acima do nosso cano. Podemos mexer nisso, mas vou deixar
aos 70 por enquanto Para o nosso ponto O, isso vai ficar um pouco
abaixo. Então, vou definir o Z
para que seja menos 35. Novamente, podemos mexer
nisso, mas esse será um bom ponto de
partida.
Então, quando você se deformar, usaremos
isso como um ponto de distorção Quando sairmos,
usaremos
isso como um ponto de
distorção para iniciantes. Tudo bem, e com
isso, isso nos
dará um bom
começo para nosso cachimbo. Obviamente, muito mais
trabalho a ser feito aqui. Em termos de script, com certeza. Vá em frente e salve isso e
chamaremos esse vídeo. Nos vemos
quando, na próxima.
65. Script de construção de tubo de urdidura: Bem-vindo. Vamos
continuar com nosso cachimbo de guerra da BP aqui E nossa próxima etapa será
adicionar algum script dentro do
nosso script de construção para tornar nosso tubo altamente personalizável Para fazer com que possamos fazer o corpo do tubo tenha o comprimento
do tubo, se você quiser. Tão alto ou tão atarracado
quanto gostaríamos. Agora, a boa notícia aqui
é que
poderemos pegar emprestado alguns scripts da nossa plataforma Mushroom que criamos
anteriormente no Então, vamos direto ao assunto. O primeiro passo aqui
é criar uma variável. Clicando no botão de adição. Vou chamar isso de ponto final do
meu tubo. Certifique-se de que essa
é uma variável vetorial para que você possa selecioná-la ali mesmo
e alterá-la para vetor. Então eu vou prosseguir
e compilar imediatamente. Porque eu quero definir
um valor padrão para isso no Z. Eu quero definir
isso como menos 100 E então vou marcar essas caixas
para tornar essa instância editável, bem
como para mostrar
os três widgets D. Agora, o que isso vai fazer é me
deixar
compilar e salvar aqui E arraste esse cachimbo de guerra
para o meu nível em algum lugar. Por enquanto,
vou colocá-lo bem perto do início do meu jogador. Agora, com isso em nosso nível, podemos ver que temos
esse ponto final de canal, essa variável, que agora está exposta ao editor,
podemos ver aqui E então eu poderia alterar
esse valor aqui no editor, para cima ou para baixo. Deixe-me voltar ao padrão. Ou eu posso realmente
clicar nesse widget de três D e
movê-lo para
cima ou para baixo também Deixe-me ir em frente
e voltar ao padrão de menos 100. Agora vamos
usar esse valor
dessa variável dentro do nosso script de construção. Então, vamos voltar ao nosso
tubo de guerra, à nossa guia de script de construção. Dentro do nosso script de construção, queremos essencialmente adicionar
um script que
adicionará algumas seções do corpo do
nosso tubo aqui. E isso fará
isso adicionando partes do
nosso cilindro aqui dentro da malha estática da instância do corpo do tubo. Agora, se isso
soa um pouco familiar, porque fizemos
algo semelhante a isso,
na verdade idêntico a isso na verdade idêntico a isso dentro do nosso lançador de plataforma BP. Agora vamos ser capazes de
usar um pequeno atalho aqui, roubando
um script aqui dentro Mas deixe-me
lembrá-lo do que fizemos no
início do curso. Ao arrastar um deles para
o nosso nível, dentro do lançador da
plataforma BP, adicionamos uma variável
chamada Essa era uma
variável vetorial e nós a tornamos editável
por instância e fizemos que
ela tivesse
esse widget de três D. E ao modificá-lo aqui
no editor de níveis,
estamos, na verdade,
adicionando seções do nosso lançador de plataforma Vamos
ter a mesma
configuração aqui dentro do nosso cano. Basicamente, poderemos
selecionar
esse diamante para nossa variável de ponto final de
tubo Vamos
arrastá-lo para baixo e, em seguida, nosso script
de construção
preencherá apenas algumas seções do tubo. O mesmo método aqui, dentro
do meu lançador de plataforma. Vou simplesmente abrir esse plano clicando no
Outliner Vamos editar isso dentro do script de construção do nosso lançador
de plataforma Vou roubar um
roteiro aqui dentro. Vou clicar e
arrastar até aqui. E então eu vou
manter o controle pressionado e obter nossos quatro loops também. Vamos tentar roubar
esses nós. 1.234.567,8,
Com os selecionados
, controle C Vamos ao nosso roteiro de
construção de tubos de guerra. Vou clicar com o botão esquerdo e
depois controlar V para andar. A razão pela qual isso
funcionará quase de forma idêntica. Funcionará forma idêntica é porque
em nosso lançador de plataforma BP, temos essa instância de malha
estática E eis que, olha a malha que estávamos
vendo lá Era o mesmo cilindro
que temos para nossa malha estática instantânea
aqui em nosso tubo de dobra Nosso corpo de tubo também
usará esse cilindro. Agora, uma coisa que eu preciso
atualizar aqui para que esse script
funcione exatamente da mesma forma é observar que aqui em nosso lançador de
plataforma BP, nesta haste de tronco de mingau, eu tenho a escala
do Z definida como um Deixe-me voltar e revisar
isso em nosso cachimbo de guerra. Também vou mudar a escala
Z para um, que esse
script funcione de forma idêntica aqui
em nosso tubo de guerra da BP Essa será uma revisão
do vídeo anterior. Vou mudar a escala Z do
meu corpo de tubo. Certifique-se de que esteja
desbloqueado para que você possa alterar a escala Z
independentemente para uma Tudo bem, com
isso agora tudo que eu preciso fazer é
pegar a extremidade do meu tubo Vou conectar isso
ao meu comprimento vetorial. Vou deixar isso aí. Vou conectar meu script de
construção para que ele
possa ser executado durante o tempo
de design aqui. Sempre que fizermos alguma
alteração nesse plano, ele também será atualizado em nosso editor de
níveis aqui E então precisamos inserir a instância
que queremos adicionar. Este será o nosso corpo de cachimbo. Vamos arrastar
isso dessa forma. Essa matemática deve ser
toda a mesma. Dividindo por 100 aí, multiplicando por menos
100 aqui Vamos compilar isso, para garantir que tudo esteja
bem . Nós vamos salvar isso. E agora, de volta ao
nosso editor de níveis, podemos ver que adicionamos
algumas seções do nosso canal. Agora, se eu pegar esse ponto final
aqui e estendê-lo para baixo, você pode ver que sempre que eu
movê-lo em mais 100 unidades irreais, ele adicionará
uma seção de tubo Altamente personalizável, de
fato. E, novamente, isso funciona durante o tempo de design. Não enquanto o jogo está rodando, mas durante o tempo de design. Tudo bem, então isso é
tudo o que queríamos
realizar nesta
parte do nosso tubo de guerra. Muito mais trabalho a ser feito, mas agora
construímos um roteiro de
construção que
adicionará pedaços do corpo do nosso tubo para que possamos
torná-lo comprido e grosso Por maior que
queiramos
que seja, pessoal, isso vai bastar para este. Nos vemos na próxima.
66. Entradas de tubos de urdidura: Tudo bem, agora que nosso pipe está muito bem visualmente por meio dos componentes
que adicionamos e do script de construção
que criamos, é hora de
voltarmos nossa atenção
para o próprio script Warp pipe Ou seja, nosso jogador
realmente interagindo com esse cano de guerra para fazer com que ele deforme para alguma outra
área do nível Agora, para que isso aconteça, precisamos de uma entrada adequada. E antes de
começarmos essa discussão, é hora de fazer uma
pequena revisão sobre como nossas contribuições são estruturadas
em nosso projeto Agora, como você sabe, estamos controlando nosso personagem
em terceira
pessoa em nosso projeto e dentro de
nosso personagem em terceira pessoa. Esse script já existia. Isso está adicionando um contexto
de mapeamento de entrada. Isso é o que determina
todas as entradas que são relativas a esse caractere
em particular, as entradas que esse
personagem pode usar Agora eu tenho esse ativo IMC padrão aberto na
parte superior aqui Dentro desse ativo, podemos ver os vários mapeamentos
de entrada que foram adicionados
a esse padrão do IMC Uma delas é
atirar na bola de fogo, que adicionamos anteriormente Além disso, adicionamos um
para um jogador derrotado, e usamos esse dentro da nossa plataforma BP, jump through Fizemos com que, quando
essa ação fosse acionada, pudéssemos cair em
nossa plataforma. E fizemos com
que essa ação fosse
acionada pela tecla S, além de pressionar para baixo eixo y
do nosso manípulo
esquerdo Agora, para fazer nossa interação com o
tubo de guerra funcionar, vamos realmente usar essa entrada de player down
que criamos. No entanto, vamos
modificar um pouco as coisas, então é aí que
vamos começar Agora, se você esqueceu onde
esse athot existe, você pode encontrá-lo aqui em
nossa pasta de ações de
entrada em terceira pessoa E foi aqui que criamos nossa ação de entrada A player down. Agora, se você não tem esse recurso do início do curso, a forma como
o
criamos foi
clicar com o botão direito do mouse em algum
espaço vazio abaixo da entrada. Essa foi uma ação de entrada. Nós o chamamos de IA player down. Vamos abrir
isso de volta porque vamos fazer algumas
modificações nisso. Então, atualmente, dentro de nossa ação de entrada do
AI player down, definimos o tipo
de valor como um boule digital Isso aconteceu
ou não? Vamos mudar isso um pouco entrando na seção de gatilho. Atualmente, está
configurado para apenas abaixo. Estamos realmente pressionando? No nosso caso, o
padrão do IMC, por exemplo, estamos pressionando para baixo, digamos, o Isso aconteceu ou não? Agora vamos
mudar isso um pouco para
que esse tipo de valor permaneça
o mesmo bool digital Isso aconteceu, não foi? No entanto, vamos
alterar
o índice de baixo para retido. Vamos
verificar se estamos pressionando um determinado botão. Agora, se expandirmos isso
um pouco mais, alteraremos nosso limite de
tempo de espera para
0,2 segundos. E nosso limite
de atuação será um,
basicamente
definindo isso para um valor de 1,0 Basicamente,
queremos
descobrir se nosso
manípulo esquerdo está
totalmente abaixado por pelo
menos 0,2 segundos Isso é essencialmente o que
estamos dizendo aqui. Também vamos
marcar esta caixa para ver se há uma foto que fará com que,
para
que ela se registre novamente, tenhamos que basicamente soltar o manípulo esquerdo
para acioná-la novamente Então, com tudo isso em vigor, bool
digital mantém o limite de
atuação de 0,21 disparos de Salve isso e
volte ao nosso padrão de IMC. Atualmente, temos
nosso mapeamento de ação de
entrada do player down configurado com a tecla S. No entanto, vou
mudar esse teclado de jogo, manípulo
esquerdo e o eixo y. Vou clicar
nesse menu suspenso. E na
seção de gamepad, novamente, isso é só para vocês
jogadores de gamepad Vou mudar para o
Gamepad à esquerda, com o polegar para baixo. Então, esses dois vão
acionar o evento A
player down. Tanto em nossa
plataforma de salto, como está acontecendo agora, mas também em nosso tubo de guerra, que é onde vamos
usá-lo no próximo vídeo. Agora, queremos criar, na verdade, mais
um mapeamento de jogadores
aqui no mapeamento de ações. Temos esse player de
volta em nosso navegador de conteúdo. Vamos continuar e
duplicar isso. E podemos duplicar isso clicando com o botão direito do mouse e escolhendo duplicar,
ou Control plus D
duplicará
isso ou Control plus D
duplicará E eu vou configurar
isso para ser um jogador. Agora, a razão pela qual estou adicionando um jogador aqui é simplesmente
porque eu quero
poder descer por um
cano e também subir por um cano. Agora, se eu abrir isso, quero garantir que tenha exatamente
as
mesmas configurações do nosso player. Então, está configurado para touro digital e os gatilhos estão configurados
para segurar 0,2 segundos Eu quero que isso seja
configurado para um tiro
no limite de atuação,
que também será um Deixe-me dar uma
olhada aqui no meu player down, temos Bull hold 0.21
Digital bool hold 0.21 shot in 1.0 Está
tudo bem, então vá em frente e
salve isso Agora eu também preciso adicionar essa ação de entrada
específica dentro do nosso
contexto de mapeamento de entrada, aquele padrão IMC E se você esqueceu onde estava
o padrão do IMC, mais
uma vez aqui em
nosso navegador de conteúdo Eles existiam na série de pastas em terceira
pessoa, e você pode encontrá-los
na pasta de entrada, padrão IMC Então, eu vou
abrir isso de volta. Eu tenho que abri-lo
na parte superior aqui. Agora, para adicionar esse AI player à nossa lista de possíveis ações de
entrada, precisamos clicar
nesse pequeno botão de adição. Ele vai
adicioná-lo aqui embaixo. Agora eu tenho que realmente inserir
essa ação de entrada vazia. Então, vou fazer uma busca
por up assim. Agora eu preciso descobrir quais
botões ou entradas eu quero sejam capazes de acionar esse player de eventos
de ação de entrada Bem, eu vou fazer
um evento de teclado para W. Se eu
clicar aqui neste ícone de teclado. Com isso em laranja, agora
posso simplesmente pressionar a tecla Wy e ela será automaticamente
mapeada para ela Vou clicar nesse
botão de adição mais uma vez e ele me permitirá
adicionar outra entrada. Em vez de
clicar no teclado desta vez, vou
clicar ao lado do teclado e
usar o gamepad Estou procurando um gamepad, com o polegar
esquerdo levantado. Esses serão meus dois mapeamentos para esse evento
de
ação de entrada Com isso, vamos continuar
e salvar nosso mapeamento de entrada. O contexto padrão aqui
e agora
estaremos em uma posição em que possamos
adicionar esses eventos específicos. Nosso jogador está abaixo
e nosso jogador
está acima em nosso gráfico de eventos Warp
Pipe Então, isso é tudo que está por vir. No próximo vídeo,
nos vemos lá.
67. Script de tubo de urdidura #1: Tudo bem, então, em nosso
último vídeo, modificamos nosso ativo de entrada
do player de ação. E também duplicamos
isso e criamos uma ação de entrada IA player up Em seguida, garantimos que
ambos estivessem encaixados dentro do nosso padrão IMC Este é o nosso contexto de
mapeamento de entrada para que tenhamos nosso player
IA aqui embaixo mapeado para algumas
entradas, bem como nosso mapa de player up
para algumas Um teclado e um controle. Agora vamos
usá-los dentro do nosso tubo de guerra da BP Então, encontre o caminho até aqui, vou clicar com o botão esquerdo, arrastar uma
seleção marcante e excluir esses eventos existentes em nosso gráfico de eventos do
nosso tubo de guerra E vamos adicionar nossos
dois novos eventos aqui. Nosso jogador entrou,
nosso jogador está pronto para começar nossa interação
inicial com o canal. Então, vou
clicar com o botão direito do mouse em algum espaço vazio. Vamos fazer uma
busca por jogadores e
por eventos de ação
aprimorados. Procure aquele com
esse ícone do tipo seta. E então vamos
clicar com o botão direito do mouse e eu vou fazer uma busca por player down. Novamente, os
eventos de ação aprimorados são o ícone de seta um. Vamos colocar isso assim. Ok, então vamos usar algumas variáveis
,
um nó de portão e algumas sobreposições para detectar se
nosso jogador está realmente em posição
de interagir
com nosso tubo de guerra Agora, antes de prosseguir
aqui usando esses eventos, vamos
criar algumas
dessas variáveis que
precisaremos no meu painel de
diagramas Então, na seção
variáveis mais, vamos adicionar
uma variável para poder interagir com a pergunta. Isso será um lingote. Essencialmente,
usaremos essa variável para perguntar a cada tubo individual que
colocamos no nível podemos realmente
interagir com ele? Pode haver alguns
canos que estamos apenas colocando para fins
decorativos. Não
há intenção de o jogador realmente interagir com isso,
então essa é uma forma de
sinalizarmos que, sim, esse é um tubo de guerra que
realmente queremos distorcer Os outros serão
apenas decorativos com essa
variável selecionada aqui. Vou apenas fazer o controle
mais D para duplicá-lo. E este também
vai ser um lingote. No entanto, este será
chamado de pipe. Vai ser
um ponto de interrogação. E isso é essencialmente
fazer a pergunta: esse
é um cano que
queremos descer versus é um cano
que queremos subir? Então, isso
será usado para determinar a animação de
nossos jogadores quando eles estiverem interagindo
com o tubo Eles vão passar
por isso ou
vão subir por isso? Agora vamos continuar
e compilá-los. Portanto, podemos definir alguns
padrões para eles. Isso pode interagir, queremos
deixar isso como falso. Digamos que, por padrão, todos os nossos canais
digamos que não podemos interagir com eles. No entanto, podemos verificá-lo, se o verificarmos no editor. Portanto, certifique-se de marcar essa caixa, por
exemplo, editável, para que, quando tivermos nosso
canal selecionado em nosso nível, possamos marcar essa caixa para qualquer
instância específica dele Four é down pipe bullion, vamos verificar isso por padrão e também diremos que
é editável por instância Então, de volta ao
editor, mais uma vez, também
podemos modificar essas variáveis. Agora, se eu fosse compilar, salvar isso
e selecionar meu tubo de guerra de
volta no meu nível, agora você pode ver que
essas duas variáveis estão disponíveis para mim
no editor de níveis,
eu posso marcar ou desmarcar
a caixa de seleção de Ken interage ou está no cano inferior, ok,
voltando para o nosso tubo de guerra
quando nosso jogador pressiona para Queremos verificar
algumas coisas para ver se elas são verdadeiras antes mesmo de
prosseguirmos. E o que queremos verificar
para ver se é verdade ou não é se podemos interagir
com o tubo? Então, vamos
arrastar isso para o nosso gráfico. Podemos interagir com o tubo? Também queremos verificar
se não é um cano de descida. Vou trazer meu cano
de descarga. Nós
vamos conseguir isso. Vou
sair disso e dizer que estou procurando um booleano Aquele nó ali mesmo. Agora eu quero verificar se ambas
são verdadeiras. Para isso, posso clicar com o botão direito do mouse em algum espaço vazio
e inserir um nó. Estou procurando um booleano. Vou conectar essa lata Interact na
parte superior e, em seguida, o tubo
descendente na
segunda entrada aqui. E vamos
conectar a saída disso
em um nó de ramificação mantendo pressionada a tecla B
e clicando com o botão esquerdo Vamos
conectar isso, tipo, então vamos
sair daqui. Ou só nos importamos quando
ele sai daqui quando iniciamos esta entrada. Uma longa história de ação resumida
aqui com nosso jogador pronto. Ação de entrada. Isso vai disparar daquele pino aceso
aqui em nosso cano de guerra. Vai disparar
daqui, desse pino de partida. Assim que essas
condições forem atendidas, manteremos pressionado
o WK em nosso teclado ou o manípulo esquerdo na
posição ascendente por pelo menos
0,2 Se atendermos a essas condições, faremos a
pergunta: Ei, podemos até mesmo interagir
com esse tubo. E, a
propósito, isso
não é um cano de descida? Se isso for verdade, queremos
entrar por um portão. Vou sair daqui
e digitar uma busca no portão. Estou procurando um nodo de portão. Vamos
entrar por um portão. Essencialmente, estamos nos aproximando de
um portão rígido e
queremos descobrir se o portão
está aberto ou fechado Agora, se o portão estiver aberto e
pense em um portão físico, se estiver aberto, faremos qualquer script que
venha além daqui. No entanto, se o portão estiver fechado, não
avançaremos além daqui. Agora, antes de
abrirmos ou fecharmos o portão, vamos controlar a entrada do
jogador. Agora, para economizar um pouco de tempo, vou copiar
esses nós aqui. Então, vou clicar com o botão esquerdo
e arrastar para pegar esses quatro. Também vou
manter pressionado o controle, clicar com o botão
esquerdo e pegar esse
quinto nó aqui. Então, com aqueles selecionados,
farei o controle mais D para duplicá-los e
trazê-los até aqui Agora, isso vai
ser basicamente o mesmo,
no entanto, para a entrada do
player eu não preciso desse nó São muitos nós.
Então, vou deletar isso por isso. Vamos dizer que,
quando pressionamos, essa é a tecla
S do teclado
ou o polegar esquerdo está abaixado Depois de começar, verificaremos se podemos interagir com ele e se
é de fato um tubo de descida? Este que queremos descobrir, é realmente um cano de descarga? E se isso for verdade,
podemos interagir com ele, e é um cano de descida, um cano que podemos descer. Também queremos
entrar em um portão. Então, estamos essencialmente tentando subir
ou descer por um cano. Essa é a nossa maneira de nos
aproximarmos do portão para ver se uma interação
é mesmo possível Agora, para descobrir se uma
interação é mesmo possível, queremos descobrir
se estamos realmente em posição de
descer aquele cano. E para isso,
usaremos nossa
sobreposição de colisão aqui Agora, deixe-me pular
rapidamente
para a nossa janela de visualização e voltar a ampliar Temos essa colisão,
esse componente de colisão de cápsulas que
basicamente queremos verificar
se nosso player está mesmo
acima do cano, assim Se estiverem, se estiverem
nessa área, diremos que sim,
o portão está aberto. Vá em frente. No entanto, se nosso jogador não estiver
sobrepondo essa colisão, basicamente
diremos: não, desculpe Você não pode avançar de forma alguma além desse nodo do portão. Então, não dá para fazer. Não é possível descer pelo tubo de guerra com esse nó de colisão selecionado
aqui em nossos componentes Vamos clicar com o botão direito em
algum espaço vazio. Vamos adicionar
um evento para quando começarmos a sobrepor isso Agora, quando eu clicar nisso, ele colocará esse
nó aqui embaixo. E deixe-me mover minha marcha até aqui e
enquadrá-la assim Então, o que eu quero descobrir sobre um componente começa a se sobrepor Queremos descobrir, ei, é nosso jogador que está
sobrepondo Então, mais uma vez, posso
clicar com o botão direito do mouse em algum espaço vazio. Eu poderia fazer um personagem para escolher um
jogador e poderíamos fazer toda essa coisa
igual fora daqui. No entanto, quero
descobrir especificamente se
é nosso personagem em terceira pessoa que está fazendo a
sobreposição Porque se for, eu
quero realmente salvar uma referência ao nosso personagem em
terceira pessoa para mais tarde no script. Então, em vez disso, desta
vez eu
vou usar meu outro
distintivo de ator e vou fazer um elenco para um personagem em terceira
pessoa. Então, se for o personagem em terceira
pessoa que está fazendo a sobreposição
dessa colisão, vamos inserir isso em
nossas notas de abertura do portão, então vamos dizer, sim,
o portão está aberto. Prossiga. Você pode ir além daqui, desde
que tenha pressionado cima ou para baixo, dependendo do tipo de tubo com
o qual estamos
tentando interagir. Ok, então vamos
também clicar com o botão direito do mouse em nosso componente
de colisão aqui novamente no evento, para acabar com uma sobreposição Aqui também podemos trazer nosso elenco de personagens em terceira
pessoa. Observe que vou fazer o controle
D com isso selecionado. Mova isso para uma posição assim. Diremos que se você
encerrou essa sobreposição, ou
seja, não está dentro da
área de colisão, fecharemos os portões e, por padrão,
começaremos com o portão Essencialmente, esse será o início do nosso script de interação de tubos porque é um
pouco alto. Vou tentar enquadrá-lo como se fosse uma célula. Tente colocar essa parte
superior no lugar. Se você quiser pausar
o vídeo aqui, você pode ver que temos
nossas variáveis aqui, player up, player down Ambos vão entrar na parte de entrada do portão. E a abertura e o
fechamento serão determinados pelo fato de estarmos realmente sobrepondo esse componente de
colisão Agora, nada disso funcionará se
não entrarmos nos padrões de
nossa classe aqui dentro do nosso tubo
de guerra e alterarmos esse parâmetro
aqui na No momento, esse cachimbo de guerra não reconhecerá nenhum
desses eventos. Mesmo que fizéssemos isso, a tecla W ou S do
nosso teclado não
os reconheceria de forma alguma. E isso porque, dentro
dos padrões de nossa classe, um
esquema de classe de ator não
reconhecerá nenhuma entrada, a menos que, na categoria de
entrada ,
você altere
a entrada de
recebimento automático de
desativada para jogador zero No nosso caso, como este
é um jogo para um jogador, tudo o que precisamos fazer é
verificar se o jogador zero, ou
seja, nosso jogador emprestado, está inserindo algum tipo de entrada,
o WK, a tecla S ou talvez para cima ou para baixo no
manípulo esquerdo Ok, com tudo isso feito,
certifique-se de compilar para
garantir que nosso
script existente aqui esteja com boa aparência Vamos dizer isso,
e isso nos dará nosso ponto
de partida para nossa interação com o tubo de guerra. Ainda há muito trabalho a ser feito, mas
continuaremos no próximo vídeo. Nos vemos lá.
68. Script de tubo de urdidura #2: Bem-vindo de volta aqui em
nosso tubo de guerra da BP quando nosso personagem está
sobrepondo o volume de colisão adequado E quando inserimos
a entrada adequada, avançando
assim
além do portão Precisamos mover nosso personagem para cima pelo cano ou
para baixo pelo cano, dependendo da direção em que
queremos interagir com o cano. E para fazer isso,
precisaremos de uma referência
ao nosso personagem. Então, a primeira coisa que vou
fazer é ampliar aqui. E quando avançamos
além do portão, precisamos criar uma
referência ao nosso personagem. Vou escrever, clique
neste alfinete aqui. Vamos promover
isso para variável. Isso vai criar
uma variável aqui. Vou
chamá-lo de meu jogador. E precisaremos
dessa referência para dizer
ao nosso jogador se mova por um cano em
qualquer direção,
para cima ou para baixo. Ok, depois de fazermos isso, a próxima coisa que queremos fazer
é garantir que nosso player não
insira nenhuma outra entrada Porque uma vez que nosso personagem
está se movendo por aquele cano, não
queremos tentar pular ou atirar uma bola de fogo ou
qualquer coisa desse tipo Para fazer isso,
vamos clicar em Digitar , obter o controle do player. E então vamos sair disso e
digitar a entrada de desativação. Agora, observe que, quando fizermos
isso, isso conectará o valor de
saída do nosso nó controlador get player aqui
ao destino.
Na verdade, isso está incorreto. O que queremos fazer é mover isso para o controle do player. Então, se eu segurar a tecla de
controle aqui, posso movê-la para o pino
do controlador do player. E o alvo aqui, eu
quero ser meu jogador. Então, basicamente, estamos
dizendo, olá, jogador, você não pode inserir nenhuma ação enquanto estamos nos
movendo pelo nosso cano. Com isso, a próxima
coisa que quero fazer é
fazer uma pergunta. Quero inserir um nó de ramificação mantendo pressionada a tecla B
e clicando com o botão esquerdo. E a pergunta que
eu quero fazer
é: esse é um cano pelo qual vamos viajar
? Porque dependendo
se
vamos descer por um cano
ou subir por um cano, queremos jogar
diferentes tipos de animações de personagens para
mostrá-los descendo ou subindo por ele Então arraste e solte isso
em nossa condição. Então, o que
vamos fazer é a partir
da ramificação verdadeira, vamos
construir a partir dela. Primeiro, vamos trazer
uma sequência de notas. Então, vou manter pressionada
a tecla S e clicar com o botão esquerdo. Porque haverá algumas
coisas que eu quero que aconteçam. Se for um cano que
estamos descendo. A primeira coisa que quero
fazer é adicionar uma linha do tempo aqui. Porque eu quero manipular uma variável ao longo do tempo,
uma variável flutuante, para mover meu jogador uma certa quantidade
na direção z para
descer pelo cano Vamos adicionar uma linha do tempo.
Ao clicar com o botão direito do mouse, vou
pesquisar a linha do tempo. Vai ficar
bem na parte inferior. Se eu colocar a
palavra hora lá, vou ligar para
essa linha do tempo. Vamos ver, vamos chamá-lo de, não
vamos enfiar isso em um tubo descendente. E então eu vou
clicar duas vezes sobre isso para abri-lo. E dentro daqui eu
vou adicionar uma pista flutuante. Então clique no botão Rastrear. Vamos adicionar
uma pista flutuante. Vou simplesmente chamar
isso de movimentos. E eu vou
mudar a duração da nossa linha do tempo aqui
para 1 segundo Porque eu quero mover nosso personagem na direção Z ao longo de 1 segundo. Preciso adicionar alguns
quadros-chave aqui. Então, vou manter
pressionada a tecla shift e clicar com o botão esquerdo uma e duas vezes. A primeira chave,
vou selecionar e definir o tempo como zero e
o valor como zero. E então, no segundo quadro-chave,
eu vou selecionar isso, vou definir o
tempo para ser um e o valor para menos 200. Agora, depois de pressionar Enter, posso pressionar essas
teclas de seta para enquadrar isso. É uma espécie de representação
visual do que vai
acontecer aqui. Vamos mover
nosso personagem para baixo 200 unidades irreais
ao longo de 1 segundo Com essa faixa adicionada, podemos
voltar ao nosso gráfico de eventos. E agora podemos ver essa saída de
movimento aqui. Novamente, se for um tubo descendente, se for verdade que estamos interagindo com um
tubo rotulado,
sim, é um tubo descendente Vamos jogar
desde o início, aqui mesmo. Em seguida, vamos trazer
uma referência ao nosso jogador. Vamos arrastar e soltar isso. Vamos pegar isso,
vamos sair do meu player. E vamos dizer definir a localização
relativa e a rotação
para o componente da cápsula. Este aqui, trará dois nós nossa referência de componentes da cápsula, bem
como esse conjunto de
localização e rotação relativas. Como essa linha do tempo está sendo atualizada, queremos enviar nosso jogador para um novo local. Qual localização? Bem, vamos
arrastar para trás esse novo tipo de localização no vetor make para que possamos
dividi-lo nos componentes x, y, z disso Então, o que vou fazer
é trazer uma referência ao nosso ponto, esse componente aqui. Vamos arrastar isso para o nosso gráfico. E só para ir ao nosso ponto de vista, esse é o nosso ponto de distorção. Essa cabeça de dragão está aqui. Esse
será essencialmente o ponto de partida a partir do qual nosso personagem se
deformará Ok, vamos arrastar para fora
daqui, digitar, obter a localização mundial, depois vamos arrastar para fora
daqui e digitar o vetor de quebra. Isso está gerando a localização X, y e Z, a
localização do nosso ponto de distorção Estamos dividindo
isso em seus componentes x, y e z. Quando estamos distorcendo nosso player, queremos manter o x igual e o y igual No entanto, o valor z é
o que queremos mudar. Queremos tirar nosso valor z do
nosso ponto de distorção e arrastar
para fora daí, colocar a tecla mais trazer um nó de adição O que queremos
acrescentar a isso? O que queremos acrescentar
a esse pequeno movimento? Novamente, isso
mudará o valor disso em menos 200
ao longo de 1 segundo. Esse será
nosso novo valor z. Vamos enquadrar isso
um pouco melhor. Assim, vai
ser assim. E então eu vou
clicar com o botão esquerdo e arrastar e tocar na tecla. E esse será o nosso script de
entrada para baixo. Vou colorir isso de
preto imediatamente. Então, vou passar um
pouco para cá. Se for um cano de descida, se for um cano rotulado como
tubo de descida em nosso editor, se isso for verdade,
é assim que vamos
mover nosso personagem
por esse cano Agora, novamente, temos que nos
preocupar com eles, você sabe, saindo do cano, mas vamos nos preocupar com isso
daqui a pouco Agora, a segunda coisa que
eu quero que aconteça, se eles estiverem descendo
pelo cano, isso basicamente
moverá nosso player, é que eu também queira reproduzir
um efeito sonoro. É por isso que temos esse nó de
sequência aqui. Vou arrastar isso, trazer um nó de atraso, um
nó de atraso. E vou
deixar esse valor de 0,2. E então vou sair disso e trazer um
nó D do Sound two. Para isso, vou
fazer uma busca por cachimbo. Não, não é cachimbo.
Acho que o chamei de Warp. Urdidura. Esse é o que eu
quero inserir, essencialmente. Também vamos tocar
esse efeito sonoro. Na verdade, vou clicar com o botão esquerdo ao redor dessa tecla de toque e vou chamá-la nosso warp X assim Ok, eu vou colorir
isso de preto também, só para deixar isso
bonito e claro. Agora, ainda não terminamos aqui quando
terminamos com isso, quando essa linha do tempo
terminou aqui Depois de um segundo, quero que algo
mais tenha acontecido. Para isso, vou pegar emprestados
esses dois nós aqui. Vou selecionar
meu nó atrasado, meu Play Sound Two D,
e vou fazer um Control D com
os dois selecionados. Vou
movê-los para cá do nosso
pino acabado aqui. Vou me conectar a
esse nó de atraso e vou alterar nossa duração
aqui para 0,4 segundos. Isso vai ser muito bom, 0.4 Então eu quero tocar
esse som de distorção novamente. Essencialmente, quando
terminarmos de
passar por esse tubo, tocaremos
esse efeito sonoro novamente. Então, basicamente, é
necessário inserir um efeito sonoro. E então, quando terminamos, antes de nos
deformarmos, mostramos nosso personagem meio que saindo
do cano Vamos tocar esse efeito
sonoro novamente. Agora, haverá mais um nó,
na verdade, mais dois nós
que vamos adicionar. Aqui mesmo. Vou adicionar um nó
de ramificação, então mantenha pressionada a
tecla B e clique com o botão esquerdo do mouse. Eu vou me conectar
a isso também. E vamos verificar
outra condição. E a condição que vamos
verificar aqui é se nosso jogador vai sair
saindo de um cano. Ou se eles vão
cair de um cano, isso vai determinar
como manipulamos nosso personagem saindo de um cano ou
caindo de um cano Então, para isso,
precisaremos de uma variável booleana. Deixe-me prosseguir e selecionar
este existente no
controle D do
meu painel de plantas para copiá-lo E vou chamar essa de
saídas saindo do cano. Eu quero isso exposto também. E eu vou compilar isso e vou dizer que
sim por padrão, vamos deixar isso como verdade Essa será a nossa condição
que vamos verificar. E, novamente,
usaremos esse galho para determinar se nosso personagem
vai se levantar de um cano ou
cair por ele. Então, isso virá
aqui daqui a pouco, mas o que vou fazer é
arrastar esse trecho de script, tocar na tecla C e isso
será chamado de nosso peso um pouco antes de
sair do pipe script Tudo bem, então implementamos isso
, excelência. Então, vou enquadrar isso
aqui para que você possa ver o que está saindo do
nosso nó de ramificação e, em
seguida, do nosso nó de sequência. Então, se é verdade que nosso jogador está
descendo pelo cano, esse será o cronograma para fazer nosso jogador
passar por ele Agora, a má notícia é que basicamente
temos mais
três seções como
essa para adicionar ao script. Mas a boa notícia é que
criamos essa seção do
script e poderemos reutilizar a maior parte dela na última parte
desse projeto Então, vamos
chamá-lo de vídeo aqui. Então, vá em frente,
compile e salve. E na próxima,
vamos subir por um cano e depois também
sair pelo cano.
Nos vemos lá.
69. Script de tubo de urdidura #3: Bem-vindo agora, antes de
continuarmos com nosso roteiro, eu só quero
testar isso dentro do nosso nível. E eu só quero que você
preste atenção às nossas várias variáveis que
expusemos ao editor. Nós temos este para, é um cano de descarga? Quer dizer que devemos
ir até lá? E se sim, em
que direção devemos
descer o cano? Vamos verificar
isso. Além disso, também
verificaremos o booleano do Can Interact em nosso editor Agora, se você se lembra do
nosso Interact, estamos verificando
se isso é verdade ou não. Para ver se alguma dessas
entradas é mesmo válida. Se conseguirmos ir
além desse ponto. Tubo selecionado em seu nível. Aqui está o
tubo de descida já verificado. Mas não temos como
interagir e verificar. Então, vou
prosseguir e verificar isso. E isso deve fazer
com que, quando pressionarmos nosso teclado, eu pressione a tecla S. Essa vai ser a nossa chave para baixo. Vamos avançar além da parte inicial
do script aqui, porque isso
acionará a possibilidade de interagir
e será verdade. E então, como
esse é um cano de descida, vamos
descer esse cano. Na verdade, vamos
acionar esse pequeno script aqui
e aqui. Isso ainda não vai
entrar em jogo, mas com tudo isso feito, devemos realmente ver nosso personagem
se mover para dentro do cano. Então, vamos tentar isso. Entrando e
brincando. Tudo bem, pulando em cima do nosso cano E se eu pressionar a
tecla S no teclado, você pode ver meu
personagem cair. Mas eles ainda não têm
para onde ir. Então é isso que vamos
corrigir na próxima parte. Ok, primeiro, vamos abordar
essa parte aqui. Quando
terminarmos de entrar no cano de descida, vamos esperar um pouco antes de sairmos de um cano. E vamos
fazer a pergunta: vamos sair
saindo de um cano ou vamos
cair de um cano? Então, vamos adicionar um pouco de
script aqui. Vamos fazer com que saiamos saindo primeiro de um cano. Mais uma vez, posso roubar muito
do código que fizemos
aqui, economizando muito tempo Então, vou
clicar com o botão esquerdo e pressionar o controle
C ali mesmo. Em seguida, vou passar para cá e fazer o controle V para colar controle D simplesmente
duplicaria isso imediatamente em vez de copiar e colar E o que eu vou
fazer
é sair dessa
filial aqui. Vamos sair,
saindo do cano Se isso for verdade, vou colocar
isso em prática
desde o início. Ainda não terminamos. Aqui temos algumas
coisas para mudar. Para começar, quero me
livrar dessa distorção. Esse não é o local de onde
eu quero começar. Para isso, quero começar com um determinado conjunto de coordenadas
em que especificamos uma
distorção para a localidade E precisaremos de
uma nova variável para isso. Vai ser uma variável
vetorial, então vou selecionar minha variável vetorial existente
aqui no meu painel de projeto Vou fazer o controle
D para duplicar isso. E vou chamar isso de
distorção para locale. E se eu compilar
isso imediatamente, isso será definido como
um valor padrão Deixe-me ir em frente e
colocá-lo em zero em todos os aspectos. Eu quero ter certeza de que
isso é editável
por instância , porque vamos
definir isso em nosso nível Não preciso mostrar
os três widgets D aqui, então vou
me livrar deles Então essa será
nossa variável aqui. Vamos começar a
partir de uma determinada localidade que
eventualmente especificaremos que ainda não
temos Vamos conectar isso a
esse vetor de quebra dessa forma. Agora, nosso cronograma aqui também
precisa ser corrigido. Porque em vez de
entrar em um tubo descendente, deixe-me mudar esse título da nossa caixa de
comentários aqui. Vamos sair
saindo de um cano. E como
vamos sair saindo de um cano
com esse trecho de script,
precisamos alterar
nossa linha do tempo para
que nosso quadro-chave aqui,
nosso segundo quadro-chave , não diminua 200 Em vez disso, vai subir 200. Então, tudo o
que precisamos
fazer aqui é com o último quadro-chave selecionado, livrarmos desse sinal negativo Serão
mais 200 assim. Essa é a direção que
queremos seguir. Agora, quando
terminarmos de subir
e sair desse tubo, precisamos ativar os controles de nossos
personagens novamente. Porque, se você se lembra
, logo no início
deste script,
desativamos nossa entrada. Vamos selecionar nosso controlador
get player aqui. E vamos
pressionar o controle D para duplicar isso porque
precisaremos dele novamente. Vou
movê-lo até
aqui tentando encontrar seu caminho
por essa paisagem. E vou
arrastar para fora daqui o controlador get player
e digitar a entrada de ativação. Agora, mais uma vez, isso não está
conectado à entrada correta. Preciso que o controle do player esteja conectado
à entrada do controlador do
player Então, vou manter
pressionado o botão esquerdo do mouse e garantir que isso esteja na entrada do controlador do player. Estou aqui para o alvo.
Quero clicar com o botão direito do mouse e digitar o personagem do jogador, que será nosso
alvo quando
terminarmos de
sair do cano. Quando
terminarmos de sair do cano. Vamos habilitar nossa entrada. Mais uma vez, vamos clicar com o botão esquerdo do mouse
e arrastar essa tecla C e
isso será chamado ativar o controle do usuário novamente. Tudo bem Agora pinte esse
preto imediatamente também. Ok, agora
abordamos os
cenários em que vamos
verificar se é um cano de descida, é um cano que vamos
descer e vamos sair saindo de um cano? Então, agora precisamos lidar
com as outras situações. Somos nós subindo por um cano e
descendo por um cano. Então, para isso, poderemos roubar um pouco mais desse código Nesta seção, queremos lidar com o que
acontecerá se for falso, se não for um tubo descendente Em vez disso,
vamos subir por um cano. Mais uma vez,
precisaremos de outra nota de sequência aqui. Então, vou manter
pressionada a tecla S e
clicar com o botão esquerdo se isso for
falso aqui. A primeira coisa que
ainda vamos querer fazer é reproduzir alguns efeitos de distorção Podemos conectar isso
aqui assim. Mas agora queremos
subir pelo cano. Agora, se você se lembrar
aqui do que
acabamos de fazer, alteramos essa linha para que, em vez
de
descermos, subamos 200 unidades irreais Na verdade, podemos
clicar com o botão esquerdo e arrastar. Vamos copiar
esse trecho do roteiro. Com isso copiado, eu
vou vir até aqui. Controle C, controle
V para colar, eu tenho que fazer o controle C, controle V para colar isso aqui
embaixo. Lá vamos nós. Vamos
colocar isso em prática desde o início. questão de tempo, não
vou renomear essas linhas do tempo, embora eu deva, mais uma vez, nesta linha do tempo aqui em cima, vamos
criar 200 unidades irreais, que é o que Porém, voltando ao nosso gráfico de
eventos, não
queremos que nossa
variável se deforme à localidade, aquela que lemos Nós vamos subir imediatamente. Isso vai ser
semelhante a isso e nosso ponto é o que
queremos usar. Vou roubar esses
dois nós ali mesmo. Vou apertar o controle
C. Vou seguir em frente aqui, fazer o controle V, e esse será o ponto de partida do qual
partiremos, e depois subiremos
adicionando 200 ao movimento de nossos jogadores. Ok, está tudo muito bem. Também precisamos ter
certeza de que aqui temos
nosso equipamento conectado
à espera de um minuto antes de
sairmos do cano Aqui também, precisamos
pegar nosso acabamento e
conectá-lo aqui. Vamos mudar essa caixa de
comentários aqui mesmo. Isso será um tubo de entrada apenas para deixar as coisas
um pouco mais claras. Só para ampliar um pouco
aqui. Você pode ver como
está nosso script atualmente. Como você pode imaginar, precisamos de
outra seção do
script aqui. Agora isso vai sair, cair de um cano Agora, porque vamos cair de um cano, você já deve ter adivinhado Podemos usar esse trecho de roteiro porque essa linha do tempo
aqui nos enviará 200 unidades
irreais. Esquerda, clique, arraste. Vou pressionar o controle
C aqui para copiar isso. Eu vou seguir em frente, só então vou descer para esta
seção aqui. Vou fazer o
controle V para colar. Deixe-me renomear esta
seção imediatamente. Esta será nossa saída tubulação aqui Estamos fazendo a
pergunta, vamos
sair saindo
do cano aqui? Estamos dizendo não, isso é falso. Vamos sair
caindo de um cano. Insira o falso na peça
desde o início de nossa linha do tempo. Mais uma vez, aqui
vamos nos mostrar movendo 200 unidades irreais Ótimo. Voltando
ao nosso gráfico de eventos. Mais uma vez aqui, porém, não
vamos cair do
nosso ponto de distorção. Vamos deletar isso. Em vez disso, vamos
usar essa variável
aqui em cima. Distorça dois vetores. Ok, então conecte nosso
locale warp two. Esse é o que queremos. Então,
não se esqueça de que, a partir do nosso pino final, também
precisamos ativar
nosso controle de usuário. Mais uma vez, há muito código
aqui, muitos fios. Então, deixe-me
voltar para mostrar a aparência geral desse script. Basicamente,
você tem quatro blocos para mover nosso personagem,
entrar pelo cano
de descida, entrar em um cano
ascendente, sair, sair de um cano e sair,
cair de Estamos desativando o
controle aqui mesmo. E então, no final, estamos ativando o
controle aqui mesmo. Tudo bem, com tudo isso feito, vamos
compilar e salvar Agora, se eu fosse acessar meu editor de níveis aqui,
aqui está meu cachimbo. Eu o
selecionei no painel de detalhes. Eu o configurei para
poder interagir com ele. Agora, observe que minha localidade warp two
está atualmente definida como 2000. No próximo vídeo, mostrarei como trabalhar
com
a configuração de uma localidade adequada do
warp two Mas podemos testar
isso agora mesmo. Então, vou seguir em
frente e clicar em Play. Eu pressiono a tecla S
para descer e
isso vai me levar para a posição
000 no meu nível Então, isso simplesmente me levou para
onde quer que estivesse no meu nível. E você pode ver que agora estou de
volta pronto para jogar, o que obviamente não parece
bom, chegando ao nada Mas no próximo vídeo, mostrarei como trabalhar com esses tubos e como
configurar uma distorção para localidade, como tudo isso deve funcionar Tudo bem, pessoal, isso vai acabar
com essa. Nos vemos na próxima.
70. Conexões de tubos de urdidura: Bem-vindos de volta a todos.
Bem, agora que temos nosso enorme script BP war
pipe pronto, achei que seria uma forma boa e
adequada de mostrar
exatamente como trabalhar com isso quando você estiver de volta
ao editor de níveis Agora, entre os vídeos aqui, eu adicionei uma segunda
versão do nosso canal para que eu possa mostrar
várias interações. Agora observe que eu tenho um tubo
selecionado aqui no meu nível. Esse é o de antes. No painel de detalhes,
defino o
lingote Ken Interact como verdadeiro Este é um cano de descida, o que significa que é um que
pretendo descer. E também tenho
esse cheque de onde pretendo sair
saindo de um cano. Estou pretendendo sair desse segundo cano aqui mesmo Agora, minha localidade warp two, preciso especificar
algo para Agora, para colocar
a coordenada correta. O que posso fazer aqui
é selecionar esse tubo. E no painel de detalhes, você pode ver todos os meus
vários componentes que compõem meu segundo tubo de guerra. Se você não os vê, é porque isso pode estar
em colapso aqui. Você pode ver como estou
meio que
retirando isso para revelar todos
os componentes O que eu quero fazer é
selecionar os pontos de distorção Nesse ponto, está meio que enterrado
dentro do próprio cano. Agora, o que eu quero
fazer é obter
a localização mundial
desse ponto de distorção Com isso selecionado, você pode ver que a localização
relativa disso é menos 35. No entanto, eu quero a
localização mundial para isso. Posso selecionar essa lista
suspensa e quero que ela mude para ser
a localização mundial. Então, agora, essas são
as coordenadas
mundiais desse componente em particular. Para este tubo, quero
copiar essas coordenadas. E para fazer isso, basta
clicar com o botão direito do mouse aqui, digamos copiar. Agora eu tenho essas
coordenadas copiadas. Agora vou voltar ao
nosso primeiro tubo, selecioná-lo e posso posicionar essas coordenadas aqui
mesmo em nossa variável de localidade warp
two Então, vou clicar com
o botão direito aqui e vamos
controlá-los. Então, agora estamos dizendo a
esse tubo que, ei, queremos poder
interagir com você. Você é um cachimbo que
queremos derrubar. Vamos sair
do nosso cano alvo e, a
propósito, esse é
o local do alvo. Eu quero que você fale
com tudo isso pronto, vamos
testar isso. Entrando e brincando. E vamos
pular até aqui. Vou tocar no meu manípulo esquerdo do meu
controle para baixo,
e nós vamos direto para cima Agora, se eu tentar interagir com esse
tubo aqui,
eu vou, você sabe,
tocar na tecla S, na tecla W. Meu polegar esquerdo se inclina para cima, veja, eu não consigo
interagir com ele No entanto, eu poderia
continuar dando voltas. Desta vez, vou
pressionar S no teclado para baixo e subir
e pronto. Tudo bem, agora abordamos
aquele cenário clássico de ter um jogador descendo por um cano e depois
saindo de um cano. Vamos mudar um
pouco as coisas aqui. Desta vez,
mostraremos como descer por um cano e depois
cair de um cano. Então, para isso, vamos
selecionar nosso tubo inicial aqui. Vamos dizer que sim,
podemos interagir com ele. É um cano que
vamos descer. É isso que essa pergunta está
perguntando. É um cano de descida? Sim, vamos descer
por aquele cano. Vamos sair,
saindo de um cano Não, nós não somos. Em vez disso, vamos
cair de um cano. Então, só para mostrar onde isso seria acionado
em nosso gráfico, a
saída saindo
do tubo é falsa. Então isso significa aqui
em nosso script, quando chegamos a esse ponto, quando saímos
subindo do cano. Se isso for falso,
vamos descer por aqui e sair caindo pelo cano. Ok, para que isso
aconteça, eu tenho que definir esse local do
Warp Two Aqui está meu tubo inicial, aquele com o qual
vou interagir Preciso definir esse local do
warp two. Então, vou escolher
meu cano alvo. Esse cara aqui
no painel de detalhes. Vou encontrar meu componente de ponto de
distorção. Aí está. Mais uma vez, preciso
encontrar a localização mundial. Vou selecionar
minha localização aqui, alterá-la para a localização mundial. Vou clicar com o botão direito do mouse.
Vamos copiar isso. E vou voltar ao meu canal interativo, selecioná-lo. Vou colá-los para minha localidade warp two aqui Colar. Ok, vamos
testar esse cenário. Entrando e
brincando. pular em cima do meu cachimbo aqui mesmo. Vou pressionar a tecla
S no meu teclado, descendo e saindo. Agora, se eu tentar interagir
com esse tubo, pressiono as teclas, chego perto disso. Não vou falar sobre
isso porque esse tubo
aqui não é interativo, como
você pode ver aqui. Então, vamos tentar fazer disso
uma via de mão dupla agora. Vamos tentar fazer
isso para que eu possa realmente interagir com
esse cara também. E quando eu tentar
subir por esse cano, na verdade vou sair disso. Vamos inverter as direções,
se você quiser. Vou tornar esse cachimbo
aqui interativo. Então, vou seguir
em frente e marcar essa caixa. Isso é um cano de descarga? Não, não é. Estou dizendo que não é um cano
que
descemos, vamos subir por ele. Quando isso entra em jogo, o tubo é inferior é o tubo inferior no início
deste script. Se isso for falso,
vamos
descer por aqui. Vamos entrar
pelo cano. Ok, então estamos dizendo que
isso não é um cano de descida, vamos subir por ele. Vamos sair,
saindo do cano Sim. É nossa intenção sair saindo desse
cano aqui mesmo. Então, vou deixar esse cheque lá. No entanto, preciso definir uma localidade
warp two para isso. Vou selecionar esse tubo,
vou selecionar aquele ponto de
deformação novamente, ele está enterrado lá no
meu cano em algum lugar Vou encontrar
a localização mundial para isso. Vou clicar com o botão
direito do mouse. Eu vou copiar. Em seguida,
vou selecionar meu canal interativo
aqui, selecionando isso. Vou colá-los
como minha localidade warp two. Agora, eu basicamente montei
uma rua de mão dupla aqui, onde posso descer por
esse cano e sair. E da mesma forma, eu posso subir por esse cano e
sair por ali. Vamos fazer um teste. Ok, vou fazer minha
interação original aqui. Descendo, eu estou usando
o teclado aqui, então eu apenas coloquei a tecla S lá Agora vou pular e quando estiver no
pico do meu salto, pressionarei o WK Estou subindo por aquele
cano e saindo,
descendo, subindo e subindo. E aí está, pessoal. Concluímos nosso tubo de guerra
interativo. Apenas certifique-se de que,
sempre que você definir esses tubos
de guerra em seu nível, configure essa distorção para o local Isso vai acabar com
esse pessoal. Nos vemos na próxima.
71. Blueprint de modo de jogo: Bem-vindos de volta a todos.
Ao longo dos próximos vídeos aqui, vamos
montar um plano de checkpoint E esse modelo
de posto de controle será tal
que, quando sobrepormos
um posto de controle, veremos uma bandeira ser erguida Alguns
efeitos de partículas desaparecem. Isso salvará nossa
localização para que, se
morrermos, reapareçamos
naquele posto de controle Então é isso que está reservado
ao longo dos
próximos vídeos aqui. Tudo bem, aqui na nossa versão de
trabalho do projeto, vamos
começar falando sobre
nosso
modo de jogo em terceira pessoa, Blueprint Sem que você saiba agora. Essa
planta de jogo em terceira pessoa é especificada em nossa configuração de projeto como a planta do modo de jogo
que nosso projeto está usando Agora, tenho nossas configurações de projeto
abertas na parte superior aqui, mas só para mostrar
como chegar a isso, se você entrar nas configurações
no canto superior direito, configurações do
projeto, é
assim que você pode abri-las. Quero chamar sua atenção para esta opção de mapas em modos. Então, aqui, nosso modo de jogo
padrão, o modelo do modo de jogo
que nosso projeto está
usando é nosso modo de jogo em terceira
pessoa Agora, essa
planta do modo de jogo determina essas outras plantas
que nosso projeto está usando E está especificando coisas
como qual peão estamos usando, ou
seja, nosso personagem em terceira
pessoa, bem
como nosso controlador de
jogador Esses são dois grandes. Agora estamos falando sobre o projeto
do Gamo
porque é aqui que vamos hospedar
nosso script de respawn Porque esse é um modelo
usado pelo nosso projeto. Faz sentido abrigá-lo aqui. Agora vou
passar para o nosso projeto BP, em
terceira pessoa, do Gamo Eu posso encontrá-lo aqui
clicando nesta pasta. Também está aqui em sua pasta de
diagramas de
conteúdo em terceira pessoa Clique duas vezes nele
para abri-lo. A primeira coisa que vou
fazer é criar uma nova variável dentro
do painel My blueprint, clicando nesse
botão de adição de variável para gerar a transformação Como você deve ter adivinhado,
essa
será a variedade de transformação Agora é muito importante
compilar e salvar aqui. Ainda não precisamos definir uma transformação de spawn
padrão, porque ela vai chegar Nossa próxima etapa aqui, tudo o que precisamos fazer é criar essa variável,
compilá-la e salvá-la Agora, o motivo pelo qual
queremos compilá-lo e salvá-lo é para que possamos definir essa variável dentro do
nosso esquema de caracteres Vá até a planta do seu personagem em terceira
pessoa. E se você esqueceu
onde está,
aqui está onde ele está localizado
no seu navegador de conteúdo Bp, personagem em terceira pessoa. Agora, dentro daqui, vamos pular
para o nosso gráfico de eventos. E vamos clicar com o
botão direito do mouse em algum espaço vazio. Digite em play. Você pode ver que ele
já está sendo usado aqui para definir nosso contexto de
mapeamento de entrada. Você só pode ter um
desses dentro deste modelo. Poderíamos estender nosso script
aqui se quiséssemos. No entanto, só para deixar isso
um pouco mais limpo, o que vou
fazer é inserir um nó de sequência, manter pressionada a tecla S
e clicar com o botão esquerdo. E eu vou conectar
isso por aqui. E eu vou passar
isso por aqui. Vou usar essa área
aqui para reutilizar o
evento e começar a jogar. Faça com que pareça um
pouco mais limpo. Agora, o que vou
fazer é clicar com o botão
direito do mouse em algum espaço
vazio e digitar modo get game. E qual modo de jogo
eu quero obter? Vou sair
daqui e digitar elenco em
terceira pessoa em nosso modo de jogo em
terceira pessoa. Agora, a razão pela qual estou fazendo isso é porque em nosso modo de jogo em
terceira pessoa, acabamos de criar uma variável
chamada spawn transform E agora eu quero ser
capaz de definir isso. Então, se eu arrastar para fora
desse pino aqui, posso digitar set
spawn transform Então, basicamente, estamos
entrando nesse
modo
de jogo em terceira pessoa e dizendo, ei, você tem uma variável chamada spawn transform
dentro de você Eu quero ser capaz de definir isso. O que eu quero
definir isso também? Quero fazer com que nossos atores transformem nossos personagens em terceira
pessoa. Então, se eu clicar
com o botão direito do mouse em algum espaço vazio, vou digitar get
actor transform assim. Essencialmente, isso definirá nossa
variável de transformação de desova, localizada em nosso modo
de jogo, como o local em que nosso personagem aparece
inicialmente Para deixar isso claro,
vou clicar com o
botão esquerdo do mouse e arrastar essa torneira. A tecla C na minha
caixa de comentários definirá transformação de
geração padrão de
nossos personagens ao começar a jogar dessa forma Tudo bem, tem
mais uma coisa que eu quero
fazer aqui antes de
encerrarmos o vídeo. E isso é, queremos
criar uma nova variável aqui dentro do nosso personagem em terceira
pessoa. Então, vou clicar nesse botão de
adição aqui. E vou chamar
isso de nosso tamanho de Respawn. E vou definir
nosso tamanho de renascimento aqui, o tipo a ser um vetor Se eu compilar,
definirei os valores para isso no
painel de detalhes como
0,75 em todos os aspectos 0.7 5.0 0.75 Agora você deve
estar se perguntando, espere, por que eu quero
reaparecer nesse tamanho Novamente, vou
usar essa variável para determinar o tamanho do
reaparecimento de nossos personagens. O motivo pelo qual estou definindo
esses valores é porque nossos
componentes da cápsula estão alguns vídeos atrás. Definimos nossa escala padrão aqui para ser 0,75 em todos os aspectos Então, basicamente, estamos combinando
isso com essa variável. Tudo bem, agora concluímos nosso
trabalho
inicial no posto de Vamos
compilar e dizer isso. Agora também estamos em
condições de criar o esquema do ponto de verificação após a
aula Isso virá no próximo vídeo.
Nos vemos lá.
72. Blueprint de checkpoint: Tudo bem, bem-vindo de volta.
Uma pequena prévia aqui do que pretendemos
reunir neste vídeo Esse é o nosso plano
de checkpoint. Vamos chegar ao
ponto de reunir nossos componentes e definir
os detalhes para isso. E então
chamaremos isso de vídeo. Mas só queria
mostrar o que estamos buscando neste Agora, também é importante
observar que, à medida que analisamos isso, você não precisa
fazer com que o seu pareça exatamente como o meu parece aqui. Você pode brincar um
pouco com
o visual aqui em nossa
versão funcional do curso Vou criar nosso
novo plano de classe de ator
aqui dentro da pasta de diagramas de nossa
plataforma Vou clicar com o
botão direito do mouse aqui em alguma classe de
projeto de espaço vazio Esta será uma
aula de atores e eu chamarei esse ponto de verificação de sublinhados da BP Vamos
clicar na barra de espaço aqui para abri-la
com a selecionada. Dentro do nosso plano de
checkpoint, podemos ver nossa
rota de cena padrão, este ícone aqui Vamos continuar
adicionando os
componentes necessários e depois vamos voltar e definir os detalhes de
cada componente. O primeiro componente que
vamos tentar adicionar
aqui
será um colisor de caixas Basta procurar um colisor de caixas, vou dar um nome a essa caixa Esse nome vai ficar bem. Vamos usar
isso para detectar quando
nosso jogador sobrepõe
essa caixa a fim
de definir e salvar um ponto de desova em um lugar no mundo em
que queremos Tudo bem, anexado à nossa caixa. Portanto, certifique-se de
selecionar esse cara. Vamos adicionar
outro componente. Essa será uma
malha estática e esse será o ponto de articulação da
nossa bandeira, assim Agora vou adicionar várias
outras malhas estáticas aqui. Então, com isso selecionado, vou clicar com o
botão direito do mouse sobre isso. Vamos duplicar
isso imediatamente. Você pode ver o comando de tecla de
atalho para duplicar este. Vou chamar minha bandeira de bas, pressione enter com
isso destacado em azul. Mais uma vez eu posso fazer o controle
D. Este vai se chamar Arm. Então, com isso destacado, farei o controle D novamente. E esta
será chamada simplesmente de bandeira. Agora eu quero que minha bandeira seja
presa ao braço da minha bandeira. Então, vou clicar com o botão
esquerdo e arrastar isso para cima do braço da minha bandeira, para que você possa ver essa
relação de
vinculação por meio desse recuo ali Ok, em seguida, vou
voltar e selecionar minha caixa, porque quero adicionar mais
um componente aqui. Ao clicar em Adicionar, esse será
um componente de seta. E essa eu vou
renomear minha transformação Respawn. Essencialmente, isso apenas
definirá um ponto no
espaço em que
regeraremos o jogador Tudo bem, com todos os
nossos componentes prontos, vamos definir
os detalhes de cada um. E eu vou direto
para a lista aqui. Começando com nossa caixa,
vou definir a extensão da caixa, seja, qual será o tamanho
dessa caixa? O valor X vai ser 200, o valor y vai ser 200, o z vai ser 500. E vou
ampliar aqui para mostrar que esse tamanho
é um pouco maior. Vou definir a
espessura da linha aqui como cinco,
apenas para que essa
caixa seja mais fácil de ver quando a
colocarmos em nosso nível. E agora vou mover isso
para cima
também
na direção z, no local. Vou definir isso
para 500. Configure-o. E isso não vai parecer uma grande
diferença agora. Mas também vou mudar nossa rotação aqui
no z para 90. Agora, novamente, não vai
parecer muito, mas
ao girar
isso, ele também girará todos
os componentes conectados E precisaremos disso
para os próximos componentes. Agora, também é importante
observar aqui que você pode estender sua
caixa para ficar mais alta E talvez você queira fazer isso logo
no final,
porque só precisamos garantir que o jogador passe por essa área de
checkpoint Para garantir que
eles passem por isso, você pode querer que isso
se estenda até o céu. Ok, então com isso feito,
vamos seguir para o ponto de articulação
da
nossa bandeira. Selecione isso. Vou configurar a malha
estática imediatamente. Clicar nesta esfera de
material suspensa é
o que estou procurando. Essa malha estática deve existir em seu conteúdo
inicial Você pode ver isso na dica
de ferramenta ali mesmo. Material em si, escolha do
revendedor. Você pode decidir o que
quiser que seja. Mas vou definir o
meu como piso básico. Esse também é o material que existe no conteúdo inicial E com tudo isso feito,
vou reduzir isso. Eu quero reduzi-lo
uniformemente em x, y e z. Então, certificando-se de
ter essa verificação de bloqueio, vou fazer 0,5
no X e pressionar Enter E como isso está
bloqueado, ele
propagará essa alteração
para Y e Z. Isso tornará isso
um pouco menor Então eu vou mover
a localização disso
para baixo na direção Z, vou definir isso
para menos 400. Então, na direção x, vou definir isso
para menos 200. Isso só vai exagerar um pouco lá atrás. Ok, em seguida, vou selecionar
nossa base de bandeira para isso. Eu vou ter a
mesma partida estática. Vai ser
material, esfera, esfera. O material que vou
aplicar a esta também
é uma parede básica, embora eu queira que seja. Sim, essa
parede branca, do tamanho. Vamos definir a escala para isso. Vou desbloquear
minha escala porque não
vou fazer isso
uniformemente no X, vou usar 0,5,
no y vou usar dois E no z eu vou
usar dois também. Então, para a localização, vou definir a
localização z como menos 500. Colocando isso no x, vou empurrá-lo de
volta para menos 200. Então você pode ver que eu
tenho essa base que basicamente vai
cortar um pouco o chão. A parte inferior você
não vai ver, e esse será
essencialmente o nosso ponto de articulação. A bandeira vai girar para cima a partir desse ponto, ali mesmo Ok, então com isso feito,
vamos prosseguir e selecionar nosso
componente de braço de bandeira Próximo. A malha estática
que vamos
adicionar para esta será chamada S M underscore
pillar frame Novamente, estou usando essa malha
estática
porque ela é encontrada no conteúdo
inicial Você não precisa usar
este de forma exatamente simples. Estou usando porque
parece uma espécie de braço. Agora, vou mexer na escala e na localização
disso também Você poderia mudar
o material, vou deixar o material
assim agora. Mas você pode mudar isso
para ser o que quiser. Escala.
Vou colocar 0,5 no x, afinar um pouco, vou deixar y e z
1,1 para o local. Vou definir a
localização z para menos 390, como
no x. Preciso recuar um pouco, então vou usar
menos dois oh cinco para a rotação x. Vou definir a
rotação x para menos 90. E, em seguida, pressione Enter para
que isso seja virado para baixo. Em seguida, vamos pegar
nosso componente de bandeira aqui e definir
os detalhes para isso. Para a bagunça estática aqui, vou clicar
aqui e escolher
uma forma de pirâmide quádrupla com sublinhado Estou escolhendo este novamente porque está no
conteúdo de Stargard Vamos ter a forma de
um triângulo. O material aqui,
novamente, a escolha do revendedor. No entanto, vou
escolher a cor do vértice. Eu vou escolher
esse verde. Isso é encontrado no conteúdo
do motor. Se você não ver isso
mais uma vez , você pode clicar aqui. Clique nesse ícone de engrenagem verifique se o conteúdo
do mecanismo está ativado. É onde esse material
vive ou a localização disso. Vou definir a localização
Z para 350 na
ponta do nosso braço. Defina a localização X como dez, a
localização Y como menos dez. Mais uma vez, determinei todos esses parâmetros
com antecedência. A balança que vou
garantir está desbloqueada. Vou definir isso
para ser 0,2 1,2 a mais. Assim, vou definir
a rotação aqui para menos 90 no x. Assim, você pode ver que a
bandeira está virada para baixo. Quando isso finalmente se levantar, o braço da bandeira se
levantará e, como a bandeira
está presa ao braço da bandeira, ela aparecerá para o
passeio Tudo bem, por último, mas não menos importante, temos nossa transformação Respawn Novamente, isso
definirá um ponto no espaço em que queremos que nosso
personagem reapareça Para isso, vou
definir a localização para menos 400 no Z, para a rotação,
vou definir isso para menos 90 no Z também. Então, é um pouco difícil de
ver porque eu o
selecionei, então deixe-me realmente
clicar nele. Mas aí está nosso
componente de seta. A base desse componente de flecha é essencialmente onde
vamos
dizer ao nosso jogador que
reapareça nele. Ali mesmo. Ok, então com tudo isso feito, vou
continuar e salvar isso. E vamos seguir em frente e colocar
um desses em nosso nível. Só para termos uma
ideia de
como isso vai ficar aqui no meu navegador de conteúdo. Estamos adiando isso. Vou
levantá-la no ar,
tocar na tecla N e colocá-la
no chão Então,
isso é essencialmente o que vai parecer. E você pode ver que nosso jogador
estará no caminho certo para se sobrepor ao
navegar em nosso nível Tudo bem, começamos bem. Aqui estamos em posição de
começar nosso script de checkpoint
73. Script de checkpoint: Tudo bem, bem-vindo de
volta. Neste vídeo, vamos criar
o script para fazer
nossa bandeira virar para cima quando
nosso personagem se sobrepõe a essa caixa de
gatilho aqui Além de definir o ponto de
renascimento de nossos personagens em nosso plano de modo de
jogo Para fazer isso,
precisamos selecionar nosso componente de caixa e criar
um evento para isso. Poderíamos fazer isso
clicando com o botão direito do mouse, adicionando um evento. Mas eu gostaria de mostrar
diferentes métodos de fazer coisas com esse
componente selecionado. Entre no painel de detalhes. Role até o fim,
temos uma lista de eventos
que podemos adicionar. Vamos
começar um componente, Overlap. Clique nesse botão de adição. Isso nos levará
ao nosso gráfico de eventos. Está bem? Queremos verificar quem é o outro ator aqui. Poderíamos sair daqui e fazer um igual para pegar o personagem do jogador No entanto,
vou simplesmente sair
disso
e fazer
um elenco para um personagem em terceira
pessoa, que é o personagem
que estamos controlando. Essa é uma verificação simples
para garantir que
nosso personagem
em terceira pessoa esteja sobrepondo a Se for, o que
vamos fazer é então
obter um modo de jogo. Clique com o botão direito para obter o modo de jogo. Precisamos descobrir
qual modo de jogo. Então, vamos
sair disso e lançar para o modo de jogo, especificamente
nosso modo de
jogo em terceira pessoa, desta forma. E se for verdade que nosso personagem em
terceira pessoa está sobrepondo a caixa, entraremos em nosso jogo ou planta E vamos
definir spawn transform. Lembre-se de
que temos essa variável aqui chamada spawn transform Vamos
colocá-lo aqui. E para o que
vamos configurá-lo? Bem, vamos definir isso
para nossa transformação Respawn. Eu coloquei transformar, não transformar. Vamos falar duas vezes sobre isso, criar ou corrigir esse nome. Para transformar,
vamos arrastar isso para dentro. Vamos obter uma referência à nossa transformação
de respawn. Esse é o
componente de seta
aqui embaixo em nossa janela de exibição Estamos recebendo uma
referência a isso. Em seguida, vamos
sair daqui e digitar get world transform, get
world transform. Então, estamos essencialmente
dizendo, ei, a transformação mundial do
nosso ponto de renascimento
ali mesmo para o nosso Vamos definir isso à
medida que nosso spawn se transforma
assim que sobrepormos essa caixa nosso personagem em terceira pessoa Tudo bem, está
tudo bem. Depois de termos feito isso,
vamos fazer uma vez. Vou manter
pressionada a tecla e clicar com o botão
esquerdo para inserir
um único nó. O que queremos fazer uma vez? Bem, queremos reproduzir animação com nossa bandeira
aqui levantada. Para fazer isso,
vou usar uma linha do tempo. Então, volte ao nosso gráfico de eventos. Vou clicar com o botão direito do mouse e
pesquisar um nó da linha do tempo. Vou simplesmente
nomear essa bandeira rotativa. Vamos nos livrar da nossa atualização do
comando del aqui. Depois de fazer
isso, vamos
jogar desde o início. Agora, nossa linha do tempo aqui. Vamos pular para
dentro daqui. Vamos definir
isso para ser muito curto. Vai ser um
décimo de segundo, 0,1 será a
duração da nossa linha do Aqui vamos
adicionar uma pista flutuante. Então clique em faixa, em Adicionar faixa flutuante. Vou simplesmente chamar essa
bandeira de alfa com o tempo. Você verá por que estou chamando
isso um pouquinho assim. Vai fazer um
pouco mais de sentido quando eu mostrar em qual nó
conectar isso. Agora, aqui na nossa linha do tempo, vou clicar com o botão direito do mouse
e adicionar uma chave E então vou clicar com o botão
direito do mouse novamente e adicionar uma segunda chave. Agora vou selecionar
minha primeira chave aqui. Com a primeira chave selecionada, vou definir o
tempo como zero o valor como zero também. Para minha segunda chave aqui, vou definir o tempo 0,1 e o valor como um. Ele vai pular
do topo aqui. Então, vou clicar nessas
duas setas para enquadrá-las. Meu primeiro está definido como 0,0
Meu segundo quadro-chave está definido para um tempo de 0,1, que
corresponde ao comprimento da minha linha do tempo e
ao valor de um Agora, a razão pela qual definimos isso dessa forma é porque
aqui em nosso gráfico de eventos,
nosso sinalizador alfa ao longo do tempo agora está sendo gerado por nossa linha do tempo Vamos usar essa
saída para conectar um nó rotador Lp com o
botão direito nó rotador Lp com o
botão Agora, a forma como esse nó
funciona é quando A é zero, estaremos
100% em uma rotação. Quando B for um, estaremos em outra
rotação, alfa é zero. Estaremos
totalmente em A. Quando alfa for um, estaremos em B.
E em algum lugar
intermediário, estaremos em um ângulo de 45 graus. Então, vamos usar isso para
determinar a rotação do nosso braço
de bandeira. Aqui, deixe-me mostrar basicamente o que
pretendemos fazer em nossa janela de visualização Temos esse braço de bandeira e
é isso que vamos
girar Deixe-me trazer
nossa rotação aqui. Pressionando a rotação. Nossa
rotação para este braço de bandeira, nossa rotação A, será
a rotação que vemos
aqui em nossa janela de exibição Agora, nossa rotação
será totalmente ascendente assim. Quando nosso valor alfa for um, estaremos
nessa posição aqui. Agora, quando nosso valor alfa estiver em 0,5, basicamente dividiremos a diferença Então,
será em um
ângulo de 45 graus . Quando alfa é zero, estamos aqui quando alfa é um. Estamos aqui quando o alfa é 0,5. Estamos
no meio do caminho É assim que isso
vai funcionar, certo? Vamos voltar ao
nosso gráfico de eventos agora. É que precisamos
de algumas variáveis para manter nossas várias rotações
desejadas Para isso que vou escrever,
clique em nosso valor aqui. Vamos promover
isso para uma variável. Isso criará um tipo de variável
rotadora. Agora preciso nos dar um
nome melhor do que a. Vou chamar essa bandeira de girar Comece com isso selecionado. Vou seguir em frente e fazer o controle
D. Para duplicar isso, vou fazer minha bandeira girar a E eu vou inserir
isso no valor. Agora eu preciso compilar
isso para definir um valor padrão aqui Agora, obviamente, agora
ambos estão definidos 00.0. Agora, se eu for até minha janela de visualização e pegar meu braço de bandeira e
girá-lo para cima dessa forma, você pode ver que
meus valores de rotação são zeros Quando estiver assim, meus valores de rotação são negativos 900,0. Vou
copiar esses valores
aqui, clique com o botão direito Quero que esse seja
meu valor inicial. Eu vou vir aqui
embaixo braço
da bandeira. Gire, comece Vou clicar com o botão direito do mouse e pagar os valores das habilidades aqui porque minha rotação
final desejada será 00,0. Vou
deixar isso Voltando ao meu gráfico de
eventos aqui, preciso dizer ao meu braço de bandeira vamos arrastar e soltar
uma referência a isso em nosso gráfico de que é o item que
eu quero girar Então, vou
sair disso e digitar rotação relativa definida. À medida que nossa linha do tempo está sendo atualizada, atualizaremos a
rotação do nosso braço de bandeira. Para qual rotação
queremos configurá-lo? Bem, queremos começar aqui
quando nosso alfa estiver em zero. No início da nossa linha
do tempo, o alfa está em zero E então, ao
longo de 0,1 segundos, esse valor
de saída mudará de
0 a 1 quando estivermos em zero Vai ser essa rotação. Quando estivermos em um,
ou seja, no final
dessa linha do tempo, estaremos
nessa rotação. E isso vai
acontecer ao longo
de 0,1 segundos. Esse será o nosso roteiro para
fazer nossa bandeira girar para cima. Então, o que precisamos fazer é
adicionar um pouco de flash, alguns efeitos para quando
terminarmos essa rotação da bandeira. Vamos construir a partir
desse pino acabado aqui. Para isso, vou me
arrastar para uma peça de teatro. Sound Two D. Vou
tirar isso
desse acabamento para que você possa ver para
onde esse fio
vai para a peça. Soe novamente, escolha do Dealer. Aqui, eu vou
fazer Enter Simulate. Esse é um som que deveria
existir no conteúdo do seu motor. Então, você pode clicar nessa engrenagem, verificar se
tem o conteúdo do motor, mas é isso que eu
vou escolher. E então eu vou
sair daqui e vou criar um sistema de desova no local O sistema é um sistema de
partículas do Niágara. Agora, para o meu modelo aqui, vou escolher
essa explosão radial que
existe naquele caminho específico Você também pode criar um emissor de spawn
no local. Agora, para essa
partícula em particular, ela é bem genérica. Não é muito chamativo. Então, vou
aumentá-lo muito para
101010 na escala 101010 na Agora eu preciso alimentar
esse local. Eu tenho uma localização
na minha que vou arrastar na transformação Respawn Eu vou sair daqui. Eu vou dizer,
obtenha a localização mundial. Na verdade, eu quero compensar
isso um pouco. Vou fazer isso,
tocar no botão de adição para que eu
possa adicionar algo a isso. E eu vou compensar isso
em 200 na direção z. Esse será o local
onde esse sistema será gerado. Vou clicar com o botão esquerdo e
arrastar esse toque na tecla C. Vou dizer que
esta é minha peça FX e VX. E então,
aqui em cima, é aqui que
estamos fazendo a rotação
da nossa própria bandeira. Vou deixar isso sem comentários, mas vou mudar essa caixa de
comentários aqui para preta Tudo bem, então vou
tentar enquadrar isso aqui em algumas vistas. Então, vou até
a primeira vez aqui,
caso você queira pausar o vídeo aqui para ver o que criamos Mais uma vez, esta é a
nossa caixa ali mesmo. Essa transformação de desova. Conseguimos isso chegando aqui e procurando
por spawn Essa é uma variável
que vive dentro do nosso modo de jogo em terceira pessoa. Então aqui está a segunda
parte do nosso roteiro. Caso você queira
pausar o vídeo aqui, focaremos apenas
nesta parte superior, a rotação da
bandeira aqui, indo de 00 a 0,11
. Além disso, quando terminarmos, esses são os efeitos que
vamos reproduzir ali mesmo Ok, obviamente isso ainda não
vai funcionar totalmente. Ainda temos que trabalhar na recriação, na geração do personagem em si
e em fazer com que o
script Mas, no mínimo, devemos
ser capazes de compilar isso, sobrepor essa
caixa específica ao nosso personagem e ver se a bandeira vira para cima e
ver se vemos alguns efeitos E veja alguns efeitos, e aqui estão alguns
efeitos. Então, vamos lá. Eu vou entrar e jogar. Tenho meu posto de controle lá, tente sobrepor E aqui vamos, a bandeira se ergue, vemos um pouco ali,
aqui, um pouco de jazz E isso parece estar
funcionando conforme o esperado. Vou tentar sobrepor
isso mais uma vez. Você pode ver que estamos
fazendo esse efeito apenas uma vez. E está tudo muito bem. Tudo bem, pessoal, estamos em uma boa posição
agora para trabalhar em nosso script de Respawn, que virá em seguida em nosso modo
de jogo, uma boa posição
agora para trabalhar
em nosso script de Respawn, que
virá em seguida em nosso modo
de jogo,
Blueprint. Nos vemos lá.
74. Roteiro de repawn no modo de jogo: Bem-vindo de volta. Agora que temos um plano de ponto de verificação
no qual estamos definindo uma variável de transformação de geração
dentro do nosso esquema de modo de jogo Vamos mergulhar
em nosso próprio modo de
jogo em terceira pessoa para
configurar nosso script de Respawn Para isso, vamos
mergulhar em nosso navegador de conteúdo. E vou começar no
meu modo de jogo em terceira pessoa. Mas eu também vou
abrir meu personagem em terceira pessoa
imediatamente. Porque vou
apontar algo dentro nosso
plano de personagem em terceira pessoa ao longo do caminho Então vá em frente e
abra os dois aqui em nosso modo de jogo em
terceira pessoa BP Começaremos
no gráfico de eventos clicando com o botão
direito do mouse e procurando
um nodo Begin play. Mais uma vez, isso vai
disparar quando começarmos a jogar. E o que eu quero
fazer fora do Begin Play? Bem, eu vou
clicar, vou pegar
o personagem do jogador. E eu vou me arrastar para
fora desse nó. E vamos escalar um personagem em
terceira pessoa. E você vai ver o
porquê aqui em apenas um momento. Agora vou fazer a
transição daqui no
meu plano de modo de jogo
para meu personagem em terceira pessoa Agora, dentro do nosso personagem em terceira
pessoa, se você clicar nesse ícone de engrenagem
no painel do meu projeto, mostrarei variáveis herdadas Estou mostrando todas essas
várias coisas aqui. Se eu desligar isso, você
não verá nenhum
despachante de eventos aqui embaixo mostrando
variáveis herdadas Estou chamando sua
atenção para
esta seção de despachantes de eventos A razão pela qual estou chamando sua
atenção aqui é se estivermos no jogo de despacho de
eventos,
temos esse
despachante de eventos para
quando nosso personagem for destruído temos esse
despachante de eventos para quando nosso personagem Quando nosso personagem é destruído, podemos pedir que
algo mais
aconteça em outro plano
usando um despachante de eventos Eu não criei esse despachante de eventos
em particular. Isso vem junto com nossos pais da classe de
personagens. A razão pela qual estou apontando
isso é porque isso existe dentro do nosso personagem em
terceira pessoa. Podemos fazer algo acontecer
dentro de outras plantas. Quando nosso personagem em terceira pessoa
é destruído, eles morrem. Agora vou voltar ao
nosso modo de jogo em terceira pessoa. Vou sair do nosso personagem de terceira pessoa do
SBP e vou
procurar destruídos E eu vou trazer uma placa
de destruído. Isso
trará dois nós. O que isso traz
é um evento personalizado. E vou deixar esse
evento personalizado com o nome atual evento
destruído, bem
como esse nó de ligação Essencialmente, o que estamos fazendo aqui é, ao começar a jogar, entrar em nosso
personagem em terceira pessoa e dizer:
ei, quando você
for destruído, vamos ouvir quando isso acontecer. Quando isso acontecer
, vamos disparar
com esse pino. Este evento, comece a jogar
e vincular esse evento a esse evento não destruído para nosso
personagem em terceira pessoa é basicamente dizer: ouça isso quando isso acontecer em nosso personagem em
terceira pessoa E quando isso acontece, então esse bebê vai embora aqui. Podemos usar isso para o
respawn desejado. Se continuarmos com isso,
podemos simplesmente
pesquisar o ator de spawn da classe O ator que gostaríamos de
responder é essencialmente
nós mesmos, outro personagem em terceira pessoa. Aqui na aula, vou
digitar em terceira pessoa, estou procurando um personagem em terceira
pessoa , é
claro, preciso especificar onde gostaria de responder? Bem, adivinhe. Além desse modo
de jogo em terceira pessoa, criamos essa transformação de desova para conectá-la à nossa
transformação de geração aqui Observe que estamos
preenchendo os valores
dessa variável de dentro do nosso ponto de
verificação de BP. Quando sobrepomos essa caixa, é aqui que, na verdade, definimos
as coordenadas para
nossa transformação de spawn Estamos configurando para
a transformação Respawn, nosso ponto de verificação aqui Ótimo. Vamos voltar ao
nosso modo de jogo em terceira pessoa. Está tudo bem, mas isso só funcionaria
na primeira vez. E queremos fazer isso para que
esse sistema Respawn possa funcionar se morrermos de novo e de novo
e de novo E também há
algumas outras coisas que precisamos cuidar, sendo
a primeira nosso personagem em
terceira pessoa. Quando eles desovam, queremos garantir que
seu tamanho seja pequeno Queremos que eles estejam nessa
escala de 0,75 para nosso componente de cápsula Para garantir que isso
volte aqui em nosso modo de jogo, vou retirar
desse valor de retorno
depois de renascermos,
um personagem em terceira pessoa E vou digitar o componente
da cápsula. Vamos pegar
o componente da cápsula e depois vou
sair daqui. E também vou
encontrar o tamanho do respawn,
nossa variável de tamanho de respawn que existe dentro do nosso personagem em terceira
pessoa Estamos falando dessa
variável aqui, que é definida como 0,75
em todos os aspectos Agora, o que vamos
fazer é retirar nosso
componente de cápsula e eu vou
dizer definir a escala mundial três D. E então vou
inserir nosso tamanho de resposta, que é definido como 0,75
em toda a linha, para
garantir que
nosso componente Caple seja de 0,75
em toda a Essencialmente, nosso personagem será desse tamanho pequeno. OK. Então essa é a primeira
coisa que precisamos fazer. A próxima coisa que precisamos
fazer é garantir
que realmente ganhemos a posse, algum controle sobre
esse personagem. Para fazer isso, vou escrever
clique em algum espaço vazio. Obter o controle
do player é a primeira nota que
vou procurar. Então eu vou sair
disso e digitar possessão. Com essa função de posse, precisamos especificar não
apenas o controlador, mas também qual peão
queremos possuir Bem, podemos
simplesmente sair do
nosso personagem de terceira pessoa
aqui que estamos gerando Conecte-o ao nosso peão aqui. E então vou clicar duas vezes
nesse fio algumas
vezes apenas para inserir
alguns nós de redirecionamento para deixar tudo
bonito Ok, está tudo bem, mas dê uma
olhada em nossa configuração atual. Isso só funcionará
na primeira vez. Então, ao começar a jogar, estamos basicamente dizendo, ei, escute quando nosso personagem em terceira pessoa for destruído. E quando eles forem destruídos, na verdade
geraremos um personagem em terceira pessoa
e os possuiremos No entanto, se
morrermos, não teremos
como ouvir esse evento
acontecer novamente. Então, como podemos remediar
essa situação? Bem, o que podemos
fazer aqui é
clicar com o botão direito em algum
espaço vazio aqui em cima. Vou digitar
eventos personalizados. Vou chamar isso de Respawn e vou conectá-lo exatamente no mesmo local em que
nosso evento começa a Play Basicamente, dizendo olá, vamos
ouvir mais uma vez aquele despachante de eventos destruído em nosso personagem em terceira pessoa No final, depois
de criarmos o evento personalizado de
respawn, podemos arrastar para fora daqui
e digitar Essencialmente, o que
estamos fazendo aqui é começar a jogar na
primeira vez ouvimos
esse evento destruído. E, de fato
, isso surgirá em um novo personagem em terceira pessoa
que poderemos controlar Então, estamos essencialmente dizendo, sim, a última coisa. Vamos ouvir
esse evento não destruído acontecer mais uma vez. Para que possamos sempre
ouvir quando
nosso personagem é destruído para que possamos reaparecê-lo Ok, vamos
compilar isso e salvar. E deixe-me
enquadrar isso aqui caso você queira fazer uma
captura Veja exatamente o que fizemos. Vamos entrar e
jogar aqui em apenas um momento. Mas para realmente testar isso, preciso ter certeza de que
temos algum meio de
nos matar aqui
em nosso editor de níveis. Deixe-me ter certeza de que temos alguns
braços flamejantes aqui. Então isso deve nos matar em
breve , entrando e brincando Tudo bem, eu vou atravessar esse posto de
controle aqui mesmo Definimos nosso ponto de respawn. Deixe-me ir em frente e me
deparar com um braço flamejante. Aqui eu morri
e, como você pode ver, respondo exatamente
onde deveria, parece estar funcionando
como desejado. Muito bem, pessoal. Agora temos um ponto de verificação e um
sistema de resposta em funcionamento Vejo todos vocês no próximo vídeo.
75. Sequência de morte do jogador #1: Tudo bem, bem-vindos de
volta a todos. No decorrer dos
próximos vídeos, trabalharemos na criação uma sequência de morte de jogadores. Será
aí que nosso jogador será jogado no ar,
cairá pelo mundo e
responderá no posto Também
trabalharemos na criação um risco de morte instantânea neste segmento
do curso Para que possamos
cair em um buraco como esse, morrer e depois
voltar para aquele posto de controle Mas vamos
começar criando a sequência
de morte do jogador. Tudo bem, aqui na nossa versão de
trabalho do projeto, vamos começar
colocando um script dentro do nosso personagem de terceira
pessoa da BP Então, encontre o caminho para a pasta de plantas em terceira
pessoa. Aí está nosso personagem de terceira
pessoa da BP. Clique duas vezes nesse
cara para abri-lo e encontrar o caminho até
o gráfico do evento. Já temos muitos
roteiros aqui. Vou apenas aumentar o
zoom com a roda de rolagem e encontrar algum espaço vazio talvez nesta região. Vou aumentar o zoom
e
começar criando um
evento personalizado. Clique com o botão direito. Vamos
digitar evento personalizado e vamos chamar
esse evento personalizado. Deixe-me ampliar ainda mais. Mantendo pressionado o controle
e aumentando o zoom. Vou dizer que esse jogador morre. Quando esse
evento personalizado for convocado, jogaremos
uma sequência de morte. Agora, não quero ter que esperar
até encontrar um inimigo ou cair em um buraco para iniciar esse evento Eu quero ser capaz de
acionar isso no editor. Então, com esse evento personalizado selecionado
no painel de detalhes aqui, eu tenho essa
caixa de seleção chamada Call in Editor, qual, se
eu marcar isso, farei com que
eu possa convocar manualmente esse evento personalizado para iniciar
enquanto eu estiver jogando Chegaremos a isso
daqui a pouco. Essa é uma maneira muito fácil que nos permitirá testar essa funcionalidade
sem precisar encontrar aquele inimigo ou
cair
em um pip. Ok, a próxima coisa que
vamos fazer aqui é
criar uma função. Podemos criar uma função
no painel my blueprint. Funções: clique nesse
botão de adição para criar uma função. E vamos criar uma
função chamada destroy a x. Quando criamos essa função, abrimos uma nova guia na parte superior aqui, na qual podemos adicionar
a funcionalidade desejada dentro daqui. A primeira coisa
que vou fazer quando essa função for chamada é sair
daqui e digitar play. Sound Two D, o som que vamos
tocar é o que Mario fez. Parece que vou fazer Mario morrer. Depois disso,
clicaremos com o
botão direito do mouse em obter o personagem do jogador. Se morremos, não queremos mais que
as entradas sejam
registradas. Então, eu também vou clicar com o botão direito do mouse e obter o controle do jogador, obter o personagem do jogador,
obter o controle do jogador. E se eu sair do meu controle
get player, vou digitar a entrada
de desativação. Agora, observe que, se você fez
o que acabei de fazer aqui, ele o
conectará automaticamente ao alvo. Na verdade, queremos
mover esse controle
do player para baixo até a entrada do controlador do player para manter
pressionado o controle e clicar com o botão esquerdo. E certifique-se de conectá-lo ao
controle do jogador e colocar o personagem do
jogador como
alvo. Ok, então jogue. Som Vamos
desativar a entrada. A próxima coisa que
vamos fazer é sair daqui e
gerar o emissor no local Novamente, você pode criar um
sistema de desova no local se for
um sistema de partículas do Niágara
que você gostaria Para isso, vou usar a explosão antiga encontrada
no conteúdo inicial Mas, novamente, na escolha do revendedor, você pode adicionar o que quiser. Vou aumentar isso para me
fazer sair
em uma chama de glória, aumentando para 3,3
em todos os aspectos Preciso fornecer um local para isso. Onde eu gostaria de
gerar essa explosão? Bem, eu posso arrastar para fora do
meu personagem para obter a localização do ator. Esse será o local onde eu quero aparecer
nesse efeito de partícula Ok, ainda não terminamos,
então
vou segurar o botão direito do mouse e
dar uma olhada um pouco. A próxima coisa que eu quero
fazer é trazer uma referência ao componente de
movimento do meu personagem. Clique com o botão esquerdo e arraste. E então eu vou
sair disso e digitar desativar Essencialmente, se
eu morrer, quero parar imediatamente. E isso garantirá
que todo movimento seja interrompido. Além disso, quero trazer uma referência
ao componente da minha cápsula
aqui. Arraste e solte isso. Então vamos
sair disso e definir a colisão. O nó é chamado de Definir
colisão ativada. Quero ter certeza de que
não há colisão, para que meu personagem
simplesmente passe por tudo Então eu vou
trazer minha bagunça
Re , que é o próprio manequim
. Arraste isso para dentro. Então eu vou
arrastar isso e vou digitar uma animação. Então, para isso, posso inserir
uma nova animação para jogar. Se eu clicar nesse menu suspenso, haverá um loop de queda. Você pode ver o
diretório ali mesmo. Está no jogo, personagens,
manequins, animações, muitos.
Isso é. Viu o que isso parece?
Se eu clicar nisso, é mais ou menos esse tipo de coisa, você sabe,
ei, eu estou caindo. Achei que
esse seria muito bom. Mas, novamente, a escolha do dealer aqui que
você pode escolher a
animação que quiser jogar Você pode configurar isso para ser
repetido, se quiser. E essa será a nossa função que vamos chamar
aqui daqui a pouco. Então, toda essa funcionalidade agora
está armazenada em uma função que,
se chamarmos essa função, basicamente
chamará muitas outras funções para que aconteçam.
Meio útil, eu acho Ok, em seguida,
em nosso painel de plantas aqui, vamos criar nosso próprio despachante de eventos,
aqui Então clique neste botão de adição
e vamos nomear esse R inicia a sequência de morte. Tudo bem, então isso é criado em nossa
área de expedição de eventos, aqui embaixo. Agora, com um despachante de eventos, você convoca o evento
e, em seguida, qualquer outro plano
que esteja
atento a esse evento pode Dessa forma, os planos de
recebimento que estão ouvindo
quando esse evento acontece parecidos com os
assinantes que esperam ser
notificados quando sua celebridade
ou atleta
favorito envia um tweet. Os notificados quando sua celebridade
ou atleta
favorito planos de
inscrição, que estão ouvindo que
esse evento ocorra, podem então reagir de acordo Ou seja, eles podem executar
seu próprio script em resposta a esse evento
que acabou de ocorrer. Agora, isso entrará
em ação em breve, quando notificarmos nosso bloco para ficar atento
quando esse evento ocorrer. Ok, com isso, o jogador inicia Death Sequence Event
Dispatcher no local Agora podemos voltar
ao nosso gráfico de eventos. Essencialmente, saia
dessa guia de funções e podemos começar a criar, a partir da morte de nosso jogador, um evento personalizado. Então, a primeira coisa que
vou fazer é quando nosso jogador morrer,
quando isso for chamado, vamos dizer ao
nosso ator de destruição FX, essa função
aqui deve ser chamada. A próxima coisa que
vamos fazer é arrastar nosso despachante de
eventos aqui, clicar com o botão
esquerdo e arrastá-lo para dentro clicar com o botão
esquerdo e arrastá-lo E então você vai
ter esse pequeno submenu. Queremos chamar isso de
Event Dispatcher. terá
esse pequeno
ícone de envelope Novamente, terá
esse pequeno
ícone de envelope, que basicamente enviará
um Tweet para
qualquer outra planta
que esteja ouvindo esse determinado evento Tudo bem, e então o que
queremos fazer aqui, apenas segurar o botão
direito do mouse e continuar ofegando um pouco, é clicar com o botão direito do mouse
em algum espaço vazio aqui E eu vou fazer com que o ator
se transforme. Qual ator será, essencialmente
nosso personagem em terceira pessoa. Queremos saber onde esse ator está localizado e rotacionado
no mundo. E a razão pela qual
quero obter isso é porque quero clicar com o botão direito nesse valor de retorno e vou promovê-lo
a uma variável. Essa variável será
chamada de start death transform. Agora vamos usar isso
um pouco mais tarde
neste script,
depois de criarmos uma linha do tempo a partir da qual começaremos nossa sequência de
morte Esse efeito de queda. Ok, a próxima coisa
que vamos fazer é trazer
uma referência à nossa malha. Novamente, esse
será nosso manequim aqui. Arraste e solte isso no painel de componentes. E então vamos nos
afastar disso e nos separar dos componentes Basicamente, isso separará
essa malha dos componentes maiores
da cápsula do
personagem em terceira pessoa, para que ela possa seguir
essas várias regras Vamos mudar
tudo isso para manter o mundo. E essa
será a parte inicial do nosso script
de sequência de morte. Aqui estamos
longe de terminar aqui. Em seguida, precisamos adicionar um cronograma. Mas vamos
ligar para esse vídeo e depois continuar
na segunda parte. Você pode prosseguir,
compilar e salvar para ter
certeza de que salvou
seu progresso aqui E então veremos todos
vocês no próximo vídeo, onde
terminaremos isso.
76. Sequência de morte do jogador #2: Bem-vindo de volta para a segunda parte da
nossa sequência de morte de jogadores. Vamos voltar ao
nosso plano de
personagem em terceira pessoa Foi aqui que paramos
no último vídeo com nossa função separada
do componente Agora vamos
adicionar uma linha do tempo, clique com
o botão direito em algum espaço vazio. Vamos adicionar uma linha do
tempo, adicionar uma linha do tempo. Vou nomear essa
linha do tempo como minha animação de morte. E eu vou
conectar isso imediatamente. Vou jogar isso desde o início. Realmente não importa como vamos ter tudo
isso conectado. Se for jogado pelo jogador desde o início,
jogaremos do início. Em seguida, vamos clicar duas vezes
nele para abri-lo. Então, acabamos de abrir uma
nova guia na parte superior aqui para que possamos personalizar nossa animação aqui,
nossa linha do tempo. Isso vai
ser uma pista flutuante. Então, vamos
adicionar uma pista flutuante. Vou nomear esse movimento. Vou definir minha duração
total aqui para ser de 1,5 segundos. Em seguida, vou adicionar
três quadros-chave. Então, vou manter pressionada
a tecla shift e clicar com o botão esquerdo uma vez duas e três vezes
nesse padrão ali mesmo. E então vou
definir os valores para
cada um deles. Vou selecionar este primeiro, o tempo será zero e o
valor será zero. O segundo aqui
eu vou selecionar, o tempo vai ser 0,5 segundos e o valor
vai ser 500. E então vou
selecionar meu último quadro-chave,
aqui mesmo, o
tempo será de 1,5 segundos e o valor será
negativo 1.000. Novamente, ele sairá do gráfico. Então, se você clicar
nessas teclas de seta, você deve
enquadrá-las assim. Estou apenas usando a
roda de rolagem para voltar a ampliar. Agora, esse é um gráfico
um pouco áspero. É ****, ****. Eu quero que isso seja curvo, para que eu possa curvar isso
clicando com o botão esquerdo e arrastando todos
esses vários pontos E então eu posso clicar com o botão direito em qualquer ponto e fazer a interpolação
automática Isso criará esse tipo de curva
suave como essa. Agora, essa deveria ser
nossa animação de malhas. Então, essencialmente, sendo
jogado no ar e
depois caindo. Depois de adicionarmos essa faixa, podemos sair de
nossa animação de morte, nossa
linha do tempo aqui Volte para o nosso gráfico de eventos. Agora vemos essa saída de movimento. E, essencialmente,
vamos usar essa saída de movimento para adicionar. Vamos fazer a adição de
um operador a um determinado local z. Agora vamos trazer uma referência à nossa transformação
inicial de morte. Trazendo isso, nós
vamos pegar isso. Lembre-se de que, no início do
script, quando
morrermos, basicamente
obteremos nossa localização atual quando morrermos e
salvá-la em uma variável. E a razão pela qual estamos salvando esse conjunto de coordenadas,
se você quiser, dentro dessa variável
é para que possamos usá-lo aqui como uma posição inicial a partir da qual começar
essa animação
de morte dessa transformação de início de
morte. Vou me
arrastar e dizer pausa. A razão pela qual estamos abrindo isso
é porque, na verdade,
só nos preocupamos com as informações de
localização. Então, vou clicar com o botão esquerdo
e arrastar para fora daqui, vamos dividir
esse vetor em seus componentes x, y e z. Essencialmente,
adicionaremos o Z de nossa transformação de profundidade inicial à saída
de valor de nossa linha do Mais uma vez, nosso cronograma
mudará. Esse valor é emitido
de zero a 500, meio segundo
e depois reduzido para menos 1.000 em 1,5 segundos. Ele
alterará esse valor 1,5 segundo, conforme
acabamos de mencionar aqui Ok, tudo isso
será necessário porque, em
última análise,
usaremos
isso para nos conectarmos a localização relativa definida
e a
um nó de rotação. Queremos definir a localização
relativa e a rotação da nossa malha aqui. Vamos arrastar isso para o nosso gráfico. Aí está nossa malha.
Arraste para fora daqui. Defina a localização e a
rotação relativas à medida que
atualizamos nossa linha do tempo. Aqui mesmo. Nós vamos
fluir para lá. E a nova localização que
vamos arrastar para fora daqui, vamos criar um vetor. Faça vetor. manter os valores x e y da nossa posição inicial. Está tudo bem. Só queremos
mudar a posição z. O resultado dessa
matemática, aqui, basicamente enviará nossa malha
para o ar e depois
cairá de volta para baixo desse jeito. Agora, depois
desse pequeno script aqui, vou trazer um
nó de atraso. Vou atrasar
por 2,5 segundos. 2.5 então o que eu vou
fazer é sair
daqui e dizer ator. Ou seja, nosso personagem em terceira
pessoa. Agora, por que 2,5 segundos? Bem, por meio de alguns testes, eu basicamente descobri que
era tempo suficiente para garantir que nosso player
caísse da tela. Então, esse
será essencialmente o nosso roteiro. E vou tentar
retroceder
aqui para que você possa pausar
o vídeo quando necessário para ver tudo o que
reunimos Em pouco tempo, podemos tentar chamar esse evento personalizado
manualmente. Vamos compilar
e salvar aqui apenas para
garantir que tudo esteja bem Para testar isso, vou
voltar ao meu editor de
níveis aqui. Vou clicar nesses três pontos aqui no editor
de níveis E vou mudar de uma nova janela
de
reprodução do editor para a janela de visualização
selecionada Agora, a razão pela qual
vou fazer isso é porque agora posso
jogar na minha janela de visualização, mas também vejo meu
esboço Qualquer ator nessa
cor laranja amarelada. Eles foram gerados automaticamente
aqui no início do jogo. Eles não existiam até
jogarmos o jogo. Isso vai me permitir selecionar meu personagem em terceira
pessoa. E você pode ver que eu poderia
clicar aqui e me
mover para recuperar
o cursor do mouse. É apenas uma tecla shift e
uma que trará o cursor do mouse de volta
com o selecionado. Se você pesquisar um jogador no painel de detalhes aqui como acabou de ver
que eu tinha feito antes, posso descobrir que meu jogador morre. O evento personalizado agora está aqui exposto no editor
para eu ligar. Isso é ótimo para fins de
teste, então tudo que eu preciso fazer é
clicar nele e você
verá meu jogador jogar
aquela sequência de morte. Ótimo para testes. Aqui vamos nós. Então, fique de olho nesse
personagem enquanto eu
clico nele. Lá vamos nós. personagem voa para
cima, desce e está funcionando conforme o
esperado. Isso é ótimo. Mas agora vamos fazer com que
isso realmente funcione dentro de um script relevante porque isso foi apenas
para fins de teste. Agora, se voltarmos ao
nosso
personagem em terceira pessoa e
encontrarmos nosso roteiro para
ajustar os pontos de vida E vou entrar meu
painel de resultados de busca aqui. Eu poderia encontrá-lo aqui dando uma
olhada no meu gráfico. Mas só para mostrar
coisas diferentes que você pode fazer aqui, na parte superior eu tenho a janela, eu tenho os resultados de busca ativados. Então, se eu simplesmente digitar ajuste, pressionar Pontos e pressionar Enter, você poderá ver os resultados que obtenho. E se eu
clicar duas vezes nele, posso encontrar meu script de ajuste de
pontos de vida. Isso vai me levar
para aquele evento personalizado. Agora, o que eu quero fazer
é aparecer nesta parte do meu gráfico. Agora, o que estávamos fazendo aqui é destruir nosso personagem em terceira pessoa, essencialmente imediatamente quando eles ficaram sem pontos de vida O que eu quero
fazer é me livrar disso aqui no topo
desse verdadeiro galho.
Exclua isso. Em vez disso, posso chamar essa função de destruição do
ator FX. Desculpe, não é isso
que queremos fazer. Queremos chamar nosso
player dies de evento personalizado. Deixe-me sair daqui, digite o jogador morre. Isso
chamará esse evento personalizado essencialmente quando ficarmos
sem pontos de vida. Quando isso for verdade, se eu clicar
duas vezes
nisso, vou direto
para onde iniciaremos esse evento personalizado. E dentro da nossa função de ator de
destruição, vamos fazer todos
esses efeitos. Eu apenas clico duas vezes nesse
nó e depois pulo de volta. Vamos analisar
esse pequeno roteiro. Eventualmente,
usaremos esse Event Dispatcher, jogador inicia a sequência de morte Vamos separar nossa malha. Vamos reproduzir
aquela animação de morte. Vamos voar para
o ar e voltar para baixo. E depois de decorridos esses 2,5
segundos, destruiremos nosso ator conhecendo nosso personagem em
terceira pessoa Vamos
compilar isso,
salvar e testar. E isso novamente deve acontecer
quando nos deparamos com, digamos, um inimigo gumba, ou o
risco de nossa arma de fogo bastará Deixe-me dar uma olhada no
meu gumba aqui em cima. Boom, eu estou morto. Estou
ficando sem pontos de vida. Na verdade, eu respondi
no meu posto de controle. Ótimo, tudo está funcionando
como pretendido. Bem feito. Agora temos a sequência de
morte de um jogador intacta. Nos vemos a todos
no próximo vídeo.
77. Sequência de morte e o P Block: Tudo bem, ao longo
dos dois últimos vídeos, montamos esse
script de morte do jogador para que nosso jogador
pudesse reproduzir uma sequência de morte. E tudo isso foi feito dentro do nosso personagem em terceira pessoa. Como parte do script, também
incluímos uma chamada de despachante de eventos
chamada player death
start sequence Para que pudéssemos enviar uma mensagem qualquer outra planta que
precisasse saber que nosso
jogador morreu Agora, dentro de qualquer
outro plano, podemos responder adequadamente Faça acontecer algo que
gostaríamos que acontecesse. Isso é apenas
enviar a mensagem. Agora, precisamos configurar em outro plano a recepção
dessa mensagem e uma
resposta adequada E, na verdade, queremos configurar
isso dentro do nosso bloco. Eu tenho um bloco configurado no meu nível e, como você sabe,
quando você parar com
isso, ele transformará alguns dos
meus blocos aqui em moedas. E o que precisamos fazer é
enviar uma mensagem para o nosso bloco dizendo que, sim, o jogador morreu. Para que possamos trocar
esses blocos que
foram transformados em moedas
novamente em blocos Depois que nosso jogador morrer, mais
uma vez você pode
abrir seu bloco
selecionando-o em seu nível
e depois no Outliner, basta clicar ali mesmo Ou você pode encontrá-lo
em seu navegador de conteúdo. Nós o temos neste local. Com isso aberto,
vamos modificar um pouco nosso
script. No começo, estamos
basicamente
lançando todo esse
script aqui mesmo, quando detectamos
que nosso jogador
atingiu o componente da caixa Agora precisamos mudar isso um pouco porque
precisamos identificar se é o personagem em terceira
pessoa
e não qualquer personagem que está batendo nessa caixa E a razão pela qual
vamos fazer isso é
porque, a partir disso , precisamos
encontrar esse evento em que o
jogador do Dispatcher inicia a sequência de morte Ok, então vamos modificar um pouco
nosso script de bloco P
aqui. Eu só vou
mover isso de volta. Vou me
livrar do personagem do jogador, desse sinal igual e
desse nó. Eu também vou me livrar
desse nó de rota. Nesse meio tempo,
vou tirar
meu distintivo de outro ator e escalar um personagem em
terceira pessoa. E eu vou
reprogramar isso como tal. Vou manter pressionado o controle, clicar com o botão
esquerdo e transferir isso através do meu casting para o personagem em terceira
pessoa. Vamos conectar isso
na filial para nossa
condição de nossa filial. Vou
tirar isso diretamente do nosso resultado de sucesso aqui, descobrindo se nosso personagem
está chegando acima disso. E isso será conectado à nossa
filial. Agora precisamos de um alvo para
nosso personagem de lançamento. Então, vamos nos certificar de que pegamos nosso personagem em terceira pessoa
e o conectamos a ele. Então, agora, saindo do nosso personagem em terceira
pessoa, vamos sair
daqui e eu vou fazer uma busca por
aquele despachante de eventos, chamado de morte do jogador, o
jogador inicia a sequência de morte Agora vou escolher
essa opção aqui. O jogador designado inicia
a sequência de morte. E vai trazer dois nós, que é o que eu quero. Isso trará esse
nó de vinculação , bem como esse evento personalizado E vou deixar
esse evento personalizado como é onde vou
conectá-los ao nosso nó de sequência. Vamos adicionar
outro pino aqui. Clique para adicionar outro pino
dos cinco pinos anteriores. Vou conectar
isso aqui. Então, basicamente, o que
estamos dizendo aqui é que quando nosso personagem
de terceira
pessoa pára nesta caixa e
nosso bloco está no modo de bloqueio, ele transforma esses
blocos em moedas. Vamos ouvir
se nosso jogador
morreu e se nosso jogador
morreu morreu e se nosso jogador
morreu aqui em nosso personagem em terceira
pessoa. Se esse trecho do script
for iniciado, ele enviará uma mensagem para qualquer
outro projeto que esteja ouvindo por meio
desta ligação aqui Basicamente,
estamos ouvindo isso aqui com
essa configuração configurada aqui, vinculando-a à sequência de morte do jogador que
inicia. Estamos ouvindo e, assim que nosso jogador morrer, sairemos daqui. Tudo bem, agora é
aqui que vou pegar esses dois nós e trazê-los para o nosso script de
temporizador de blocos aqui Vou tentar ampliar e
enquadrar isso um
pouco melhor. Agora, basicamente, quando
nosso tempo de bloqueio termina, o que
estamos fazendo é pegar todos os blocos que
foram transformados em moedas e simplesmente
os devolvendo. Agora queremos fazer a mesma
coisa quando nosso personagem morrer. Essencialmente, queremos
fazer com que todos os nossos blocos voltem a ser
como eram antes. Para fazer isso, tudo o que precisamos
fazer é tirar um fio da sequência de morte de inicia
nosso player e vamos
conectá-lo a isso. O mesmo para cada loop
aqui em cima. Novamente, tudo isso está
dentro do nosso script de bloco na parte inferior, assim. Ok, com tudo isso
feito, vamos compilar e salvar E vamos testar isso
indo para o nosso nível aqui. Vou clicar em Jogar. Então,
o que vou fazer aqui sobrepor
nosso posto e vou pular
nesse quarteirão Você deve ver alguns desses
blocos se transformarem em moedas. Vou tentar evitar
meus braços flamejantes aqui. Como você viu eles se transformarem em
moedas, eu vou morrer. Agora você pode ver que eles
se transformaram instantaneamente
em blocos, o que é exatamente o que eu
queria que acontecesse. Aí está dentro
do nosso
personagem em terceira pessoa . Este jogador inicia a sequência de morte
que estamos chamando. Quando nosso jogador morre, evento
personalizado é acionado. Basicamente, estamos enviando mensagens para qualquer assinante, se você quiser. Qualquer outro projeto que esteja ouvindo nosso jogador
inicia o Death Sequence
Event Dispatcher E para aqueles que estão ouvindo
, como nosso quarteirão aqui, ele sairá
desse evento personalizado e fará com que tudo o que estiver conectado
a ele também seja acionado. Tudo bem, pessoal, isso vai
bastar para esse vídeo. Nos vemos na próxima.
78. Atualize vidas de jogadores: Tudo bem, agora que temos a sequência de morte de um jogador em mãos, vamos
consertar nosso Hud. Porque, como você pode ver
no canto superior esquerdo, eu tenho supostamente três
Marios No entanto, quando eu morro atualmente, esse número não muda. Então, vamos corrigir
isso neste. Para fazer isso,
trabalharemos dentro do modelo do nosso
controlador de player Portanto, descubra que na pasta da estrutura do
plano de sua plataforma
, está nosso controlador B P
player Fizemos alguns trabalhos lá
dentro. Vamos fazer um pouco mais
mergulhando lá dentro. Vamos adicionar um
novo script aqui dentro. Vou manter pressionado o
controle e diminuir o zoom. Esse será nosso roteiro de
adaptação ao vivo. Vou descer abaixo meus pontos de adição e
vou aumentar o zoom. Vou escrever clique
em algum espaço vazio. Vou adicionar
um evento personalizado. Vou chamá-lo de Adjust Lives com este evento para
clientes selecionado. Vou adicionar uma entrada
no painel Detalhes. Clique nesse botão de adição e a entrada que
vou adicionar
será chamada de Vidas para adicionar ou subtrair E vou mudar o
tipo de Boolean para Integer. O que vou fazer é sair daqui e
trazer um nó adicional. E a outra entrada
que vou inserir aqui serão as vidas com as quais
começaremos, no meu caso, três vidas. Quando chamarmos esse evento personalizado, poderemos determinar
quantas vidas
gostaríamos de adicionar ou subtrair
e, em seguida,
adicioná-lo ao nosso número de vidas Então, o que eu
quero fazer é arrastar para fora daqui, e eu vou
fixar esse número, vamos fixar esse
número inteiro E vou manter isso
entre um valor de 0,100. Isso vai me
limitar a 100 vidas Você não precisa fazer
isso se não quiser, mas eu gostaria de limitar
a 100 vidas e depois vou
prolongar minhas vidas. Vou colocá-lo
nesse valor de retorno para trazer uma versão setter da variável de
nossas vidas Vou pegar nossas vidas de adaptação, evento
personalizado, e
levá-lo até lá. Então, a seguir, o que vou
fazer é diminuir um pouco
o zoom. Vou
adiar isso,
isso produzirá o
número de vidas. Vou
digitar o símbolo igual para inserir um nó igual. E eu vou dizer que se nosso número
de vidas for igual a zero, eu vou então conectar
isso a um nó de ramificação Então, pressionarei e botão
esquerdo para inserir um
nó de ramificação. Se é verdade que nossas
vidas caíram a zero, então o que vou fazer é
sair daqui e digitar nível aberto pelo nome Agora eu tenho atualmente
um nível, LV 01. Eu poderia simplesmente,
quando eu ficar sem vidas, abrir esse nível
novamente. Vou trabalhar um pouco mais
adiante aqui. Saiba disso, eu sei que o
editor vai cometer alguns erros quando
conseguirmos que isso seja acionado, quando ficarmos sem vidas. Eventualmente,
criaremos um menu principal neste curso. E eu vou
chamar esse menu principal LV, sublinhado Menu principal Agora, não quero
atrapalhar este vídeo
criando todo o menu principal
que virá mais tarde Mas saiba que
estou trabalhando
aqui e , eventualmente,
criaremos um menu principal. E isso nos fará ir ao nível do menu principal
que configuramos. Tudo bem, então
vamos resolver isso. Vou clicar com o botão esquerdo
e arrastar e tocar na tecla C. E esse será
nosso roteiro de adaptação de vidas. Vou me livrar desse
espaço entre eles e colorir esse preto. Gosto das caixas de comentários pretas porque fazem
os fios se soltarem. Então, esse será o nosso roteiro ao vivo de
ajuste ali mesmo. Mais uma vez, faremos
isso funcionar mais tarde. Ok, com esse
evento para clientes agora em andamento, ele se chama ajustar vidas. Vou acessar meu script de
moeda publicitária dentro desse mesmo modelo,
meu controlador de jogador E aqui está nosso script de moedas publicitárias. E o que eu estava fazendo
no final aqui é trazer
uma referência às nossas vidas e adicionar algo a
isso para que,
quando tivermos 100 moedas, ganhemos
uma vida extra. Bem, agora com nosso evento personalizado de ajuste de
vidas em vigor, tudo o que preciso fazer é ligar para
esse evento para clientes e simplesmente inserir o número um para ajustar nosso
número de vidas. Então, eu posso simplesmente excluir esses dois nós
ali mesmo em nosso script de moeda publicitária. Eu vou destruí-los. E agora vou tirar
minha caixa de moedas aqui e
digitar adjust lives. Então, novamente, isso chamará esse evento personalizado aqui. Eu posso simplesmente colocar
esse número fixo de vidas para adicionar ou subtrair. Vou adicionar vidas
positivas e depois vou tocar esse som. Portanto, observe que,
ao colocar o número um aqui, esse número fluirá
pelo evento personalizado. Na verdade, se eu
clicar duas vezes nesse nó aqui, ele mostrará o
evento personalizado que isso chama. Então, esse número um vai
fluir por aqui, ser adicionado ao nosso número de
vidas, vai limitá-lo E vai tocar todo
esse jazz aqui mesmo. Tudo bem, com tudo isso feito, certifique-se de compilar e diga muito importante
que você compile Porque precisamos
compilar para encontrar nosso chamado de vida adequado
dentro de nosso plano de
personagem em terceira pessoa É para lá que
vamos a seguir. Portanto, encontre seu plano de
personagem em terceira pessoa. Encontre este script de morte do jogador. No final, temos esse atraso
e esse ator destruidor. Bem, vamos
separar nosso ator de destruição. Mova isso para
a direita porque
vamos injetar um
pouco de script aqui Vamos clicar com o botão direito do mouse
em algum espaço vazio pegar o controle do player. E depois disso,
vamos
transmitir para o nosso controle de jogador,
nosso controle de
jogador personalizado. Nós vamos
fluir por aqui. E a razão pela qual estamos
fazendo isso é para que
possamos acessar nosso plano de controle de
jogador e chamar nosso evento personalizado de ajuste de
vidas Porque isso faz parte da vida
do script do jogador. Para adicionar ou subtrair, bem, eu
quero subtrair uma vida, então coloque menos
uma aí mesmo E então podemos destruir
o ator mais uma vez. Se eu clicasse duas vezes
nessa chamada de ajuste de vidas, ela me levaria até o controle do
meu player BP e mostraria para onde esse número negativo fluirá
por meio desse evento personalizado Faça essa matemática e faça
todo esse roteiro. Tudo bem, mais uma
consideração para abordarmos, e isso envolverá
entrar nosso
modo de jogo, Blueprints Vou usar plantas em terceira
pessoa, modo de jogo em
terceira pessoa A propósito, cabe
a você decidir se deseja
arrastar esses dois esquemas dentro da sua plataforma
ou pasta de estruturas, a decisão é Eles também são considerados projetos de
estrutura. Eu optei por não criar
um personagem separado no modo de jogo para este
projeto, mas você poderia Vou mergulhar
no meu BP, modo de jogo em
terceira pessoa E agora
estamos respondendo, o
jogador, não importa o que aconteça, não importa se ele
tem três vidas, duas vidas, uma vida
ou zero vidas Precisamos verificar
se nosso jogador não está fora de vida. Antes de
respondermos a elas, não queremos responder se
elas estiverem fora de vida. Então, para ajustar esse
pequeno script de resposta, o que vou fazer
é clicar com o botão direito do mouse
em algum espaço vazio. Obtenha o controle do player,
como você deve ter adivinhado. Nós vamos sair daqui. Vamos transmitir para o
nosso controlador BP player. Agora eu posso mudar, posso converter esse nó clicando com o botão direito do mouse nele
e convertendo-o em
um molde puro para
me livrar desses pinos de entrada e saída de execução Você realmente só
quer fazer isso se
souber que seu elenco aqui
não vai falhar. E eu sei que não vai acontecer
nesse caso, porque
eu não vou
usar nenhum outro
controlador de jogador convertido em puro elenco, ele vai me livrar
desses pinos de execução dessa forma Então, o que posso fazer é sair do meu controlador de player SBP, posso transformar nossas vidas em
variáveis com isso Eu posso me arrastar, ver se zero vidas, se temos
mais do que zero vidas, então eu quero responder. Vou manter pressionada a tecla B e
clicar com
o botão esquerdo quando estiver ativada. Preciso mover todo esse
roteiro para cá. E eu basicamente vou
colocar isso em jogo quando nosso personagem
for destruído. Quando nosso personagem é destruído, eu quero passar por
aqui e fazer a pergunta:
Ei, temos
mais do que zero vidas? E se tivermos
mais de zero vidas, ótimo,
vá em frente e reapareça
o personagem Caso contrário, não faça isso. Então, tudo isso está dentro do nosso modo de jogo em
terceira pessoa. Vá em frente, compile
e salve isso. Agora, antes de jogarmos
o jogo aqui, quero destacar isso
em nosso projeto do Hud Blueprint do widget Hud,
que se encontra na pasta UI, nosso No início do curso, em nossa guia de gráfico, não na guia de designer, mas na guia de gráfico, adicionamos esse trecho de script para criar uma referência ao
nosso controlador de player. Eu simplesmente cliquei com o botão direito do mouse e
a transformei em uma variável para criar uma referência ao nosso controlador de
player Ao fazer isso, isso nos
permitiu vincular esse widget aqui,
esse widget de texto, à nossa variável ativa do player
Controller Isso foi feito aqui, controlador
do jogador, e acabamos mapeá-lo para a variável de nossas vidas Agora que estamos
atualizando nossa
variável de vidas por meio de algum script
que adicionamos neste vídeo, devemos ver esse
número mudar. Mas só
queria
destacar tudo isso , uma pequena análise,
mostrando que, na
verdade, mapeamos nossa
variável de vida, desde nosso controlador de
jogador até esse widget em particular Tudo bem, vamos entrar
no nosso nível, entrar e jogar. Atualmente está começando
com três vidas lá. Então, deixe-me dar uma olhada
em nossa gumba. Aqui, lá estamos, com
menos de duas vidas. Vamos tentar entrar na barra
do braço flamejante aqui. Mais uma vez, reduziu para uma ao vivo. E vamos mergulhar, via Goomba,
mais uma vez, em zero vidas. Agora você o viu, simplesmente
reinicializou lá atrás e ,
se eu escapar, ele
fará isso por enquanto. Apesar do fato de termos
em nosso controlador Player, estamos tentando
voltar ao menu principal. Então saiba que, eventualmente, com o
tempo, criaremos outro nível chamado LV,
Underscore Main E isso nos levará de volta
ao menu principal quando
ficarmos sem mentiras. Tudo bem, pessoal, mas isso vai bastar
para este vídeo. Agora temos nosso número de vidas aumentando corretamente
em nosso Hud Jobbledne Nos vemos na próxima.
79. Risco de morte instantânea: Tudo bem, bem-vindos
de volta a todos. Agora que temos uma
sequência de morte jogador e nosso
sistema de reprodução ao vivo está funcionando em nosso Hud, todo esse jazz, vamos
criar um risco de morte interno E isso será útil
em vários casos de uso. Você pode colocar esse
ator que estamos prestes a criar
sobre alguns picos, digamos, sobre um poço de
lava ou até mesmo um vazio E o objetivo disso
é fazer com
que, ao nosso jogador
tocá-lo dessa forma, morra instantaneamente e responda Tudo bem, de volta aqui em nossa versão
de trabalho do projeto, eu vou entrar na minha pasta de plantas
da plataforma Vou clicar com o botão direito
aqui em algum espaço vazio. Classe Blueprint. Este
será um plano de aula de ator Vai ser uma
que vamos colocar em nosso mundo. E vou
seguir em frente e nomear esse novo projeto de
sublinhado da BP Tudo bem, e com
isso selecionado, poderíamos ignorar esse
servidor indisponível Esta
mensagem de controle de origem está aqui. Vou clicar duas vezes
no meu BP até morrer. E com isso aberto,
adicionaremos um único componente
abaixo do painel de componentes. Vamos adicionar colisão
de caixas. E vou chamar
isso de meu volume de profundidade. E com isso selecionado,
vou dar
a isso um valor padrão. Então, vou definir as extensões da
caixa para 400 por,
digamos, 400 por 50, 50 E eu vou definir a espessura da minha
linha aqui três, algo assim. Poderemos alterar esse tamanho quando
chegarmos ao nosso nível, mas isso nos dará
um valor padrão muito bom. Ok, com isso pronto, vou clicar com o botão direito do mouse no meu componente de volume de morte aqui. o botão direito.
Vamos adicionar um evento para quando começarmos a sobrepô-lo Isso vai nos tirar da
nossa janela de visualização e ir para o gráfico de eventos Agora, quando algo se sobrepõe a
esse volume de morte, vamos descobrir
quem é o outro ator Vamos usar
nosso personagem em terceira pessoa
dentro do nosso personagem em terceira
pessoa. Vamos sair
daqui e digitar player dies. Vamos chamar
isso de eventos personalizados. Então, um
script bem simples e eu vou arrastar e
tocar na tecla C, isso vai ser chamado. Aqui morrem eventos personalizados
dentro do nosso personagem BP. Portanto, sempre que
você
escrever algum script, certifique-se compilá-lo para
garantir que ele não encontre erros e
não encontre erros Vou seguir em frente
e salvar isso agora. Vamos colocar
um desses em nosso nível e mostrar como trabalhar
com isso em geral. Então, vou voltar
ao meu editor de níveis aqui. Aqui está meu BP na morte. Eu realmente não tenho nenhum buraco
aqui ou algo parecido,
então vou meio que arrastar isso da borda aqui Então, vamos lá. Estou
apenas arrastando isso para dentro Eu tenho minhas duas configurações de D snap definidas para o meu nível principal aqui E vou colocar minhas configurações de
snap aqui,
incrementos de, digamos Vou seguir
em frente assim. Agora, novamente, se você está
fazendo o Pit of Doom, provavelmente não
quer colocar esse tipo de nível nos seus
principais níveis jogáveis Então, vou
definir isso um
pouco para que você possa ver
esse tamanho padrão. Mas observe que, com
esse ator selecionado, no painel
de detalhes, você pode selecionar o componente de volume de
morte. Agora, se você não vê
isso, pode ser porque precisa
descascar um pouco. Você pode selecionar seu componente de
volume de morte e redimensioná-lo aqui Então, se você quiser aumentar um pouco o valor de
x, você sabe que queremos
defini-lo como 1.000. Você pode seguir em frente e fazer isso assim. Ok, então eu vou
entrar e jogar aqui, e depois pular da borda e ver se tudo isso funciona. Aqui vamos nós. Tudo bem, pulando do
parapeito aqui e pronto, nós morremos exatamente como Então, mais uma vez, dentro
de nosso BP to death, estamos apenas verificando
se é nosso personagem em terceira pessoa
que se sobrepõe E se for, viemos aqui para chamar esse evento personalizado de “Player
Dies”. E você pode
clicar duas vezes sobre isso. E o que isso fará é
realmente abrir nosso personagem em terceira pessoa
e mostrar qual evento
personalizado ele
pretende convocar Então, mais uma vez,
alguns casos de
uso desse risco de morte instantânea Você pode colocá-lo em
uma cova como essa. Você pode colocar
isso sobre algo que pareça pontiagudo, um poço de lava Muitos casos de uso possíveis
para ele em todo o seu nível. Tudo bem, pessoal, isso vai
fazer tudo por esse. Nos vemos na próxima.
80. Blueprint de polo de bandeira: Bem-vindos de volta a todos. Neste vídeo, trabalharemos na criação e implementação de um mastro de
fim de nível no estilo Mario E isso vai
funcionar de tal forma que quando nosso personagem
pular no mastro, ele vai anotá-lo Eles vão sair, vamos ver
alguns fogos de artifício e vai
ser um momento muito bom Agora, esse será um
dos projetos mais complicados que
reunimos ao longo
deste curso Estou apenas dando
uma prévia de como isso
acabará por se parecer Aqui está o projeto finalizado. Visualmente, o
que vamos montar. Portanto, alguns componentes,
muitas variáveis e uma boa quantidade de scripts para inicializar aqui.
Muito roteiro. Mas vamos falar
sobre isso
ao longo de
vários vídeos aqui. E vamos fazer isso, prometo que não vai
ser tão ruim. Tudo bem, de volta aqui em nossa versão de
trabalho do projeto, entre na
pasta Texturas da sua
plataforma e certifique-se ter esse bloco usado
na textura da bandeira do Mario Esses são alguns ativos que foram importados muito antes
no curso. Portanto, se você
ainda não o fez, certifique-se de
importá-los, pois os
usaremos em
nosso modelo de mastro de bandeira Agora, com essas texturas, precisamos transformá-las em ativos
materiais usados em
nosso projeto de mastro Agora eu já fiz
isso antes do vídeo. Mas só para mostrar como converter essas texturas em materiais, você pode simplesmente clicar com o botão direito do mouse sobre elas e criar
material a partir delas. Ao fazer isso, você verá esses ativos materiais gerados dentro da pasta Texturas E então tudo que fiz foi
movê-los. Eu literalmente
clicava com o botão esquerdo do mouse e os
arrastava para minha pasta de materiais, desta
forma, a fim de movê-los para lá. Agora, na verdade, não quero
mover o arquivo de textura aqui, mas é assim que você pode mover ativos
diferentes
entre pastas. Então, só para mostrar a vocês, dentro da minha pasta de Materiais, aqui está onde eu tenho o material da
minha bandeira do Mario
no meu material usado no bloco T. Só para abrir um
deles rapidamente, basta uma
amostra de textura sendo conectada à cor base do nosso material
principal. Anote aqui. Agora, além
desses dois materiais, verifique
também se você tem o áudio de quatro Mario Flagpole, aquele cara ali mesmo,
além de Mario Jump Agora você já deve
ter isso de novo, todos esses arquivos de áudio foram importados muito antes
no curso. Portanto, se você
ainda não os importou, certifique-se de importá-los. OK. Agora, antes de prosseguirmos e criarmos nosso modelo de
mastro, na verdade
vou
entrar nossa pasta
de terceira pessoa Entre em nossas plantas, encontre nosso personagem em terceira pessoa Quero ter certeza de que
não esqueçamos essa profundidade. Vou clicar duas vezes em
nosso personagem em terceira pessoa. Abra-o e eu quero adicionar outro componente ao nosso personagem em
terceira pessoa. Vou selecionar
nosso componente de cápsula porque quero conectá-lo
ao nosso componente de cápsula. Deixe-me ir até a janela de exibição
aqui. Componente da cápsula. Vou adicionar um componente de
seta. Flecha. E eu vou nomear
esse ponto de fixação da bandeira. Isso será usado para determinar onde devemos prender nosso personagem ao mastro
da bandeira para que nosso personagem
desça por ele. Então, com esse componente selecionado
no painel de detalhes, vou definir a localização
X 40 e
a localização Z como menos 55. E acabei de chegar a esses números por meio de
muitas tentativas e erros. Então, 40 e menos 55 é que vamos ter
nossa bandeira anexada ao ponto. Ok, certifique-se de ter
compilado e salvo isso. Então, podemos encerrar
nosso personagem em terceira pessoa. Agora vamos voltar para nossa pasta de esquemas
da plataforma. E aqui vamos clicar com o botão
direito do mouse em algum espaço vazio. Vamos criar
uma nova classe de blueprint. Este será um plano de aula de
ator. E vamos
chamar esse ativo de BP. Sublinhado, bandeira de fim de
nível. Tudo bem. Depois, com a opção selecionada,
você pode clicar duas vezes nela ou pressionar a
barra de espaço para abri-la. E o que vou fazer
aqui é adicionar todos os meus componentes e
depois
voltar e definir os
detalhes de cada um. Então, deixe-me ir em frente e
adicionar o primeiro. Isso vai ser
um volume de gatilho. Bem, na verdade,
será chamado de volume do gatilho. O que eu realmente quero é uma colisão de caixa,
colisão de caixa. Componente de colisão da caixa, e vou
chamá-lo de volume do gatilho Você vai
usar isso para determinar quando acionar
toda a sequência de sinalizadores. Agora vou adicionar todos esses
componentes serão anexados à
minha raiz de cena padrão. Entre cada componente
adicional, certifique-se selecionar sua raiz de cena
padrão, porque todos esses
componentes precisam estar em uma linha reta e não
conectados a mais nada. próximo que vou anunciar aqui será um componente de
malha estática. Este simplesmente será chamado
de bandeira. E vou selecionar meu componente raiz de cena
padrão novamente. Este vai
ser chamado de mastro de bandeira. Opa, estou tentando
adicionar um mastro de bandeira. Preciso adicionar um componente de malha
estática e depois chamá-lo de mastro de bandeira. Ok, selecione a raiz de cena padrão. Novamente, acrescente que
esse será um componente de malha
estática. Esta
será chamada de base da bandeira. Agora, com um desses selecionados, novamente mostrando
maneiras diferentes de fazer as coisas, Control D o duplicará, então ele será automaticamente
anexado à minha raiz de cena
padrão Este vai ser
o topo da bandeira. No próximo componente,
vou selecionar minha
raiz de cena padrão e clicar em Adicionar. Este será um componente
de outdoor. Billboard, vai
ter esse ícone da Cabeça de Dragão. Vou chamar isso de ponto final da
minha bandeira. É aqui que eu quero que
a bandeira acabe quando cair no mastro Tudo bem, selecione a cena padrão. Mais uma vez, vamos acrescentar que isso será
outro colisor de caixas, colisão de
caixas, e
vou chamar isso de
minha área de fogos de artifício Esta é essencialmente
a área da qual vou gerar
alguns fogos de artifício Se terminarmos nosso tempo de nível dentro de um determinado dígito
terminando em sete, 87 segundos
gerarão sete fogos de artifício,
esse tipo Vamos adicionar mais
três componentes aqui. Rota de cena padrão. Vou acrescentar que todos
eles serão componentes de seta, então vou
escolher o primeiro. Vou ligar para o
jogador End Point. É aqui que nosso
jogador
terminará com essa seleção. Eu vou fazer o controle D. Este vai se
chamar Player Explode Point Opa, acidentalmente
controla esses dois. Este será o ponto de explosão
do meu jogador porque depois que ele
pular do mastro, faremos com que ele
pule para o meio
da
área de fogos de artifício e exploda da
área de fogos de artifício e exploda Só porque é divertido
com isso, selecione isso. Vou fazer o Controle D
novamente para duplicar isso. E este será
chamado de ponto de partida dos meus jogadores. Eu tenho um ponto inicial de um jogador,
um ponto final de um jogador,
um ponto de explosão de um jogador Realmente não importa
como eles são ordenados, não
importa em absoluto. Portanto, se seu pedido for um pouco diferente do
meu, não importa Tudo o que importa é que tudo
isso esteja alinhado, que esteja conectado
à rota de cena padrão. Agora, se você tiver algo
acidentalmente definido como isso, deixe-me arrastar
e soltar esse pequeno recuo Atualmente, isso está
anexado a isso. Para desfazer isso, você pode simplesmente arrastá-lo e soltá-lo de
volta em cima dele, e isso o desconectará que estava anexado
anteriormente Configurando os
detalhes de cada um desses componentes em nossa
lista de componentes. Vou começar
com a bandeira aqui. Não vou entrar em ordem, mas abordarei
tudo isso em tempo hábil
com nosso componente de bandeira selecionado
no painel de detalhes. Nossa malha estática será uma plana e eu vou
procurá-la no
caminho das formas básicas
do motor no painel de detalhes. Vou configurar
o material
imediatamente para ser nossa bandeira de Mario. Basta digitar Mario, aí está
nossa bandeira do Mario. Muito fofo. Agora eu preciso ajustar
a localização, rotação e escalar
isso um pouco. Então, vamos primeiro com
a localização. Vou definir a localização
x como 85, o z como 845 Está pulando aqui em cima. Deixe-me ampliar
aqui na minha janela de exibição, mantendo pressionado o botão
direito do mouse, S e D, vou definir
a rotação, a rotação x para 90 Então eu vou
definir a escala aqui. Vai ficar de frente para cá
desse jeito. A escala deve ser 1,5, assim. Tudo bem, ótimo. Em seguida
, o componente do mastro da bandeira. Com isso selecionado,
vou deslizar uma malha estática de
um cilindro cilíndrico e vou escolher o
motor, com formas básicas de cilindro Aquele cara
ali mesmo. O material, vou fazer apenas uma parede básica de
sublinhados, está no
conteúdo inicial, novamente, é um mastro de bandeira, então você pode decidir como quer
que seja. A localização, eu vou
definir isso como 500 no Z.
A escala eu vou definir como
0,2 por 0,2 por oito Agora, novamente, consegui tudo isso desbloqueando as configurações de escala Se você tiver isso
bloqueado, o que quer que você defina um desses
dois e pressione o centro, ele configurará todos
para desbloqueá-lo. Para configurá-los individualmente. Isso está indo
muito bem até agora. Em seguida, vamos fazer a
base da bandeira com a malha estática selecionada, no
painel de detalhes. Vou escolher A, esse será meu motor, cubos de formas
básicas como esse Para o material, vou
colocar nesse bloco. Acho que parece muito bom. Novamente, a escolha do revendedor aqui que
você pode fazer
o que quiser. Vou mudar a
localização z para que seja 50, então basicamente
parecerá que o mastro
da bandeira está
embutido nele. Está parecendo muito bom. Tudo bem, então
vamos fazer a bandeira no
topo do mastro. Vamos escolher
uma mensagem estática. Essa será uma
forma sublinhada Sphere, que estará
no conteúdo inicial Vamos definir o
material para que isso seja uma instância de material do cubo de sublinhado três
, está no Engine VR
Editor, Basic shapes Novamente, você não precisa
ter exatamente o que eu tenho. Eu acho que isso parece muito bom. Então, vou definir o local
para isso como 8905895. Aqui no topo da escala,
vou definir
0,5 em toda a placa, então vou bloquear a escala
e, em seguida, vou
definir 0,5, pressione Enter, e isso fica muito
bom na parte superior. OK. Em seguida, vou
fazer o terminal da bandeira, esse componente de outdoor Vou
definir isso como um local, 150 no Z, e então vou definir o
local no X como 85. E então eu vou definir
a rotação disso para ser 90 no X também.
Pressione para dentro ou para lá. Visualmente, não fará muita diferença aqui, mas será importante porque usaremos
isso como nosso ponto final de sinalização Isso deve ser girado
da
mesma maneira que nossa bandeira. Isso
vai ser importante. 90 lá para nossa bandeira. Precisamos ter certeza de que
nossa rotação
do ponto final será a mesma lá, só para verificar isso. OK. Em seguida, teremos nossa área
de fogos de artifício Portanto, certifique-se de selecionar isso. E vou ampliar um pouco
minha janela de visualização aqui , porque vou
deixá-la um
pouco aqui Estou pressionando o botão esquerdo e direito do mouse para fazer uma panorâmica assim. Então, vou definir esse
ponto em uma posição de 850 no x 700 no Z.
A extensão da caixa eu vou
definir como 500 por 200 por 300 Basicamente, vou usar essa forma para definir uma área na qual
fogos de artifício podem aparecer Também vou definir a
espessura da linha aqui como cinco, só para torná-la um
pouco mais proeminente. Em seguida, também vou
definir a predefinição de colisão aqui para que não haja Eu não quero que nada possível
colida com isso. Sabe, eu não
quero que, se
nosso personagem estiver
aqui ou algo parecido,
ele esteja tentando
atirar bolas de fogo,
então qualquer coisa
possa colidir com isso esteja tentando
atirar bolas de fogo, então qualquer coisa
possa colidir com Então, estamos apenas desligando
isso para tudo. Ok, em seguida, vamos
selecionar nosso jogador Endpoint, aquele cara ali mesmo E para isso, vamos simplesmente
definir um local. Então, vou ampliar em direção
à base
da nossa bandeira aqui. ponto final do jogador, vai
ser menos 25 no X, vai ser 30 no Y. Para o Z, vai ser
190 na frente da bandeira,
mas na
parte inferior direita Ok, nosso jogador explode point. Vamos selecionar esse componente de
seta. Em seguida, ele estará
em algum lugar nesta região, então vou
selecionar minha localização. X vai ser 850 e
o Z vai ser 500. Basicamente, isso vai estar em algum lugar bem ali. Eu determinei. Tudo bem, os jogadores começam no topo. Vamos selecionar
esse componente de seta. A localização x será menos 25, o y será 30 e esse z será 845 Então, não importa onde eles
interajam com essa bandeira, vamos garantir que eles
cheguem a esse ponto
ali mesmo . É aí
que eles vão começar. Eles vão
acabar aqui para
descer pelo mastro da bandeira Agora, a única coisa que eu ainda
não configurei aqui é o volume do nosso gatilho. Vamos prosseguir e selecionar isso. Agora, no painel de detalhes com o
volume do gatilho selecionado, vou ver
uma predefinição de colisão aqui E vou simplesmente
configurar isso para ser personalizado. E vou ignorar
as colisões com
tudo, exceto que eu quero nosso peão seja capaz de se sobrepor
a Precisamos detectar quando nosso
peão está se sobrepondo a isso. E eu quero que esse
volume do gatilho seja muito alto, que se estenda até o céu. Então, se nosso jogador
pular por cima do mastro, ele realmente cairá
até esse E depois anote. Ok, para isso, vou
definir a localização Z 1.000, vou definir
a localização x como 30. Isso vai ficar mais ou menos alinhado com nosso mastro
aqui, então OK E então eu vou
definir a extensão da caixa. Vou definir
essa extensão em 1.000. Ela
se estenderá para baixo dessa forma,
bem no meio do nosso mastro, você pode ver que ela se estende
até o céu E eu também vou
tornar isso um pouco mais amplo, mesmo que nosso personagem nunca
deva ficar offline. Só por uma questão de sanidade, vou definir que
a extensão y seja algo como 200 Isso deve ser muito bom. Agora, se eu saísse
dessa visão em perspectiva
e visse isso, digamos , de
uma visão correta, vou clicar nela. Você pode ver se eu
voltar para trás, essencialmente onde está
o volume do gatilho em
relação ao nosso mastro Agora, provavelmente
vou me esforçar um pouco
mais para garantir que nosso personagem não
atinja esse mastro Novamente, eu poderia movê-lo
aqui no painel de detalhes. Deixe-me desligar
minhas configurações de snap aqui. Vou movê-lo para
dizer logo ali. Vou definir
essa localização x. Em vez disso, vamos tentar dez. Mas quem sabe, talvez nós vamos mexer nisso
no final Na verdade, eles também não
querem que nosso personagem colida no topo do
mastro Então, vou definir isso
para algo como cinco, só para aumentar
um pouco mais Tudo bem, com
isso, vou
voltar à minha visão em
perspectiva. Isso é tudo o que queríamos
realizar neste. Vamos
compilar e salvar
e, em seguida,
arrastar isso para nossa janela de exibição E sim, entre os cortes
da câmera aqui, eu realmente trapaceei e ela se
posicionou no meu nível, para que você
possa ver como ficará quando você colocar no seu nível Algo assim
é o que vai parecer. O jogador vai
interagir com ele. Eles vão
descer por esse mastro e depois vão
acabar nesse ponto de explosão Então, tudo isso
será feito por meio de scripts. Muito mais trabalho a ser feito, mas estamos começando bem. Vejo todos vocês no próximo vídeo.
81. Script de bandeira com pole #1: Bem vindo de volta. Neste vídeo adicionaremos as variáveis
e começaremos a programar nossa sequência de mastros
de nível final Vamos mergulhar de volta em nossa bandeira de fim de nível da
BP. A primeira coisa que vou fazer no painel Meus projetos é criar as variáveis
que vamos usar
para esse script massivo Isso está por vir clicando
neste botão de mais variável. O primeiro que vou
criar
será chamado de ponto inicial. Será uma
variável vetorial e
será usada para determinar o ponto de
partida da nossa bandeira aqui. O ideal é
começar do topo se nosso
jogador chegar ao topo. No entanto, se nosso jogador cair mais ou
menos no ponto médio, nossa bandeira começará automaticamente nesse
ponto Essencialmente, vai se deformar até esse ponto e
depois descer. Ok, com esse selecionado, vou fazer o controle
D para duplicá-lo E este
será chamado de local de fogos de artifício. Isso será
usado para determinar
a área em que vamos gerar nossos fogos de artifício Alerta de spoiler, vai
estar nessa faixa. Na próxima que vou
criar, vou clicar no botão de adição de
variáveis. Esse vai se
chamar meu personagem. O tipo aqui será meu BP, personagem de
terceira pessoa, a referência
do objeto Deixe-me expandir
isso para que você
possa ler isso com um
pouco mais de clareza. próxima variável
que
vamos criar será chamada de
meu controlador. Este será mapeado
para o nosso controlador Player. Vai ser o controlador
do Player. Nosso controlador BP, Player, é o que criamos Referência de objeto, essa é a
nossa escolha. próximo que vamos
criar será chamado de Firework Points Vai ser um número inteiro. E isso vai
conter quantos pontos cada fogo de artifício vale Se obtivermos um
show de fogos de artifício com isso selecionado, vou fazer o controle
D para duplicá-lo. Este será chamado de número especial de fogos de
artifício. Agora, a forma como isso
deve funcionar é se nosso cronômetro terminar
com um determinado número, digamos que termine com 87 segundos. Se terminar com
o número sete, vamos disparar
uma exibição de fogos de artifício Basicamente, isso
serve para manter o dígito final do tempo
restante em seu cronômetro Ok, com tudo isso criado, vá em frente e compile para que
possamos começar a adicionar
alguns valores padrão Ok, nosso ponto de
partida de bandeira terá zeros em toda a linha,
tudo bem O Firework Local terá zeros em toda a linha,
tudo bem Meu personagem
será definido como nulo agora. Isso também vai ficar bem. Meu controlador também
será definido como nulo. Isso
vai ficar bem. Preencheremos
essas variáveis em nosso script, nossos pontos de fogo de artifício Vamos definir que
seja 500. Você sabe o que? Vamos definir isso como editável
por instância para que se quisermos mudar isso enquanto estivermos
no próprio editor, possamos prosseguir e fazer isso Então, o número especial do nosso
show de fogos de artifício, vou definir
que seja sete Mais uma vez, também marcarei essa
caixa de seleção editável de instância para que, se quisermos alterar
isso quando estivermos no editor, também poderemos
fazer isso Ok, com tudo isso pronto, vamos pular
para o nosso gráfico de eventos. Vamos desenvolver a partir
desse evento Begin Play. Vamos nos livrar desses outros
dois nós que estão aqui. Clique com o botão esquerdo e arraste.
Exclua o Event Begin Play. O que vou
fazer é clicar com o botão direito, vamos pegar o controle
do jogador e depois vamos lançar o controle para
dois jogadores,
nosso controlador do jogador BP Queremos fazer isso
ao começar a jogar. E então o que queremos
fazer é dizer isso em nossa
variável de controle de jogador aqui. Então, podemos simplesmente arrastar e soltar isso diretamente em cima desse pino. E isso trará
um conjunto de versões. Então, ele preencherá
essa variável com nosso controlador
B P player Não basta simplesmente
criar essa variável e
configurá-la para esse tipo. Na verdade, isso
será especificado na seção de valores quando o
definirmos aqui como o controlador de jogador real que estamos usando
no jogo. Então, vou clicar com o botão esquerdo do mouse no arrastador e tocar na tecla C. Isso será Ref para o controlador de
jogador
Ref, como referência. Vou continuar
e colocar isso de preto. Agora, a próxima coisa que
vou fazer é entrar seção Despachantes de Eventos no painel Meu plano.
Vou clicar aqui. Para adicionar um expedidor de eventos. E eu vou chamar
esse nível de completo. Agora, isso será usado
para enviar uma mensagem para outras plantas que
precisam saber que nosso personagem de jogador
terminou o nível Tudo bem, com
tudo isso feito, vamos começar a criar
nosso roteiro massivo. A primeira coisa que vamos
fazer é verificar uma sobreposição volume do gatilho e,
mais uma vez , do
volume do gatilho em nossa janela de exibição, que será esse volume
gigante aqui Vamos verificar se nosso player está sobrepondo Agora podemos adicionar um evento de
sobreposição para isso. Ao selecioná-lo, podemos clicar com
o botão direito do mouse e adicionar
um evento dessa forma. No entanto, só porque gosto de
mostrar coisas diferentes, vou
selecioná-las e ir até a parte inferior do
meu painel de detalhes. Aqui estão vários eventos
associados a esse componente. Temos uma sobreposição inicial
de componentes. Vou clicar
nesse botão de adição. Isso nos levará
à nossa guia de gráfico de eventos. Vamos reduzir
isso um pouco. Me dê um
pouco mais de espaço aqui. Com isso, vamos
descobrir quem é o outro ator. Vamos escalar dois personagens em terceira
pessoa. Tudo bem, se for um personagem de terceira pessoa que está fazendo a
sobreposição aqui, vamos preencher nossa variável,
meu personagem, meu personagem Atualmente, isso é nulo,
o que significa que está vazio. Vamos conectar isso, então solte-o neste pino. E isso vai
conectá-lo dessa
forma ao se sobrepor Vamos preencher
essa variável com nosso personagem em
terceira pessoa Mais uma vez, não
basta definir esse tipo. Isso
definirá a instância real do nosso personagem em terceira pessoa que estamos controlando no jogo. Ok, logo depois disso, vou passar
para a direita aqui. Vou clicar com o botão direito do mouse em
obter o controlador do player. E o que queremos fazer imediatamente
após interagir com volume do gatilho é
desativar a entrada Agora, novamente, isso vai
conectá-lo ao pino errado. Na verdade, queremos conectar
nosso controlador de player à entrada do
controlador de player. Então, vou manter
pressionado o botão esquerdo do mouse. Vamos
desligar isso na parte inferior. Muito importante. Não
perca isso para o alvo, vamos conectar
nosso personagem. Ok, o próximo que vou
fazer é trazer um nodo único. Posso fazer isso pressionando
a tecla e clicando com o botão esquerdo. E quero garantir
que tudo o que está por vir seja feito apenas uma vez para
evitar problemas. A primeira coisa que vou
fazer uma vez é chamar nosso nível de Complete
Event Dispatcher Podemos arrastar isso para dentro , então temos um submenu
aqui para o qual queremos chamar isso Então, tem o
pequeno ícone de envelope. Então, enviaremos uma
mensagem para qualquer pessoa
que esteja ouvindo
este evento de que, ei, nosso nível foi concluído. Tudo bem, então com
esse roteiro, vou colocar uma caixa de
comentários em torno disso. Quero fazer um bom trabalho comentando cada seção
que temos aqui Tecla C, vou dizer que este é o do
meu detector volume do gatilho do poste de
bandeira Também estou desativando a entrada
e as mensagens de outros BPs. Esse nível está
completo, certo? E eu sinto que é
muito importante que eu faça um bom trabalho comentando
todas essas coisas aqui Assim, quando finalmente
diminuirmos o zoom e vermos o que fizemos, você possa identificar
as várias seções. Então essa será a
seção número um aqui. Você pode pausar o
vídeo, se necessário para ver basicamente
o que fizemos aqui Vamos
encerrar com aquela ligação para nosso
despachante de eventos de nível completo enviando uma mensagem Ok, a próxima parte
do script que eu
gostaria de adicionar além
disso é definir a da nossa localização
inicial de nossa bandeira quando nosso jogador
cruza o volume do gatilho Agora, só para ir ao
nosso ponto de vista aqui,
essencialmente, o que
queremos fazer é se nosso personagem ultrapassar
esse volume de gatilho, seja no topo
da nossa bandeira ou acima, queremos que nossa bandeira comece
a descer pelo mastro a
partir No entanto, se nosso personagem
cruzar esse mastro, digamos aqui ou abaixo, queremos que essa bandeira comece a ser descida naquele local, seja no meio ou na parte inferior,
ou onde quer que nosso jogador
cruze o volume do gatilho, colocaremos
instantaneamente a bandeira lá e depois a escreveremos
no mastro Tudo bem, para fazer
isso, vamos
pular para o gráfico de eventos. E, mais uma vez,
vamos construir isso partir do final do nosso nível de
chamada completo. A primeira coisa que precisamos fazer é trazer uma referência
ao nosso personagem. Então, clique com o botão esquerdo e arraste. Vamos pegar isso,
vamos sair daqui,
vamos encontrar
o ponto de fixação da bandeira. Agora, entre os cortes de câmera aqui, abri meu personagem em terceira
pessoa. Agora, a razão pela qual fiz isso
é para lembrá-lo de que dentro do nosso projeto de
personagem em terceira pessoa, eu tenho uma bandeira apontada Acabamos de adicionar isso
no vídeo anterior. É um
componente de seta e está localizado ali mesmo
em nosso personagem. Isso é essencialmente
o que estou referenciando aqui no meu BP, bandeira de
fim de nível Estamos pegando esse componente
em nosso personagem. Agora, o que eu
quero é descobrir
sua localização mundial. Obtenha a localização mundial, ok. Então, vamos
descobrir a
localização mundial de onde está. Então vamos
resolver isso. Divida isso em seus componentes
x, y, z. Tudo bem,
também vamos
querer pegar nossa bandeira aqui. Opa, basta clicar duas vezes nele para ir até a janela
de exibição Vamos clicar com o botão esquerdo
e arrastar isso para dentro. Então, também queremos obter
a localização mundial quebrando esse vetor
para isso. Então, vou apenas
duplicar esses dois nós. Controle D, só para usar um
pequeno atalho aqui. Vamos conectar
isso dessa forma. Agora, a razão pela qual
os dividimos em seus componentes x, y e z aqui
é porque queremos
comparar a altura z do ponto de fixação da nossa
bandeira aqui. Vamos comparar isso
descobrindo se é maior do que a localização da nossa bandeira. Nossa bandeira está
apontada para nosso personagem? Isso é
maior do que, neste caso, é maior do que a
localização de nossas bandeiras no mundo Vamos pegar a saída disso e
conectá-la a uma ramificação. Então, vou manter pressionada
a tecla B e clicar com o botão esquerdo. Essa será a
condição que estamos avaliando. Mais uma vez, estamos
construindo a partir
do nível de chamada completo. Vamos conectar isso assim. Ok, se isso for verdade, o que eu quero fazer é
definir o ponto de partida da minha bandeira. Veja suas variáveis aqui. Vou manter
pressionada a tecla Alt, clicar com o botão
esquerdo e arrastar para trazer uma versão setter do ponto inicial da
nossa bandeira Vamos definir as
coordenadas
iniciais da nossa bandeira aqui. Para fazer isso, vamos nos
arrastar
para trás e digitar make vector E vamos criar nosso vetor
mantendo essencialmente a localização x, y e z da nossa bandeira. Basicamente, se nosso jogador aqui
se prender à bandeira, ele basicamente voou
para o topo ou para cima Basicamente, estamos
dizendo aqui, sim, vamos começar nossa bandeira
neste ponto em que ela desce até o
topo onde está. Por padrão, isso é essencialmente
o que estamos dizendo aqui. Agora, se isso for avaliado como falso, o que vamos fazer é
copiar esse nó aqui Vou apenas fazer o controle
D para copiar essa variável. Vamos
fluir até aqui e eu vou limpar meu roteiro aqui. Um pouco mais ou , para isso, também vou
criar um vetor. Então, vou pressionar o controle
D para copiar esse nó. Para isso, o que eu quero
fazer é manter o x e y da nossa posição de bandeira
atual. No entanto, a localização Z
que eu quero que venha do ponto de conexão da
bandeira de nossos personagens. Essencialmente, novamente,
o que estou dizendo aqui é que se o ponto
anexado à nossa bandeira for maior do que a nossa bandeira quando
cruzarmos o volume do
gatilho, definiremos o
ponto de partida de nossa bandeira
em qualquer ponto de partida de nossa bandeira.
Agora, se isso for falso, definiremos o ponto de partida de nossa
bandeira como a altura z do ponto anexado à bandeira de nossos
personagens. Então é isso que está
acontecendo lá. Agora estamos apenas preenchendo
essa variável,
essa variável de ponto inicial do sinalizador O que precisamos fazer
é realmente usá-lo. Então, o que vou fazer é trazer uma referência à nossa bandeira aqui. Arraste e solte isso,
arraste aqui. E digite a localização mundial definida. Defina a localização mundial ali mesmo. E vou duplicar esse nó com o controle
selecionado D o duplicará. traremos uma cópia para
cá. Conecte isso. Podemos usar essa referência de bandeira em ambos os nós
aqui e ali. Aqui vamos
definir a localização. Isso definirá imediatamente a localização de
nossas bandeiras para onde quer que
essas coordenadas estejam Tudo bem, com isso, vou
clicar e arrastar esse trecho do
script, clicar com o botão esquerdo e arrastar, tocar nessa tecla
e vou voltar um
pouco para ver os comentários. Este será o nosso local do Move Two em que o jogador
cruzou o volume do gatilho E vamos pintá-lo
de preto para adicionar um pouco de contraste agradável. Ok, com tudo isso feito, vou reformular
isso mais uma vez. Está saindo do nosso nível de
chamada completo. Vamos compilar isso para
garantir que nosso script esteja muito
bem. E salve-o. E pessoal, vamos chamar
isso de vídeo aqui. Mais trabalho a ser feito, com certeza, mas estamos começando
muito bem. Nos vemos no próximo vídeo.
82. Script de bandeira com pole #2: Tudo bem, antes de
continuarmos com nosso roteiro de bandeira, eu só queria entrar e jogar e mostrar
o que temos até agora. Fizemos com que,
quando nosso personagem interaja com o mastro de bandeira do final
do nível, estejamos basicamente configurando
essa bandeira para começar
sua eventual descida pelo mastro
sempre que nosso personagem se
sobreponha ao volume do gatilho Mais trabalho a ser feito aqui
dentro do nosso BP, sinalizador de
fim de nível e
apenas para definir
onde vamos
construir a partir desse script Em seguida, vamos construir primeiro
a partir
desse nó de
localização mundial definido. Então, vamos clicar com o botão
direito do mouse e dar uma
olhada nessa região. Ampliando várias
coisas que eu quero fazer. A primeira é garantir que meu personagem
fique de frente para o mastro E vamos
adicionar um pequeno deslocamento para garantir
que nosso personagem esteja na frente do
mastro
antes de começar a descer Então, também vamos definir a animação de
nossos personagens uma determinada pose quando eles
descerem o mastro da bandeira Vamos
começar trazendo
uma referência ao nosso personagem clicando com o botão
esquerdo do mouse e arrastando. Vamos pegar isso
e depois vamos tirar isso e pegar
nosso componente de cápsula. O componente da cápsula
é o componente principal
dentro de nosso personagem, qual outros componentes
estão conectados. E vamos retirar os
componentes
desta cápsula e dizer definir rotação
mundial mais uma vez. Eu disse que vamos construir
a partir
dessa localização mundial definida partir desse trecho do
roteiro aqui. Por que isso está aqui? Assim. Agora queremos alimentar
isso com uma rotação. Queremos definir a rotação de nossos
personagens para quê? Já que vamos pegar nosso componente de endpoint
do player, basta ir até o
ponto de vista Esse componente está
aqui embaixo. É um componente de seta. Aquele cara
ali mesmo. pegar nosso componente
de
endpoint de jogador aqui. Vamos
parar com isso e dizer: faça a rotação mundial. Essa será a
rotação que
garantiremos que nosso personagem
esteja voltado nessa direção,
basicamente voltado para o
mastro da bandeira. Tudo bem. A próxima coisa que quero
fazer é garantir que nosso personagem esteja na frente
do mastro. Um pouquinho. Para fazer isso, vou
retirar o
componente da cápsula do
meu personagem e digitar fio offset local do
anúncio, da
mesma forma que a localização delta A diferença na
localização é que
vou definir
o Y como 30 Y 30. Embora eu tenha chegado a isso
fazendo algumas tentativas e erros. Em seguida, quero fazer com
que, quando nosso personagem sobreponha
o volume do gatilho, não caia imediatamente, como você acabou de ver no
início deste vídeo Em vez disso, eles congelam. Eles flutuam no ar. Para fazer isso, vou
tirar meu personagem até aqui. Traga para o meu personagem o componente de
movimento, mas retire o
componente de movimento do personagem. Vou me arrastar e
dizer definir a escala de gravidade. Vamos definir nossa escala de
gravidade zero e eu vou
conectar isso da seguinte forma. Agora, só para mostrar
o que diabos estou fazendo aqui, vou voltar ao
meu
personagem em terceira pessoa mais uma vez. Estamos usando nosso personagem de terceira
pessoa neste projeto aqui. Se eu pegar o componente de
movimento do meu personagem, esse é o componente com o qual
estou falando aqui na minha sequência de bandeira de final de nível. Componente de
movimento do meu personagem. Dentro desse componente, o componente de movimento do
personagem, você tem um valor
de escala atualmente definido como 2,5. Agora, aqui na minha bandeira de final de nível, estou
basicamente dizendo, ei, vamos definir a escala de gravidade do nosso personagem como zero,
para que ele
basicamente flutue no
ar, congele no ar quando
cruzar o volume do gatilho ar, congele no ar quando
cruzar o volume do gatilho Tudo bem, então eu vou
reduzir isso,
então talvez traga um nó de
redirecionamento aqui também, só para mostrar esse fluxo um
pouco melhor. Ok, a próxima coisa que eu quero
fazer é continuar interrompendo
o
movimento do meu personagem aqui. E eu vou
digitar desabilitar. E isso vai
fazer o que diz, vai impedir que
nosso personagem se mova A propósito, uma dica rápida aqui. Se você quiser
endireitar seus fios, como se eles estivessem um
pouco desajustados, posso simplesmente destacar
esses dois e tocar O e está em silêncio para
endireitar esses fios. Seguindo em frente, indo um
pouco para a direita aqui, vou trazer
outra referência ao meu personagem para que eu não precise continuar me
livrando disso e ter fios
sobrepostos E, na verdade, eu não pretendia trazer esse componente de rota.
Deixe-me controlar Z. Tudo bem, isso é
o que temos até agora Vou trazer
outra referência
ao meu personagem, arrastar e soltar. E eu apenas segurei
a tecla de controle enquanto a arrasto e solto. Para entender
isso, vou
arrastar isso e digitar a malha Eu vou pegar a malha. E mais uma vez, voltando para meu personagem em terceira pessoa, estou dizendo que quero esse
componente aqui,
minha malha de manequim Quero obter essa malha porque quero
arrastar para fora daqui e, na animação,
quero que minha malha reproduza
uma determinada animação. Eu tenho um em mente
que eu gostaria que ele jogasse. Se eu selecionar aqui, nova animação para jogar. Vou digitar
M, M, sublinhado correr, sublinhado não N M, sublinhado, E como você pode ver no caminho, isso está na pasta
Mannequins Animation
many do personagem do jogo Mannequins Animation Se você clicar aqui, ele
navegará por esse ativo
no navegador de conteúdo. Na verdade, vou
fazer isso agora, clicando nesta
lupa,
aqui está, aqui embaixo Essa animação. Agora ele está
reproduzindo essa animação. Eu só vou fazer uma pausa
aqui embaixo. Agora eu quero que isso
seja essencialmente congelado no tempo em um determinado
ponto da animação. Eu basicamente quero que isso
o congele por volta da marca de 1,9 segundo, em algum lugar mais ou menos no
final. O motivo é que, por
volta desse ponto mão do
nosso personagem está
estendida nesse ponto da animação. Então, eu queria
parecer que nosso personagem está pegando o mastro
e
anotando para que nosso
personagem interpretasse Neste ponto, posso realmente
voltar para minha
bandeira de fim de nível aqui e arrastar para fora da nossa malha dessa
forma e digitar definir minha posição de animação aqui. Estou reproduzindo a animação. E com essa função
eu estou definindo a posição, a posição no tempo. Então, vou definir isso para 1,9 como você acabou de me ver aqui. Na corrida para frente, fui para a marca de 1,9 segundos. Basicamente,
quero que essa pose seja reproduzida e vou gravar
isso, tudo bem, então ampliar, estou
um pouco de volta aqui , é
esse pequeno roteiro Vou clicar
e arrastar isso. Vou chamar esse personagem de set e interpretar um
roteiro assim Enquadre isso para todos
aqui um pouco melhor. E agora, antes de
encerrarmos esse vídeo, vou abordar o início
desse trecho do roteiro. Estamos removendo o mastro da bandeira para
o local em que o jogador está do
outro lado do volume do gatilho Vou construir a partir
dessa localização mundial definida. Observe um pouco
porque o que queremos fazer é definir a localização
do jogador se ele
pular o mastro da bandeira Então, para fazer isso,
vou trazer uma referência ao meu personagem. Mais uma vez, meu
personagem o arrasta. Vou pegar o personagem que vou tirar daqui. Mais uma vez, pegue aquele componente da
cápsula. Vamos pegar
o componente da cápsula que
vamos tirar daqui. Vamos dizer
definir localização mundial. E eu vou transmitir isso assim. Qual é o local que
eu quero definir para isso? Bem, vou fazer com que nosso
jogador comece com o melhor ponto de partida. O que vou
dizer foi o ponto de
partida do meu jogador aqui. Só para mostrar onde isso
está dentro do nosso ponto de vista, o ponto de partida do jogador estará ali Então, se eles pularem
sobre o mastro da bandeira, vamos dizer jogador, você vai começar
nesse ponto, ali mesmo Nós vamos pegar
isso. Ponto de partida dos jogadores, arraste-o para dentro. Vamos adiar isso
e dizer localização mundial. Vamos obter a localização
mundial disso, a localização mundial disso
é onde vamos
definir a localização de nossos personagens. O que precisamos
fazer então é simplesmente conectar o final disso aqui, definindo nossa rotação mundial. Apenas recuando um pouco, para que você possa ver onde tudo isso
está posicionado dentro do esquema maior do
nosso script de projeto Aqui, vou
ampliar isso um pouco. Aqui, posso fazer
um comentário sobre isso, tocar nessa tecla e
vou chamar isso minha localidade definida de jogador Se eles pularem o mastro da bandeira, só para deixar isso
claro à distância, o que diabos está acontecendo aqui Tudo bem, com
tudo isso pronto, é
claro que devemos compilar
nosso script e salvar E vamos voltar
ao nosso nível só para jogar
pela primeira vez aqui. Vou garantir
que eu não pule por cima do meu
mastro de bandeira. Então, vamos lá. Começando e planejando, basta sobrepor
esse volume de gatilho Como você pode ver, agora estamos congelados e
provavelmente precisaremos dar
um
empurrão em e
provavelmente precisaremos dar nosso personagem para fazer
parecer que ele está
agarrando Então, para fazer isso, podemos ajustar um pouco a
localização do
nosso personagem. Eles estão um pouco compensados, mas por uma questão de tempo, vou viver
com isso por enquanto Agora precisamos
testar o cenário de nosso personagem tentando pular por cima do mastro Para ajudar com isso,
vou colocar uma das
minhas plataformas de lançador
bem na frente aqui Deixe-me prosseguir e
selecionar meu lançador. Vou apenas aumentar um pouco
a parte superior do lançador
aqui Não vou
ser preciso, só
preciso fazer isso pular
o suficiente para que
voemos no ar e
acabemos em nosso Então, vamos tentar
entrar e jogar. Você pode ver que isso
distorceu nosso personagem até o topo
do nosso mastro E é exatamente isso que
queremos que aconteça lá. Tudo bem, então, obviamente,
mais trabalho a ser feito para que
nosso personagem desça pelo mastro, pule dele e exploda
em uma chama de glória Mas agora temos nosso personagem congelando no
ponto certo ao longo do mastro, reproduzindo a animação certa, parecendo que está
meio que se
agarrando um pouco do mastro Além de desativar o movimento de
nossos personagens. Gente,
isso vai bastar para esse vídeo. Nos vemos na próxima.
83. Script de bandeira com pole #3: Bem vindo de volta. Nosso
próximo passo aqui é fazer com que nossa
bandeira e nosso personagem animem no mastro quando nosso personagem
sobrepõe Então, vamos mergulhar de volta na planta da
nossa bandeira agora a
partir de uma vista de 10.000 pés Esse é todo o script que temos
atualmente em vigor. Dentro da nossa bandeira BP, de
fim de nível, você percebe que temos
certos segmentos do nosso script comentados, seções
do nosso script para nos
ajudar a identificar o que
diabos está acontecendo e onde Agora, pensei em mencionar
isso enquanto estamos aqui, que se você entrar no
menu da janela
e ativar os favoritos, poderá clicar duas vezes em qualquer dos seus nós de comentário
aqui embaixo para ir para a seção do script F do personagem do jogador Basta clicar duas vezes
sobre isso. E ampliará essa
seção do roteiro,
definirá a posição do personagem
e interpretará anum. Essa seção do script
será destacada, então essa é uma ótima maneira navegar pelo
seu projeto Agora vamos começar
construindo a partir dessa posição definida,
nodeando a partir desse conjunto de personagens e reproduzindo uma seção do roteiro. Então, vou aumentar o zoom
aqui embaixo. E antes de animarmos nosso e nosso personagem
no mastro da bandeira, vamos introduzir um atraso Então, vou clicar com o botão direito do mouse e
inserir um nó de atraso. Vamos atrasar
por 1 segundo. Aqui, deixe-me ampliar a linha
um pouco mais. Mais uma vez, estamos construindo a partir
dessa função de posição definida. Vamos
atrasar por 1 segundo. E então o que
vamos fazer é tocar um som. Toque Sound Two D, este
será nosso mastro Som. Então, vamos atrasar por 1 segundo antes de
iniciarmos esse som E depois disso,
vamos fazer algumas coisas. Como eu quero fazer algumas coisas essencialmente
ao mesmo tempo, vou trazer um
nó de sequência. E vou fazer
isso mantendo pressionada tecla e clicando com
o botão esquerdo Isso trará
um nó de sequência. E vou colocar
uma caixa de comentários em torno dessa tecla
muito rápida de
clicar com o botão esquerdo e arrastar. Vou chamar
isso de minha pausa antes jogar e descer a seção
principal do roteiro Apenas uma pequena pausa antes de
tocarmos esse som. E então faça
algumas coisas aqui. Eu também vou colorir preto. Só para criar um
pouco mais de contraste entre meus fios, vamos fazer nosso personagem
animar o mastro da bandeira Para fazer isso,
vou trazer uma referência ao meu
personagem aqui. Então, vou manter
pressionado o botão esquerdo do mouse. Isso vai pegar meu personagem. Em seguida, vou
retirar meu personagem e digitar o componente da cápsula. Vou pegar o
componente da cápsula porque, mais uma vez, o componente da cápsula, se eu
entrar no meu BP, personagem de terceira
pessoa, esse é o componente principal do
qual todos os outros componentes adicionados a
ele são
anexados ao nosso componente da
cápsula anexados ao nosso componente da
cápsula Esse é essencialmente nosso componente
raiz aqui. Eu quero entender isso e
a razão pela qual quero colocar nosso componente de cápsula de volta
aqui em nossa bandeira de final de nível é para que eu possa me
arrastar e digitar
o componente de movimento dois. Vamos mover
esse componente. E ao mover esse componente, todos os outros componentes
do nosso personagem virão junto com ele. Vamos conectar isso
diretamente ao Move. Vou trazer um nó de rota vermelha só para
arrumar isso um pouco Agora, para onde
queremos mover isso? Bem, queremos mover isso
para o endpoint do nosso player. Então, vamos arrastar isso e pegar isso apenas para mostrar onde está em nosso endpoint do
player Viewport Acabei de clicar nele aqui. Você pode ver que está
logo ali embaixo. Esse é essencialmente o
ponto em que queremos mover nosso personagem para trás
em nosso gráfico de eventos aqui. Vamos mover isso para o lado aqui, nosso ponto final de
jogador Vamos sair daqui e
obter a localização mundial. Esse será o local para
o qual queremos ir. E então vamos
retirá-lo novamente e digitar get world rotation desta forma. Agora podemos especificar
em quanto tempo tudo isso
vai acontecer. Aqui, você pode
especificar um horário. Vou fazer com que
seja de 1 segundo. Isso fará com que
nosso personagem desça
pelo mastro da bandeira. Então, deixe-me clicar com o botão esquerdo e arrastar esse
toque, aquela tecla C, vou dizer
personagem animado para baixo do poste Pinte esse preto também. Você pode imaginar que
vamos fazer algo semelhante com nossa bandeira. Vou mudar
isso um pouco para cá. Essa será a primeira
coisa que
faremos com nosso
nó de sequência aqui. A próxima coisa que
faremos com
nosso nó de sequência é
pegar uma referência à nossa,
nossa bandeira, obviamente
estando aqui Esse é o nosso componente de bandeira. Vamos arrastar
e soltar isso. Nós vamos sair daqui. Também vamos trazer
o componente dois. Vamos conectar
isso assim, no pino de
entrada. Agora, onde queremos
animar isso? Bem, queremos mover
isso para o nosso ponto final. Temos um componente específico
para esse endpoint de sinalização. Se você esqueceu onde está, volte para a guia
Viewport Essa cabeça de dragão está aqui.
Este é o nosso ponto final de bandeira Então, vai ser assim
daqui para lá. Arraste para fora do
ponto final da nossa bandeira e obteremos a localização relativa Essa é a localização
em relação ao nosso alvo. E então vamos
arrastar isso e
digitar a rotação relativa. Então, novamente, vamos
especificar 1 segundo aqui. Ok, então isso
vai animar nossa bandeira. Clique com o botão esquerdo
e arraste essa toca, aquela tecla e esta será bandeira
animada no mastro Olá, esse preto. E então vamos compilar
e salvar. E vamos entrar, jogar e dar uma olhada no que temos. Tudo bem, pule aqui, a
bandeira é animada. Nosso personagem se anima. Agora, eventualmente, nosso personagem vai pular e explodir Mas isso é essencialmente o que queríamos que acontecesse até agora. Agora, uma coisa com a qual não estou exatamente entusiasmado aqui é
que nosso personagem, se você
observar e observar com atenção No momento,
parece que eles estão meio
que agarrando o mastro da bandeira, mas quando começaram,
parecia que estavam
um Então, deixe-me fazer
isso de novo agora. Veja a mão de nossos personagens. no início, eles estão meio que na
frente daquele mastro E então eles meio que se
animam até isso. Nossa bandeira está funcionando muito bem, mas nosso personagem
nem tanto. Então, a maneira de corrigir isso é basicamente
voltar ao nosso ponto de vista aqui e garantir que nosso gatilho
aqui esteja essencialmente alinhado
com o ponto final do jogador Então, se eu fosse entrar em
uma vista lateral aqui, vamos para a esquerda. Agora vamos para a visão certa. A visão correta é a que
queremos e eu tenho que selecionar
o volume do gatilho ali mesmo. Parece que está
na fila ali mesmo. Mas, aparentemente, isso não
vai ser ótimo visualmente. Então, vou aumentar
um pouco mais o volume do
meu gatilho No entanto, quero desativar
minhas configurações de snap aqui. Eu vou direto
para o meio como pensei que
queria. Agora eu poderia prever um problema definir o
volume do meu gatilho aqui: meu personagem
poderia esbarrar no mastro real e,
possivelmente, até mesmo
no próprio topo do
mastro próprio topo do Mas deixe-me
compilar isso, salvar e jogar agora, vamos ver como meu personagem reage
ao mastro Você pode ver agora que eles
não estão realmente
sobrepondo volume do gatilho
porque nosso personagem está esbarrando no
próprio mastro Então, como podemos remediar isso? Bem, o que podemos fazer é realmente desligar a colisão do nosso mastro, bem como do topo do nosso
mastro aqui Queremos garantir
que nosso personagem não esbarre neles Em vez disso, eles podem passar por ele para atingir
o volume do gatilho. Com os dois selecionados, tudo que vou fazer é
acessar predefinições de colisão e
ativar
a ausência de colisão, a ausência de colisão para nosso mastro, bem
como para o topo da bandeira Eu vou compilar. Salve isso novamente. Volte ao jogo. Agora, se eu fosse pular, eu basicamente atingiria aquele ponto. Isso é muito bom. Parece que nosso
personagem foi animado no mastro da bandeira conforme planejado,
sem que nosso personagem colidisse
com o próprio mastro Portanto, ajuste o
volume do gatilho conforme desejar. Novamente, eu o tenho meio que bem no meio do
meu mastro, ali mesmo Se você quiser ver
a localização real, é aí
que eu tenho
a localização definida N. Então, se você fizer isso, certifique-se de
desligar topo da bandeira e
os mastros da bandeira. Colisão. E
fizemos isso usando uma predefinição de colisão. Sem colisão. Tudo bem, vamos
encerrar esse vídeo. Ainda há mais trabalho a ser feito. Nos vemos a todos
na próxima.
84. Script de bandeira com pole #4: Tudo bem, continuando
com nossa bandeira de fim de nível, vamos voltar para que
possamos explodir o jogador, nossos jogadores atualmente
empunhando a bandeira Vamos fazer com
que eles pulem e explodam ali mesmo Para voltar à nossa bandeira de
fim de nível, mostrarei como
você pode simplesmente
clicar com o botão direito do mouse
no ativo do seu nível. Aqui podemos editar BP, bandeira de
fim de nível. Clicar
nisso funcionará perfeitamente. Controle também a
combinação fácil de teclas de atalho para voltar. Agora, este é atualmente nosso
roteiro a partir de uma visão de 10.000 pés. Vou
clicar com o botão direito do mouse e ampliar até onde estávamos animando nosso
personagem no poste Então, vamos voltar para aquela
região novamente. Está fora da nossa
sequência aqui. A primeira coisa que
vamos fazer é incluir
outra referência
ao nosso personagem diretamente no painel
My Blueprint Vamos trazer outra
referência ao nosso personagem mantendo pressionado o controle
e clicando com o botão esquerdo. Vamos pegar meu personagem. E então eu vou
tirar isso e digitar get mesh. Eu quero obter essa
malha de manequim de dentro
do nosso personagem Esse componente de malha. Em seguida, vou
arrastar isso e digitar a animação de reprodução. Há uma
animação específica que eu gostaria de
jogar e será M,
M, Underscore J. Ump E vamos
conectar isso ao final do componente dois do
movimento, depois de animarmos o
personagem no poste. Então, apenas mostrando onde isso
vai entrar. Agora, basta navegar até esta
animação aqui, clicando neste ícone de
lupa, ela ficará assim Como se nosso personagem
estivesse agachado. Então, basicamente, o que
vamos fazer é que
nosso jogador esteja no final. O mastro na
parte inferior, se você quiser. E eles
vão fazer uma pausa por apenas um breve momento E é aí que vou
voltar ao meu roteiro aqui. E eu vou
dizer, vamos
atrasar aqui por 0,3 segundos. Então, vou manter pressionada a
tecla para atrasar, clique com o botão esquerdo. Isso trará um nó de atraso. Então, eu tenho meu personagem
interpretando essa animação, que se agacha enquanto está
pulando E então vamos
atrasar 0,3
segundos por 0,3 porque,
bem, isso é o que meu teste de jogo determinou que foi muito bom. Vou clicar com o botão esquerdo
e arrastar ao redor deles, tocar na tecla e este será meu player na parte inferior da representação do
script do mastro Eu vou dizer entre parênteses, pule. Eles não
vão realmente pular, nós vamos movê-los, mas vai
parecer que eles estão pulando Mais uma vez, vou colorir
isso de preto também. OK. Em seguida, vamos fazer nosso jogador realmente pular do mastro da bandeira. Então, vamos apertar o botão
direito da boca e dar uma olhada. Vamos construir a
partir desse nó de atraso. Mais uma vez, vamos
trazer uma referência ao nosso personagem. Vou manter pressionado o controle, clicar com o botão
esquerdo e arrastar.
Aí está meu personagem. Vou fazer isso mais uma vez e vou pegar
a mistura, Get ish Também vamos reproduzir outra animação, a animação
drag play. E o que isso vai ser, vamos conectar isso imediatamente, o fio de execução, para
que essa função, essa
função de animação de reprodução aconteça. Agora, a animação que eu
quero reproduzir aqui se
chamará fall loop. Estará na mesma
série de pastas lá. Você pode ver o caminho aqui, Fall Loop, só para mostrar como isso
vai parecer, vai parecer
que nosso personagem está meio que perpetuamente preso nesse loop.
Algo parecido. Enquanto eles estão animando
da parte inferior do mastro até
nosso ponto de explosão, eles basicamente
reproduzirão essa animação Você pode definir isso como
loop, se quiser. Quero dizer, tudo isso vai
ser relativamente rápido. Essa é a
escolha do revendedor. E então o que eu vou
fazer é
arrastar meu
personagem para cá novamente. E vamos pegar os componentes da
cápsula mais uma vez. O componente da cápsula é principal componente raiz
de nosso personagem, qual estão anexados todos os outros
componentes. Então, se movermos o componente da
cápsula, vamos mover
todo o resto. Agora, a razão pela qual
estamos fazendo isso é porque vamos nos
afastar disso e dizer mover componente para. Vamos mover
esse componente, certifique-se de conectá-lo da mesma
forma que antes. Bem, queremos movê-lo
para o nosso ponto de explosão. Agora, deixe-me pular para o
nosso ponto de vista aqui. Temos esse ponto
de explosão do jogador. E eu o selecionei no
meu painel de componentes. Isso é essencialmente
esse componente de seta aqui, dentro desta caixa, ali mesmo, para
onde vamos mover o componente da
cápsula de nossos jogadores. Vamos fazer nosso
jogador explodir. Aponte esse componente
para lá. Vamos prolongar isso, vamos obter a localização
mundial. E esse será o local alvo
do nosso componente
de cápsula. Depois, também
vamos adiar isso e dizer que, ao girar o
mundo, mais uma vez, você decide por quanto tempo essa transição
vai acontecer, desde o momento em que nosso personagem
está agachado na parte inferior
do poste
até a escolha do dealer Vou definir isso para meio
segundo, então 0,5 segundos. Vamos colocar uma caixa de quadrinhos
ao redor desse clique esquerdo,
arrastar, tocar nessa tecla, e eu direi um jogador
pulando do mastro da bandeira Vamos colorir isso de preto
também. Basta diminuir o zoom em um. Atualmente, temos dois blocos de script aqui que
escrevemos neste vídeo em
particular. Tudo bem, agora vamos explodir
os jogadores, certo? Então, para fazer isso, vamos
passar para a direita. Mais uma vez, queremos
colocar o personagem no componente
da cápsula. Mais uma vez, vou
usar um atalho. Aqui. Vou destacar esses dois nós controlando
e clicando com o botão esquerdo. Vou fazer o controle D para duplicar os dois e
trazê-los até aqui O que eu quero fazer
é
arrastar o componente da minha cápsula aqui. Quero obter a localização mundial
do
nosso componente de cápsula. E a razão pela qual eu quero obter a localização mundial do componente da
minha cápsula é porque é aí que
vou sair daqui, gerar o emissor Mais uma vez, gerar
um emissor
gerará o estilo antigo
de partículas Agora, a razão pela qual estou
gerando um estilo antigo de partículas é porque,
se eu clicar aqui, nossa partícula de explosão atualmente em nosso conteúdo inicial é o legado, o antigo sistema de partículas em
cascata Nós o temos disponível para nós
no conteúdo iniciado. Se você tiver um novo
estilo de explosão disponível por meio do sistema de partículas do
Niágara,
você pode escolher gerar o
sistema no local, é assim
que você pode gerar uma partícula do Temos que inserir isso
como o local onde vamos gerar esse efeito
de partícula Também vou aumentar essa explosão para
torná-la um pouco maior. Então, vou configurá-lo para
dois em toda a linha. Eu também vou usar essa localização mundial como o lugar onde eu
quero tocar um som. Sim, você pode tocar um som
em um determinado local. Então, vou
sair daqui e digitar o som de reprodução
no local. Então, é claro, se temos
um visual para uma explosão, provavelmente também queremos um efeito sonoro
para uma explosão. Temos essa explosão. O que isso fará é randomizar quais
dessas duas ondas sonoras são reproduzidas de forma muito semelhante, mas você pode escolher qualquer uma
dessas ondas sonoras em si Isso reproduzirá a própria onda sonora
bruta. Uma sugestão sonora oferece um
pouco mais de flexibilidade, pode oferecer
coisas de randomização dessa natureza Então, vou
escolher a sugestão sonora. Agora, mais uma coisa que
vou fazer aqui é que
não vou realmente
destruir o jogador, vou apenas
esconder o jogador. Então, vou retirar o componente da minha cápsula mais
uma vez. E eu vou digitar
a visibilidade do set. Não quero
destruir o jogador e perder uma vida ou
algo parecido. Então, vou definir a visibilidade, garantir que você conecte
esse fio de execução. E vamos deixar essa nova visibilidade
aqui desmarcada O que significa que não vamos ver nosso personagem
explodindo nosso jogador Na verdade, não estamos nos livrando, não
estamos destruindo nosso jogador É tudo um pouco
de prestidigitação, uma mão apenas os escondendo,
tornando-os invisíveis. Tudo bem, tocando na tecla C. Vou chamar isso de meu script
Explode the Players. Vamos colorir isso de preto também. Tudo bem, vamos
compilar isso e salvar. Vamos entrar e jogar
e ver como isso fica. Tudo bem, vou pular isso. Basta pular na
piscina, anotar, fazer uma
pausa, pular e nosso
personagem não explodirá Então isso é obviamente um problema. Vamos ver o que está errado. Bem, e aí
estaríamos. Nosso
componente da cápsula está funcionando, mas também preciso
propagá-lo para as crianças Esses são todos os outros componentes que
serão anexados a ele. Então, se eu marcar essa caixa, vamos voltar, jogar
e entrar. Escrevemos isso, bum, se foi nosso personagem
em uma chama de glória Que satisfatório, de fato. Então, sim,
lembre-se de
marcar essa caixa para propagar também
para crianças Tudo bem, então,
neste vídeo, adicionamos essas três seções do script ao nosso mastro de bandeira no final
do nível E construímos isso com nosso personagem
animado no mastro da bandeira Então, só para ampliar um
pouco cada pedaço do script, caso você queira
pausar o vídeo aqui Era nosso jogador na
parte inferior do mastro, se
preparando para pular, jogador
pulando E por último, mas não menos importante, estamos explodindo nosso jogador Tudo bem, falta um
pouco mais, mas isso encerrará este vídeo. Nos vemos na próxima.
85. Script de bandeira com pole #5: Tudo bem, vamos
finalizar nossa bandeira de fim de nível
clicando com o botão direito nela. Eu vou editá-lo. Control plus E vai
voltar para lá. Mais uma vez, é assim que
nosso script se parece uma visão
ampliada
de 10.000 pés. Vamos continuar no canto inferior direito aqui, então vou clicar com o botão direito do mouse. Aumente o zoom. Vamos construir a partir desse nó de visibilidade definido. Agora, nosso objetivo aqui será
jogar um
show de fogos de artifício somente se nosso tempo de final de nível terminar com
um determinado dígito Agora eu tive essa ideia
ao jogar o primeiro Super Mario
Brothers na Nintendo. E acredito que, se eu me
lembro corretamente, se você terminasse com um
tempo nivelado com um dígito de seis, ou
seja, 86 segundos, seja, 86 segundos, você teria uma exibição de fogos de artifício
consistindo em seis fogos de artifício consistindo em seis fogos de Então, isso é essencialmente
o que estamos procurando aqui. Só um pouco mais de jazz. Agora, o que eu quero fazer aqui
é descobrir
se o número do nosso
show especial de fogos de artifício, no meu caso, eu tenho uma variável inteira
definida com o valor de sete, vamos arrastá-la para fora,
então, se nosso tempo
basicamente terminar com o nível sete,
vamos pegar essa variável que
queremos exibir
fogos de vamos pegar essa variável artifício Então, aqui estou trazendo uma referência essencialmente ao
nosso número sete aqui. Então, agora eu quero descobrir se
nosso tempo de nível
terminará com o número
sete. Então, como eu faço isso? Bem, eu tenho que trazer uma
referência ao meu controle,
meu controlador BP player Então, vou manter pressionado o
controle, clicar com o botão esquerdo e arrastar. Em seguida, vou
sair do meu controle aqui e digitar o tempo do nível. Vamos conseguir
nosso tempo nivelado. Agora, essa é uma
variável inteira que vive dentro do nosso controlador de
player BP. Então, deixe-me passar rapidamente para
esse plano. Há minha variável de número inteiro de
tempo de nível dentro dela
atualmente definida como 500 Vamos voltar para nossa bandeira de
fim de nível. Ok, e o que queremos
fazer é descobrir o dígito mais correto disso Agora, para fazer isso,
vamos clicar com o botão direito em
algum espaço vazio e digitar logo abaixo da string. Clique com o botão direito para
inserir um nó de função aqui. E o que vamos fazer
é inserir nosso número inteiro aqui
nessa entrada de string Isso converterá nosso tempo de nível de um
inteiro em uma string Ao converter isso
em uma string, temos acesso a mais funções como essa função aqui para extrair algumas
informações muito específicas sobre ela Nesse caso,
queremos apenas descobrir qual
é o último dígito do nosso tempo
de nível Agora, para fazer isso, se
eu passar o mouse sobre
isso, ele dirá que retornará a string à direita do local
especificado. Contando para trás
a partir da direita. Se eu definir minha contagem aqui como um, basicamente me
dará o último dígito contando
a partir da direita do nosso tempo Se terminarmos com um tempo
nivelado de, digamos ,
87, ele exibirá o
número sete aqui E vamos
comparar isso com nosso show
especial de fogos de artifício Para comparar esses
dois, vou clicar com o botão
direito do mouse em algum espaço vazio e inserir um operador igual. Nosso
show especial de fogos de artifício será, bem, estamos
conectando-o ao topo Nosso valor de retorno aqui da nossa função será
inserido na parte inferior Isso vai transformar isso em
uma entrada de string imediatamente. E então o que
vamos fazer é uma nota de ramificação para manter pressionada
a tecla B s, ramificar
e clicar com o botão esquerdo. Essa será a nossa
condição que estamos verificando aqui para ver se elas
são essencialmente iguais. Mais uma vez,
continuaremos com
nosso explode the player Para manter o fluxo de
execução em andamento, você deve pegar o pino de saída de
visibilidade definido aqui e conectá-lo
à ramificação. E então, com isso, vou clicar com o botão
esquerdo ao redor desses nós. Arraste para fora, toque na tecla C
para abrir a caixa de quadrinhos. E este será meu cheque se
o último dígito do tempo restante for
igual ao número do show de fogos de artifício E vou colorir
isso de preto para
facilitar a visualização se você quer pausar o
vídeo aqui Então, somos apenas nós verificando se o último
dígito do tempo restante é igual ao especial
do
show de fogos de artifício desejado Se isso for verdade, vamos
continuar com isso. A ramificação verdadeira, vou
trazer um nó de atraso. Mantenha pressionada a tecla D e clique com o botão
esquerdo, vamos atrasar por apenas
meio segundo, 0,5 segundos. Então, vamos fazer algo um certo
número de vezes. Vamos clicar com o botão direito do mouse
e inserir um nó. Queremos fazer algo
várias vezes. Sendo esse valor qualquer que
esteja associado a isso,
o que queremos fazer? Um número de vezes? Bem, quantas vezes queremos
fazer isso? Bem, vamos fazer isso,
nosso show especial de fogos de artifício no nosso caso, sete vezes O que queremos que
aconteça sete vezes? Bem, vamos
gerar alguns fogos de artifício agora. Vou me mudar para cá, clicar com o botão direito do mouse e
gerar o emissor no local não vou conectar
isso,
mas vou conectar ou especificar
meu modelo de emissor aqui E isso vai ser
underscore spark burst. Esse cara aqui, está no pacote de efeitos
Infinity Blade Sublinhe a explosão da faísca. Agora, onde eu quero que a localização desses
fogos de artifício seja reproduzida Bem, se eu entrar na
minha janela de exibição aqui, configuro toda a área da
caixa aqui Na verdade, eu a chamei de
área de fogos de artifício. Eu só queria aparecer aleatoriamente em
algum lugar nesta área. Com esse componente
selecionado no meu gráfico de eventos. Vou trazer
minha área de fogos de artifício. Vou
arrastá-lo até lá. Vamos ampliar um pouco
aqui. Essa é minha área de fogos de artifício. Vou
sair disso e
vou dizer: obtenha a localização mundial. Obtenha a localização mundial, como. Então, eu também vou sair daqui em extensão digitada,
pegar a extensão
da caixa, pegar a extensão
da caixa, basicamente me dar essa área onde está
nossa área de exibição de fogos de artifício Em seguida, vou clicar com o botão direito do mouse
em algum espaço vazio para digitar ponto aleatório
na caixa delimitadora Então,
vou ver o centro da nossa área de fogos de
artifício aqui E então, para a extensão da caixa, ela será conectada
à nossa metade do tamanho
e, essencialmente, isso
escolherá um ponto dentro da nossa área de fogos de
artifício Esse será
o local em que eu quero gerar nossos fogos de artifício Agora, eu não vou simplesmente
conectar isso diretamente aqui. O que eu quero fazer
em vez disso é que isso seja definido como nosso local de fogos de
artifício Porque eu quero fazer
isso várias vezes,
para que toda vez que
nosso local de fogos de artifício, sempre que disparar
várias vezes, no nosso caso, sete vezes, ele escolha um local diferente Toda vez que vou pegar nosso local de fogos de artifício
aqui e colocá-lo diretamente no topo do valor de retorno
para trazer um E agora minha configuração será assim toda vez
que sairmos daqui,
criaremos um novo local
aleatório para
fogos de artifício E esse
será o local em que
geraremos uma explosão de faíscas, essencialmente alguns fogos de artifício Agora, mais uma vez,
se você quiser usar o sistema Niagara Particle,
essa seria a localização do sistema de
spawn Essa partícula em particular
é um pouco pequena, então vou aumentar seu
tamanho aumentando minha escala aqui para dez
em todos os aspectos Agora é muito ridículo ter um efeito de partícula
sem algum som Então, vamos tocar um
pouco de som depois disso também. Então, saindo daqui, vamos tocar o
som no local O que queremos
para um som aqui? Bem, eu realmente pensei que o som de
Mario Swamp realmente soa muito bem
para essa explosão Não soou bem. Na verdade, achei que soou
muito bem A localização do som. Bem, eu posso mais uma vez
usar meu local de fogos de artifício. Onde quer que nossa
localidade de fogos de artifício seja determinada, usaremos isso como local onde
nosso som será reproduzido Então, o que eu também vou
fazer é gerar alguns pontos Vamos sair daqui
e eu vou
digitar saw Act da aula, porque seria legal ganhar alguns pontos de bônus por ganhar alguns fogos de artifício Se você quiser, em nossa aula aqui, vou colocar nossos pontos de sublinhado da
BP que criamos no
início E, claro, temos que especificar onde isso vai aparecer Eu posso simplesmente arrastar para trás
a transformação de spawn
e digitar make
transform da mesma forma para
o local de fogos de artifício Eu poderia simplesmente conectar isso como o local para gerar
esse widget de pontos, o que vai
ser muito legal Agora, quantos pontos
queremos adicionar para cada fogo de artifício? Bem, quero dizer,
podemos escolher aqui. Temos nossos
pontos de fogos de artifício variáveis. Atualmente, configurei
isso para 500, então vamos continuar e conectar
isso, é por isso
que criamos esse cara. Então, o que
também vamos fazer é trazer meu controle, que se refere ao fato de
nosso controlador de jogador
arrastá-lo para dentro Vamos pegar isso, depois vamos sair disso e digitar pontos de adição. Vamos somar pontos, e eu vou passar para
isso em apenas um segundo. Quantos pontos
gostaríamos de adicionar? Bem, podemos somar o número
de nossos pontos de fogos de artifício. Essencialmente, o que estamos
fazendo aqui é
mostrar pontos toda vez que
um fogo de artifício explodir Além disso, chamamos isso de pontos de adição dentro do
nosso controlador de player BP.
O que isso está fazendo mais uma vez? Bem, se eu clicar
duas vezes
nisso, vou direto para o controle do meu player
BP E isso mostra que vamos
chamar esse evento personalizado. E vamos passar
pelo número de pontos
que conectamos, aqui
mesmo, neste caso 500 Vai passar por isso. 500 mais nosso total de
pontos atual. E isso fará com que
nosso novo total de pontos. Mais uma vez, nosso valor de pontos está associado à
exibição de pontos dentro de nosso Ud, então isso deve estar bem no Dandy Tudo bem, vamos ampliar e mostrar mais uma vez
o que temos aqui. Vou clicar com o botão esquerdo e
arrastar tudo isso, aquela tecla, e vou
chamar isso de minha jogada. Fire Works, concedendo
pontos extras ao jogador pela conclusão do tempo Agora, se você é realmente experiente aqui, você deve ter notado que
eu
ainda preciso fazer alguma coisa . Deixe-me mudar minha
cor aqui para preto No momento, estamos
permitindo que isso
passe várias vezes
para gerar um novo fogo de artifício No entanto, atualmente
estaríamos passando por aqui uma vez, mas não temos disparar isso
sete vezes, como gostaríamos O que precisamos fazer
aqui é
criar um evento personalizado. Aqui em cima. Evento personalizado, e vou simplesmente
chamar isso de mais fogos de artifício E vou conectar
isso ao nosso atraso. E a razão pela qual vamos
fazer isso é porque se isso mais
uma vez for considerado verdadeiro, vamos dizer, ei, vamos
atrasar por meio segundo Em seguida, vamos
aparecer em um fogo de artifício. Agora diz que é hora de término devido. Então, na primeira vez que
passarmos, ele fará todo esse código,
mas, no
final, precisamos mais fogos
de artifício, eventos
personalizados que
acabamos de criar Então, basicamente, o que
isso vai fazer, eu apenas cliquei duas vezes nele Isso nos levará de volta a esse evento personalizado para que
possamos atrasar meio segundo. Novamente, passe pelo nosso D N, neste caso pela segunda vez, permitindo que apareçamos em
um novo conjunto de fogos de artifício E isso vai se repetir
até atingirmos nosso limite, neste caso de sete, caso
em que não
passará mais desse ponto. Tudo bem, vamos compilar nosso script aqui,
salvá-lo
e ter certeza
de que está tudo bem Isso é o que
construímos nisso. Um pouco, difícil de ver, então talvez eu tenha que
enquadrá-lo em duas fotos aqui. Ok, aí, e
bem aqui. E agora vamos começar a
jogar e nos fazer um teste. Tudo bem, vamos lá. Tente
chegar ao alto para pegar esta. Ah, e é claro, eu não defini meu tempo de nível, não
joquei o sistema aqui. Atualmente, meu tempo
está definido para 500. Mais uma vez,
vamos aumentar nosso tempo em breve
nos próximos vídeos, mas vou ter que programar nosso tempo
apenas
para ter certeza de que
está funcionando conforme o esperado Então, vou levar meu controlador de
player BP aqui. Eu vou definir meu tempo
de nível aqui para ser. Vamos 47, então está terminando
com o número sete. Ok, vamos em frente
e salve isso. Vamos voltar e jogar
meu jogo. E aqui vamos nós. Mais uma vez, está terminando com
o último dígito de sete. Recebemos sete fogos de artifício
cada, somando 500 pontos. Você viu esses pontos
aumentarem e serem adicionados ao meu total no canto superior direito e isso está funcionando conforme o esperado Muito bem, pessoal. Agora temos um mastro
de fim de nível em algumas configurações de nível em que
faremos com que coisas como nosso cronômetro de nível realmente
funcionem. Nos vemos lá.
86. Blueprint de configurações de nível: Bem-vindo ao longo dos
próximos vídeos aqui As
coisas realmente se encaixarão
à medida que
implementarmos um plano de
configurações de nível Agora, esse será um modelo
altamente personalizável que poderemos
colocar em nosso E isso
determinará coisas para nós , como o nível de
música que queremos tocar, que tipo de
limite de tempo queremos
implementar nesse nível
específico. Além de modificar
quando tocar música, indicando que
nosso tempo de nível está prestes a acabar, bloqueie o tempo Música Todo esse tipo de jazz. Então, coisas boas
serão implementadas neste. E este também
se relacionará com alguns outros projetos que criamos ao longo
do curso Portanto, antes de fazer
toda essa seção de vídeos, certifique-se de
ter concluído a planta do ponto de verificação, o widget
do hud, a
planta Porque todos eles se conectarão a esse sistema que estamos
prestes a criar aqui. Tudo bem, para
começar, mais uma vez, vamos criar
um plano de aula de atores E faremos isso dentro
da nossa pasta de blueprint. Então, o primeiro passo é entrar
aqui.
Vamos clicar com o botão direito do mouse. Vamos criar
uma nova classe de modelo da variedade
de
classes pais de atores E vou dar um nome a isso. E onde o colocou? Dentro daqui. Aí
está, bem ali embaixo. Pressionando F dois para renomear isso, vou chamar isso Configurações do nível de sublinhado. Tudo bem, com isso selecionado, vou apertar a
barra de espaço para abri-lo O objetivo deste é
apenas colocar o componente e
as variáveis no lugar e
, em seguida, escreveremos o roteiro
do próximo vídeo ou vídeo. Vamos trazer os componentes que vamos querer
para isso. O primeiro componente
que vamos adicionar, vamos adicionar vários componentes
de áudio aqui. O componente de áudio está
na parte superior dos seus anúncios. Este primeiro eu vou
chamar de componente musical de nível. O próximo que vou adicionar
é um componente de áudio. E realmente não importa
que eles estejam conectados aqui. Mas se você ficar louco fato de eles estarem conectados um
ao outro, basta arrastá-los
e soltá-los sobre o componente
de áudio existente O próximo será chamado Time Running Out Warning. Vou selecionar meu sênior padrão. Mais uma vez, adicione
outro áudio. Este será
chamado de tempo expirado. O sensor padrão
mais uma vez clicará em Adicionar. Todos esses serão
componentes invisíveis em nosso próprio jogo. A propósito, este será chamado
de Nível Completo. Opa. E eu
digitei Nível Completo Eu só quero adicionar
um componente de áudio e chamá-lo de Nível completo. Ok, vamos definir
as configurações para cada um
deles imediatamente, começando pelo nosso nível. Música Vamos seguir em frente
e selecionar isso. No painel de detalhes
, onde diz Som,
vamos inserir. Música que estou
procurando no nível Mario. Música Queremos rolar para baixo. Isso é muito importante
quando diz ativação automática. Vamos escolher não
ativar isso automaticamente. Ok, em seguida, vamos selecionar
nosso Tempo se esgotando. Mais uma vez,
desmarcaremos imediatamente a ativação automática. Mas para o som em si, vamos inserir o aviso
de esgotamento do tempo de
Mario e, se o tempo expirar, vamos
selecionar esse componente Certifique-se de desmarcar a ativação
automática imediatamente. Para o som, vamos
escolher Mario expirado. O tempo expirou. Então, para completar o
nível, você
selecionará isso. Certifique-se também de que a
ativação automática não esteja marcada. Caso contrário, ele
tocará logo no início. O som
aqui, vamos
escolher se no início. O som
aqui, vamos
escolher o nível está limpo,
Mario, o nível está limpo Tudo bem, então temos quatro músicas
diferentes,
se você quiser, associadas às nossas configurações de nível. E eles estão prontos para
não serem ativados no início. Vamos descer e
criar algumas variáveis. Em seguida, no meu painel de diagramas, variáveis, clicando
no botão de adição Este primeiro será
chamado de limite de tempo atual. Isso será um número inteiro. Vamos
fazer uso
de tudo isso com algum script. Vou selecionar isso e com esse controle D
selecionado, porque eu quero outro número inteiro, esse será
chamado de Limite de Tempo Máximo. Com isso selecionado, farei o controle D porque
quero outro número inteiro E este vai
se chamar Time Running Out Warning,
isso vai durar. É exatamente o mesmo
que meu componente aqui em cima. Vou chamar isso de meu aviso
Running Out, o V, a versão variável. Em seguida, vou adicionar
outra variável. Isso será
chamado de taxa de jogo temporal. Isso vai ser um carro alegórico. Então, por último, mas não menos importante, vou adicionar
outra variável e ela
será chamada de meu nível. Música Para isso, vou definir o tipo para ser onda sonora. Vamos escolher o tipo de
objeto, onda sonora, referência do
objeto. Agora, mais uma vez,
vamos fazer uso de tudo isso em
algum roteiro futuro. Vamos compilar
aqui para que possamos definir alguns valores padrão
para cada um deles Então vá em frente e compile. Isso nos permitirá definir
alguns valores padrão para um limite de tempo atual. Vou definir isso como
zero para nosso limite de tempo máximo. Também vou definir isso como zero. Observe que esses valores
não precisam ser definidos aqui. Esse valor máximo será
definido no editor de níveis e será passado
para a
variável de valor atual usando o script. Eventualmente, criaremos algo que
eu quero fazer, mas com
o limite máximo de tempo,
quero ter certeza
de definir isso como editável por instância para que
possamos editá-lo
no editor de níveis Em seguida, para um aviso de tempo
esgotado, esse é o limite de tempo com o qual você
quer jogar
aquela cantiga avisando
o jogador de que, ei, seu tempo está
prestes a acabar Então, com isso,
também queremos expor isso para tornar essa
instância editável Então, podemos editar isso
do editor, se quisermos. E vamos definir isso como 50. Mas, mais uma vez, a escolha do revendedor. Vou avisar
o jogador com cerca de 50 segundos restantes que, ei, você está prestes
a ficar sem tempo Minha taxa de jogo, vou
definir isso como 1,0 o que significa 100% da taxa normal. Então, isso vai ser
usado para determinar o quão rápido vamos realmente marcar segundos fora do nosso relógio Na verdade, nem todos os jogos de Mario realmente diminuem o
tempo no mundo real. Em segundo lugar, às vezes eles
aumentam mais rápido do que isso. Suponho que também poderíamos tornar essa
instância editável. Eu poderia marcar esta caixa aqui, mas também clicar
neste pequeno ícone do globo ocular fará exatamente o mesmo Apenas mostrar isso
marcando isso ou clicando no globo ocular
faz a
mesma coisa Música Aqui, também tornaremos essa instância editável, que
significa que, se colocarmos nosso ator de configurações de nível
aqui em um nível dois, nível três, nível
quatro, etc., poderíamos realmente alterar o nível padrão de Música.
Por enquanto, vou
definir isso para o nível Música E agora, se
compilarmos e
salvarmos, poderíamos
colocar um desses caras Você só precisa de um desses. A forma como isso será projetado dentro do nosso nível, então vou simplesmente arrastar
e soltar isso nos meus dois D, minha camada principal aqui. Claro, deixe-me ativar
minhas configurações de snap também. Vou deixá-lo
aqui mesmo. E então deixe-me
colocá-lo
no ar, mais ou menos
acima de tudo. Portanto, observe que isso é apenas uma
coleção de ícones. É um monte de, você sabe, ícones
de áudio que se sobrepõem ícone
raiz
da cena padrão aqui E o que eu realmente
queria mostrar é isso no painel de
detalhes aqui. Agora, poderemos personalizar várias coisas sobre esse nível
específico, o nível um. Portanto, observe que, se
você criar um nível dois, nível três, etc., poderá arrastar um
deles para o nível
dois, nível três, etc., e personalizá-lo
para esse nível específico Aqui mesmo,
no editor de níveis, o jogador não verá
esses ícones. A razão pela qual estamos
criando isso como um plano de classe de ator a
ser colocado no nível é porque será uma maneira muito conveniente de se comunicar com outros
projetos em nosso nível Ok, então
começamos bem aqui. Mais trabalho a ser feito, especialmente no que diz respeito à criação de scripts Mas temos nossas configurações de
nível de BP
reunidas junto com
os componentes e as variáveis que serão necessárias daqui
para frente Tudo bem, pessoal,
isso bastará para este. Nos vemos na próxima.
87. Script de configurações de nível #1: Tudo bem, bem-vindo de volta.
Neste vídeo, nossas metas são criar um roteiro dentro de
nossas configurações de nível, modelo de classe de
ator aqui Isso executará nosso cronômetro de
jogo e reproduzirá componentes de áudio
relevantes,
dependendo da situação do jogo Vamos voltar aqui
clicando duas vezes nele ou selecionando-o
e pressionando a barra de espaço. Vamos acessar nosso gráfico
de eventos aqui. E você deve ver três
nós aqui graduados. Vamos
eliminar esses dois. A marcação do evento e o
início do evento se sobrepõem. No entanto,
usaremos o início do evento. Se você ainda não vê isso
aqui, você pode clicar com o botão direito do mouse em algum espaço vazio
e procurá-lo. E o que vamos
fazer após o
início do evento é trazer um
nó de sequência. Vou manter pressionada a tecla S e clicar com o botão esquerdo para inserir um
nó de sequência. E a razão pela qual estou
trazendo isso é porque, quando gosto de
fazer várias coisas, neste
caso, sem começar a jogar, gostaria de
segmentá-las em seus próprios scripts
separados apenas para
fins organizacionais. Agora vou
fazer cinco coisas aqui. Então, vou adicionar mais
alguns pinos. E provavelmente
vamos falar sobre
isso ao longo de alguns vídeos, apenas para
manter as coisas mais breves. Agora, antes de construirmos a partir
desse pino zero, na verdade
vou criar
um evento personalizado aqui,
clicando com o botão direito do mouse em Evento personalizado. E vamos chamar
esse jogador de responder. Porque, embora queiramos que
várias coisas
aconteçam no início do jogo, também
queremos redefinir essas coisas que acontecem quando
nosso jogador responde Então, vamos convocar esse evento personalizado aqui
em pouco tempo. Mas vamos continuar
e conectar isso também
ao nó da sequência Ok, a seguir, o que queremos fazer base em
nosso pino zero, é trazer uma
referência ao nosso modo de jogo. Então, vamos clicar com o botão
direito do mouse no modo de jogo. Vamos prolongar
isso e
lançar dois, nosso modo de jogo. Qual modo de jogo estamos usando? Estamos usando nosso modo de jogo em terceira
pessoa. E mais uma vez, esse
é o que está dentro da nossa pasta de
plantas em terceira pessoa Estamos usando esse modo de jogo em
terceira pessoa. E deixe-me abrir isso imediatamente porque aqui
temos um script de Respawn E isso
será essencialmente uma espécie de
plano de conexão às nossas configurações de nível
aqui, como veremos em apenas um pouco
do nosso pino zero Vamos conectar
isso aqui imediatamente. E só estou trazendo isso à
tona um pouco mais alto. Agora, antes de
continuarmos com isso, precisamos realmente
entrar em nosso modo BP, homossexual em
terceira pessoa Vamos adicionar um
despachante de eventos aqui. Descendo o painel do meu
projeto. Clique nesse botão de adição
para adicionar um despachante de eventos. E vamos chamar
esse jogador de Respawn. Com isso criado, vamos
realmente criar uma chamada para isso no final do nosso script
de Respawn Dentro do nosso jogo em terceira pessoa. Os modos vêm logo no final. E vamos arrastar isso dentro e vamos chamar isso. Agora, isso
enviará uma mensagem para qualquer outra planta que
esteja ouvindo isso E então, esses planos de
escuta podem responder adequadamente Então, com isso adicionado, esse jogador do Dispatcher de
eventos responde e, em seguida, incluiu aqui esta chamada no
final do nosso script Vamos
compilar e salvar. É muito importante que você
compile e salve aqui. Para que agora, dentro de
nossas configurações de nível, possamos sair desse
modo de jogo em
terceira pessoa do BP e procurar jogador, aquele despachante de eventos Agora, queremos atribuir o
renascimento do jogador. Isso
trará dois nós. Veja como isso funciona. Vamos vincular
esse evento personalizado a esse expedidor de eventos para que
, quando ele for chamado aqui em
nossas configurações de nível, estejamos atentos É para isso que serve
toda essa configuração, ou
seja, ouvir quando o evento personalizado
dos jogadores é convocado. E quando isso for chamado, sairemos desse evento personalizado. Basicamente, isso é
esperar que o despachante de eventos de
resposta do jogador seja chamado E no momento em que
isso for chamado, e somente então, esse evento
personalizado será acionado. Tudo o que vamos fazer
com isso é incluir
nosso componente musical de nível diretamente em nossa lista de
componentes. Arraste isso para dentro. E então vamos tirar
isso e digitar
o multiplicador de tom definido E vamos
definir isso como 1,0, essencialmente o
tom desejado que queremos que seja. Agora, é importante
fazer isso ao responder, para garantir que
nossa música nivelada esteja
tocando nesse tom Como vamos modificar
essa proposta, você sabe que o tempo está
acabando Em seguida, também
finalizaremos esse trecho do script
fazendo uma chamada de volta para
esse evento personalizado, também chamado de resposta do jogador.
Portanto, não se confunda. evento personalizado desse jogador é diferente do expedidor de eventos
desse jogador que vive dentro do nosso modo de jogo em
terceira pessoa Então, vamos tirar isso e
digitar a
resposta do jogador, chamar essa função, a resposta
do jogador, e se eu clicar duas vezes nisso, isso verificará se ele apenas chamará aquele evento personalizado. Logo no início
desse roteiro. Vamos
clicar com o botão esquerdo e arrastar esses nós e tocar na tecla C ao redor deles para
que possamos comentar isso Chamarei isso
de despachante de eventos Listens out for player response em nosso modo de jogo e
redefinirei nossas configurações de nível Mais uma vez, vou
colorir esse preto apenas para criar um contraste
mais nítido Então é isso que temos até agora. Talvez eu adie isso
um pouco só para enquadrar isso
um pouco melhor. Ok, a segunda
coisa que vamos fazer com nossa nota de
sequência aqui, vamos colocar nossa nota de
sequência para baixo, é clicar com o botão direito do mouse em algum espaço vazio
e
dizer pegue o controle do player. Em seguida,
sairei daqui e
lançaremos para o controlador do jogador,
nosso controlador do player BP A razão pela qual estamos
fazendo isso é porque queremos extrair algumas
informações dele. Em vez disso, queremos definir uma
variável dentro dela. Mas antes de fazermos isso, vou clicar com o botão direito
neste alfinete aqui. E vamos promover
isso para uma variável. Vou simplesmente chamar isso de
meu controlador Player Ref. Vamos usar
esse controle de player novamente. Vamos promover isso para uma variável imediatamente. Existem controladores de jogadores
armazenados nessa variável. E agora o que eu quero
fazer é
arrastar nosso
controle do player e
definir o tempo de nível
novamente dentro do nosso controlador do
player. Vamos pular para o nosso controlador de
player, que está na minha estrutura de
projetos de plataforma, controlador de
player Eu tenho essa
variável de tempo de nível aqui, atualmente ajustada para 500. Eu o ajustei de volta para 500 e
quero ser capaz de definir isso. Agora, mais uma vez, essa variável está vinculada à nossa
exibição de tempo de nível em nosso capô. E aqui, dentro de
nossas configurações de nível, estamos dizendo que
queremos poder
personalizar qual é esse valor. Essencialmente, nossas
configurações de nível passarão um novo número para essa
variável aqui. Agora, o que eu
quero definir isso também? Eu tenho meu limite de tempo máximo. Vou simplesmente conectar isso aqui agora com minha configuração de nível de BP
selecionada aqui no meu nível Tudo o que eu defini como meu limite máximo de tempo
aqui no painel de detalhes. Então, deixe-me ir em frente
e definir isso para 300. Isso
passaria isso de nossas configurações de nível aqui para o tempo de nível em
nosso controlador de jogador. E para provar isso, se
eu
clicar em jogar agora, você pode ver
no topo que
agora vemos o valor de 300
em vez de 500, porque
aqui em nossas configurações de nível, estou passando um
novo limite de tempo para aquela variável que vive dentro
do nosso controle de jogador Agora, mais uma coisa que eu quero
fazer aqui é pegar nosso limite de tempo atual e
arrastar e soltar isso. E coloque isso bem no final. Vou apenas arrastá-lo e
soltá-lo neste pino aqui para definir nosso limite de tempo atual. Agora você pode estar se perguntando
por que estamos fazendo isso agora. Bem, isso é porque
essa
será uma variável que
vamos será uma variável que
vamos incrementar, ou melhor, diminuir por meio de um cronômetro mais adiante
aqui Então, tudo o que estamos fazendo
aqui é pegar nosso limite máximo de tempo e, em seguida, configurá-lo
para essa variável mapeada para nosso Hud real E então também estamos configurando
isso aqui, porque essa é a
variável que
vamos diminuir
por meio de um cronômetro Um pouco mais abaixo aqui. Tudo bem,
feito isso, vamos clicar com o botão
esquerdo e arrastar
esse trecho do script. Vou apenas ampliar um pouco aqui. Toque nessa tecla e eu chamarei isso meu controlador F para dois jogadores e definirei o
script de variável de tempo de nível. Devo também dizer
que, que está vinculado ao nosso Hud,
é um bom lembrete E então vá em frente e
mude para preto também. Ok, então essa
será nossa configuração inicial aqui. Temos mais trabalho a fazer, mas vou chamar isso de
vídeo aqui
para não sobrecarregar e manter isso
em pedaços menores Mas se você quiser
pausar o vídeo aqui, você pode ver o que
criamos até agora Vá em frente e compile e
certifique-se de que seu script esteja bom
até o momento e salve Nos vemos na próxima.
88. Script de configurações de nível #2: Bem-vindos de volta a todos.
Continuando com nosso script de
configuração de nível de BP Vou clicar
aqui mesmo no esboço. Edite as configurações do nível de
BP para voltar
e continuar Tudo bem, eu vou
seguir em frente. Vamos construir a partir do
nosso nó de sequência mais uma vez, desta vez com base nos então dois pinos. Então, o que eu quero fazer com
esta seção é que o script
defina o áudio que será reproduzido em nosso nível. Para isso, vamos
trazer uma referência ao nosso componente musical de nível. Vamos continuar e arrastar isso para dentro. Se deixarmos isso de lado,
podemos digitar set Sound. Vamos em frente e conecte
isso imediatamente. Agora, atualmente,
tenho como padrão a música que será reproduzida nesta
variável aqui, nosso nível Música. Vamos em
frente e inclua isso Mais uma vez, tornamos essa
instância da variável
Music de nível editável, o que significa que aqui em nosso editor de níveis, com nossa configuração de nível de
BP selecionada, podemos realmente
modificar o Música Aqui, atualmente padrão
é o nível Mario Música Mas se você quiser
alterá-la por nível, tudo o que você precisa fazer é arrastar e soltar as configurações
em seu nível. E então você pode modificá-lo para ser o que quiser aqui. E então, por meio de script, é
aqui que, na verdade,
será necessário o que definimos nesse editor de níveis com
essa instância editável E isso vai definir que é o componente musical de novo nível
que queremos tocar. Tudo bem, com isso, o que vamos fazer então é introduzir um
pequeno nó de atraso. Mantenha pressionada a tecla D
e clique com o botão esquerdo. Eu não quero que essa música seja
reproduzida imediatamente, então vou
atrasá-la em 34 de segundo, 0,75. E então vou trazer outra referência ao
nosso componente musical de nível Para arrastar e soltar isso, simplesmente
diremos que, ei, agora que você
foi preenchido com qualquer música que definimos
dentro dessa variável, agora vamos
tocar essa música E, obviamente, você pode
especificar que a hora de início
é zero, só
vai jogar desde o início. Clique com o botão esquerdo e
arraste e toque nessa tecla. Vou chamar isso de meus conjuntos de áudio para preencher nossos componentes
musicais de nível Agora, alguns de vocês podem estar se
perguntando: ei,
esse componente musical de nível, na verdade,
definimos um
som padrão aqui. Precisamos fazer
isso? Não, nós não fizemos isso. Poderíamos ter deixado isso em branco porque estamos
essencialmente substituindo esse componente de música de nível pela música de nível real que
está conectada aqui Tudo bem,
vamos deixar toda
essa
caixa de comentários aqui preta. E então vamos trabalhar na seção mais complicada do
nosso roteiro aqui Apenas movendo nosso nó de
sequência para baixo, vou introduzir
um atraso reativável. E vou explicar o porquê aqui
em pouco tempo, mas isso não vai fazer
sentido logo de cara. Então, vou
conectar isso da seguinte forma: vou definir
isso como
1.0 e, em vou definir
isso seguida, clicar com o botão
direito do mouse para esvaziar o espaço e digitar
definir o cronômetro por evento E então o que vamos
fazer é nos
afastar desse evento Vamos trazer
um evento personalizado, e vou chamá-lo de
meu cronômetro de nível de corrida Vai ser mais fácil para
mim incluir tudo isso e depois explicar como tudo
isso deve funcionar. Depois de inserir os nós
relevantes e configurar algumas coisas aqui por um tempo aqui, vou inserir a taxa de reprodução
temporal da seguinte forma. E então eu vou configurar isso
para
ser repetido , então marque essa caixa Certifique-se de marcar essa caixa. Ok, então, basicamente, quando
começarmos o jogo, todos esses trechos do script
acima serão acionados, e então vamos descer
para O. Em seguida, três,
vamos esperar por 1 segundo e depois iniciaremos nosso cronômetro Agora, isso vai disparar, neste caso, a cada
incremento de tempo que atualmente
eu defini como um Então, é
isso que acontece desta vez, determinando quanto tempo esperar antes de executar o delegado Esse é esse
evento personalizado aqui. Agora, como isso está em loop, ele continuará disparando,
neste caso, neste caso Agora, a razão pela qual eu
configurei isso para um atraso reativável, em
oposição a um atraso normal, é no caso de nosso personagem morrer e isso precisar
começar tudo A forma como um
atraso reacionável funciona, em oposição a um atraso normal,
é que, quando isso acontece, ele começa a
contagem regressiva,
no meu caso, no meu caso, E durante o processo de
contagem regressiva de 1 segundo, se disséssemos morrer e
tudo isso começar de novo, isso reduziria esse atraso
para um segundo novamente. Portanto, se, durante o processo de contagem regressiva,
isso
for executado
novamente, ele voltará para um segundo antes de
fazer tudo isso. Ok, o que também vamos
querer fazer com nosso cronômetro definido por nó de eventos é
promover isso aqui Vamos
clicar com o botão direito do mouse em promover, e vamos
chamar isso de nosso nível. Cronômetro que agora é salvo de
forma variável. E, essencialmente, estamos fazendo
isso para que possamos limpar esse cronômetro quando o tempo
acabar Veremos isso em jogo
aqui em breve. Ok, o que eu quero fazer depois do nosso Run Level Timer, evento
personalizado aqui Bem, vou
trazer um galho, então mantenha pressionada a
tecla B e clique com o botão esquerdo. E queremos
avaliar uma condição. Agora, nossa condição que
vamos querer avaliar é nosso limite de tempo atual.
Vamos arrastar isso para dentro. Vamos conseguir
isso mais uma vez. Acima, estávamos definindo nosso limite de tempo atual para
começar sendo qualquer que seja nosso limite máximo de
tempo. E, novamente, isso é definido
por meio do editor de níveis. Atualmente, o nível máximo de tempo é 300. Basicamente, estamos dizendo, ei, qualquer que seja nosso valor
padrão aqui nas configurações de
nível, estamos definindo que seja 300. Isso está passando
para o nosso nível,
o tempo está mapeado para o nosso bairro E então também estamos
preenchendo nosso limite de tempo atual com o
mesmo valor de 300 Nesse caso, estamos pegando
esse valor e vamos descobrir se isso
é igual a zero. Se isso for igual a zero, o que essencialmente queremos fazer é limpar nosso cronômetro
de nível aqui Tudo o que preciso fazer é
arrastar até aqui e digitar
o cronômetro claro e invalidado Agora, automaticamente,
sempre que eu fizer
isso, ele realmente será
conectado aqui. O que podemos realmente fazer é
cortar esse fio aqui. Vou apenas manter pressionada
a tecla Alt e clicar com o botão esquerdo. Podemos deixar esse plugue ligado. No entanto, fora da ramificação
verdadeira aqui, posso simplesmente conectá-la dessa forma. Agora, se é falso que nossa corrente limite de tempo ainda não
é zero, o que vamos
fazer é simplesmente decorar
essa corrente de limite de tempo A maneira de fazer isso é
arrastar até aqui e digitar um
decorativo decrescente no que isso vai fazer Vai usar esse valor que atualmente
definimos 300 por meio desse limite de
tempo, no máximo 300. Em seguida, ele
subtrairá esse valor, 299300 Em seguida, ele
redefinirá esse valor aqui nessa variável. Então esse ato, esse
decréscimo age como uma forma de subtrairmos imediatamente um desse valor especificado
e, em seguida, ele o coloca de volta
aqui Então, isso é meio útil agora,
porque eu também quero que isso seja refletido em nosso
Hud porque, novamente, essa variável é apenas local aqui dentro de nossas configurações de
nível Não temos isso
exposto em nenhum outro lugar. Vou trazer nossa referência de
controlador, vamos pegar isso, vamos pegar isso,
vamos pegar aquilo. Em seguida, vou
sair daqui e digitar tempo
de nível definido. Essencialmente,
vamos passar isso para nossa variável de
tempo de nível dentro do nosso controlador de jogador,
porque essa é a variável
mapeada para nosso Hud Ok,
outra coisa que eu quero fazer. Se nosso limite de tempo atual ainda não
for igual a zero, eu realmente quero fazer
outra comparação. Além daqui.
Vou manter pressionada a tecla B e clicar com o botão esquerdo. Então tecle e clique com o botão esquerdo. E desta vez eu
quero comparar se nosso limite de tempo atual é igual a, é igual a quê? Bem, nosso tempo está
acabando com a variável de aviso. Agora, atualmente, tenho
esse conjunto para ser 50. Mas, mais uma vez, você pode substituir essa variável padrão aqui
nas configurações de nível Eu também tenho configurado
para 50 lá. Independentemente disso, é 50, mas
vamos descobrir se nosso limite de tempo
atual está basicamente abaixo da marca 52 Se for,
vamos conectá-lo à
nossa filial aqui mesmo. Vamos
trazer nosso componente
musical de nível assim. Em seguida, vamos
sair disso e digitar set pause Então, vamos essencialmente
pausar essa música. Certifique-se de marcar essa caixa
para configurá-la para ser pausada. Então, o que vamos fazer é
esgotar nosso tempo, Warning. Música Essa vai ser essa
música aqui,
Mario, o tempo está acabando. Vamos pegar esse
componente, arrastá-lo até aqui e
digitar play para trazer a função play. Basicamente, estamos pausando
nosso nível de música para que possamos tocar o tempo que
está acabando. Warning Agora, vou subir um pouco
até aqui porque se nosso
limite de tempo acabar, se isso for avaliado como verdadeiro, vamos limpar
esse cronômetro de nível Mas ainda há mais
algumas coisas que eu quero fazer com isso. Então, vou
construir a partir desse cronômetro
claro e invalidado pelo node handle E o que eu quero fazer com
isso é trazer nosso componente musical de nível e, mais
uma vez, arrastá-lo para dentro. Também vamos prolongar
nosso aviso de esgotamento do tempo, caso
algum deles esteja jogando. E o que eu quero fazer é
sair daqui digitando e parar, basicamente
queremos
parar toda e qualquer música aqui se, de fato, nosso limite de
tempo tiver acabado. E além de parar
a música, eu também quero que nosso personagem
morra se o tempo acabar. Então, para fazer isso, vou clicar com o botão
direito do mouse em algum tipo de espaço vazio e
obter o personagem do jogador. E vamos escalar
nosso personagem em terceira pessoa. Dentro daqui, vou
arrastar e digitar player dies mais uma vez. Se eu
clicar duas vezes nisso, o que isso vai
fazer é
mostrar que vamos chamar mostrar que vamos chamar esse evento personalizado dentro de
nosso personagem de terceira pessoa de BP para fazer todos os nossos efeitos de morte Esse é o nosso caráter de
ser jogado
no ar e depois cair
pelo mundo. Tudo bem, então esse roteiro
foi um pouco complicado. Aí está tudo. Tente encaixá-lo na tela. Saindo do nosso nó de
sequência aqui, ok? E então eu vou clicar
com o botão esquerdo e arrastar tudo isso. Toque na tecla C, prometo que foi o pior. E digitaremos run the
timer e jogaremos adequadamente. Música
Dependendo da situação, vamos mudar
a cor do cometa É preto imediatamente. Ok, e
olhando minhas anotações aqui, eu realmente vejo que estou perdendo um pouco do
roteiro aqui embaixo, mas esse vídeo está ficando
um pouco longo. Então, deixe-me ir em frente, compilar
e dizer isso. Vamos chamar isso de vídeo
, pegá-lo e terminar no
próximo, veja lá.
89. Script de configurações de nível #3: Bem vindo de volta. Vamos
prosseguir e finalizar nosso script de configuração de nível de BP E eu mencionei no
final do último vídeo que perdi minhas anotações, eu tinha mais um roteiro
que precisava ser retirado do nosso roteiro de
então três. Então, vamos continuar
e abordar isso. O que íamos fazer é pausar nosso nível atual Música Vamos tocar nosso
Time Running Out Warning. Música Mas o que precisamos
fazer é ter certeza de que
realmente definimos nosso nível de música para ser retomado
após essa reprodução. Então, o que vamos
fazer é causar um atraso. Mantenha pressionada a tecla D
e clique com o botão esquerdo. Vou definir esse
atraso para 2,8 segundos. Agora, por que 2,8 segundos? Bem, porque isso é
mais ou menos quanto leva para nosso tempo acabar. Advertindo a cantiga para jogar depois de
esperarmos 2,8 segundos. O que eu vou
fazer então é trazer nosso componente musical mais uma vez. Então, simplesmente
precisamos sair
daqui mais uma vez, digitar set, só que desta vez vamos
deixar isso desmarcado
dizendo que sim, não
queremos essencialmente fazer uma pausa Em seguida, vamos
definir nosso argumento de venda. Multiplicador, arrastando para fora do
nosso componente musical de nível. Defina o multiplicador,
vamos definir isso para 1,05. Isso fará com que pareça que nossa música está sendo acelerada, tipo, o tempo está acabando e, a propósito
,
quando voltarmos a tocar o nível
Música, quando voltarmos a tocar o nível
Música, vamos tocá-la em um tom mais alto Agora, essa também é a
razão pela qual isso está configurado aqui, que quando morremos logo
no início, é por
isso que fizemos esse pequeno roteiro logo no início. Definindo nosso componente
musical de nível para aquele multiplicador de tom de um, essencialmente
ajustando-o de volta para um independentemente de como
estava a música quando eles morreram Tudo bem, último trecho do roteiro
que precisamos colocar aqui. Chegando bem abaixo de
nossos então quatro pinos de sequência. O que vamos fazer é escrever Clique no espaço. Vamos pegar
o personagem do jogador e, como você deve ter adivinhado, vamos sair
daqui e vamos
escalar nosso personagem em terceira
pessoa Vamos conectar
isso dessa forma. E a razão pela qual
estamos fazendo isso é porque vamos
abandonar nosso personagem em terceira
pessoa. Vamos chamar
nossa sequência de morte. Nosso jogador designado
inicia a sequência de morte. Isso
trará dois nós,
então, mais uma vez, esse jogador
inicia a sequência de morte. Se eu fosse acessar meu personagem em
terceira pessoa, para o
qual tenho uma guia,
logo na parte superior, criamos um despachante de eventos chamado
Player Starts Death Se eu clicar com o botão direito do mouse
e encontrar referências, posso descobrir onde isso
está sendo chamado aqui dentro do nosso personagem em terceira
pessoa. E aí está no script
do nosso player dies. Está sendo chamado
ali mesmo quando é chamado, qualquer outro projeto que
esteja ouvindo isso E é isso que
toda essa configuração aqui dentro de nossas
configurações de nível P está fazendo. Basicamente, isso é ouvir a sequência a ser chamada. Quando isso ligar
, vamos sair daqui. Essa é a nossa maneira de
basicamente assinar a personagem em terceira pessoa.
O jogador inicia a
sequência de morte, chame assim Quando isso acontece,
sabemos que dentro de nossas
configurações de nível de BP, como ei ,
isso aconteceu, vamos
sair daqui e sair daqui Bem, o que nós queremos
fazer? Bem, vamos trazer nosso componente musical
de nível. Vamos pegar isso.
Também vamos receber aviso de que
nosso tempo está acabando,
vamos entender isso. Queremos ter certeza de que isso impeça o arrastamento de
qualquer um deles. E digite pare, pare todas as músicas aqui, conecte isso, assim. Então também nosso
cronômetro de nível aqui. Vamos arrastar isso para dentro. Vamos entender que
queremos imediatamente
limpar e invalidar o cronômetro em que o jogador morre. Sempre queremos ter certeza de
que limpamos esse cronômetro. Tudo bem, com todo
esse script aqui, vamos clicar com o botão esquerdo e arrastar essa
torneira, aquela tecla C. Isso será Stop. Qualquer música musical Se o
jogador morreu, observe também que
esse despachante de eventos é chamado em nosso personagem de terceira pessoa É sempre bom deixar
notas para si mesmo. Com uma visão de 10.000 pés, você pode ver o que é. Vamos continuar e
compilar isso em save. Vamos dar uma
visão de 10.000 pés do
que estamos acontecendo aqui. Esse era o nosso roteiro de quatro anos, se você quiser pausar
o vídeo ali mesmo, mas de uma visão de 10.000 pés, isso é o que todos nós
montamos E é por isso que, mais uma vez, eu gostaria de ter
um nó de sequência. Porque podemos ver de relance aqui, quando eu recuo
assim, como estamos fazendo diferentes
segmentos do script Essencialmente,
tudo está acontecendo em sucessão
muito rápida,
um após o outro Mas eu gostaria de segmentá-lo assim para facilitar a leitura. Ok, vamos testar
isso Agora, para ajudar a facilitar o jogo. Nosso
tempo está acabando, o que vou
fazer é voltar ao nosso nível aqui com meu
plano de configurações de nível selecionado No
painel de detalhes. Vou definir meu limite de tempo máximo para
, digamos, 55 segundos. Então, vamos
atingir esse tempo
esgotando o aviso rapidamente. E então o que vou fazer é
testar isso morrendo,
respondendo e vendo como tudo funciona.
Dedos cruzados. Aqui vamos nós. O cronômetro
está em 55 segundos. Está decorando conforme o esperado.
O tempo está acabando. Nossa música está tocando
um pouco mais. Rush's Vá em frente e morra. Aqui nos deparamos com meus braços
flamejantes. Lá vamos nós. Oh, ei, o tempo parou
em 36 segundos. E quando respondemos,
voltamos em 55 segundos e o cronômetro
recomeça novamente Ei, caras nada ruins. Temos um
sistema de definição de nível em vigor. E mais uma vez, o que torna
isso tão mágico é que você pode se posicionar em qualquer nível
que você criar. E então você pode personalizar as configurações aqui
no painel de detalhes. Tudo bem, pessoal, isso vai
fazer tudo por esse. Nos vemos na próxima.
90. Configurações de nível e o P Block: Bem-vindo. Neste,
vamos lidar com nossas configurações de nível
conflitantes com nosso bloco Agora, deixe-me
entrar, jogar e mostrar exatamente o que
está acontecendo agora. Atualmente, nossas configurações
de nível estão determinando coisas
como nosso nível. Música No entanto, quando
eu paro no quarteirão, você vê que agora
temos um conjunto inteiro de Do acontecendo. E
nós não queremos isso. Precisamos lidar com
a situação de, ei, quando nosso jogador
para no quarteirão, estamos jogando apenas o quarteirão. Música Vamos pausar temporariamente
o nível Música. E então, quando o tempo do
bloqueio terminar, vamos acabar com o bloqueio. Música E apenas
suba nosso nível. Música Mais uma vez, como
lidamos com esse problema? Bem, como você pode esperar, vamos
mergulhar em nosso bloco BPP Aí está, existe o
local onde o temos atualmente em nosso
projeto. Dentro daqui. A primeira coisa que
vamos fazer é criar uma variável totalmente nova
na seção meu plano Clique neste
botão de adição e eu vou
chamar isso de Configurações de nível. E então, para o
tipo, vamos clicar onde
atualmente diz ouro Clique nesse pequeno menu suspenso. Vamos pesquisar
nossas configurações de nível de BP. Lembre-se de que criamos um modelo de classe de
ator
chamado configuração de nível de BP. Então, vamos definir isso para
ser esse tipo de objeto. O nível de Bp define a referência do
objeto. Agora, quando eu prosseguir
e compilar aqui, você notará que nosso valor
padrão aqui é nulo Não há nada aqui dentro, mesmo que seja um tipo. Então é assim que
vamos lidar com preenchimento dessa variável
específica esta caixa, por
exemplo, editável, depois vá em frente, compile
e salve novamente Agora, de volta ao nosso editor de
níveis com o bloco selecionado, verifique aqui
no painel de detalhes, podemos inserir um ator de configurações de
nível. Agora, temos apenas
um
esquema de configurações de nível em nosso nível
porque precisamos apenas de um Mas se eu selecionar essa lista suspensa, você pode ver que ela me
permitirá escolher o ator de configurações do nível de empréstimo em nosso nível que
queremos fazer. Portanto, certifique-se de ter
ido em frente e feito isso. Agora, algo que é muito
importante mencionar aqui é se você tem outras instâncias
de um bloco em seu nível, então deixe-me
arrastar outra delas para dentro. Realmente não
importa onde eu o
coloco , porque vou
excluí-lo. Mas para cada
bloco P em seu nível, você terá que fazer isso,
ok, para que possamos fazer todo
o alternador de música
O de forma adequada Portanto, certifique-se de que, para cada
instância do bloco em seu nível, você defina
essa variável de configurações de nível. Deixe-me ir em frente e deletar
este. Tudo bem Agora deixe-me voltar
para o meu quarteirão aqui. Se reduzirmos o zoom, o que vamos fazer
é construir a partir disso, então zero bits de
script atualmente. Esses são nossos efeitos de bloqueio. Vamos começar com base
no final disso. Esse será um bom local
conveniente para isso. Atualmente, estávamos
tocando alguma música quando pisamos no quarteirão,
que é o nosso quarteirão Música Quando estamos
tocando nosso quarteirão. Música Aqui, o que queremos
fazer é inserir nossas configurações
de nível. Entendemos isso, então
podemos sair daqui e obter o componente musical de nível. Então, vamos obter o componente de música de
nível, que é esse componente que vive dentro de nossas configurações de nível de
BP Vamos pegar isso e
depois vamos sair daqui e digitar set paused Certifique-se de conectar
isso assim. E quando você marca essa caixa,
estamos basicamente dizendo,
ei, nível de música que está tocando
em nossas configurações de nível. Vamos fazer uma pausa quando
pararmos no quarteirão. Agora, obviamente, se estivermos pausando essa música ao
parar no quarteirão, precisamos retomá-la Vou destacar esses
três nós aqui. Eu só vou fazer o
controle C para copiá-los. Em seguida, vou
descer em direção ao meu script de cronômetro de bloqueio aqui
dentro No final, quando o
tempo de bloqueio termina, estamos fazendo com que todos os bloqueios voltem ao normal e
paramos nosso bloqueio. Música Vamos
construir a partir do final
desse controle V para colar os nós que
acabamos de copiar dessa forma E, claro, a única
coisa que precisamos fazer aqui é desmarcar isso, basicamente, ei, continue no nível Música Tudo bem,
então, com isso feito, vamos
compilar e salvar, e depois entrar e jogar Ok, ouvimos nosso nível de música. Agora, assim que eu
parar neste quarteirão, nossa música nivelada deve fazer uma pausa E isso acontece. E então, quando nosso tempo de
bloqueio termina aqui, acho que tenho esse bloco
definido para 8 segundos, música termina e nosso nível de
música volta a subir E, portanto, agora fizemos nossas configurações de nível de BP funcionassem
bem com nosso bloco de BP. Essa também é parte da
razão pela qual criamos um plano de classe de
ator que poderíamos colocar para
nossas configurações de nível em
nosso nível , para que ele pudesse se comunicar bem com nosso bloco BPP Aqui, usamos um método aqui chamado
comunicação direta de blueprint Em que, dentro
do meu bloco BP P, criei uma variável
do tipo de configurações de nível
e, em seguida, tornei uma
instância editável E então, dentro do
meu editor de níveis, estou associando minhas configurações de nível de
BP diretamente a esse trabalho de bloco
específico Bem feito, tudo bem.
Isso vai acabar com este C quando for para o próximo.
91. Configurações de nível e o poste de bandeira: Bem-vindos de volta a todos.
Agora que temos nossas configurações de nível e nossas plantas de
blocos funcionando bem nesta, precisamos garantir
que nossas configurações de nível e
nossas plantas de bandeira de final de nível funcionem Porque o que acontece
atualmente é quando eu termino o nível
pulando em nosso equipamento de bandeira, a música continua Nosso cronômetro continua funcionando, é só uma bagunça Então, vamos lidar
com isso neste. Para isso, vamos
começar em nossa configuração de nível de BP Vamos garantir que você abra isso. Vamos
começar criando uma variável dentro daqui. Clique nesse botão de adição e
chamaremos isso de nossa
variável de perna de fim de nível. Para o tipo. Vamos definir isso
como nossa etapa de final de nível,
nosso BP, bandeira de fim de nível, a referência do objeto,
aquela planta Ok, assim como você me viu fazer
no último vídeo em que
tornei essa
instância variável comestível, vou tornar essa
instância comestível também Então, poderíamos fazer isso clicando nessa caixa de seleção
no painel Detalhes No entanto, clicando também
nesse globo ocular, também tornaremos essa instância
editável Deixe-me ir em frente
e compilar isso. Portanto, você pode ver atualmente que o valor padrão desse sinalizador de
fim de nível está vazio. No entanto, se eu entrar no
meu editor de níveis e
selecionar minhas configurações de nível, deixe-me ir
até ele pesquisando as configurações
de nível
aqui no meu esboço E se eu clicar duas vezes nisso,
isso me levará
para onde estou no
meu nível com essa configuração de nível de BP selecionada no meu nível Olhe para baixo no painel de detalhes. Agora expusemos essa variável de sinalização de
fim de nível. Atualmente, está definido como nenhum. Agora eu poderia selecionar isso e, em seguida, escolher
minha bandeira de fim de nível, porque eu só tenho uma aqui. Mas só para mostrar um método
diferente de fazer isso, vou voar até
minha bandeira de fim de nível. E eu também poderia, com minha configuração de nível de pressão
arterial selecionada, clicar neste pequeno
ícone de conta-gotas Então eu vou
fazer isso. Em seguida, mova o cursor do mouse
para a janela de exibição E agora também posso
selecionar manualmente minha bandeira de fim de
nível. De qualquer forma, você pode
preencher essa variável. Agora, basicamente, o que queremos que aconteça aqui
é que nossas configurações de nível de BP
respondam à nossa bandeira de nível, informando que ela
foi concluída Então, para isso,
vamos abrir nosso plano de bandeira de nível final Deixe-me ir em frente
e selecionar isso. Vou limpar minha
pesquisa de nível no esboço. Eu vou
abrir esse plano. E agora, se você se lembra,
dentro de nossa bandeira de fim de nível, temos esse despachante de eventos de nível
completo O que vamos fazer
em nossas configurações de nível é ouvir sempre que
isso for chamado. Agora, se você esqueceu de
onde isso está sendo chamado em nossa bandeira de fim de nível, vou
escrever, clique aqui Vamos encontrar uma referência
para quando isso for chamado. E se eu clicar duas vezes sobre
isso nos resultados da busca, você pode ver que estamos
chamando esse nível de
completo no
início deste script. Então, sim, adicionamos esse
Dispatcher de eventos com um
propósito e esse é o propósito para que nossas configurações de nível possam ouvir isso e, em seguida,
responder adequadamente Tudo bem, para configurar tudo isso
dentro de nossas configurações de nível de BP,
vamos até dentro de nossas configurações de nível de BP, lá Vamos adicionar outro pino
na parte inferior aqui. Deixe-me prosseguir e arrastar essa nota de sequência até
a parte inferior aqui. Está bem? E o que vamos
fazer é trazer nossa bandeira de fim de
nível e manter pressionado o controle
com botão esquerdo do mouse para levar
o usuário até lá E então eu vou
sair
desse tipo no nível completo. Aqui está nosso despachante de eventos, vamos concluir o nível de
atribuição Isso trará dois nós. Vamos colocar isso nos cinco pinos. Essencialmente,
toda essa configuração
faz com que
estejamos
atentos para que esse evento completo seja convocado
a partir de nossa bandeira de
fim de nível. Quando isso é chamado
de configurações de nível de BP, que agora é ouvir, é para isso que serve
toda essa configuração Quando isso acontecer, ele
iniciará esse evento personalizado. Ok, então o que
queremos fazer quando somos informados aqui em
nossas configurações de nível de que,
ei, interagimos com
aquele mastro de bandeira do final do nível estamos considerando o Bem, queremos incluir nosso componente
musical de nível, então, vamos também avisar
nosso tempo de esgoto,
caso esteja tocando tão
bem, porque poderia estar. Então vamos
arrastar qualquer um
desses e dizer pare. Vamos parar com essas
duas músicas
caso alguma delas esteja tocando A próxima coisa que
vamos fazer é trazer nosso cronômetro de nível aqui Nós vamos conseguir isso.
E então vamos arrastar isso e digitar Pause Timer Vamos
pausá-lo imediatamente. pausa no cronômetro e, em seguida
, vá um pouco para a
direita aqui Vou inserir um nó de
atraso
mantendo pressionada a tecla D
e clicando com o botão esquerdo. Vamos atrasar por, digamos, 3 segundos.
Isso parece quase certo. Em seguida, vou trazer
meu componente de nível completo. Esse será o nosso tipo
de nível limpo. Música Vamos
incluir isso. Vamos dizer
isso para ativar o like. Então. Em seguida,
vamos decorar, o tempo restante quando
nosso nível estiver concluído Agora, para fazer isso, vou
trazer outra nota de atraso. Então, vou manter pressionada
a tecla D e clicar com o botão esquerdo. E eu vou construir
um pequeno loop aqui, um loop circular de código. Vou definir
essa duração de tempo para nosso atraso.
Algo muito pequeno, como 0,05. Então, o que vou fazer é trazer nossa referência ao controlador do player Vamos fazer isso mantendo
pressionado o controle e clicando com o botão esquerdo. Vamos tirar isso disso. Eu quero obter nosso
tempo nivelado. Obtenha nosso tempo nivelado. Em seguida, vamos
sair disso e digitar o decréscimo. Vamos conectar isso da seguinte forma: vamos
atrasar um pouco depois descobrir
quanto tempo temos. Vamos diminuí-lo em um e, em seguida, ele voltará
para cá É isso que esse
decréscimo no nó faz. Ele subtrai um e, em seguida, basicamente o coloca de volta
aqui Agora, também vamos
comparar
esse valor com
um nó maior. Traga um galho
mantendo pressionada a tecla B e clicando com
o botão esquerdo se for zero ou devo dizer se
for maior que zero. O que queremos fazer é sair da referência
do nosso controlador de player aqui. Vamos ligar para adicionar pontos. Temos essa
função de chamada para adicionar pontos, e vou clicar duas vezes nela
daqui a pouco. Se nosso tempo de nível for
maior que zero, adicionaremos alguns pontos. Quantos pontos
você quer adicionar? Bem, vamos adicionar 50
pontos a cada segundo, basicamente permanecendo
em nosso cronômetro quando concluirmos o nível Além disso, vamos tocar um pouco de som também. Então, tirando
isso,
tocaremos dois D para o som, aqui
vou fazer a câmera, isso está nos sons de realidade virtual do motor Eu caminho apenas para ter um pequeno som para acompanhar
cada incremento de pontos. Então, o que eu vou
fazer é dar a
volta por cima. Só ampliando um pouco
aqui. Clique com o botão esquerdo e arraste.
Repita isso até meu atraso. E se eu clicar duas vezes
nesse fio algumas vezes, posso colocar alguns
nós redondos só para fazer com que
pareça um pouco mais limpo, assim, todo
esse script aqui, eu vou clicar com o botão esquerdo,
arrastar e tocar nessa tecla. Este será meu
tempo decramental restante quando o nível for concluído
e Vamos preencher esse preto
imediatamente também. Se você quiser pausar
o vídeo aqui, você pode ver basicamente o que tudo
isso está configurado para fazer Em seguida, movendo-se um pouco para
a esquerda, você pode ver aquele trecho do script, tudo
isso saindo
dos cinco pinos aqui, dentro de nossas configurações de nível de BP Tudo bem, com isso,
vamos continuar e compilar para garantir que
nosso script pareça bom E salve agora no teste de
reprodução. Aqui queremos garantir
que nossa música de nível pare quando
concluirmos o nível. E também queremos garantir que nosso cronômetro de nível faça uma contagem regressiva e ganhemos pontos pelo
tempo restante Entrando e jogando aqui, ei, temos nosso
nível. Música tocando. Vamos seguir em frente e
completar o nível. O nível A música deve parar
e devemos começar a ouvir o nível ser concluído.
A música entra em ação. E também devemos ver
nosso cronômetro parar e , eventualmente,
começar a contagem regressiva. Aqui vamos nós.
Parada do cronômetro, nível completo Música Estamos em contagem regressiva, estamos ganhando 50 pontos
por cada período de tempo ou por cada segundo
que nos resta no relógio. E esse é um
pequeno bônus, de fato. Agora, fizemos com que nosso sinalizador de fim de nível funcione bem com nossas configurações de nível
de BP. Trabalho bem feito, pessoal. Certifique-se de arquivar e salvar tudo. Ocasionalmente, apenas para
garantir que você economizou todo o seu trabalho árduo,
isso bastará. Para este C,
ganhe o próximo.
92. Poste de bandeira e o P Block: Tudo bem, antes de
prosseguirmos, vamos resolver mais
um problema relacionado ao fato nosso bloqueio e nossa bandeira de nível final não funcionarem bem juntos. Isso não está necessariamente relacionado às configurações de
nível, mas está relacionado
aos outros projetos com os quais
estamos lidando aqui recentemente Vou mostrar o problema e depois vamos
corrigi-lo. O problema é que, se eu
parar em um quarteirão e estivermos
perto do final do nível, você notará
que as moedas mudam. No entanto, uma vez que eu
interajo com o mastro do final
do nível, as moedas continuam Precisamos ter nosso mastro de bandeira no final do nível com nosso bloco para parar esse bloqueio Música E reverta
o efeito de bloqueio no momento em que interagimos
com o mastro Vamos continuar com isso. Vamos
começar dentro do
nosso bloco de blocos em vez criar
uma nova variável. Este será chamado
de nível. Desta vez, vou
definir o tipo de variável sinalizador de
fim de nível,
o tipo de objeto BP, sinalizador de
fim de nível, referência de
objeto E, assim como fizemos antes, vamos tornar
essa instância comestível clicando nessa
caixa de seleção aqui ou clicando no ícone do
globo ocular aberto Vamos
compilar e salvar isso. E agora, se eu voltar ao meu nível e
selecionar meu bloco, posso associar nossa bandeira de fim de
nível a esse bloco. Ótimo. Agora, mais uma vez, você vai querer
fazer isso para qualquer instância do seu bloco que você
possa ter em seu nível. OK. Agora, o que
podemos fazer aqui é entrar em nosso
bloco BP e fazer com que esse plano ouça
nosso despachante de eventos de nível completo que configuramos em
nossa bandeira de final Agora, mais uma vez, nossa bandeira de
fim de nível concluiu o nível
de despachante de eventos que está sendo chamado Então, tudo o que precisamos fazer
é garantir que nosso bloco esteja ouvindo o que está dentro do
bloco, diminuindo o zoom Vou trazer nosso nó de
sequência até aqui. Não importa esses fios cruzados. Vamos adicionar
mais um alfinete aqui embaixo. Para isso, vamos
trazer nossa referência de bandeira
de fim de nível
aqui embaixo. Vamos manter pressionada a
tecla control e clicar com o botão esquerdo. Isso trará
nossa bandeira de fim de nível. Vamos
arrastar esse tipo nível completo. Para atribuir
nosso nível completo, ele trará
os dois nós. Vamos conectar isso imediatamente. Então, mais uma vez com essa configuração, estamos tendo nosso bloco
BP P aqui. Ouça este despachante de eventos de nível
completo acontecendo em nossa bandeira de
final de nível Assim que isso acontecer,
sairemos desse evento personalizado
associado a ele. Agora, a boa notícia é que, na verdade, queremos apenas conectar isso ao código que sai
de nossos então quatro pinos. Então, deixe-me observar
que tudo isso está saindo dos então
seis pinos aqui. Vou mover nosso nó de
sequência de volta lugar para não ter
muitos fios cruzados Ok, e estamos
essencialmente querendo
conectar isso e
não estragar tudo. Muitas pessoas
estragam isso conectando esse fio. Queremos que esse
evento de nível completo se conecte diretamente
a esse circuito de quatro voltas,
nosso cronômetro de blocos Então, observe que
temos três coisas
neste ponto do curso fluindo
para esses quatro, cada loop Esse cronômetro de bloqueio,
isso vai
fazer com que os blocos voltem ao normal e
desliguem esse Música Sempre que
o tempo de bloqueio terminar. Então, basicamente, o que estamos fazendo aqui é
ouvir aquele
despachante de eventos de nível completo dentro
da bandeira de final de nível E assim que isso acontece, estamos apenas
nos conectando a esse
tempo de bloqueio por meio de um script para fazer com que todos
os blocos voltem ao normal. Parando a música. Mais uma vez, aqui, esse fio é o que está preso
em cada laço Vá em frente e compile isso. Vamos em frente e economizemos. E então, é claro, sendo bons designers,
vamos testar isso. Ok, vamos
parar neste bloco, vamos ver esses
tijolos se transformando nas moedas, e vamos
ouvir esse bloco Música Ok, e assim que tocamos
esse mastro na extremidade do nível, todos
eles voltam Esses blocos se
transformaram novamente em blocos daquele bloco. A música termina imediatamente. Trabalho bem feito, pessoal. Isso vai fazer
tudo por este. Nos vemos na próxima.
93. Transição de nível: Bem vindo de volta. Neste vídeo, mostraremos
como fazer a transição de um nível para outro depois de
concluirmos o nível. Para que não fiquemos apenas
olhando para a tela. Depois
que todos os pontos forem tabulados, poderemos
transferir os pontos
que acumulamos,
o número de vidas que
temos atualmente e
o número de moedas
para o segundo,
terceiro, quarto, seja qual for o
nível para terceiro, quarto, seja qual for o
nível Agora, só para revisar onde estamos
atualmente com as coisas, no
início do
curso, criamos um plano de controle de jogador E dentro do nosso plano de
controle de jogador, que você pode encontrar
aqui neste caminho,
fizemos algumas somas de moedas, algumas somas de pontos, algumas somas ou
subtraídas Isso está aqui embaixo, restaurando isso
nessas variáveis Agora, o que precisamos
fazer é, quando fazemos a
transição de um
nível para outro, precisamos passar essas
informações para outro tipo de
plano que criaremos aqui
daqui a pouco E então vamos passar
essas informações de volta ao nosso controlador de jogador
para que realmente
tenhamos mantido e transferido nossos valores do
nível anterior para o novo nível. Agora, para fazer isso, vamos
entrar nas configurações do nosso projeto. Você pode acessá-lo aqui nas do canto superior direito, Configurações
do projeto. Dentro daqui, vamos
para Mapas e modos. E temos nossos vários projetos de
estrutura
aqui Mas também temos
esse especial,
um modelo de instância de jogo
aqui embaixo Agora, esse é um tipo especial de blueprint que
não obtém seus valores, seus valores variáveis são redefinidos enquanto o jogo
continua rodando Assim, você pode ir do nível um, nível dois, do nível
três, etc., e qualquer dado variável
contido
nele pode ser transferido de
um nível para outro Vou criar uma
nova classe de instância de jogo aqui simplesmente clicando neste
botão de adição aqui. E ele vai me perguntar,
onde eu quero salvá-lo? Vamos ver nossos planos de
plataforma. Vou colocar isso na minha estrutura da pasta
blueprint e vou para a instância do jogo
BP underscore como nome E eu vou guardar isso. E agora, nas configurações do
meu projeto, ele foi inserido. Esse será o modelo da
instância do jogo que usaremos aqui Eu o tenho aberto e o que
você pode ver aqui é que
eu tenho meu
painel de plantas no qual posso criar algumas
variáveis para armazenar informações
do nosso controlador
BP player Essencialmente, vamos
passar aqui os dados variáveis dentro
do nosso controlador de player. Quando terminarmos o
nível,
passaremos esses dados, moedas, vidas e pontos
para nossa instância de jogo. Em seguida, vamos
devolvê-lo aqui dentro da
nossa instância de jogo BP Vamos criar essas
três variáveis. O primeiro será moedas. Vou definir isso como um inteiro Com isso selecionado,
farei o controle D para duplicar Vou chamar esse próximo ponto também de
controle inteiro D. Novamente, esse será o número de vidas E se eu compilar isso, podemos ver que temos 00,0
como valores padrão Na verdade, vou mudar
nossas vidas para três, por padrão, para corresponder ao que temos atualmente por padrão
em nosso controlador de jogador. E você vai ver y
aqui em pouco tempo. Ok, a próxima coisa que vou fazer é voltar ao nosso nível aqui. E eu quero entrar nas nossas configurações
de nível de BP. E eu posso encontrar isso na
minha pasta de plantas. Minhas configurações de nível de BP, onde está isso? Aqui está. Configurações de nível de Bp. Vou entrar
nesse esquema e criar uma variável
totalmente nova Então, vou clicar nesse
botão de adição. E eu vou chamar
esse nível de dois. E eu vou mudar
isso para ser um nome, e você vai ver y aqui
daqui a pouco. Também vou tornar essa
instância editável. Se você clicar naquele
pequeno ícone do globo ocular, ele marca a caixa
ali mesmo. Vou compilar isso Atualmente, isso está definido como nenhum, mas preencheremos isso
daqui a pouco Tudo bem, vamos
dizer isso e voltar ao nosso nível. Agora eu tenho minha configuração de nível
em algum lugar aqui do meu nível. Na verdade, eu posso ver, eu o
tenho aqui
na minha janela de visualização Mas se eu apenas digitasse o
nível no meu Outliner, isso me ajudaria a
reduzi-lo Aí estão minhas configurações de nível de BP e agora podemos ver que
temos esse nível pela frente, com exposições
variáveis
atualmente definidas como nenhuma Agora, na verdade, queremos entrar
em outro nível para ir. Então, para isso, vou
para minha
pasta de níveis e quero
criar um nível dois, outro nível para ir. Então, eu simplesmente vou clicar com
o botão direito sobre isso. Vou duplicar isso
e deixe-me salvar isso imediatamente. Eventualmente,
provavelmente vou querer
entrar no nível dois e fazer
algumas modificações nele, mas vou colocar isso como LV nos meus painéis de detalhes Meu nível para ir é
LV underscore 02. Sim, vou
precisar fazer com que pareça um pouco diferente
visualmente. Caso contrário,
vai parecer que realmente não
mudamos os níveis. Ok, a próxima coisa que
precisamos fazer aqui é
entrar nas nossas configurações de nível de BP E vamos
construir um roteiro a partir do final desse roteiro. Então, saia das
cinco partes do seu nó de sequência, temos esse script de tipo
completo de nível. Temos essa diminuição
do tempo em que o
nível é concluído Vamos
construir a partir
desse galho falso aqui. Agora, é aqui que vamos fazer
a transferência dados variáveis de um blueprint,
nosso controlador
de jogador, para nosso blueprint de instância de
jogo Então, vou começar clicando com o botão
direito do mouse em
algum espaço vazio. Vamos tirar o
controle do player disso. Vou me arrastar e lançar para o nosso controlador de player BP Esse é o
controlador do player que estamos usando neste projeto, configurado
nas configurações do nosso projeto. Controlador de player Bp
ali mesmo. Agora, eu não quero, eu não quero realmente conectar um pino de
execução a isso. Eu sei que esse é
o controle do player. Meu projeto está usando
o que posso fazer aqui para evitar que eu
tenha que passar por aqui. Vou clicar com o botão direito do mouse
sobre isso e convertê-lo um molde puro
que elimina a entrada e saída do pino de execução. Com isso, posso sair
daqui e pegar minhas moedas. Pegue moedas. Vamos extrair esses dados variáveis
do nosso controlador de player. Pegando as moedas,
ganharemos pontos. Nós vamos ganhar vidas. Vamos passar
esses dados para o Blueprint da
nossa instância de jogo Como fazemos isso? Clique com o botão direito
em algum espaço vazio aqui. Eu vou dizer para
obter uma instância do jogo. Vamos nos afastar disso. E criamos uma
chamada instância de jogo BP. Aqui também. Eu posso
clicar com o botão direito neste nó. Deixe-me ampliar um pouco
aqui. o botão direito. Vamos
converter isso em um elenco puro. Agora, em vez de
obter esses dados, vamos definir esses dados. Arraste as moedas definidas. Deixe-me
adiar isso um pouco. Todos esses três. Lá vamos nós. E vamos definir pontos e
vamos definir vidas. Então, para o que queremos
definir esses valores? Para o que queremos configurá-los? Tudo o que existe atualmente dentro do nosso controlador de player. Então, vamos inserir
nossas moedas aqui, nossos pontos aqui e nossas vidas aqui. Estamos passando esses dados de
um modelo para outro. Agora temos que conectar
um fio de execução por meio
desses vários nós de configuração Então, podemos fazer isso com
esse galho falso. Então,
vamos fazer isso,
aqui , aqui e aqui. E ainda não terminamos. Vamos
construir a partir daqui. Na verdade, vamos dizer ao nosso jogo para qual nível
queremos ir a seguir. Faça isso, vamos adicionar um
pouco de atraso aqui. Então, vou manter pressionada
a tecla D e clicar com o botão esquerdo, adicionaremos um atraso
e codificarei um atraso de, digamos, 2 segundos. Então, logo
à direita aqui, há um nó chamado
Open level by name. E aqui é onde podemos inserir nome
do nível conforme especificado
por essa variável. Então, vou arrastar e soltar isso bem em cima. E você pode ver
que o valor padrão aqui no painel de
detalhes é nenhum. Vou prosseguir e
compilar isso imediatamente. Mas lembre-se de que definimos isso
para ser editável por instância. Então, aqui nas configurações de nível do nosso
editor de níveis, selecionamos isso aqui. Estamos especificando que
essa variável
deve ser preenchida com o sublinhado
LV dois, nesse Ok, mas ainda não terminamos. Na verdade, temos que trabalhar dentro do nosso plano de modo de jogo para
finalizar nossa configuração aqui Então, vou para nossa pasta de plantas em terceira
pessoa. Estamos usando nosso BP, modo de jogo em
terceira pessoa Então, vou seguir
em frente e abrir isso. É aqui que temos um script de
resposta em andamento. Vou encontrar
algum espaço vazio, talvez um pouco abaixo. Deixe-me ampliar
e vou
criar um novo evento personalizado. Clique com o botão direito do mouse em uma pesquisa de eventos
personalizada. E vamos
chamar esse evento personalizado de estatísticas do jogo. Ok, agora o que vamos
fazer aqui é, neste projeto
específico, passaremos nossos dados da instância do jogo de volta para
o controle do jogador Essencialmente, sempre que abrirmos um novo nível dois, nosso plano de modo de jogo começará do zero Nosso jogo Begin
vai acontecer. E o que vamos fazer
no E Begin Play aqui em cima
é que, eventualmente
, convocaremos esse evento personalizado para começar. E, ao fazer isso,
informaremos todas as variáveis dentro de
nossa instância de jogo para depois
transferi-las de volta para o controle
do jogador. Vamos continuar e configurar
isso. botão
direito do mouse em
algum espaço vazio aqui, obter a instância do jogo. Vamos nos
arrastar até aqui e lançar para nossa instância de jogo B P. Mais uma vez, vou clicar com o botão
direito do mouse sobre isso e convertê-lo em um elenco puro. Na verdade, não, não vou
converter isso em um elenco puro. Vou deixar como um molde
impuro conectar esses fios
de execução apenas para mostrar que você pode fazer
isso de qualquer maneira aqui E então eu vou me
arrastar e
vamos pegar moedas, vamos ganhar vidas, vamos ganhar pontos. Precisamos transferir tudo isso para
o nosso controlador de jogador. Clique com o botão direito para obter o controlador
do player. Vamos parar com isso, vamos lançar dois controles de jogador
BP Vou converter este em um elenco
puro clicando com o botão direito do mouse. Converta para fundição pura dessa forma. Então vamos sair disso e colocar moedas,
mover
isso para cima, estabelecer
vidas, você adivinhou Vamos definir
pontos assim, certifique-se de que todos
esses fios vão de lá para lá e para lá. E não se esqueça de
transferir esses dados da
instância do jogo de volta para
o controle do jogador. Mais uma vez, seu plano de modo de
jogo. Se eu clicar em Class Defaults, seu plano de jogo determina qual controlador de jogador
você usará nosso controlador de jogador
BP Então, estamos passando todos
esses dados de volta para o nosso controlador BP player Ok, vou clicar com o botão esquerdo
e arrastar tudo isso, tocar na tecla C e meu
comentário será: Tendências, estatísticas do
jogo da instância de jogo BP volta ao controlador do jogador BP Ótimo, excelente. Vou mudar minha cor de quadrinhos aqui
para preto também Agora, precisamos realmente solicitar esse evento personalizado
porque ele não será chamado e nenhuma
transferência de dados ocorrerá, a menos que
chamemos o evento do cliente Tudo bem, então, para fazer isso, só
precisamos começar a jogar no momento em que
nosso evento está sendo jogado Temos nossos vários scripts de
resposta. Eu só vou apoiar
isso um pouco. Assim, vou adicionar uma nota de
sequência mantendo pressionada tecla S e clicando com
o botão esquerdo.
Vou telegrafar assim. E eu vou telegrafar assim. E tudo o que vou fazer com
isso, então zero pin, é chamar esse evento
personalizado de carry over game stats. Então, isso vai
fazer essa ligação. Se eu clicar duas vezes sobre isso, ele vai chamar isso aqui. Eu poderia ter, se eu quisesse
ter um telegrama muito feio, em vez de ter toda
essa configuração, nosso evento personalizado
sendo chamado assim, eu poderia simplesmente ter drogado um
fio até aqui,
e isso funcionaria da mesma forma e isso funcionaria da mesma Mas eu gosto que meu código pareça
um pouco mais limpo. Outra coisa que eu quero mencionar aqui antes de testarmos isso, vamos
compilar e salvar Mais uma vez, saiba que nosso plano
de modo de jogo será acionado sempre que
começarmos nosso nível Agora, algo que eu
voltei e fiz, ou descobri quando
criamos nossa instância de jogo, é definir minhas vidas como três por padrão. E a razão pela qual fiz isso é porque, dentro do nosso
modo de jogo, esse evento começa. O jogo será encerrado
até mesmo para o nível número um. E então isso vai
ser chamado de
transferência do status
do jogo. Então, quero garantir que nossas
vidas sendo três,
provenientes de nossa instância
de jogo, também sejam
passadas para o
controle do jogador. Tudo bem, mais uma coisa que eu
quero fazer antes de testar isso. Eu preciso pular do nível
um aqui e realmente ir para o nível dois para fazer com que
pareça um pouco
diferente visualmente, para que você possa ver que as coisas estão
realmente acontecendo. Então, vou
clicar duas vezes no nível dois aqui. Vai dizer,
ei, você quer salvar tudo o que
você mudou até agora? Vamos salvar Selecionado. E isso é apenas uma economia extra ,
pois está chegando por
algum motivo. Lá vamos nós. E eu vou salvar meu nível
dois aqui também. Guarde isso. Ok,
vamos para o nível dois. Vou clicar duas vezes
nele para abri-lo. Vou desmarcar essas configurações
automáticas aqui. Vamos em frente e guarde isso. E aqui estamos no nível dois. Haverá a largada dos
meus jogadores, que eu coloquei logo no final. Então, deixe-me excluir alguns ativos aqui.
Vamos deletar. Excluir. Excluir. Excluir, excluir. Então, teremos um local
muito árido onde apareceremos no nível dois Essa será a
nossa diferença visual entre o nível um e o nível dois. Vamos salvar o
nível dois e depois
vou voltar para o nível
um indo para o arquivo, os níveis
recentes, o nível um Não
vou salvar
esses ativos temporários. Aqui vamos nós. Aqui estamos, volta ao nível um. Vamos
dar uma chance a isso. Ok, e antes de eu realmente
completar o nível, eu deveria marcar alguns pontos. Eu tenho algumas moedas aqui. Ok, aí eu tenho
três vidas, quatro moedas. E vamos ver quantos
pontos acabamos com. Três vidas, quatro moedas e alguns milhares de pontos
aqui, 4.500 pontos Então, vamos ver se esses dados são
transferidos para o nível dois. Aqui estamos no nível
dois e você pode ver que temos três vidas, quatro moedas e 4.500 pontos Esse sistema está funcionando de fato. Tudo bem, pessoal. Isso vai
fazer tudo por este. Nos vemos na próxima.
94. Nuvens: Bem-vindo de volta. Bem, até
este ponto do curso, nos concentramos
praticamente exclusivamente na jogabilidade principal do
nosso nível de Mario aqui, que é importante
definir primeiro. Mas em algum momento, quando
tiver elementos de jogabilidade suficientes, você pode voltar sua atenção para enfeitar seu nível. Então é nisso que vamos nos concentrar nesta seção. E vamos
começar adicionando algumas nuvens aleatórias ao
nosso plano de fundo aqui. E eu não estou falando sobre essas lindas
nuvens irreais no céu Estou falando sobre essas nuvens
mais centradas em Mario. Agora, se eu tocar na tecla G, mostrarei essencialmente o que vamos construir
aqui. O que eu tenho é uma caixa, um volume, se você quiser, na qual estamos
gerando aleatoriamente essas E todos esses são
tamanhos aleatórios e podemos escolher
quantos gostaríamos de
ter no espaço Será um modelo muito flexível
que nos
permitirá adicionar nuvens em qualquer região do
céu que quisermos Então é isso que está
reservado para este. Ok, de volta aqui em nossa
versão de trabalho do projeto, vou importar
algumas texturas que não
estavam no pacote de textura
original, embora eu vá
voltar e
disponibilizá-las no pacote de textura
original Aqueles que visualizarem este curso em uma data posterior já devem
encontrá-lo aqui. Mas originalmente eu
não os tinha aqui, então vou
trazê-los para o meu navegador de conteúdo. Além disso, dependendo de onde você
está vendo este curso, posso anexar essas texturas
específicas que estou prestes a mencionar
aqui neste vídeo Resumindo, você
precisa ter certeza de
importar essas duas texturas Eu tenho uma nuvem um
e uma nuvem dois. Eu só vou
usar um desses, mas vou
te dar dois apenas para que você possa escolher qual
deles você deseja adicionar. Arrastando-os para minha pasta de
texturas, lá vamos nós. Eu tenho uma espécie de
versão NES da nuvem. Vou usar essa
versão da nuvem. Em primeiro lugar,
preciso transformar
qualquer textura que eu queira
usar aqui em um material Na verdade, vou transformar os dois
em material,
então, selecionando os dois, mantendo pressionado o controle, posso
escrever, clicar nele e criar materiais a
partir dessas texturas Então, vamos seguir em frente e fazer isso. Aqui estão meus dois materiais
que acabei de criar. Vou arrastar e soltar esses ativos materiais,
que você pode ver lá, materiais porque estão
rotulados na parte inferior, na minha pasta de materiais Vou
movê-los para cá e depois vou encontrar
meu único material de nuvem,
meu material de nuvem T. É com ele que eu quero
trabalhar no meu projeto. Mas, novamente, se você quiser
aquela nuvem NES da velha escola, você também pode usá-la. Só precisamos
clicar duas vezes nele para abri-lo e fazer algumas
alterações aqui. Para começar, aqui
na minha prévia, vou colocar essa
nuvem e não em uma esfera Você tem esses pequenos ícones
nesta prévia aqui. Então, se você
optar por colocá-lo em um avião, você pode ver essencialmente como
isso vai parecer. Agora você vê aquela faixa estranha
acontecendo ao fundo.
Não se preocupe com isso. Vamos corrigir isso
daqui
a pouco , porque
vamos selecionar nosso nó de material principal
na seção do modo de mesclagem. Vamos mudar isso
de opaco para máscaras. Agora, o que isso nos permitirá
fazer é inserir nosso valor aqui,
o valor alfa dessa seção, na entrada da máscara de opacidade. E isso vai eliminar
esses
efeitos estranhos de estrias nas costas Agora, pretendo ter
essas nuvens visíveis apenas desse tipo de ângulo Mas se eu voar até a parte de trás, perceba que você não consegue ver. Então, isso vai ser
totalmente opcional. Se você quiser criar
um material de dois lados aqui com os nós do
material mestre selecionados, você pode marcar nesta
caixa os dois lados E
isso fará com que você possa vê-los dos dois lados. Só para sua informação, tudo bem, com isso,
vou salvar isso e depois fechá-lo aqui no
meu editor de níveis Vou até a pasta de
blueprints e vou criar
uma nova classe de ator, blueprint,
clicando com o botão direito do mouse na classe blueprint Será uma aula de atores porque essa será uma que colocaremos em nosso nível,
e vou simplesmente
chamá-la de nuvens de sublinhado da BP Com isso selecionado,
vou tocar na barra de espaço para abri-la. E eu vou apenas adicionar
dois componentes aqui. O primeiro componente
que vou
adicionar será
um colisor de caixas, rolando para baixo E vou chamar
isso de minha área de desova. Isso basicamente
definirá
a área na qual eu quero
gerar algumas nuvens Agora, com isso selecionado, ainda não
vou
determinar as extensões da caixa Vou determiná-los
em nosso roteiro de construção. Mas vou definir a
espessura da linha como um
pouco mais grossa para que essa área seja mais fácil de
ver quando tivermos esse
lugar em nosso nível Então, a espessura da linha aqui, eu
vou mudar isso para 20, que vai parecer
muito volumosa por enquanto Mas quando expandirmos
nossa área de desova aqui, será muito mais fácil
ver quando ela for enorme Em seguida, selecionarei nosso componente
raiz de cena padrão. Esse é esse componente
aqui. Aquele pequeno ícone mais uma vez, porque eu quero adicionar
outro componente, anexar outro
componente a ele. E isso
será digitar, por exemplo, malha estática Com isso selecionado,
vou chamar isso de Nuvens. E então,
no painel Detalhes, vou me encaixar como
nossa malha estática. Um avião. Eu vou escolher esse avião. Isso será da pasta de formas básicas do
motor. E então, para o material que será o
material em que eu
estava trabalhando aqui, nuvem 1. Agora, não vemos nada
aqui ainda porque vamos gerar instâncias disso
por meio de nosso script de construção, que virá daqui a
pouco Mas eu preciso fazer isso de
frente para a configuração da nossa câmera. E para fazer isso, e eu determino isso por meio de
algumas tentativas e erros aqui, nossa rotação aqui no x, precisamos mudar isso para
90 para que esses planos com a imagem da nuvem
fiquem voltados para nossa câmera. Outra coisa que
vou fazer
imediatamente aqui está
no painel de detalhes. Vou apenas
digitar sombra e desligar isso de projetar
sombras Isso economizará um pouco nosso
desempenho, além de
evitar que sombras estranhas sejam projetadas de nossa nuvem Então isso é opcional, mas
eu gostaria de fazer isso. Ok, a seguir vamos
adicionar algumas variáveis que serão usadas novamente em nosso script de construção. Tudo isso será feito
no script de construção, que é um script
que será
executado durante o tempo de design, não durante o tempo de execução.
Clicando em nossas variáveis. A primeira que vamos
adicionar aqui será chamada de instâncias para gerar Essa é a quantidade de
instâncias de nuvem que queremos. Isso será um número inteiro. A próxima que
eu vou adicionar, clicando neste botão de adição de
variável, será chamada de extensão de
geração X. Isso será um float Isso determinará, junto com as duas outras variáveis que se seguirão aqui, o tamanho da nossa área de desova Você verá isso aqui
em pouco tempo. Com isso selecionado,
vou apenas fazer o controle D para
duplicá-lo algumas vezes Voltando e renomeando isso. Essa será chamada desova Y e
esta será
chamada de extensão de desova Z. Tudo bem, a próxima que
adicionaremos aqui, apertar o controle D para duplicar
isso será chamada escala mínima e, em seguida Essa será chamada de
escala máxima e só determinará o tamanho
mínimo e máximo. E vamos
randomizar entre isso para gerar em nossas instâncias de
nuvem aquilo Tudo bem, com isso, vamos
continuar e compilar para que possamos definir alguns valores padrão
aqui para gerar instâncias Vou definir isso como 25, esse será um valor inicial muito
bom. Marque esta caixa, por
exemplo, comestível. Isso fará com que
possamos editar essa propriedade,
essa variável da extensão de geração do editor de
níveis x. Vou definir isso como,
digamos, 5.000
desde o Também tornarei essa
instância editável, gerarei a extensão Y e também a
instância Vamos definir isso para, sei lá, 1.000 e depois gerar a extensão z. Até onde queremos que isso
alcance o ar Digamos que 2000 também tornando essa instância
editável em escala mínima. Também tornarei essa
instância editável. E diremos que a
escala em será três vezes o tamanho
da escala plana. X definirá isso para ser dez vezes o tamanho do
nosso plano normal aqui. E também definiremos isso
como comestível por instância. Observe que todos esses
olhos estão marcados, significa que são
comestíveis por instância, o que significa que podemos editá-los
no editor de níveis, que faremos daqui a pouco Vamos seguir em frente e
repassar nosso roteiro de construção. É aqui que vamos
colocar todo o script para determinar em quantas
nuvens queremos gerar, o tamanho da nossa área de desova e também o tamanho das nossas
nuvens Então, primeiro vamos determinar
o tamanho da nossa área de desova. Então, temos essa área de desova, vamos arrastá-la para o nosso gráfico Deixe-me
ampliar um pouco aqui. Vamos nos afastar disso e depois digitar int.
Vamos definir a extensão da caixa agora apenas para esclarecer essencialmente o
que estamos fazendo aqui, adicionamos esse componente de
área de desova Este é um gatilho de caixa Basicamente,
queremos definir as extensões X, Y e Z
que têm como padrão 32 Agora, a maneira de fazer isso é arrastar para trás
daqui e digitar vetor make que o
dividirá em seus componentes x, y e z. E temos variáveis
que determinarão o X, Y e Z.
Então, vamos arrastá-las e soltá-las adequadamente nos pinos corretos Agora, nossas áreas de desova, as extensões das
caixas aqui
não são 302-30-2302, mas
são mas
são Mas, mais uma vez,
poderemos
editá-los a partir
do editor de níveis, para que possamos alterá-los
no editor de níveis. Em seguida, queremos trabalhar para gerar instâncias
de nossas nuvens aqui, então vamos arrastar nossas E vamos
querer tirar
isso e adicionar uma instância. Agora a questão quantas dessas instâncias
queremos aparecer E então, onde
queremos gerá-los? Para isso, usaremos quatro loops, aqui, clique com o botão
direito do mouse
e insira quatro loops. Um simples circuito de quatro
voltas resolverá o problema. Então, vamos fluir
assim e assim. É assim que
isso vai funcionar. Vamos definir nosso
primeiro índice aqui como um,
para que comecemos
a
contar com o número um. E nosso último índice
será determinado pelo número
de instâncias a serem geradas Então, vamos colocar
isso no último índice. Então, a forma como isso funciona é
durante o tempo de design, aqui, sempre que
colocamos
isso em nosso nível, ele define
a extensão da caixa e, em seguida, atingimos
esses quatro loops. Então, basicamente,
vamos fazer isso, o corpo do loop aqui 25 vezes, começando do número um, depois indo para 234, até
nosso último índice, 25 Vamos adicionar, adicionar
uma instância, adicionar uma instância começando
no número um, passando pelo número 25. Executando isso de novo e de
novo, e de novo e de novo. Então, agora precisamos dizer isso
onde queremos desovar? Então, para isso, vamos arrastar para trás nossa transformação de
instância Vamos digitar make transform para a localização
de nossas nuvens aqui. O que vamos
fazer é trazer
nossa área de desova dessa forma Em seguida, vamos
sair disso e
obter a extensão da caixa. Em seguida, vou me arrastar para
fora e digitar um ponto
aleatório na caixa delimitadora Por padrão, ele se conecta ao nosso, que não é realmente o
ponto central que queremos aqui Queremos que a extensão da nossa caixa seja
conectada ao pino
inferior aqui, a metade do tamanho do
centro da nossa caixa delimitadora Podemos simplesmente
sair da nossa área de desova aqui e digitar a localização
relativa desta forma Essencialmente, dizendo aqui,
queremos algum ponto dentro de nossa caixa delimitadora
de nossa área de desova aqui, algum ponto ali, onde devemos
gerar localmente, dentro de nossa caixa delimitadora
de nossa área de desova aqui,
algum ponto ali,
onde devemos
gerar localmente,
uma instância de nossa nuvem. Agora, para a balança, temos uma escala em. Vou manter pressionado o controle e arrastá-lo em uma escala máxima. Mantendo pressionado o controle,
percebendo que queremos algum valor aleatório entre
nosso mínimo e nosso máximo. E para isso,
vou clicar com o botão direito em
float in range é o que
procuramos toda vez aparecemos em uma
instância de nossa nuvem Também vamos
gerá-lo em uma escala aleatória. Aqui, vou
simplesmente conectar isso aqui. Ele converterá
nosso valor flutuante
em um vetor se escolher,
digamos, o valor de quatro, porque isso está entre
o mínimo e o máximo. Ele definirá que
a escala de quatro seja uniforme nos x, y e z que
compõem o vetor de escala. Esse será nosso roteiro
final aqui. Vamos continuar
compilando esse salvamento, depois vamos ao nosso editor de
níveis e trazemos um desses
para o nosso nível Tudo bem, arrastando nossas
nuvens até aqui. Antes de fazer isso, na verdade,
eu quero definir isso. Eu tenho minhas duas
configurações de D snap ativadas atualmente. Isso é o que aquele azul
ali significa. Vou colocar isso na minha camada traseira
extrema
e, na verdade, talvez eu
até queira colocá-lo além dela. Mas vou começar por aí. Então, na minha camada traseira extrema, mais
uma vez, ao clicar nela, posso ir para Editar camadas. Eu posso ver que a camada
de
fundo extrema será definida como menos 1.000 no eixo y. Então, vamos prosseguir
e arrastar isso para dentro. E você pode ver que, enquanto
eu o movo, sempre que você fizer alguma
alteração nesse projeto, ele executará esse script de
construção É por isso que continuo vendo esse padrão
aleatório diferente. Porque cada vez que eu
o movo um pouco, ele executa novamente esse script de
construção. OK. E aí eu a
coloquei no meu nível, obviamente não é uma boa
colocação da lagartixa Você pode ver onde
isso está gerando instâncias de
nuvem dentro
dessa área da caixa delimitadora Então, deixe-me
adiar um pouco, porque eu não estava
muito feliz com isso. Ok, agora você pode ver como, com isso selecionado
no painel de detalhes, posso especificar
várias instâncias. Eu posso alterar qualquer uma dessas propriedades
diferentes. Então, vou definir o número
de instâncias como 100, o que provavelmente
vai ser uma loucura. Eu posso alterar a extensão X do spawn, torná-la mais larga,
para que eu possa alterar a extensão Y, torná-la um
pouco mais alta, então a extensão Z, eu também posso mudá-la e torná-la um pouco mais Desculpe, Y o torna,
você sabe, mais largo, no nosso caso, Z o torna mais
alto. E então aí está. Você pode simplesmente
posicioná-lo adequadamente para ter algumas
nuvens no céu. Mexa com isso ao seu gosto. Mas agora temos um gerador de nuvem
aleatório. Muito fofo, de fato. Tudo bem, pessoal,
isso vai fazer tudo por esse.
Aqui está esse roteiro. Mais uma vez, se você
quiser pausar o vídeo aqui, vemos no próximo
95. Peças de nível: Bem-vindo. Neste vídeo,
aprenderemos como criar esses pedaços
maiores de tijolos aqui, pois eles compõem a maior parte do nosso nível e
provavelmente muitos níveis Agora, a razão pela qual
vou mostrar isso é porque eles
precisam ser construídos tal
forma que, quando você coloca um desses
materiais assim, sujeira, não pareça esticado E só para
enfatizar esse ponto, se eu fosse
criá-lo da maneira que as pessoas provavelmente pensam
que foi criado, deixe-me ampliar um
pouco. Vou colocar um cubo de malha
estática simples aqui. E eu vou
escalá-lo para ter um tamanho gigante, como. Então é assim que muitas pessoas pensam que
isso poderia ser criado. Um desses tijolos gigantes. Eu só vou colocar
um material sujo sobre isso. Temos nosso material sujo
de nossas pastas aqui. Agora você pode ver que parece
muito esticado aqui. Enquanto aqui
não parece esticado,
parece ladrilhado Então é isso que
vamos
aprender a criar neste. Como fazer uma peça de
bloco maior como essa que não tenha um material
esticado sobre ela Basicamente, isso
resultará na criação de nossas próprias malhas estáticas Então, mostraremos como
fazer isso em nossa versão funcional
do curso. Então, com meu nível de trabalho em
andamento, você pode ver que eu tenho
essa plataforma gigante selecionada aqui na minha janela de visualização.
No delineador Esta peça de piso é
um ator de malha estática. Então, se eu fosse aplicar nossa
sujeira nesse material sujo, ele pareceria
muito esticado E mais uma vez,
não é isso que queremos. Vou deletar
isso, tchau. E vamos
substituir isso por um pincel de geometria aqui no painel
do ator local E se você não vê o painel do
ator local , clique aqui. Coloque o painel do ator. Vamos usar pincéis de
geometria. Vamos adicionar um pincel de caixa. Vou simplesmente
arrastar isso para dentro. Deixe-me fazer isso no
meu nível principal aqui, e eu não vou
ser muito específico sobre onde isso é colocado
por enquanto. Então, no painel de detalhes, em vez de dimensionar isso usando minha
ferramenta de dimensionamento dessa forma, vou definir o tamanho do pincel
no painel de detalhes Por quanto tempo eu quero fazer isso? Bem, acho que vou definir o valor de x como algo como 20.000, algo
muito longo assim, y. Vou definir isso como
algo como 2000 O z, vou
definir que seja algo como, não
sei, 5.000 ou 500. Vamos embora.
Algo parecido. Mais uma vez, vou resumir isso um
pouco aqui, tentar tornar nossa base de jogo
como a tínhamos antes Vou ajustar isso
daqui a pouco. Ok, agora o que
eu preciso fazer é converter esse pincel de caixa, conhecido como ator de pincel, em uma malha estática. Agora, a forma como isso pode
ser feito é
nas configurações avançadas de pincel, temos a capacidade de transformar
isso em uma malha estática. Mais uma vez, isso foi o avanço das configurações do
pincel, crie uma malha estática. Então eu vou fazer
isso. Ao fazer isso, ele vai me perguntar qual pasta eu
gostaria de dizer isso. Então, deixe-me entrar na minha pasta de jogos de
plataforma. Vou clicar com o botão direito do mouse sobre isso, criar uma nova pasta. E vou chamar esse
nível de sublinhado de nível de peças. Vou chamar isso de malhas de
sublinhado de nível. E vou simplesmente chamar isso de
minha peça, sublinhado um. Isso vai ser
bom o suficiente para eu criar a malha estática. Agora, isso vai
transformar isso em um ator de malha estática. Agora, se eu fosse aplicar
meu material nisso, vamos
procurar sujeira. Ele o aplicará lá de forma azulejada e bonita Agora, haverá outro problema com
isso atualmente, como é para demonstrar isso. Vou diminuir um
pouco
isso para garantir que
meu ator
inicial de jogador esteja no lugar certo. OK. Meus jogadores
começam como ator, ok? E o problema é que
entrar e
jogar é que meu personagem
vai cair em jogar é que meu personagem todo
o mundo E a razão para isso
é porque, uma vez que
criamos uma malha estática
a partir de um pincel de caixa, ela não
colide Então, para corrigir isso,
vou até onde essa malha estática agora reside
no meu navegador de conteúdo E eu posso fazer isso
com ele selecionado. Clicando nessa
pasta aqui, ela vai me mostrar onde isso existe no meu navegador de conteúdo. Vou clicar duas vezes
nele para abri-lo. Mas antes de fazer isso, observe
nesta dica de ferramenta, em laranja, que diz colisão Primsero que mostra que
não há colisão Vamos
aplicar manualmente alguma colisão. Vou clicar duas vezes
nele para abri-lo. E apenas dando um zoom
aqui embaixo da seção de
colisão, podemos adicionar diferentes
tipos de Agora, como esse é
um formato de caixa simples, tudo que preciso fazer em
caso de colisão é adicionar uma simples colisão de
caixa Ao fazer isso,
vou adicioná-lo. Agora você
verá esse contorno verde ao redor dessa malha A colisão agora está sendo
aplicada a isso. Isso é o que esse contorno
verde é. Agora, outra coisa a ser
observada aqui é que eu poderia, com essa malha estática agora
adicionada ao meu navegador de conteúdo, adicionar uma segunda
versão disso. Deixe-me ir em frente
e colocar um aqui. Agora, observe que esta
versão não tem meu material aplicado
automaticamente a ela. E talvez eu queira reutilizar isso em outros lugares do meu nível Então, o que eu posso fazer aqui é voltar ao
meu editor de malha estática, que eu abri.
Aqui está um slot em um material padrão
no painel de detalhes. E isso pode ser feito
clicando
aqui , apenas clicando em Dirt. Agora, se eu salvar esse ativo, ele o salvará como o material padrão
para essa malha estática. E também tem uma
colisão aplicada a ela, mostrando que se eu trouxesse uma segunda versão disso, ela teria esse material aplicado
automaticamente a ela E agora, se eu entrar e jogar, meu personagem realmente
colidirá com o
chão, como de costume Então é assim que você pode
criar algumas peças de piso de malha
estática personalizadas piso de malha
estática Isso fará tudo por este. Nos vemos na próxima.
96. Adereços de nível e ajuste de câmera: Tudo bem Portanto,
embora tenhamos algumas malhas gigantes um
material bonito,
elas ainda parecem
muito insossas aqui Então, vamos
preencher o nível aqui
com alguma folhagem, e vou mostrar um método realmente rápido e fácil
de fazer isso E então você pode pegar
esse conceito e segui-lo
a partir daí. Mas, para começar aqui,
vou até o lançador da Epic Games
e vou mostrar
um bom pacote para adicionar
ao seu projeto aqui, que pode ajudar a aprimorar
a aparência de forma rápida e fácil Então, aqui no lançador da Epic
Games, eu tenho o Unreal
Engine selecionado no lado esquerdo do mercado Se você pesquisar o pacote
Advanced Village, este é o pacote
que vou
adicionar ao meu projeto Unreal Engine Agora, ele mostrará
as versões atuais do
mecanismo com suporte. Observe que, se a
versão do seu mecanismo não for suportada aqui, ainda
há uma maneira de adicioná-la. Vamos até Adicionar ao
Projeto aqui. Se você não vê seu projeto, pode
clicar
nesta pequena caixa de seleção aqui para mostrar todos os projetos
existentes E então você precisa
rolar para baixo e encontrar o projeto
que deseja adicionar Esse pacote de conteúdo dois para mim, esse será o primeiro da plataforma. Agora, ele vai dizer, ei, os ativos não são compatíveis
com esta versão, então basta selecionar a versão
mais recente. Isso é o que você deve
fazer se estiver mostrando
que esse pacote de ativos é incompatível com
sua versão mais recente Você ainda pode adicioná-lo Basta selecionar a versão mais recente. Para mim, será 5.3 E então vou
clicar em Adicionar ao projeto Agora, ao fazer isso, você verá essa
pequena barra de progresso à medida que todo esse conteúdo está sendo
adicionado ao seu projeto. Então, vou pausar o vídeo aqui e, quando
terminarmos, mostrarei onde esse conteúdo está agora no seu navegador de
conteúdo Ok, então a instalação do pacote de conteúdo
foi concluída. E aqui no meu navegador de conteúdo, posso ver que tenho essa nova pasta chamada pacote
Advance Village. E o que vou
fazer aqui é
classificar por malhas estáticas Então, se você não tem um filtro de
malha estática existente aqui, você pode ativá-lo ou
disponibilizá-lo clicando aqui para ver malhas estáticas, porque eu quero
encontrar esses adereços Então, eu vou
ligar esse filtro. E agora você pode ver
todas essas coisas diferentes, esses adereços que você pode
colocar em seu nível Agora eu quero colocar um monte de grama no topo da
minha superfície aqui Então, a maneira de fazer isso é selecionar nesta barra de
pesquisa aqui. Eu vou fazer uma
busca por grama, isso vai encontrar
alguns canteiros de grama. Eu gosto desse canteiro de grama em vez de um. E então vou mudar
o modo do editor aqui do modo de seleção no canto
superior esquerdo para o modo folhagem. Shift mais três
teclas de atalho para chegar aqui. Ok, no modo folhagem, você pode colocar qualquer
malha estática de forma rápida e fácil Não precisa ser apenas grama, árvores, pedras
ou qualquer coisa assim. Então, aqui vai dizer que solte
a folhagem aqui. Essencialmente, você pode soltar qualquer malha
estática nessa área. Vou soltar
esse arrasto com o botão esquerdo do mouse. Vamos deixá-lo
aqui, tipo. Então, o que eu gosto de fazer
é mudar essa visualização de miniatura para
visualização em lista Poderíamos jogar alguns
outros aqui também. Na verdade, deixe-me pesquisar e ver se há alguma
árvore neste pacote. Eu quero algo que
pareça relativamente bom. Acho que vamos escolher uma
dessas árvores aqui, talvez. Existe um
pinheiro? Vamos ver se há um tipo de
pinheiro no pinheiro. Agora vamos escolher
a árvore normal, ok? Esse cara vai fazer muito bem em
arrastar e soltar isso aqui. A maneira como isso funciona é com qualquer coisa que esteja marcada aqui em sua lista de folhagens. Desde que você tenha
sua ferramenta de pintura selecionada, você pode clicar com o botão esquerdo do mouse e adicionar
instâncias ao seu nível. Agora, obviamente, ao fazer isso, o que acabei de fazer,
parece terrível. Isso é muito denso. Eu não gosto disso. Eu poderia
fazer o controle Z para desfazer isso, mas o que vou fazer
em vez disso é
manter pressionada
a tecla Shift ao clicar com o botão esquerdo, pressionar a tecla Shift
ao clicar com o botão esquerdo, vou trocar para
essa ferramenta de Apagar e
ela apagará tudo Então, mantendo pressionada a tecla Shift, você pode ver que minha
ferramenta Apagar agora está selecionada Então, agora eu clico com o botão esquerdo e
vou apagar essa folhagem. Agora, mais uma vez, você viu que era muito denso e, na verdade, eu não quero adicionar árvores
e grama ao mesmo tempo, então vou
ligar apenas a grama. E agora o que posso fazer é
selecionar minha grama. E apenas selecionando
minha grama abaixo, posso definir todos os tipos de
propriedades sobre como eu quero que essa grama
apareça no meu nível, incluindo o quão densa ela é. Deixe-me definir essa densidade
bem abaixo, aqui mesmo. Eu vou para
algo parecido com um ponto. Na verdade,
deixe-me configurá-lo para um. Por enquanto, estava configurado para 100, então agora, se eu clicar com o botão esquerdo, você pode ver o quão esparso
isso vai ser Isso é muito denso. Então,
vamos tentar novamente aos 100. E tente novamente, clique com o botão esquerdo, para que você possa ver o quão
denso é lá. Acho que vou configurar
isso para, digamos, 200. Agora também posso definir todos os tipos
de outras propriedades por aqui,
incluindo uma escala. Esse é outro problema comum com o qual
você pode querer mexer. Se eu
clicar com o botão esquerdo agora, todas as instâncias da minha grama terão exatamente
a mesma altura, o que talvez você queira,
talvez não. Eu quero ter um
pouco de variedade aqui. Então, vou fazer o
controle Z para desfazer isso. E vou definir minha escala menta para 0,5 e minha escala Mac para dois. Então, eu tenho uma
pequena variação nos locais gramados e agora você
pode ver o que isso faz. Tudo bem, algumas outras coisas
que você pode querer ajustar aqui. Rolando para baixo em um ângulo de inclinação
aleatório. Este realmente
aparece com árvores. Na verdade, deixe-me ligar uma árvore. Agora acabei de selecionar
minhas árvores. Com isso selecionado, posso alterar as propriedades
das minhas árvores. Deixe-me reduzir minha densidade para algo como um. O que o
ângulo de inclinação aleatório fará é aleatório o ângulo em
que a árvore cresce. No momento, está crescendo em
linha reta. Controle Z. Se eu fizer um ângulo
de inclinação aleatório de, digamos, até 20 graus, isso fará com que minhas árvores possam ficar levemente inclinadas Ele vai escolher aleatoriamente, então eu estou apenas clicando para você possa ver que um está
bem reto, aquele está inclinado para
o lado, etc Só oferece um pouco
de variedade. Ok, então vou
começar com grama, apenas selecionando minha
grama aqui. Minhas propriedades referentes à
minha grama que eu posso ajustar. Vou seguir em frente, clicar com o botão esquerdo
e arrastar. Agora eu poderia fazer isso para pintar grama em todo o meu nível. No entanto, eu também poderia
aumentar o tamanho do meu pincel aqui para me dar um pincel de bolhas maior para
pintar em todo o meu nível Então, deixe-me fazer isso rapidamente. Estou apenas
pressionando o botão esquerdo. Agora, isso pode ser o que
você quer, talvez não, mas eu gostaria de
ter um pouco de grama, ou melhor, terra, neste caminho principal para que seja mais fácil identificar
meu caminho linear de viagem Então, vou
definir o tamanho do meu pincel algo como, digamos, 300. E agora, se eu
entrasse, digamos, nessa visualização, mantendo pressionada a tecla Shift no botão esquerdo,
eu poderia apagar algumas folhagens
ao longo do meu caminho principal de viagem Então você pode imaginar como
você poderia estender
isso até
o final de um caminho como este. Mantendo pressionada a tecla Shift,
sem mais nem menos. Ok, agora digamos que eu queria adicionar algumas
árvores ao meu nível. Agora eu poderia usar o
pincel de bolhas para adicionar algumas árvores. No entanto, vou
selecionar minha árvore, então só quero árvores. Você vai
desmarcar minha grama. Também vou mudar
a escala aqui para
0,2 a 0,8, alguma
variedade ali. Vou ter um ângulo de
inclinação aleatório de até 20 graus. Agora, mais uma vez, eu poderia fazer um
pincel com bolhas e adicionar
múltiplos deles No entanto, você também pode
usar esse modo único. Ao escolher esse modo único, você está no modo de instância única. Agora você tem esse pequeno pincel de bolhas bem ali Onde quer que você clique,
você gerará uma árvore. Essa é uma maneira muito rápida e
fácil de preencher seu nível com alguma
folhagem ou qualquer outra malha Não precisa ser árvores,
não precisa ser grama. Portanto, há uma
técnica rápida de
como você pode decorar seu nível. Agora você pode encontrar casos
como esse em que não quer grama no meu quarteirão. A razão pela qual foi aplicado no topo
deste bloco é porque
aqui eu
tenho meus vários filtros o que é considerado um alcatrão válido. Colocar uma
malha estática Pon é uma delas. Se eu quiser apagar isso
da minha malha estática aqui, preciso selecionar minha grama Nesse caso, sairei do modo
de instância única. E agora, apenas mantendo
pressionada a tecla shift, posso clicar com o botão esquerdo e
apaguei isso Agora, se eu não quiser que seja permitido nem mesmo passar por
cima dessa malha estática, eu simplesmente desmarcaria a
malha estática para impedir Agora, esse piso é atualmente considerado
uma peça de malha estática, mas é assim que você pode
determinar o que é válido pintar sobre atores
paisagistas, sobre os
quais não falamos neste curso. Malhas estáticas? Sim.
Até mesmo outras folhagens. Tudo bem, então
há uma rápida explicação como você pode adicionar um monte de folhagens
ou adereços ao Eu gostaria de usar a ferramenta de
folhagem para adicionar
malhas de qualquer tipo de
forma rápida e fácil Não precisa ser grama,
não precisa ser árvores. Podem ser cercas, casas,
caixotes, barris, qualquer coisa. Quero adicionar um rápido
adendo a este vídeo. Porque depois de
colocarmos essas peças
de nível aqui e você jogar
seu nível, talvez
você tenha algo
que agora se pareça com isso. Onde talvez sua câmera
esteja bem colocada. Você não quer sair do
seu nível mais uma vez, é
aqui que você
pode voltar para
seu personagem em terceira pessoa
e ajustar a câmera. Se você se lembra do
início do curso, na verdade, temos a
capacidade de definir algumas configurações
temporárias de câmera
aqui mesmo em nosso nível. Eu só quero
apontar algumas coisas. No momento, estou jogando
na janela de visualização selecionada e
, enquanto estou jogando
na janela de visualização selecionada, posso entrar abaixo do meu
contorno e
escolher meu spawn no personagem escolher meu spawn Com isso selecionado
na categoria geral, expusemos essas variáveis do
início do curso. Para ajustar a câmera
em tempo real, vou agir e
ativar isso, ela ativará
todas essas configurações Agora posso tentar ajustar o deslocamento da
minha câmera para
tornar isso o que eu quero Talvez algo como 300
no Z seja o que você quer. Talvez 400. Eu só vou continuar mudando
isso. Eu gosto de 400. Agora, quando eu sair daqui, vou clicar em Escape. Essa é apenas uma
configuração temporária que eu tinha ali. Novamente, tudo isso vem por meio desse script dentro do meu personagem em
terceira pessoa. Estávamos ajustando o
deslocamento Z da nossa câmera quando isso
foi configurado para ser verdade Se eu voltasse e jogasse, ele
voltaria às configurações antigas da câmera Como lidamos com
o ajuste da câmera? Bem, novamente, eu gosto desse Z 400. Isso está afetando minha câmera. Estrondo. Então, se eu for inspecionar o componente do boom da
minha câmera, deixe-me ir até minha
janela de exibição e mostrar onde está o componente do boom da
minha câmera. É aquela linha vermelha. Tudo bem, se eu configurasse o componente
de boom da
minha câmera na localização Z para 400, ele o
configuraria assim.
Salvei isso e agora, se
eu voltar ao jogo, ele manterá essa alteração. Então é assim que isso
deve funcionar. Só queria adicionar esse
adendo aqui a este vídeo. Por favor, tenha um bom campo de visão jogando água.
Veja na próxima.
97. Nível do menu principal: Bem-vindo. Ao longo
dos próximos vídeos, criaremos esse menu principal do nosso jogo que terá um
único botão
e, quando clicarmos
nele , ele simplesmente inicia o nível aqui. Em nossa versão funcional
do projeto, começaremos
criando um nível totalmente novo. Na verdade, vamos
começar nesse novo nível. E nesse novo nível, vamos
gerar um widget, nosso
menu principal E então, a partir desse menu principal, clicando no botão
vamos lá. Faremos a transição do nível do menu principal
para esse nível. Então, vamos seguir em frente e criar
esse novo nível. Aparecendo abaixo do arquivo
no topo. novo controle de nível é a tecla de
atalho para criar um novo nível. Você trará este
pequeno seletor de nível novo Vamos criar
um nível vazio, então vá em frente, selecione-o
e clique em Criar Estamos em nosso
novo nível vazio
, atualmente sem título Vamos em frente e salve isso. Podemos clicar
aqui para salvá-lo. Isso nos perguntará onde
gostaríamos de salvar isso. Vamos acessar nossa pasta de níveis de
plataforma. E vou simplesmente chamar isso de
LV underscore Main Menu. E então vamos salvar
isso imediatamente. Então, agora temos nosso nível de menu
principal. A única outra coisa que eu
gostaria de realizar
neste vídeo é
aparecer em nossas configurações. Vamos ver nossas
configurações de projeto e, aqui, deixe-me colocar
isso na parte superior,
vou entrar em mapas e modos. Aqui, no mapa de inicialização do
nosso editor, vamos
mudar isso do nível
um para o nível do menu principal Deixe-me digitar o principal lá. O que isso fará é na próxima vez que abrirmos o Unreal, ele
abrirá automaticamente nesse nível do menu principal Então, estamos adicionando um
pouco de atrito aqui, entrando em nosso jogo começando no nível do menu
principal E, novamente,
a partir daí, faremos a
transição para o nosso LV Ok, isso é tudo que eu quero
realizar neste. Você não precisa salvar nada aqui nas configurações do seu projeto. Só vai
lembrar isso na
próxima vez que você
abrir o editor. Isso bastará para este. Veja ganhar a próxima.
98. Layout do menu principal: Tudo bem, agora que temos nosso nível de menu principal neste, nosso objetivo é criar um
plano de widget que
servirá como interface
de usuário para o menu principal do nosso jogo,
essencialmente o layout do menu
principal Agora, antes de realmente
nos aprofundarmos nisso, certifique-se de ter importado
todas as fontes do início do curso, que deveriam ser todas importadas, pois vamos usá-las. Além disso, certifique-se de ter importado todas as texturas
anexadas a este curso, pois faremos
uso de algumas delas Tudo bem, com isso,
vamos entrar na nossa pasta U I. Vamos clicar com o botão direito
em algum espaço vazio. Escolheremos o widget da
interface do usuário, o blueprint. E vamos escolher esse widget de usuário como a classe principal
no topo aqui Vamos nos
dar um nome. Vou chamar isso de BP
underscore Main Menu. E então, com isso selecionado, podemos simplesmente tocar na
barra de espaço para abri-la Ok, no
lado esquerdo, temos vários widgets que podemos
adicionar para compor nosso menu principal Esta é a
área de design, aqui mesmo. Aqui embaixo,
mostraremos a hierarquia, a relação de vários
widgets entre si E então,
no painel de detalhes, podemos definir várias
propriedades para cada um dos widgets que adicionamos Os widgets com os quais quero
começar aqui são um painel de tela Então, vou
digitar no painel de tela, vou arrastá-lo para dentro. Isso basicamente
funcionará como uma espécie de placa de cortiça, se você quiser, a
placa de aderência na qual
fixaremos outros widgets Então esse é o
primeiro. O segundo será uma imagem. Então, vou colocar isso
aqui para que você possa ver
aqui embaixo na hierarquia Está anexado ao
nosso painel de tela. Vou
renomear essa imagem
imediatamente para não me confundir
com minha próxima imagem Então, selecionando esses dois, este será o fundo de
sublinhado da imagem e eu vou definir os
detalhes para eles posteriormente Mas o próximo
que vou adicionar também será anexado
ao meu painel de tela. Vamos simplesmente arrastar
outra imagem como essa, renomeando-a pressionando F dois nela Esta será minha imagem, título de
sublinhado. A propósito, com qualquer um
desses widgets selecionados, você pode renomeá-lo fazendo F dois ou no
painel de detalhes na parte superior Você também pode renomeá-lo lá. Em seguida, vou trazer
um widget de botão aqui. Meu botão vai para
algum lugar nas proximidades. Então, vamos arrastá-lo e
soltá-lo ali mesmo. Vou renomear esse botão,
sublinhando Play. E então vou
arrastar um texto para cima do meu botão. Então, eu poderia arrastá-lo
e soltá-lo
aqui em cima do meu botão
Jogar na hierarquia, ou eu poderia colocá-lo diretamente
em cima do botão Na visão do designer, esse recuo mostra que anexar uma relação
e eu
simplesmente renomearemos simplesmente renomearemos Tudo bem, a seguir,
vamos
definir os detalhes
de cada um deles. Primeiro, selecionarei o plano de fundo da
minha imagem atualmente
no painel de detalhes. Vou definir a âncora
para isso, em tela cheia. Isso vai definir meu ponto de ancoragem
totalmente assim Agora, para realmente ter
isso em tela cheia, eu tenho que desfazer
meus offsets Então, deixe-me clicar
nesses botões de voltar, à
direita,
ali mesmo e ali mesmo. Temos esse deslocamento
aqui ainda definido para 100. Vamos continuar e
definir isso para zero. Na parte inferior do offset, também será zero Nossa âncora
será essa tela cheia. E então nossas compensações
serão zero em todos os aspectos, o que
realmente o tornará em tela cheia Agora, eu quero realmente
colocar uma imagem aqui,
então, na
seção de pincel de aparência abaixo da imagem, vou pesquisar o menu
principal e tenho essa textura que podemos colocar em segundo plano.
É muito boa. Em seguida, nosso título de imagem, atualmente esta caixa branca. Vamos definir
a âncora para que seja
essa no canto superior direito
que tentará
manter esse título no canto superior
direito da nossa janela de jogo Se tentarmos redimensionar nossa janela de jogo para
a posição x, vou definir isso para
menos 700, a posição Y. Vou definir
que seja zero E você pode ver
isso se movendo. Ao atualizar esses tamanhos, vou definir
que seja 700 e o tamanho que vou
definir como 400. Agora, por que eu escolhi
esse tamanho ali mesmo? Bem, é porque minha imagem de
pincel aqui, vou escolher
ser meu texto de Super Mario. Esse aqui. E isso se encaixa muito bem. Mais uma vez, observe que
essas posições são relativas
ao ponto de ancoragem, porque os pontos de ancoragem
no canto superior direito aqui,
essa posição x, é
relativa a esse ponto de ancoragem Tudo bem, a seguir vamos
escolher nosso botão, jogar e definir alguns
parâmetros relacionados a isso. Vou experimentar
uma âncora que está aqui ao longo da âncora do lado
direito Vou experimentar essa caixa
aqui, mais ou menos isso, certo? Caixa para a posição x.
Vou escolher menos 115. Eu determinei tudo
isso com antecedência, a posição y. Vou
definir isso como 256. Vou definir isso para 450, o tamanho y. Vou
definir isso para 130. Agora parece que
vai transbordar da borda da minha tela
aqui. Mas veja isso. Vou definir
o alinhamento para seja um no X, um no y. Mais
uma
vez, y. Mais
uma se você fizer
0,5 para cada um deles, isso
dividirá a diferença em relação ao
seu ponto de ancoragem e
seus deslocamentos aqui diferença em relação ao seu ponto de ancoragem e
seus deslocamentos Definir isso como 1.1 vai configurá-lo para os
extremos desse posicionamento Tudo bem, para o estilo que
vou usar. Na verdade,
voltaremos ao estilo aqui em
pouco tempo. Vamos fazer isso. Endopacidade da cor, aparência, extremidade da
cor Eu sou. Defina a cor fundo
e a
cor de fundo para isso, vou definir um valor vermelho
de 0,2, um valor zero, um valor B de zero e o valor que é
o valor alfa de um. Então, sim, vou usar isso
com meu esquema de cores. Para o estilo de aparência. Agora podemos definir o estilo
desse botão para vários estados. O estado normal, o
estado de flutuação quando você está passando o
mouse sobre ele. O estado de pressão quando você clica
nele, esse tipo de coisa. Então, vamos começar
com nosso estilo normal. Como esse botão
ficará normalmente? Bem, eu quero desenhar
como uma caixa arredondada. Isso vai ser
muito bom. As configurações de contorno que eu quero definir para
isso
serão 444,4 em geral No entanto, minha largura aqui será definida como sete, depois o tipo de arredondamento, e é aqui que ela
realmente vai estilizá-la Vou definir um raio de
meia altura, isso vai dar
uma aparência arredondada ali mesmo, da qual eu gosto É assim que o
botão ficará normalmente. Agora vamos configurá-lo de acordo com a aparência do mouse quando
passarmos
o mouse sobre
ele . Mais uma vez, entre nas configurações de
contorno porque se não alterarmos essas configurações de contorno para
que correspondam, o que
vai acontecer é que elas
começarão a ficar
assim, mas depois
voltarão a ter aparência quadrada quando
passarmos o mouse sobre elas, que não queremos, a largura aqui
será definida como sete Mais uma vez, o
tipo de arredondamento será
definido para o
raio de meia altura, o contorno No entanto, vou
definir uma cor amarelada, então vamos usar amarelo,
algo parecido Vou configurá-lo para ser
semitransparente. Talvez um valor de 0,5 para o. Vamos clicar em OK.
Aí está a escolha do revendedor com o que
você deseja definir quando estiver passando o mouse sobre Tudo bem, e então,
para nosso estado de imprensa, quando clicarmos nele,
entraremos nas configurações de contorno mais uma vez. Vou definir essa largura para sete. O tipo de arredondamento será
o raio de meia altura, o contorno, acho que vou deixar com esse
tipo de cor esbranquiçada Isso vai ficar
bem. E, você sabe, só para diferenciar
isso um pouco, acho que vou definir minha largura aqui para quando
pressionarmos para dez, apenas tornando-a um
pouco mais grossa E então aqui embaixo, temos esse som pressionado e temos esse som flutuante É bom que eles tenham
esses campos aqui. Assim, podemos inserir automaticamente alguns efeitos sonoros quando
passamos o mouse sobre esse botão, bem
como quando
pressionamos esse botão Então, vamos passar o mouse primeiro. Vou configurar isso para
ser o grab, V, R, grab. E para pressionar Som
para quando clicarmos nisso, vou definir
isso como minha moeda. Som Tudo bem, em seguida,
vamos definir nosso texto. Vamos mudar o estilo do
texto aqui. Em primeiro lugar,
vamos entrar na seção de preenchimento, expandindo-a um pouco E eu vou definir
o preenchimento para isso. Na verdade, você
sabe o que, vou voltar um
pouco
ao preenchimento aqui Vamos definir primeiro o estilo da fonte. Mas, na verdade, mesmo
antes de fazermos isso, vamos
definir o texto real. E vou mudar isso para, vamos ao ponto de exclamação. Vamos nos livrar de
onde diz
bloco de texto ali mesmo.
Exclua isso. Vamos lá, a família da fonte. Vou definir essa como minha fonte Super Mario. Vou configurá-lo de acordo com a escolha do meu revendedor de Super Mario ou 256 fontes para definir
como você deseja
configurá-lo. O tamanho aqui, vamos
aumentar o tamanho. Eu vou para, vamos tentar
45, algo assim. E o tamanho do contorno. Vamos mudar o tamanho do nosso contorno. Então, estamos delineando um pouco nosso
texto aqui. Vou mudar isso para seis. Você pode definir uma cor de contorno
com isso aí mesmo. Vou deixar em preto. Agora, isso não parece muito
centralizado no meu botão, então é por isso que vou voltar e corrigir,
para que
possamos fazer isso por meio dessas opções de preenchimento
na parte superior Mais uma vez, eu expandi isso. Vou colocar meu preenchimento
esquerdo em zero. E veja como esse texto meio que muda à medida que
atualizamos esses valores O preenchimento superior define isso para dez, o preenchimento direito, eu
vou definir isso para zero Na parte inferior, também vou definir
isso como zero,
e isso parece
decentemente centralizado Tudo bem, com isso, temos
um layout de menu principal decente. Vamos compilar
isso e salvar os caras. Isso é tudo o que queríamos
realizar neste. Nos vemos na próxima.
99. Script de menu principal: Tudo bem, neste
vamos adicionar
um script para exibir nosso menu
principal. E também para tornar nosso menu principal interativo para que possamos
lançar nosso primeiro nível. Então, aqui estou eu no meu menu principal do LV. Este nível vazio em branco. Vamos entrar em
nosso plano de níveis. E eu simplesmente cliquei
lá em cima, Plano de nível aberto. E vamos trabalhar
a partir
desse evento existente. Comece a jogar. Então, vou me livrar
do Event Tick aqui. Se você não vê o
início do evento aqui, basta
clicar com o botão direito do mouse e encontrar o início do evento. Jogue com isso, vou inserir um nó de
sequência, manter pressionada a tecla S
e clicar com o botão esquerdo. Vamos fazer
três coisas distintas começar a jogar aqui. Então, vou clicar no
botão Adicionar alfinete para adicionar outro. A primeira coisa que eu quero
fazer é arrastar isso e digitar criar widget, Criar widgets para o
nome do Aqui podemos inserir o widget
que gostaríamos de criar Esse será o
nosso menu principal do BP Agora, não basta
simplesmente criar o widget; na verdade, precisamos dizer que ele seja adicionado
à nossa janela de visualização Então, para fazer isso, podemos
sair daqui e dizer Adicionar à janela de visualização Se eu conseguir soletrar Add to Viewport corretamente,
aí está Adicionar ao Viewport. Esse widget cria o widget do menu principal E este está dizendo que esse widget deve ser
adicionado à nossa janela de visualização A próxima coisa que vou
fazer é clicar com o botão direito do mouse e digitar get player controller. E a partir disso, vou me
arrastar para fora e dizer mostrar o cursor do mouse. Vamos definir
mostrar o cursor do mouse. Vamos verificar isso para tornar isso
verdade,
isso fará com que o cursor do mouse apareça para que possamos
clicar no botão Vamos. Agora, algo que devo
salientar aqui, como eu sabia que
essa propriedade existia? Bem, deixe-me ir para o projeto do meu
framework, meu controlador BP Player, e dentro daqui meu controlador
BP Player, se eu for para os padrões
de classe no lado direito,
eu posso digitar o mouse na parte superior do mouse e lá
está, mostrar
o cursor do mouse Essa é uma das propriedades
padrão de um controlador de player. Por padrão, não estamos
mostrando o cursor do mouse, mas o que estamos essencialmente
dizendo em nosso script do menu principal
aqui é que, ei, seja qual for o
controlador de jogador que estamos usando, queremos
ter certeza de mostrar o cursor do mouse para que
possamos interagir com
nosso menu principal aqui. Ok, a última coisa que
eu quero fazer é simplesmente tocar um
pouco de música. Então, vou
adiar isso e dizer Sound to To D. O som não está localizado em nenhum
ponto específico dentro do seu nível Ele não tem uma localização X, Y e Z a partir da
qual está jogando. E para isso, você pode
inserir qualquer música que quiser. Vou simplesmente colocar Starter Music Esta é uma música que está na pasta
Starter Content Novamente, você pode colocar
qualquer coisa aqui, mas vou ouvir um
pouco de música tocando. Então esse
será o nosso roteiro final para quando jogarmos esse nível. Vamos compilar aqui, garantir que nosso script tenha uma boa
aparência e salve Agora, se eu fosse jogar, meu menu principal
aparecerá na tela. Mas você verá algumas coisas que
são problemáticas Uma é que vemos nosso
Hud na tela, o que não queremos ver O número dois é que eu
realmente não consigo interagir com isso. Você pode ver que o efeito de passar
o mouse sobre o botão
está entrando em vigor E, de fato, eu posso clicar nele, mas nada realmente acontece. Eu não sou levado
para outro nível. Então, vamos corrigir esses dois
problemas, começando com a exibição do nosso
Hud Agora, o motivo pelo qual nosso Hud
está sendo exibido, se eu voltar ao meu editor de
nível principal aqui Vamos para nossas configurações E dentro das configurações do nosso
projeto, se formos para mapas e modos, você pode ver que nosso modo de jogo
padrão para este projeto é nosso modo de jogo em
terceira pessoa. Agora, se eu acessar esse ativo
específico, ele
estará no meu conteúdo
iniciado ou na minha pasta de
plantas em terceira pessoa E eu abro isso, este é o plano que determina
outros planos que nosso
projeto está usando, como nosso controlador de jogador
e nossa classe de peões padrão Agora, novamente, estou na classe padrão
do nosso modo
de jogo em terceira pessoa Portanto, nosso modo de jogo determina essas outras plantas que nosso projeto está usando de forma
mais proeminente, a classe do jogador e
nossa classe de peão padrão Observe que esses são
exatamente os mesmos que podemos encontrar aqui nas
configurações do nosso projeto no modo de jogo em terceira pessoa, que é determinar
nossa classe de peões E nosso controlador de player. Agora, nosso controlador de player, que eu abri aqui, é
isso que está adicionando
o Hud à janela de visualização Então, agora, quando estamos jogando nosso jogo e carregamos o nível do menu principal, nosso projeto está aplicando esse
modo de jogo em terceira pessoa a esse nível. E isso, por sua vez,
determina que nosso controlador de jogador
está sendo usado , bem como essa classe de peão
padrão Como nosso
controlador de player está sendo usado, é
isso que está
exibindo nosso capuz. Nós simplesmente não queremos que isso
apareça. Então, o que podemos fazer? Bem, há uma solução
muito simples aqui: simplesmente
criar um novo modo de jogo para usar apenas esse
nível específico. Então, basicamente, eu posso
substituir o modo de jogo a partir das configurações do nosso projeto
aqui mesmo neste nível específico Nosso menu principal de nível. E eu posso fazer isso por meio
das Configurações Mundiais. Agora, se você não vir
essa guia Configurações do mundo, se estiver em Configurações, poderá acessar as
Configurações do mundo alternativamente. Window World Settings,
que também pode
ativar esse painel com nossas
Configurações mundiais aqui. Podemos substituir nosso modo de jogo está sendo usado apenas para este mundo. Apenas este nível, mundo e nível são usados de forma
intercambiável Então, vou criar
um novo modo de jogo. E eu posso fazer isso, eu poderia escrever clique em algum espaço vazio
aqui no navegador de conteúdo. Mas também posso fazer isso
imediatamente nesta guia Configurações
do mundo. Então, vou para o modo de jogo. Clique neste botão de adição
aqui para criar um novo modelo de modo de jogo E vou simplesmente escolher um
lugar onde gostaria de dizer isso. Deixe-me dizer isso na
minha pasta Blueprints Frameworks E vou chamar isso de menu principal do
meu modo de jogo BP. Em seguida, clicarei em Salvar.
Mais uma vez, é o projeto do Gamo que
determinará todos os outros vários projetos
que estamos usando aqui Agora, nossa classe de
controle de jogador foi padronizada para simplesmente controlador de
jogador Isso é diferente das configurações do
nosso projeto, que usam nosso controlador de
player personalizado. Portanto, este não está usando
nosso controlador BP player. Como você pode ver, é apenas o controlador
padrão do player. Não temos nenhum
código aqui dentro. Agora, se eu fosse
simplesmente jogar nosso jogo, não
veríamos mais o Hud
na tela porque criamos um modo de jogo totalmente novo que não utiliza nosso controlador de jogador
personalizado Isso está fazendo com que nosso Hud
apareça na tela. Estamos substituindo
o modo de jogo das configurações do nosso projeto para
que os problemas sejam corrigidos Em seguida, vamos fazer
com que nossa interface do menu principal
seja realmente funcional. Para fazer isso,
vamos acessar
nossa pasta de interface de usuário da plataforma. Encontre nosso menu principal, clique
duas vezes nele para
abri-lo , caso
ainda não o tenha aberto. E aqui
vamos até a guia
do gráfico
no lado direito. A guia do gráfico é onde
você pode escrever um script específico
para esse
widget específico , o blueprint Agora tem alguns
nós de eventos a partir dos quais podemos construir. Mas, na verdade, eu não
quero nenhum desses, então vou
excluí-los. Agora, observe que,
no painel do meu projeto,
temos a reprodução de botões Isso está referenciando
esse widget
de botão em nossa guia de designer, nossa reprodução de botões aqui Observe que, com esse widget
selecionado no painel de detalhes, essa caixa de seleção foi automaticamente
marcada quanto à variável Isso está permitindo que
isso apareça na seção de variáveis
no painel meu plano Agora, com isso
selecionado, podemos adicionar um evento para esse widget
específico E queremos adicionar
um para um clique. Então, temos esse
botão de adição aqui. Se você clicar aqui, ele adicionará um evento para quando
clicarmos nesse botão. Ou seja, nós o
selecionamos com o cursor do mouse aqui. Então, o que queremos
fazer? Bem, vou adicionar um pouco de
atraso porque não
quero pular para o nosso nível imediatamente
após clicar aqui. Então, vou manter pressionada
a tecla D e clicar com o botão esquerdo. Eu simplesmente vou adiar por,
digamos, meio segundo. E então vou arrastar esse tipo em nível aberto pelo nome. E qual é o nível
que eu quero abrir? Bem, se eu voltar aos
meus níveis aqui, esse é o nível que
eu quero abrir. Lv, sublinhado um. Se
eu clicar com o botão direito do mouse e renomear, vou
pressionar o controle C para copiar isso Em seguida, vá para o meu widget do menu
principal. Entre aqui, controle
V para colar isso. Esse é todo o script de que precisamos para realmente torná-lo
funcional. Deixe-me clicar em salvar aqui. Agora, se eu fosse
entrar e jogar. Tudo bem, todo o nosso
roteiro está escrito lá. Até mesmo um pouco de música de fundo. Se eu clicar no meu botão Vamos, temos um pequeno atraso. E então, entramos em nosso jogo. Tudo bem, agora temos
um menu principal funcional. Mais uma vez, configuramos um nível vazio dentro
do nosso nível vazio. Entramos na
planta do nível e configuramos um script para exibir nosso menu principal e mostrar
o cursor do mouse Também estamos tocando um
pouco de música de fundo. disso, também o configuramos
para anular
nosso plano de modo de jogo
aqui na
configuração mundial, para que nosso
capuz de jogo não apareça nosso plano de modo de jogo
aqui na
configuração mundial , para que nosso
capuz de jogo não E por fim, em
nosso widget do menu principal, simplesmente
adicionamos um pouco de script para nosso botão aqui,
porque nosso botão está
configurado para ser uma variável Com isso, simplesmente adicionamos um
evento para quando clicamos nele. Vamos adiar e
, em seguida, vamos
abrir o emprego de nível apropriado. Muito bem, pessoal.
Vamos em frente e salve tudo o que for necessário,
faça isso por este. Nos vemos na próxima.
100. Anims de widgets de menu principal: Bem vindo de volta. Neste vídeo, vamos adicionar um
pouco de jazz ao nosso menu principal, mostrando como
animar vários widgets Agora, o conceito mostrado nosso menu principal também pode ser
aplicado à sua cabana. Vamos direto ao assunto. Então, animar qualquer um dos
elementos em seu menu principal aqui, é escalá-lo, girá-lo, fazer com
que ele desapareça Qualquer coisa desse tipo, precisamos abrir nossa janela de
animações, que pode ser feita aqui dentro
do menu principal do WBP. Vá em frente e clique na
janela na parte superior. E aqui temos essa janela de
animações
que não está ativada Vamos ligá-lo. Isso colocará um painel de animação
na parte inferior. OK. A forma como isso
vai funcionar é criar uma animação
nomeada. Vamos mostrar aqui
vários elementos da nossa tela para serem animados
e, por meio de um script, vamos fazer com que
essa animação seja reproduzida Então, vamos criar nossa animação
nomeada clicando neste botão verde
mais animação. Vou simplesmente chamar essa
introdução de pressionar Enter. Agora, com essa
animação selecionada, basicamente o que eu
quero fazer é que nosso botão play comece
na borda da tela aqui. E então animar
isso é deslizar para dentro. Então, certifique-se de
ter selecionado isso, porque eu quero que isso
comece na tela, vou definir uma nova posição
relativa x aqui. Então, vou definir
isso de menos 115 para 600 e pressionar Enter. Como chego a esse número? Bem, isso foi apenas
por meio de muitas tentativas e erros antes de
gravar este vídeo. Então 600, vai
começar na borda
da minha tela aqui. Agora, anote qualquer propriedade sobre
esse widget de botão que gostaríamos de alterar com o
tempo por meio de nossa animação Aqui você pode ver isso indicado no painel de detalhes com este pequeno diamante com
o botão de adição nele Assim, podemos adicionar quadros-chave para
essas várias propriedades. E há mais aqui embaixo
que você também pode mudar. Você pode adicioná-los
à sua linha do tempo simplesmente
clicando neles. Então, eu quero mudar a posição x aqui do
meu botão ao longo do tempo. Então, vou seguir em frente
e clicar aqui. Adicione um quadro-chave para essa
propriedade na minha animação. Então aí está.
Acabei de clicar nisso E agora podemos ver nosso botão,
nosso slot de tela no painel, nossos deslocamentos Agora é aqui que as coisas
ficam um pouco complicadas. botões, reprodução de botões, slot do painel de
tela, deslocamentos
do slot do painel Ok, todos esses são
considerados deslocamentos, mas não clicamos em
algo chamado posição X, mas aqui embaixo esse é
tecnicamente nosso Portanto, há uma pequena
discrepância entre a rotulagem deles que pode
confundir muitos estudantes Portanto, observe que essa é a propriedade que eu
quero alterar aqui. Atualmente, está no
valor de 600. Isso será
associado ao nosso deslocamento para a esquerda aqui Ok, então na
marca de zero segundo em nossa linha do tempo, é
aqui que queremos
começar a posição dos nossos botões Agora, se eu passar o mouse
aqui embaixo, posso ver que, ao passar o mouse aqui, tenho esses dois tipos de tábuas indicando
o início
e o fim da Eu quero puxar essa da maneira certa para a soma certa, assim. OK. E, como você pode ver, essa linha vermelha também serve para o passeio. Isso vai denotar
o final da minha animação. Assim, você pode simplesmente
arrastá-la para frente e para trás para tornar sua animação mais longa
ou mais curta. A propósito, a roda de rolagem, mantendo pressionado o controle
na roda de rolagem reduzirá ou expandirá
sua linha do tempo Se você segurar o botão
direito do mouse,
poderá mover para a esquerda e para a direita. Apenas uma observação básica de navegação: uma vez
que
recuássemos, pudemos ver nosso único
quadro-chave lá
na marca
de zero segundo em nosso deslocamento à esquerda Novamente, essa é a nossa posição x. Agora eu vou querer que essa
animação seja bem rápida. Então, vou puxar o
final dessa linha do tempo para a marca de 0,25 segundo Em seguida, vou manter
pressionado o controle e rolar roda para expandir
isso um pouco mais. Agora, basicamente, eu quero que esse
botão se mova
nessa direção ao
longo de um quarto de segundo. Então, vou mover meu controle deslizante da linha do
tempo até a marca de 0,25 segundo E então eu preciso determinar para onde eu quero mover isso. Bem, eu determinei que um valor que eu gostaria de ter para
isso é menos 115. Então, eu posso literalmente clicar
aqui onde diz à esquerda. Cliquei onde
mostrava o número 600. Vou colocar menos
115 e pressionar Enter. Então, isso vai essencialmente
denotar o final da minha animação Agora, se eu fosse esfregar
isso para frente e para trás, você pode ver como isso
vai se mover ao longo de
um quarto de Na verdade, se eu colocar meu controle deslizante de linha do
tempo no início
aqui e clicar em Reproduzir, você poderá ver como isso
vai se desenrolar Agora, observe que essa será
a única propriedade
que pretendo
alterar aqui com meu botão
ao longo de 0,25 segundos. Mas você também pode ajustar
outras propriedades com o botão aqui. A cor e a opacidade, a cor de fundo, todos
esses tipos de coisas Para algumas dessas outras
propriedades que você poderia expandir, talvez seja necessário clicar em alguns desses triângulos suspensos Então, poderíamos mudar o pivô, o ângulo de cisalhamento, a escala,
todo esse tipo Pode ser feito nessa
mesma animação de introdução. Tudo bem, então temos
uma animação nomeada. E estamos dizendo ao nosso botão para fazer algo nessa animação
nomeada. Agora, como podemos realmente
fazer com que isso seja acionado? Bem, para isso, precisamos
acessar nossa guia gráfica, aqui em cima.
Vamos até aqui. Temos esse script
para clicar no botão, clicar no botão e
iniciar um novo nível. Agora, queremos adicionar um script que reproduzirá
essa animação. Já
construímos um evento aqui antes. construção do evento é como o início da reprodução do evento com
um widget, um blueprint Vou clicar com o botão direito do mouse
e trazer isso de volta. E vou simplesmente digitar que
há uma construção de evento. É isso que estamos
procurando. Fora disso, vou
adiar um pouco. Então, vou manter pressionada
a tecla D e clicar com o botão esquerdo, trazendo um nó de atraso. Vou atrasar
por 2 segundos. Então eu também vou acompanhar essa animação que estou
prestes a tocar com um som. Vou fazer um som dois D. O
som que eu gostaria de tocar será chamado de drop drop item do navegador de conteúdo que está
nas pastas VR do motor. Se você não vê isso, você pode clicar neste
ícone de engrenagem aqui. Certifique-se de mostrar o conteúdo
do mecanismo. Isso lhe dará
acesso a esse cara. Então, o que eu quero fazer
é trazer
minha animação para que eu possa falar com ela e pedir para
ela tocar. Bem, na minha aba de designer, eu tenho
essa animação chamada Intro Mas aqui no meu gráfico
eu não vejo isso em lugar nenhum. Então, como faço referência a isso? Logo abaixo da seção de
variáveis, se eu entrar em animações, há o nome dessa
animação que acabei de criar Introdução, isso está falando sobre essa
animação de introdução aqui Vamos trazer isso para o nosso gráfico. Arraste e solte, nós
vamos conseguir isso. E então, se continuarmos com isso, podemos dizer reproduzir animação. E agora temos muito
controle sobre essa animação. A partir dessa função, podemos
dizer a que horas da
animação queríamos reproduzir. Vamos jogar desde o início.
Então, vamos deixar isso em 0 segundos. Número
de loops para jogar Você pode fazer com que ele
reproduza vários loops. Você pode jogar isso para frente,
para trás
ou jogar pingue-pongue para frente e
para trás E você também pode ajustar a velocidade de reprodução a partir
daqui.
Portanto, se não estiver satisfeito
com esse quarto de segundo, poderá estendê-la com
uma velocidade de reprodução mais lenta Ou acelere. Ok, então esse será o nosso
roteiro para reproduzir essa animação 2 segundos depois que nosso menu principal
for exibido. Então, vamos
compilar isso e salvar. Agora, se jogarmos,
veja isso, vemos nosso menu principal. Mas 2 segundos depois, bum, nosso botão desliza. Ok, agora eu realmente quero
adicionar outra animação aqui. Porque eu quero
fazer com que, quando passarmos o mouse sobre o botão, ele realmente
aumente um pouco de tamanho Então, vamos adicionar
outra animação para isso. Mais uma vez, eu poderia voltar para a aba de designer e criar uma animação
totalmente nova. Então, vou
clicar nessa animação positiva e vou chamá-la animação do
meu botão de reprodução em escala. Sim, primeiro preciso ter
certeza de selecionar minha animação. Então, com o
que eu quero falar? Mais uma vez, vou
escalar nosso botão play, mesmo que ele esteja fora da lateral
da tela aqui Não importa, porque
a animação de introdução é o que vai fazer com que ela apareça Eu simplesmente quero falar sobre isso agora. O que eu
quero mudar sobre isso? Eu quero mudar
a escala para isso. Vou rolar para
baixo no painel de detalhes. Estou procurando a escala de transformação de
renderização. Agora eu posso expandir
isso para escalar apenas o
aspecto x ou Y desse botão, mas eu quero escalar os dois. Se eu simplesmente estiver na escala de
transformação, clique aqui. Isso
adicionará um quadro-chave a isso aqui na minha linha do tempo. Vamos expandir essa escala. Agora, se eu fosse
até aqui na minha linha do tempo,
eu poderia ver essas duas tábuas Vou
expandir isso para
cerca de um décimo de segundo aqui Isso pode ser muito curto. Deixe-me pressionar o
controle e aumentar o zoom. Ok, então, ao longo de um
décimo de segundo, eu posso ver esses
dois quadros-chave aqui para a escala
X e a escala Y. Agora, o que vou
fazer é mover
meu controle deslizante da linha do tempo para a marca de
décimo de Vou adicionar mais
quadros-chave para isso. Eu poderia fazer isso para X
e Y de forma independente, mas se eu clicar nesse minúsculo botão de adição
onde diz escala, isso adicionará
mais dois quadros-chave
nesse momento marcado para
os valores x e y. Vou definir
os dois como 1.11
0.1 Agora, ao alterá-los para 1.1, você pode ver como está
aumentando o botão Então você pode ver como
isso vai aumentar ao longo da reprodução da
animação. Ok, mais uma vez, como
faço para que isso toque? Bem, vou
voltar para minha guia gráfica. Vamos descer até aqui. Eu tenho meu botão selecionado,
então veja isso. Eu tenho alguns eventos. Quando
passamos o mouse sobre o botão, ou seja, nosso mouse está sobre ele, e quando descobrimos o botão, nosso mouse não
está sobre Então, vamos adicionar eventos
para ambos. Aí está o primeiro,
deixe-me adicionar o mouse. Aqui estão nossos dois eventos. Vou trazer
nossa nova animação aqui, o dimensionamento do
botão play. Vamos pegar isso. Vou arrastar isso
e digitar a animação do jogo. Quando passarmos o mouse sobre o botão, teremos que
criar um
pouco de espaço aqui embaixo Quando passamos o mouse sobre o botão, queremos reproduzir essa
animação para frente Deixe-me
selecionar isso e fazer o controle D para duplicar isso Quando descobrirmos o botão, certifique-se de conectá-lo como animação para ser reproduzida
aqui também Quando descobrimos o botão, ou
seja, não estamos passando o
mouse sobre Queremos definir o modo de
jogo ao contrário. Isso vai
ser bastante simples. Passe o mouse para frente, passe o mouse para trás. Vamos compilar
isso, salvar e jogar. Então, 2 segundos depois, nossos botões
vão deslizar para dentro. Agora, quando eu passo o mouse, esse botão fica maior. No entanto, ele volta
ao seu tamanho normal. Podemos clicar nele,
iniciar o jogo
e, pronto, temos
algumas animações de widgets Trabalho bem feito, pessoal. Isso vai valer a
pena para este. Nos vemos na próxima.
101. Interação com o controlador no menu principal: Tudo bem, bem-vindos de
volta a todos. Bem, agora temos um menu principal em
funcionamento. E podemos clicar
nesse botão “vamos lá” assim que ele aparecer
para iniciar nosso jogo. Mas, como alguns de vocês
sem dúvida notaram, não
podemos interagir com esse
botão com um controle. Então, se você tem um controle
físico do Xbox conectado
ao seu computador, você não pode realmente iniciar o jogo pressionando o botão Então, pensei em adicionar
mais um vídeo aqui para mostrar como podemos interagir com nosso menu
principal com um controlador. Então, primeiro de tudo,
certifique-se de ter um controle, como um controle Xbox, conectado ao seu computador, e é assim que
podemos fazer isso acontecer Aqui estou dentro do
meu menu principal do WBP. Vou fazer a transição da nossa visão de designer
para nossa visualização gráfica. O que precisamos fazer
no final de nossa
construção de evento
aqui é onde estamos
atrasando por 2 segundos. Em seguida, vamos tocar um som e animar em nosso widget de introdução Vamos adicionar dois
nós no final aqui. A primeira que
vamos adicionar é uma referência ao nosso botão play. Então, vamos
arrastar e soltar isso. Vamos pegar isso, depois vamos sair
disso e trazer uma função
conhecida como Set Focus. Defina o foco. Certifique-se de
conectarmos isso assim. Agora, se eu pressionar o botão play, você
notará algo. Agora, quando nosso botão desliza para dentro, vemos uma caixa azul
ao redor do botão
vamos lá que mostra que nosso controle
agora está focado nesse botão. E se eu
apertasse o botão, eu tenho um
controle Xbox conectado Na verdade, isso
me permitirá clicar nesse botão e depois
iniciar o jogo. Agora, obviamente, você não quer ver aquele contorno azul quando na verdade, está em uma versão
oficial enviada do Então, como podemos nos livrar disso? Bem, para fazer isso,
vamos entrar na configuração do
nosso projeto. Então, voltando ao meu editor de nível
principal aqui, posso acessar as configurações do
projeto
acessando a
opção Configurações aqui, Configurações do
projeto ou
acessando Editar. Configurações do projeto aqui. Basta fazer uma busca
por Render Focus. Atualmente, temos
essa regra de foco de renderização, que está definida como sempre. E é isso que faz com
que esse contorno azul apareça ao redor desse botão quando ele se anima mostrando
que está focado Então, se eu
voltasse às configurações do meu projeto e mudasse de
sempre para dizer nunca, eu
voltaria e jogaria. Agora, no meu botão,
deslize para a vista. Não vejo esse contorno azul, embora eu ainda possa
pressionar o botão no meu controle Xbox conectado
e iniciar o jogo Muito bom com isso, vamos continuar e
salvar esse ativo. Vou clicar com o
botão direito do mouse sobre isso e salvar. E pessoal, isso vai
fazer isso por esse. Nos vemos na próxima.
102. Layout de menu: Bem, agora que criamos um menu principal
para o nosso jogo, não
seria bom se
criássemos um menu de pausa Eu acho que seria. Então,
vamos direto ao assunto. Vou começar na
minha pasta U I aqui. E mais uma vez, vou clicar com o botão
direito do mouse em algum espaço vazio. Widget de interface de usuário, planta. Vamos escolher esse
widget logo na parte superior. E vou chamar esse
novo widget blueprint asset BP E então vamos clicar duas vezes nele para
abri-lo imediatamente. Agora, dentro daqui,
haverá apenas alguns widgets que
vamos adicionar Mais uma vez, vamos
começar com um painel de tela. O painel Canvas
funcionará como uma prancha de aderência,
uma placa de cortiça com
a qual também fixar outros widgets Então, o painel
de tela será o primeiro. O segundo que vamos
adicionar aqui será conhecido como desfoque de fundo. Então, vamos
basicamente desfocar
nosso jogo ao
sobrepor nosso jogo ao menu
Paws Então, eu poderia arrastar isso para cima meu painel de tela dessa forma. Ou
eu poderia arrastá-lo até aqui. Deixe-me arrastá-lo para cima
do meu painel de tela aqui apenas para mostrar outra
maneira de fazer as coisas. Vou selecionar nosso
desfoque de fundo imediatamente. E vou definir uma âncora para isso
no painel de detalhes Essa será essa âncora em tela
cheia. Agora, esses deslocamentos
serão todos relativos
à nossa tela cheia, porque queremos que seja
em tela cheia Não queremos essa
compensação de forma alguma. Queremos que os deslocamentos na esquerda, direita, superior e inferior
sejam todos zero Portanto, defina os deslocamentos como
zero em todos os sentidos. E agora temos
um desfoque de fundo toda
a tela Agora, para a quantidade de
desfoque que é controlada por essa intensidade de
desfoque aqui, você pode mexer nisso assim que
aparecermos em Descobri que uma intensidade de desfoque de cinco tende a ser
quase certa Ok, em seguida, vou adicionar
um botão à nossa tela aqui. Então, vindo abaixo
do painel da paleta, vamos arrastar um botão
até aqui E você pode ver que ele o anexou ao meu desfoque de
fundo, o que eu realmente não queria E isso encheu toda a minha
tela por causa disso. Então, o que vou fazer é arrastar e soltar isso volta no topo do meu painel de
tela aqui. Você vê isso delineado? E agora eu basicamente apertei
meu botão de volta, ele não está mais ligado
ao meu desfoque de fundo Com isso, vou
definir alguns detalhes imediatamente. Para começar,
vou nomear isso
no painel de detalhes,
meu botão Continuar Teremos apenas um botão que diz Continuar em nosso menu de pausa Agora mudamos o nome
desse widget, a âncora. Vou definir a âncora para
ser essa do meio quadrado. E isso significa que os deslocamentos
de
posição serão relativos a essa
âncora Vou definir a
posição x como zero. A posição y deve ser zero. E agora, se eu ampliar isso, você pode ver como está
meio que alinhado com o canto superior esquerdo
do botão. Confira isso. Se eu definir meu
alinhamento x aqui como 0,5, ele basicamente vai
para metade desse alinhamento x. E o mesmo com o
alinhamento y aqui. Se eu definir isso como 0,5 também, isso terá o alinhamento y,
o alinhamento de cima para baixo Então, isso vai
ser muito bom. Agora vou definir o
tamanho do botão aqui no X para 450 no Y. Vou definir isso para 130 Se eu aumentar o zoom
para trás, você terá uma ideia do tamanho desse botão na tela. Tudo bem, em seguida,
vamos definir nosso estilo para nosso botão. Isso será muito
semelhante ao que definimos para nosso menu principal aqui,
estilo normal. Vou definir nossa largura
aqui como sete abaixo do estilo. Com o tipo de arredondamento, vou mudar para
esse raio de meia altura Isso vai dar a ele esse formato de pílula que
eu meio que gosto Esse vai ser
meu estilo normal. Então, o botão, o que
parece normalmente sem passarmos mouse sobre ele ou sem clicarmos nele. Então, eu
vou derrubar isso. Agora vamos definir o
estado de foco para esse botão. Para isso, mais uma vez
vou definir a largura como sete. O tipo de arredondamento também
será a metade da altura, raio e o contorno Vou clicar aqui mesmo. Vamos definir isso para uma cor
meio amarelada. E eu vou definir o valor, o valor alfa como 0,5, então vai ser
meio transparente, então eu vou continuar com
isso, está parecendo muito bom Então esse será o
nosso próprio estilo de botão. Então, vamos definir
nosso estilo prensado para isso. Vou definir a largura como dez, esse tipo de arredondamento. Vou definir o raio de meia
altura mais uma vez. E eu vou deixar essa cor. Então, eu só vou mudar realmente a largura
desse contorno E lá embaixo,
temos nossa impressora. Som e nosso foco.
Som para passar o mouse. Som Vamos em frente e
defina isso para pegar,
pegar, sublinhar VR, pegar Q. Mais
uma vez, isso está no editor
do motor VR Som Então, se você não tem
acesso a esse caminho, clicar neste ícone de engrenagem mostra o conteúdo do motor
deve levá-lo até lá Mas aí está. Minha
sugestão V R que eu quero para passar o mouse Som A prensa Sound
I want é minha moeda. Moeda Mario. Ah, e
eu quase esqueci Eu quero definir uma cor de
fundo para isso. Então, rolando até aqui com nosso
botão contínuo selecionado, há nossa cor de fundo Eu queria algo meio acastanhado, algo assim Talvez um pouco mais escuro, algo assim
seja muito bom Não fique obcecado
com isso por enquanto. Clique em Ok, agora queremos definir algum texto em
cima desse botão. Podemos fazer isso arrastando
aqui nosso widget de texto. Eu poderia arrastá-lo para cima
desse botão ou para
baixo na hierarquia Se eu arrastar até aqui
abaixo da hierarquia, quando vejo que o botão continuar
está cercado por
esse contorno azul, posso arrastá-lo e soltá-lo
bem em cima dele E eu posso selecionar esse
widget de texto no painel Detalhes, vou chamá-lo de
sublinhado Continuar Se eu rolar para cima
no painel Detalhes, o texto imediatamente,
posso configurá-lo para ser lido. Continuar. E para
a família de fontes, novamente, eu não
gosto do Roboto lá Isso é um pouco chato. Então é aqui que essas fontes importadas
realmente são úteis. Vou definir isso para o
meu estilo de fonte Mario 256, mais ou menos assim. Vou definir o tamanho da fonte
para 45, o tamanho do meu contorno, vou definir isso para seis, então eu tenho um pequeno contorno preto ao redor Talvez eu tenha definido aquela
cor avermelhada como um
pouco escura demais. É um pouco difícil
ver esse esboço. E, novamente, se quiser
ajustar a cor do contorno, você pode clicar
ali mesmo e ajustá-la Então eu quero empurrar
esse botão
um pouco para baixo , porque ele está um
pouco na parte superior Então, posso melhorar isso entrando nesta
seção de preenchimento, logo na parte superior do painel
de detalhes Vou expandir isso e para isso, vou
definir a esquerda como sendo, vou
descer até o topo. Vou definir que seja dez. E depois para a direita
e para a parte inferior. Tudo bem. E eu acho que isso
vai ficar muito bom. Sim, isso é decente
o suficiente para mim. Com isso, vamos
prosseguir e salvá-lo. Agora temos nosso layout do menu de
pausa. No próximo vídeo,
criaremos a entrada e o script necessários para que ela seja exibida na tela
e a torne interativa.
Nos vemos lá.
103. Script de menu de parada: Bem vindo de volta. Neste vídeo, nosso objetivo é fazer com que
possamos pausar nosso jogo e
interagir com nosso menu de pausa para que possamos Para fazer isso,
vamos começar
acessando nossa pasta de terceira
pessoa. Dentro daqui, vamos
para a pasta de entrada, vamos criar
uma ação de entrada que será responsável
por pausar nosso jogo Vamos entrar na entrada de
terceira pessoa. Vamos entrar em nossa
pasta de ações aqui dentro. E eu vou manter
pressionado o controle e rolar. Volte para trás para diminuir o tamanho dessas imagens em
miniatura Essa é uma ótima dica para
você. Pode manter pressionado o
controle e rolar. Rode para cima e para baixo para reduzir
e ampliar essas miniaturas. E vou clicar com o
botão direito do mouse em algum espaço vazio. Vamos entrar em
Entrada em nosso menu de entrada. Vamos entrar em Ação de
Entrada. Agora vamos chamar
isso de pausa de sublinhado. E então vamos
clicar duas vezes nesse cara para abri-lo. Tudo bem, então dentro desse ativo, estamos definindo algumas
coisas sobre como essa ação de entrada será acionada, bem
como quando ela
pode ser acionada. Então, primeiro de tudo,
vamos definir como isso será
acionado na área de gatilhos. Vamos adiar um
pouco para que você
possa ver o que está associado qual será nosso tipo
de valor, boole
digital, como
aconteceu, não é? Aciona aqui mesmo. Vamos clicar nesse botão de adição
e, em nosso índice zero, vamos expandir isso para baixo. E queremos acionar algo quando pressionamos um determinado botão. E diz
aqui que vai disparar incêndios apenas uma vez quando a entrada exceder o limite de
atuação Queremos descobrir quando um determinado botão foi pressionado? Agora, isso é muito importante. Não perca essa etapa. Queremos que isso seja acionado também
quando o jogo estiver em pausa. Se você não marcar essa caixa, quando
voltarmos a
pausar o jogo, ele não funcionará touro digital pressionou
o gatilho e depois gatilho quando a pausa foi definida como
verdadeira, vá em frente e salve isso Agora, a próxima coisa
que precisamos fazer é voltar ao nosso projeto de
personagem Esta é uma pequena crítica do nosso personagem BP,
em terceira
pessoa Rolando para trás
e voltando para
cima , onde
nosso evento começou. Jogue aqui. E agora estamos dividindo o início do
nosso evento Jogue para um nó de sequência. Aqui é onde
temos nosso contexto de mapeamento. E é isso que
determina quais entradas funcionam em nosso
jogo e quais não funcionam. E atualmente estamos usando esse ativo padrão do IMC dentro
do nosso modelo de personagem Agora eu posso navegar até
isso clicando
nesta lupa.
E mais uma vez está aqui. Dentro de nossas pastas de terceira
pessoa. E se eu
clicar duas vezes nesse recurso, isso pode parecer familiar do
início do curso. É aqui que estamos
essencialmente inserindo
nossas várias ações de entrada criadas E então estamos associando
botões a eles. Por exemplo, quando
pressionamos tecla esquerda
do teclado ou
do botão frontal do gamepad, é
isso que inicia
nosso evento de tiro de bola de fogo Ok, então precisamos adicionar um novo mapeamento aqui
para nossa pausa de IA Podemos fazer isso clicando
aqui em Mapeamentos, esse pequeno botão de adição Por alguma razão, ele expande
tudo isso mais uma vez, o que é um pouco chato, mas acabou de criar
essa entrada aqui Então é aqui que podemos inserir
nossa pausa A, aí está. Agora, mais uma vez, ele faz essa coisa de
expandir todos eles. Novamente, podemos associar alguns botões
a isso para pausar o jogo Quero fazer com que a tecla
do nosso teclado, bem
como o que
seria uma espécie de botão de início em um game pad, pausem o jogo,
definam as teclas que podem
iniciar esse evento Vou
clicar nesse teclado, que vai deixá-lo laranja. Agora eu posso simplesmente tocar em uma
tecla no meu teclado. Então eu vou pressionar a
tecla e aí está a tecla. E então vou adicionar outro
para a entrada do meu controle
para pausar o jogo Então, vou clicar
nisso mais uma vez. E, claro, ele faz
essa coisa irritante de expandir todas essas
categorias abertas E agora eu posso inserir uma segunda
entrada para pausar o jogo. Então eu vou clicar
nisso, agora eu
tenho um controle Xbox
conectado a isso Vou pressionar o
botão que está ao
lado do botão X no meu controle
Xbox. Então, ele será conhecido
como Gamepad Special. Certo. Isso era
o que era inicialmente conhecido como botão Iniciar nos
painéis de jogos mais tradicionais. Ok, com eles agora associados, podemos salvar
isso e fechá-lo. Também podemos encerrar nosso BP, personagem em
terceira pessoa E também nosso ativo Input Action
Pause. Ok, agora para pausar nosso jogo, eu realmente quero colocar
esse script dentro do
nosso plano de controle de jogador porque nosso personagem pode morrer Só queremos colocar isso
em um plano que persistirá independentemente de nosso jogador estar morto ou não Então, vamos seguir em frente e encontrar nosso modelo de controlador de player E, mais uma vez, se
você não tiver certeza qual
esquema de controle de jogador está usando, você pode encontrar isso nas Configurações
do projeto em Configurações e
Configurações do projeto em Mapas e modos Temos nosso modo de
jogo padrão aqui. E este é o nosso
controlador de jogador BP Player da classe
Player Controller Podemos navegar até ele diretamente
no navegador de conteúdo. Lá está em nossa pasta de estrutura de
diagramas de plataforma. Vamos clicar duas vezes
nesse cara para abri-lo. Vou rolar a
roda para trás e encontrar algum espaço vazio aqui. E eu vou direto
para cá. Então, precisamos encontrar esse evento
de ação de entrada
ou essa pausa Então, vou clicar com o botão direito do mouse
em algum espaço vazio e digitar uma pausa de sublinhado E este é o
que eu estou procurando, um evento de ação
aprimorado, uma pausa Tem aquele ícone de seta ao
lado.
E lá vamos nós. Isso se refere ao
nosso evento de pausa que acabamos de configurar em nosso contexto de mapeamento
de entrada Então, o que
queremos que aconteça? Bem, quando começarmos
pressionando a tecla, dispararemos com esse pino. Vou executar isso
por meio de um nó de ramificação. Você vai ver Y
aqui em pouco tempo. Vamos passar
isso por um galho. E a condição que
vamos verificar aqui é se estamos ou não
mostrando o cursor do mouse. Então, vou clicar com o botão direito do mouse
em algum espaço vazio e digitar mostrar o cursor do mouse. Vamos entender isso agora exibindo
o cursor do mouse. Vou conectar isso
ao galho imediatamente. Este é um booleano que existe aqui dentro da nossa classe mãe do controlador de
jogador Se eu for para
os padrões da classe e, no painel de detalhes,
digito o cursor do mouse.
Aí
está meu botão de exibição do cursor do mouse Boolean Então, vou
verificar se estamos
mostrando isso ou não. Agora, na primeira
vez que pressionarmos, digamos ,
a tecla, não
mostraremos o cursor do mouse. Por padrão, é falso. Então, o que queremos fazer? Então, com base
nessa ramificação falsa, vamos criar um widget Bem, qual widget
gostaríamos de criar? Nosso menu de pausa. Obviamente, o menu
de pausa do WBP Agora, não basta
criá-lo. Também precisamos pedir que ele seja adicionado
à janela de visualização. Mas antes de fazer
isso, vou clicar com o botão
direito neste
pino aqui. E vou promover
nosso menu de pausa para uma variável que acabou de
criar esse setter E aqui na nossa seção de variáveis do Blueprint, ele está pedindo que demos um nome à
nossa variável Então, vou chamar isso de meu menu de pausa. E então o que vou fazer é pegar a saída
disso e dizer Adicionar à janela de visualização Isso é o que
realmente adicionará
o menu de pausa à janela de exibição E então, no
final disso, vou arrastar e
digitar mostrar o cursor do mouse. E desta vez eu quero
definir mostrar o cursor do mouse. E aqui vou
definir isso como verdadeiro. Então, aqui está a ideia. Na primeira vez que
pausarmos nosso jogo,
digamos, pressionando a
tecla do teclado, por padrão, ela será falsa Então, vamos
passar por aqui, vamos mostrar
nosso menu de pausa E então
vamos dizer, sim, agora
estamos mostrando
o menu de pausa, modo que, se tentarmos
pressionar a tecla novamente, dispararemos da
ramificação verdadeira Assim,
acabaremos criando apenas um desses menus
de pausa Não vamos
criar acidentalmente uma segunda instância disso Tudo bem, mas ainda
não terminamos. Depois de mostrarmos esse conjunto, mostre o cursor do mouse O que eu quero fazer é tocar um som. Então, toque um som, dois D, clicando nesse menu
suspenso, vou digitar em pausa Eu tenho esse efeito sonoro de
pausa de Mario. E então esse é
o verdadeiro problema. Vou arrastar isso
e digitar pausa no jogo. Existe uma função
para definir a pausa do jogo e é isso que realmente
vai pausar o Depois de marcar essa caixa, muito importante, você
marca essa caixa. Ok, ótimo. Então, isso
realmente interromperá o jogo Como podemos pausá-lo
com a mesma entrada? Bem, lembre-se de que isso vai
virar isso para verdade na primeira vez que pressionarmos a tecla ou o
botão Iniciar em nosso controle Então, na segunda vez que
tentarmos pressionar isso, novamente, vamos
percorrer a ramificação verdadeira. Então, o que podemos fazer
aqui é trazer uma referência ao nosso menu de pausa.
Nós vamos conseguir isso. Lembre-se de que criamos esse menu de
pausa aqui. E então vamos
adiar isso e dizer Remover pais. Remover do pai. Basicamente, isso removerá o
menu de pausa da tela É assim que você remove um
determinado widget da tela. Você recebe uma referência
a ela e pede que ela seja removida dos pais. Depois de removido,
o que eu quero fazer digitar mostrar o cursor do mouse
mais uma vez e vamos dizer não, não estamos mais mostrando
o cursor do mouse. Então, da próxima vez que
pressionarmos a tecla novamente, ela avaliará o padrão para
que possamos recriá-lo novamente. Vamos também tocar som
para D. Play Sound Tot. Vamos tocar o mesmo som de pausa porque não estamos pausando
nosso jogo Em seguida, arrastaremos
a pausa definida do jogo
e, desta vez, garantiremos
que ela esteja desmarcada Então, esse
será nosso script final de pausa e retomada ali Se você quiser pausar o vídeo aqui
para avaliar isso, tente
enquadrá-lo da melhor maneira possível Tudo bem, vamos
compilar
e salvar isso imediatamente. E apenas nos dê um teste rápido. Então, entrando e jogando. Tudo bem, então aqui estou eu.
Vou apenas tocar nessa tecla na tecla do meu teclado. Eu vejo o menu de pausa aparecer. Vou tocar na tecla novamente. Pausa. Ótimo. Vou
experimentá-lo no meu controle aqui. Então, vou pressionar isso,
o que é conhecido como
botão Iniciar no controle clássico
que
o está pausando A propósito, faça uma pausa, você pode até misturar e
combinar esse tempo Eu faço uma pausa no meu
controle e
pressiono a tecla no meu teclado
para pausar o jogo Agora está tudo muito bem. No entanto, atualmente esse
botão não é interativo. Vamos tornar isso
interativo também. Para que também possamos pausar o jogo clicando
em Continuum Tudo bem, para fazer isso,
vamos
sair do nosso controlador BP player Vamos voltar ao nosso menu
de pausa da BP. Vamos
até a guia
do gráfico no lado
direito, logo na seção de variáveis do meu
plano, há uma referência ao
nosso botão continuar Tudo o que precisamos fazer é entrar no painel de detalhes,
onde está escrito ao clicar. Vamos adicionar um evento para isso.
Então, vou clicar nesse botão de adição e
simplesmente arrastar para fora
dele, vamos dizer
remover dos pais. Isso basicamente
nos removerá da tela
se estivermos na tela. E então vamos clicar com o botão
direito do mouse obter o controlador do player. Vou sair
disso e dizer cursor do mouse. Vou definir
mostrar o cursor do mouse. Vamos garantir
que o
cursor do mouse não seja mais visto. Em seguida, tocaremos o Sound two D. Tenho certeza de que você pode
adivinhar qual som
gostaríamos de tocar nessa pausa Som E então, para finalizar
isso, desative a pausa do jogo. Vamos definir isso como se
eu dissesse falso, que também equivale a Portanto, certifique-se de que isso seja falso. Vamos compilar isso e salvá-lo. E depois entrar e jogar. Vou tocar nessa tecla
no meu teclado. O cursor do meu mouse está levantado. Agora eu posso clicar
neste botão Continuar. Continuar. E isso interrompe o jogo e vamos embora. Pausa Não faça uma pausa. Emprego. Muito bem, pessoal. Temos um menu de
pausa em funcionamento, pessoal, que fará
tudo por este Nos vemos na próxima.
104. BÔNUS - Player Sprint: Tudo bem, bem-vindo de volta. Um vídeo bônus para todos vocês Vou mostrar como
você pode adicionar uma mecânica de sprint ao seu E para começar,
vou estar na
minha pasta de
ações de entrada em terceira pessoa. Este diretório está aqui, e vamos criar
uma nova ação de entrada. Vamos clicar com o
botão direito do mouse em algum espaço vazio. Vamos abordar a ação de
entrada e entrada. Esse é o ativo que
queremos criar. Um sprint de sublinhado é como
vou chamar esse cara. E não há nada aqui que eu precise definir, então vou
clicar nisso e salvar agora,
preciso adicionar esse evento dentro do meu contexto de mapeamento de entrada. E, mais uma vez, para entender qual
contexto de mapeamento de entrada
estamos usando, podemos entrar no nosso esquema de
caracteres Aqui está meu BP, personagem em terceira
pessoa. Esse é o que estou
usando para este curso aqui, após seu
evento, comece a jogar. E eu tenho uma sequência
para anotar lá em cima. Temos nosso contexto de mapeamento. Esta é a lista de eventos de entrada que nosso
jogo está usando atualmente. E se eu clicar nesses
navegadores e no navegador de conteúdo, posso ver que é esse
aqui, meu IMC padrão Então, vou clicar duas vezes
nele para abri-lo. E agora eu preciso acrescentar que é um evento de
sprint aqui dentro. Para fazer isso, preciso
clicar
neste botão de adição para Mapeamentos Isso vai criar essa
entrada aqui embaixo. E agora tudo que eu preciso fazer
é inserir meu sprint, aquela ação de entrada que
acabei de criar Agora, tudo o que preciso fazer,
e por qualquer motivo
que continue causando esse
tipo de efeito estranho, preciso associar
alguns botões para isso Então, como eu quero fazer
meu personagem correr? Bem, vou clicar
neste teclado e
dizer que a
tecla Shift esquerda fará isso. Vou clicar
nisso novamente. Ele vai fazer
uma coisa estranha, e eu vou
clicar nesse teclado E eu vou dizer que a
tecla Shift direita também pode fazer isso. E então, para
usuários de controladores, vou clicar nesse botão de
adição mais uma vez. E também direi
que, se eu segurar, direi que é a tecla X no meu controle Xbox que é conhecida como botão
frontal esquerdo do Gamepad Isso também desencadeará
isso. Ok, com isso adicionado ao meu recurso de
contexto de mapeamento de entrada aqui, vamos continuar e salvá-lo. E agora podemos voltar para dentro do nosso personagem em terceira pessoa. E eu vou
voltar a ampliar aqui. E acho que vou colocar esse roteiro que
estou prestes a escrever. Vai ser bem curto. Vou colocá-lo
ao lado da minha entrada de salto aqui. Então, vou dar uma
olhada aqui um pouco. Vou clicar em
algum espaço vazio e fazer uma busca por um sprint É aquele com a
seta ao lado. Aí está meu evento de ação, ampliando um pouco isso O que eu quero fazer
é falar com o componente
de
movimento do meu personagem. Como o componente de
movimento do nosso personagem aqui é nossa velocidade
máxima de caminhada , atualmente definida como 1.000 isso é o que determina o quão
rápido nosso personagem pode ir. Vou arrastar isso para dentro,
depois vou sair
disso e dizer definir velocidade de caminhada. Também vou querer definir
isso para uma nova velocidade quando
começarmos a iniciar
essa ação Deixe-me fazer o controle mais
D para duplicar esse nó, bem
como quando
concluirmos essa ação Ou seja, no nosso caso, mantendo pressionada uma
das teclas shift ou o botão X no controle
do Xbox. Qual eu quero que seja a
nova velocidade máxima
de caminhada quando eu
iniciar este evento Bem, acho que vou
configurá-lo e isso realmente envolverá a redefinição da
minha velocidade de movimento padrão Atualmente, minha velocidade máxima de
caminhada padrão está definida 1.000. Vou definir
isso para ser algo como 650 quando
não estiver correndo E então eu direi que
quando eu estiver correndo, vou definir isso como,
vamos dizer 1.200. Então, como eu defino isso de volta para 650 por padrão no componente de
movimento do meu personagem, direi que quando não
estamos correndo, quando terminamos de segurar
nosso botão de corrida,
esse é o botão X
em um controle Xbox ou a esquerda
ou direita Vou ajustar isso de
volta para aquele valor de 650. Isso deve bastar. Então,
vamos compilar aqui para garantir que nosso script esteja bom E salve e depois entre e jogue. Vamos jogar isso. E se eu apenas me mover
para frente e para trás, agora vou em uma velocidade mais lenta Agora, se eu segurar
a tecla Shift, você pode ver que
estou dirigindo E se eu soltar essa tecla shift, eu volto para uma velocidade mais lenta É assim que podemos adicionar uma mecânica de
sprint ao nosso jogo. Espero que vocês gostem
desse, pessoal. Isso bastará para este. Vejo você ganhar o próximo.
105. BÔNUS - Dilatação no tempo da flor de fogo: Tudo bem, outro
vídeo bônus para todos aqui. Quero fazer com que, quando nosso personagem colete
a flor de fogo
, haja uma
pequena desaceleração
no tempo, em vez de nosso personagem
simplesmente correr por
aquela flor de fogo
e imediatamente
ficar maior simplesmente correr por
aquela flor de fogo e imediatamente
ficar Eu quero vender esse efeito um pouco melhor.
Então, como podemos fazer isso? Bem, para isso,
podemos usar algo chamado dilatação global do tempo Essa é uma forma de diminuir o tempo. Isso pode ser feito em nosso personagem de
terceira pessoa, blueprint Se você esqueceu onde está, plantas em
terceira pessoa, aí está nosso personagem em terceira
pessoa Vamos abrir esse
cara aqui dentro. Quero ir para a
seção do roteiro em que nosso personagem coletou
a flor de fogo. Isso ganhou poder floral. Agora, o que vamos
fazer é que,
assim que esse
evento personalizado for acionado, sairemos
daqui e
definiremos a dilatação temporal global E, novamente, é isso que
pode retardar o tempo. Um valor de 0,0
significaria que o tempo está parado. 1,0 significa 100% do nosso tempo normal. Um valor de 0,5 significaria cortar nosso fluxo
de tempo pela metade. Vou definir nossa dilatação do
tempo aqui para 0,2 e então vamos
fazer todas essas coisas aqui Quando terminamos com todo
o
efeito de crescimento do personagem, isso é importante. Quero definir nossa dilatação do tempo
global para voltar ao fluxo
normal do tempo Então, o que posso fazer aqui é, a
partir desse pino de acabamento, vou arrastar e dizer
definir a dilatação temporal global Sim, certifique-se de que está
saindo do final de
nossa linha do tempo e, em seguida,
entrando em nosso botão de direção da
linha do tempo Aqui vamos voltar nosso
tempo para o horário normal, que será 1.0
. Está tudo bem. Há mais uma coisa que eu quero
fazer é que aqui dentro
da nossa linha do tempo, eu vou
clicar duas vezes nesse nó. Dentro daqui, temos
esses botões na parte superior. E essa aqui
é ignorar a dilatação do tempo. Então, queremos ignorar a dilatação do
tempo enquanto esse
efeito está acontecendo Então eu vou ligar isso, e quando estiver ligado e
estiver azul aqui, poderemos testar
todo esse efeito. Então, deixe-me voltar ao
nosso gráfico de eventos mais uma vez, logo
no início da
obtenção do poder da flor, vamos desacelerar o tempo. Vamos
ignorar esse efeito
para o crescimento de nossos personagens. E então, quando esse
cronograma estiver concluído, voltaremos esse tempo ao seu fluxo normal Vamos compilar isso e salvar, entrar
e jogar E aqui vamos nós.
Vou manter pressionada a tecla shift para usar
meus novos poderes de sprint E deixe-me pisar
nesse idiota aqui. Livre-se dele bem rápido. Tudo bem, e agora veja o que acontece quando eu
coleciono essa flor de fogo. Um pouco
devagar e depois voltar ao nosso fluxo normal de tempo. Tudo bem, pessoal,
isso vai acabar com essa. Nos vemos na próxima.