Transcrições
1. Introdução: Neste curso,
vamos
aprender a usar o Unreal Engine cinco, incluindo blueprints criando dois
jogos muito diferentes do zero, este curso contém
tudo o que você precisa para começar com
Unreal Engine cinco, incluindo motor não-real cinco, visão geral e navegação,
importação de ativos, design e iluminação do
ambiente, conceitos básicos de
blueprint, movimento de
personagens, criação de itens roteáveis, criando pontos de verificação,
Animação, Blueprint, tiro e
recarga de
armas, criando IA inimiga, nível de dificuldade,
saúde e morte, interface do usuário
do jogo, música e efeitos
sonoros. E no final
vamos empacotar o jogo. Meu nome é Mustafa
e eu sou o CEO, veio diretor e designer de entretenimento forçado
Titan. Eu tenho trabalhado
na Unreal Engine nos últimos seis anos e recentemente
lançei a venda
agrícola a vapor, que é recebida de forma
muito positiva. Também passei 1,5 anos desenvolvendo meu
projeto pessoal, comprei Kraft e atualmente estou dirigindo o novo grande título da
minha empresa, que é um jogo de plataforma
3D sem aviso prévio. No final deste curso,
você poderá
criar com confiança seu próprio
projeto de jogo a partir do zero. Eu projetei este curso
para quem está interessado em criar jogos
no Unreal Engine cinco, mas luta com a criação de
um jogo que atenda aos padrões atuais da
indústria. Espero que você se inscreva e
se junte a mim neste curso. E lembre-se também de que estou aqui durante todo o
curso para ajudá-lo. Espero vê-lo em breve.
2. Baixando o Unreal 5: Ok, então vamos começar baixando o motor. E para baixar o mecanismo, você tem que ir para Epic Games.com. Este é o site da Epics. E dentro daqui você tem que clicar no botão azul chamado get Epic Games. E isso vai realmente baixar seu lançador, o lançador Epic Games. E eu já fui em frente e baixei. Então está aqui. Dentro deste lançador, você provavelmente será uma guia inicial DIY. Então você tem que clicar no botão Unreal Engine aqui. E então você verá todos esses botões no topo, todos esses botões no topo. E nesses botões você tem que clicar no Unreal Engine cinco. Dentro daqui, você tem um botão chamado “baixar acesso antecipado”. E é assim que você baixar Unreal Engine. Depois de ter baixado o mecanismo, você pode entrar na sua biblioteca. E dentro daqui, você pode ver quais versões do Engine você já baixou. E se você quiser baixar Morrow fair ou Unreal Engine 4, algo, você tem que clicar neste botão Novo e selecionar qual deles você deseja baixar. Mas para baixar Unreal Engine cinco, você tinha que entrar e tipo este conjunto para que eles colocassem separadamente. Então, uma vez que você tenha baixado ou Unreal Engine cinco, você pode clicar em Launch aqui no motor. E se você tiver projetos anteriores, eles aparecerão aqui. Então vamos passar para a próxima lição e realmente criar um projeto.
3. Criando um novo projeto: Vamos em frente e criar nosso primeiro projeto. Então, clicando no botão Biblioteca aqui, você pode iniciar Unreal Engine cinco. Depois de iniciar o Unreal Engine cinco, esta aba aparecerá. E dentro desta aba, você pode abrir projetos recentes ou criar um novo projeto clicando em jogos. E quando você clica em jogos, você pode ver diferentes modelos. Então, por exemplo, se você quiser fazer um atirador em primeira pessoa, você pode clicar neste modelo de primeira pessoa. E dá-te algum tipo de modelo básico para um atirador em primeira pessoa. Então você pode andar em um modo de primeira pessoa com uma arma. Se você quiser fazer um quebra-cabeça, ele lhe dá esse modelo. Se você quiser fazer um jogo de cima para baixo, que lhe dará como uma visão de cima para baixo. Mas o que eu quero fazer para tutoriais, eu gosto de começar com um projeto em branco porque eu acho que você pode aprender muito mais criando tudo do zero. Eu não gosto às vezes quando as pessoas começam a ensinar outros, começando com o modelo Eu gosto de começar tudo desde o início. E, na verdade, você pode criar todos esses modelos dentro de um projeto em branco se você souber o que está fazendo. E depois deste curso, tenho 100% de certeza que você pode criar todos eles. Então vamos começar com um projeto em branco. Aprendemos muito mais fazendo isso. E aqui à direita, você pode ver que você pode selecionar um projeto de blueprint ou um C plus. Nós vamos com plantas e não C mais. E esta é a área de trabalho, e esta é a predefinição de qualidade máxima. Isto provavelmente está verificado para você. Vou desmarcar o conteúdo inicial. Quero começar tudo do zero. E Ray Tracing está desativado. Não precisamos disso. E agora podemos chamar seu projeto de algo. Então este primeiro jogo que estamos criando, estamos chamando bola de velocidade e, em seguida, você escolhe o local em que deseja salvá-lo. Vou deixá-lo no meu local padrão e vou clicar em Criar projetos. Ok, então é assim que parece quando você abre o projeto pela primeira vez. E vamos avançar para a próxima lição e realmente tentou
entender a interface do usuário e como navegar dentro da janela de exibição.
4. A barra de ferramentas: Vamos falar sobre o mecanismo, a interface do usuário e como navegar. Então, no começo, pode parecer confuso se você nunca esteve aqui antes. Se você é de Unreal Engine 4, você tem um, um pouco mais de compreensão do que algumas dessas coisas são. Mas vamos começar do início e prometo que será muito mais fácil. Então, para começar, até o canto superior esquerdo, temos todos esses botões diferentes que geralmente são normais. E todos os programas para começar, temos arquivos. E dentro do arquivo você pode criar um novo nível. Você pode salvar seu trabalho e também pode criar um novo projeto dentro da edição. O que é importante aqui são as preferências do editor. Então, clicando nas preferências do editor, aqui você pode mudar as coisas sobre o editor. Assim, por exemplo, você pode ver aqui a cor da seleção de viewports se você quiser de forma diferente e assim por diante. Honestamente, eu nunca brinquei com ele. Costumo deixar o editor como está. Eu gosto do jeito que é, mas você pode tentar olhar em volta, ver se há algo que você gostaria de mudar. E então temos as configurações do projeto, e aqui seremos muito. Portanto, dentro das configurações do projeto, você pode editar as configurações do projeto. Assim, por exemplo, a descrição do projeto, o nome da empresa, se você tiver um, o outro contato de suporte da página inicial, e tudo isso aparecerá quando você lançar o jogo. Então as pessoas têm a chance de entrar em contato com você. E você pode editar as configurações para quando empacotar o jogo e quiser liberá-lo. Você pode editar as configurações para quando você clicar em botões que usaremos isso mais tarde. E podemos editar o mapa padrão e assim por diante. Então vamos trabalhar aqui nos projetos, configurações
do projeto mais tarde no projeto. A última coisa importante são os plugins. E clicando nos plugins, você pode ver que temos um monte de plugins diferentes. Não se preocupe com isso por enquanto, mas você pode ver que temos um monte de plugins e o que é legal sobre isso mais tarde você também
pode escrever agora ele não saiu para Unreal Engine cinco, mas o vapor multiplayer é um plugin que você pode habilitar aqui mas ainda não foi lançado. É apenas para Unreal Engine 4 agora dentro do Windows, para que você possa abrir novas guias. Então, por exemplo, você pode ver aqui eu tenho algo chamado painel
de detalhes e janela Sul. Há também este painel Detalhes e você pode ver que eu já abri um, mas eu posso abrir um segundo se eu quiser. E estes são basicamente os mesmos. Então, se eu clicar em um objeto aqui e o nível, você pode ver a mesma informação é exibida. E isso é muito útil para se eu tiver dois monitores. Então eu posso puxar isso no meu segundo monitor e eu posso realmente trabalhar lá. E isso é especialmente útil para se você quiser abrir duas viewports. E agora temos este visor e eu posso colocá-lo no meu segundo monitor e vê-lo de lá e é muito legal. Então, em vez do Windows, você pode abrir várias janelas. Agora há muitas outras coisas, mas eu tento não cobri-las por enquanto. Não precisamos deles para começar. Então vamos rever as ferramentas. Temos ferramentas diferentes aqui, mas não vamos nos preocupar com isso. Temos o cinto perto. Você pode construir a iluminação, por exemplo, para fazê-lo funcionar dentro do seu nível. Então esta é a coisa mais importante é a construção ou os níveis, a iluminação. Também posso ajustar a qualidade da iluminação. E isso levará muito mais tempo se você colocá-lo no mais alto quando você tentar construir a iluminação. Por isso, sempre trabalhamos na pré-visualização ou no meio para começar. E está fora de ajuda. Você pode ver a documentação do Unreal Engine cinco. Ok, então aqui em baixo nós temos o botão salvar o nível atual para que você possa salvar o nível atual em que você está. E então você tem o botão Criar. E aqui você pode criar coisas diferentes. Então, por exemplo, as luzes, este é um botão muito importante. Você pode criar luzes, você pode alcançar formas, você pode criar câmeras. Então você pode criar algo para os efeitos visuais, por exemplo, uma nuvem métrica ou céu, atmosfera e assim por diante. Então, aqui você pode criar itens diferentes. E o conteúdo é, você pode abrir um novo navegador de conteúdo. E se eu clicar no navegador de conteúdo, você pode ver sobre o navegador Clinton aqui. E isto é, na verdade, se você clicar nesse botão aqui em baixo, isso é realmente o mesmo, então eu tenho a mesma constante aqui. Então agora você também pode ter várias janelas para isso. Nunca precisei dela, então vou fechá-la de novo. Mas só para você saber, você pode abri-lo aqui. E você também pode obter ou abrir a ponte Quick vendido, mas nós não vamos fazê-lo agora. E dentro das plantas, isso é muito importante. Trabalharemos aqui. E aqui você pode abrir o Level Blueprint, no
qual vamos realmente trabalhar, mas não vamos nos preocupar com isso por enquanto. Mas este é o botão da planta. Aqui vamos programar o jogo. Temos isto num botão de médicos. Não se preocupe com isso por enquanto. Temos o botão Selecionar para que possamos selecionar diferentes itens dentro de seus viewports. Você tem a ferramenta de paisagem. Você pode clicar nele e aqui você pode criar uma paisagem, mas não vamos criar uma agora. E aqui temos um botão de folhagem. E isso é realmente para, se você tem grama, por exemplo, você pode colocar a grama dentro
deste pintor de folhagem e você pode realmente pintar toda a grama no chão. Ou também pode pintar outras coisas. Pensa na erva. Então, por exemplo, se você tem pedras ou pedras, você pode pintá-las. Então temos a ferramenta de pintura de malha. Então, se tivermos uma malha igual a esta terra aqui, você pode pintar nela. Se você tem uma textura. Lá, não fiz. Temos a ferramenta de fratura e então teremos a ferramenta de modo de edição de pincel. Não vamos nos preocupar com este e este agora. Então temos o botão Play e você pode clicar em Jogar para testar o jogo. Faremos isso. E só para você saber, há três botões ao lado do botão play. E você pode realmente optar por abrir o jogo em seu próprio editor, na nova janela do editor, ou como um jogo autônomo. Mas vamos jogar através do visor por enquanto. E nós temos as plataformas e aqui você pode empacotar o jogo duas plataformas diferentes e assim por diante. Vou mostrar-lhe uma carta sobre como embalá-lo novamente quando terminarmos para
que você possa liberá-lo e sua família ou amigos podem experimentá-lo. E aqui nas configurações, podemos ocultar a interface do usuário do viewport. Ele também pode mostrá-lo novamente. Se você quiser mostrá-lo. Também podemos inserir as configurações do projeto ou o plugin que acabamos de ver anteriormente. E um importante são as configurações do mundo, que você também pode ver aqui. E, ao lado deste, trabalharemos também mais tarde nas lições. Ok, então deixe-me voltar para a ferramenta Selecionar para que eu possa tirar isso daqui.
5. O painel de detalhes: A próxima coisa importante dentro da janela de exibição ou dentro do motor é este painel Detalhes. Então você pode ver quando eu clico em coisas diferentes dentro desta janela de exibição, eu vejo detalhes diferentes. E isso está mostrando os valores para todas as coisas que estão dentro do nível. Então, se eu clicar no Sol aqui, a luz direcional, eu posso ver a localização dela, a rotação dela, a escala, a intensidade, e o ângulo, e se ela deve afetar o mundo ou não, você pode ver aqui Posso verificá-lo e desmarcá-lo se deve lançar sombras ou não. Portanto, estas são todas as configurações ou detalhes diferentes para a luz direcional especificamente. Então, se eu clicar nesta malha de terra, você pode ver que eu tenho configurações diferentes. Posso ver quais malhas estáticas usadas, qual é o material. E eu chego a todas essas configurações diferentes para tudo o que eu clico na janela de exibição. Então esta é uma parte muito importante do motor. Aqui você pode ver os detalhes de cada um desses itens dentro da janela de exibição ou dentro do nível. Você também pode editar os nomes desses itens. Aqui em cima, você pode clicar e você pode alterar o nome e você pode ver em que componentes eles consistem. E não se preocupe com isso por enquanto.
6. O navegador de conteúdo: A próxima coisa antes de falar sobre o viewport é o desenho de conteúdo. E este, você pode realmente adicionar todos os arquivos que você tem para o jogo dentro daqui. Então, se você tiver os arquivos de caracteres, você vai adicionar os arquivos de caracteres aqui. Se você tiver arquivos de áudio, qualquer, qualquer tipo de arquivo, arquivos 3D, modelos
3D, se você tiver som, efeitos
visuais e assim por diante. Isto vai estar tudo aqui. E a maneira como você os adiciona dentro desse nível, basta arrastar o item e soltá-lo dentro do nível raiz, e falaremos sobre isso mais tarde. Portanto, apenas esteja ciente de que todos os arquivos estarão dentro daqui e aqui podemos escolher salvar tudo. Também podemos adicionar itens diferentes dentro deste sorteio de conteúdo. Você pode ver que podemos adicionar blueprints, isso vamos trabalhar com também. Você pode criar um novo nível, ele pode criar um novo material e uma nova pasta. Por exemplo, se eu clicar em criar novas pastas pode ver aqui é um novo. E você pode clicar nele para alterar o nome ou você pode pressionar F2. Este é um atalho muito útil. Então, clicando em F2 e alterando o nome, você pode clicar com o botão direito do mouse nele. Você pode definir as cores para que eu possa definir a cor para algo e você pode clicar em Ok, e isso é muito legal para organizar as coisas. Então eu vou deletar de novo. E se você não quiser clicar nele o tempo todo, você pode ver aqui, se clicarmos nele e você clicar longe dele, ele irá embora. Se você está acostumado com o Unreal Engine 4, isso estava sempre no topo. E eu também vou fazê-lo em cima também, só para que ele não desapareça para você quando você está assistindo as aulas. Isso vai ser muito irritante, eu acho. Então, clicando na doca no layout e todo este processo dentro do layout. E sempre vai ficar aqui em cima.
7. Viewport e navegação: Ok, então somos quase todas as coisas. A última coisa e provavelmente a coisa mais importante é o viewport. Então a viewport é onde você visualiza seu nível. Então aqui você pode ver todas as coisas que você tem dentro de seu nível, e é aqui que você constrói seu jogo. Então, para começar, dentro da janela de exibição, temos este botão no canto superior esquerdo. E dentro deste botão, você pode optar por mostrar o FPS. E isso é muito importante. Então você não vê que seu FBS 60 anos quando é suposto ser muito maior depois no desenvolvimento. Então isso é sempre bom para verificar, mas isso realmente não importa desde o início até o bilhete de avião. Você pode alterar o campo de visão e vamos mantê-lo em 90, que é o padrão. Você também pode foi muito importante. Aqui está a vista do jogo. Então, clicando na vista do jogo, você pode ver que ele esconde todos eles ou todos os ícones e também a grade. Então um atalho para isso está pressionando G. Então clique em G. Eu costumo fazer isso para ver meu nível sem ícones. E clicando em G novamente, faremos com que apareçam. Outro botão de chamada é o modo imersivo, e isso irá tela cheia a viewport assim. O atalho para isso é se um Londres, então FL1 para minimizá-lo, F11 para maximizá-lo. E ele pode pressionar G para esconder todos os ícones. E agora você pode ver nosso jogo em tela cheia. E há um bem legal. Então, clicando no G em Londres novamente. E voltando. E outro botão chamado são as capturas de tela de alta resolução. Então aqui você pode fazer uma captura de tela do que você está vendo atualmente. A próxima coisa dentro da janela de exibição é o modo de perspectiva. E aqui, este é o modo no qual estamos visualizando o viewport. Você também pode vê-lo do topo, assim como este. E isso é muito legal para quando você quer colocar algo especificamente. Como, por exemplo, se eu quiser, deixe-me voltar para o modo perspectiva, se você quiser jogar algo especificamente aqui, é muito mais difícil apenas mover e colocá-lo aqui, mas é muito mais fácil apenas ir no vista superior, CORREL colocando-o e apenas colocando-o corretamente. Ok, então eu vou clicar em Controle Z para desfazer. Então estes são os diferentes modos. Você pode visualizá-lo de baixo, da esquerda e assim por diante. E estes também são chamados de vistas ortográficas. E você também pode ter um viewport cinematográfico que você pode visualizá-lo através. Vamos voltar para a janela de exibição padrão. Não vamos nos preocupar com o cinema por enquanto. Também temos diferentes humores. Quatro, por exemplo, quando isso é para quando você tem luz da cena. Então você pode ver aqui, ele está lá modo de deixar. Também temos o modo desiluminado. Podemos ver a cena sem qualquer iluminação. E também podemos enviá-lo para o modo wireframe. E você pode ver os diferentes wireframes. E também pode verificar os wireframes de diferentes modelos 3D, detalhes, iluminação e assim por diante. Então temos muitos controles remotos. Nós também temos os modos de visão de otimização que vamos tocar mais tarde nas lições. Então vamos voltar ao modo de elipse. Em seguida, temos o show, e aqui você pode exibir e ocultar coisas diferentes dentro da porta de exibição. Por exemplo, se você não quiser ver a grade, você pode fazê-la desaparecer. Mas eu realmente quero vê-lo novamente. Então, clicando nele novamente. E aqui, botões muito importantes, e provavelmente os mais importantes são as ferramentas com as quais você estará trabalhando dentro da janela de exibição. Então temos a ferramenta Selecionar. E você pode ver aqui quando eu seleciono coisas diferentes, eu posso selecioná-las. E temos a ferramenta Mover. E aqui, se eu arrastar os pontos de pivô, eu posso movê-los em direções diferentes. E se eu clicar na caixa, você pode ver que dois dos pontos de pivô destacam e isso significa que eu posso movê-los nessas duas direções diferentes. Então, se eu segurá-la debaixo desta caixa aqui, eu posso movê-los ao longo do chão aqui. E assim por diante. Clicando nesta bola, bola
branca e no meio, posso movê-los em todas as direções. Absorvendo um ponto de pivô, posso movê-los em uma direção. Ok, então esta é a ferramenta de movimento. Nós também temos a ferramenta Girar. Aqui. Você pode girar em diferentes eixos. Você pode ver aqui eu posso girar nesses eixos diferentes. E antes que eu esqueça de dizer, você pode ver você, nós temos uma cor vermelha, cor
verde e cor azul e cor vermelha. Você pode ver aqui, isso também é ler isso como dx. Se você colocar o mouse sobre ele, você pode vê-lo. Então este é o vermelho, este é o verde, é o eixo y, e este é o azul, e este é o eixo z. E você também pode ver o eixo quando você gira, você pode vê-los aqui em baixo. O que você está enfrentando atualmente, a última ferramenta que temos é a ferramenta de escala. E clicando na ferramenta de escala, você pode dimensioná-la em diferentes direções. Assim como a ferramenta Mover, se você segurá-la em um ponto de articulação, você pode dimensioná-la em uma direção. Ou se você segurá-la em cima. Estes retângulos, você pode tentar escalá-lo em duas direções diferentes. Mas se você segurá-lo no quadrado branco no meio, você pode escalá-lo uniformemente. Então, se eu clicar em Control Z, eu realmente clicar nele algumas vezes porque eu quero voltar para onde eu estava. Eu posso realmente esqueleto formalmente clicando na caixa branca aqui. Ok, então muito importante, eu costumo usar os atalhos e você provavelmente deve Londres também, porque leva muito tempo para clicar aqui, movê-los, o novo clique aqui para girar e então girar e assim por diante. Então, uma maneira mais rápida de fazer isso é pressionar Q. Esta palestra pressionará W para a ferramenta de movimento, pressionando E para a ferramenta de rotação, pressionando R para a ferramenta de escala. Então, por exemplo, eu clico em W2 para mover. Eu clico E para girar, eu clico em R para dimensioná-lo. Eu clico W novamente para movê-lo e assim por diante. Você pode ver que é muito mais rápido do que o tempo todo clicando aqui em cima e clicando em Control Z para voltar atrás. A próxima coisa é a ferramenta de ajuste de grade. Então, isto é o quanto vai estalar. Então você pode ver aqui, quando eu clicar w, Por exemplo, se eu clicar neste jogador começa ícone aqui. Você pode ver se eu
movê-lo, ele está estalando, não está se movendo suavemente. E isso é por causa dessa ferramenta de encaixe. Então, se eu clicar nesse número e aumentá-lo para 50, agora partindo a cada 50 unidades dentro do motor. E isso é bastante útil quando você tenta alinhar algo uniformemente, por exemplo, paredes ou pisos. E eles se encaixam. Se você quiser remover o encaixe, se eu clicar neste ícone e ele ficará branco e você pode simplesmente movê-lo como quiser. Isso é muito suave agora, se você quiser levá-lo novamente, clique nele, e então ele vai estalar novamente. E aqui novamente, você pode aumentar e diminuir o encaixe. Assim como o estalar com o movimento. Você tem esse estalar com a rotação. Então, clicando aqui você pode ver que ele gira a cada 10 graus. E se você clicar nesses mesmos graus, você pode alterá-lo exatamente como a ferramenta de movimento. Você pode alterá-lo para outros graus. E você pode clicar no ícone para remover o encaixe para que você possa girar suavemente. E você também pode fazer isso com a ferramenta de escala. Então, clicando nos números também clique no ícone irá remover o ajuste de escala para que eu possa dimensioná-lo uniformemente e assim por diante. Ou escalá-lo suavemente, desculpe. Então eu vou voltar para todos eles novamente como configurações padrão. E esta é a velocidade da câmera. Isto é muito importante. Este é o quão rápido sua câmera está se movendo dentro da janela de exibição. E eu vou falar sobre como se mover dentro da janela de exibição. Ainda não toquei nele. Então aqui você pode mudar a velocidade. Então, por exemplo, se você tem um mundo grande, um grande mundo de jogos, por exemplo, é um mundo aberto, algo que você pode aumentar a velocidade e você pode se mover muito mais rápido dentro do seu mundo. Se você tem um jogo muito pequeno, você pode mudá-lo para uma velocidade menor e você pode ver que ele está muito lento agora e você pode até mesmo torná-lo ainda mais lento. Isso também é legal para apenas fingir cinematografia às vezes. Ok, vamos voltar para quatro, que é o padrão. Ok, então a última coisa antes de terminarmos o vídeo é ficar muito longo. Então, a última coisa é como navegar dentro da BYU, mas como você se move? Então eu costumo me mover segurando o botão direito do mouse. E então você pode usar as teclas a, w, D e S no teclado. Então, mantendo o botão direito do mouse, você pode clicar em AWT e S e você pode se mover. Eu posso vê-lo, Vou segurar o botão direito do mouse e clicar nessas teclas, você pode se mover dentro do nível. Isso pode parecer estranho para começar, mas se você está acostumado a jogar, você provavelmente está acostumado a se mover assim. Se você, especialmente se você jogar jogo de tiro. Mas não se preocupe, será natural para você se não tiver tentado isso antes. Clicando em Q e E, enquanto você está segurando o botão direito do mouse, você pode ver ou você pode ir para cima e para baixo. Normalmente nunca uso. Eu só vou para cima e para baixo, mas você pode usá-lo. Então você sabe que está lá. Outra coisa é que, se você segurar o botão esquerdo do mouse, você pode ver aqui que você pode se mover enquanto apenas segurando o botão esquerdo do mouse. Eu nunca uso isso. Na verdade, eu uso no meu laptop se eu estiver trabalhando quando estou no meu caminho para o meu trabalho diário, eu geralmente clicar no lado esquerdo. Isso é muito mais fácil no laptop. E segurando o botão esquerdo do mouse e o botão direito do mouse, você pode mover para cima e para baixo, assim como você fez segurando o botão direito do mouse e clicando em Q e D. A última coisa que você pode fazer é, por exemplo, segurando o botão direito do mouse e clicando na estimativa de volta, podemos então W para avançar. Você também pode usar a rolagem no mouse para rolar para dentro e para fora. E isso é muito bonito para o movimento. E o que eu normalmente, como eu disse, uso principalmente é apenas segurando o botão direito do mouse e apenas se mover assim, eu me sinto mais confortável, mas se você se sentir mais confortável fazendo isso de outra maneira, sinta-se bem-vindo para fazer Então. E lembre-se se você tiver alguma dúvida, você sempre pode escrever nas mídias sociais estão dispostos a ajudá-lo. E você também pode escrever no servidor Discord, muito feliz em ter um bate-papo ou ajudá-lo dentro de lá. Então vamos em frente na próxima lição ou na próxima seção e realmente começar o nosso jogo.
8. Introdução ao jogo - bola rápida: Olá e bem-vindo a esta seção. Aqui vamos criar um jogo de bola. E este jogo é sobre uma bola que você pode mover com o seu teclado. E é como se você estivesse correndo através dos níveis, você está coletando estrelas. Você está passando pelos portais e está indo para novos níveis. E o jogo é sobre apenas sobreviver através dos níveis, coletando as lojas. E no final, você vai para uma tela de casamento. Então, com este projeto, você vai aprender muito. Você vai aprender como construir um nível, como fazer a iluminação fora, fazer blueprints, atores de
blueprint, classes de blueprint em geral, e trabalhar com o Level Blueprint também. Vamos ver como você faz a condição de perder. Então, se sua bola cair, como responder em checkpoints é passar
pelo portal e muitas e muitas coisas para aprender. Então vamos em frente na próxima lição e começar nosso jogo.
9. Configuração inicial do projeto inicial: Ok, então vamos começar a fazer o projeto. E antes de fazermos alguma coisa, quero mostrar-te uma coisa. E aqui dentro de edição e plugins, você pode ir para a realidade virtual aqui. E você pode desativar o Oculus VR e desativar o vapor VR. E o problema é que eu lancei meu rabo de fazenda no Steam. E estes foram verificados quando são lançados uma e outra vez, continuou lançando no modo VR para as pessoas. Mesmo que a cauda da fazenda não tenha um modo de VR. Então, foi muito irritante. As pessoas estavam confusas de porque ele estava sendo executado no modo VR. Então, toda vez que eu começo um novo projeto, eu desativo o Oculus VR e desativo o vapor VR. Claro, se o seu jogo for um jogo de RV, você não deseja desativá-lo. Mas não estamos fazendo um jogo de VR, então vou desativá-los e clicar em Reiniciar agora. Ok, então agora o projeto foi reiniciado. Eu posso ir em frente e fechar isso e clicar em Salvar tudo. E esta era a única coisa que tínhamos que fazer. Então vamos seguir em frente.
10. Como importar ativos: Então agora vamos importar alguns ativos que podemos usar para o projeto. Então a primeira coisa aqui dentro do lançador Epic Games. Aqui está. Aqui você quer entrar no mercado. E vamos baixar alguns recursos gratuitos que podemos usar para o jogo. E aqui você pode procurar a grade. Então, escrevendo grade aqui e clicando em Enter. E dentro daqui, clique nisto. Max suborna de graça, então não pagamos nada enquanto fazemos isso. E aqui está o pacote de inicialização super grade. Trabalhando neste grande ativo, podemos criar um nível muito legal com isso para o nosso primeiro jogo. Então vá em frente e faça o download. Eu já baixei. E então você pode ver depois de
baixá-lo, ele diz Criar projeto. Então, infelizmente, você não pode simplesmente importá-lo diretamente para o projeto para esses ativos, você tem que criar um novo projeto. Então, clicando sobre isso, e então não importa com o nome, apenas deixe ser como padrão. E você pode mudar sua pasta padrão, mas eu nunca mudá-la, então vou deixar cerveja. A menos que você tenha problemas de espaço no seu motorista, mas deixe estar se você não tiver. E então você pode selecionar em qual versão você deseja torná-la. E agora isso não é compatível. Não foi feito para um projeto de cinco pontos zero, então Unreal Engine 5. Então vá em frente e crédito em 4.26, nós não teremos um problema com isso, então isso é bom. E deslize e clicando em Criar. Eu já cliquei em Criar. Agora vou voltar para a biblioteca e vou procurar por ela. E está aqui, super bom pacote inicial. E você pode clicar duas vezes neste projeto. Assim que o projeto abrir, ele provavelmente verá compilando sombreamentos na primeira vez que você abrir este projeto. E pode levar algum tempo, talvez 10 minutos ou 15 minutos. Não sei, dependendo da rapidez com que o seu computador seja. Por isso, vai demorar algum tempo para compilar os sombreamentos e deixá-lo compilar, deixá-lo terminar antes de fazer qualquer coisa. E quando terminar de compilar os sombreadores, clique com o botão direito do mouse neste mapa super grade. Então você pode ver aqui estão pasta super grade. Você pode ver aqui, dentro daqui nós temos diferentes e plantas. Temos diferentes malhas e instâncias materiais e assim por diante que podemos usar gratuitamente. Embora isto seja muito fixe para nós. Você pode ver que há diferentes malhas ou estrelas e assim por diante. Então isso é muito legal. Queremos isso dentro do nosso projeto. E para fazer isso, você deve clicar com o botão direito do mouse na pasta super grade e clicar em Migrar. É assim que você move as coisas de um projeto para o próximo projeto. E então você só bate, ok. E então você precisa selecionar para qual projeto você deseja migrar. Diga agora que estamos criando os projetos de bola de velocidade. Então, clicando na bola de velocidade, este é o projeto, está dentro do meu BC e, em seguida, documentos e então projetos irreais. Portanto, este é o caminho padrão. Então vá em frente e encontre seus projetos irreais. E dentro daqui, clique no projeto que você está criando. E então você deseja clicar na pasta Conteúdo. Isto é muito importante. Você não quer apenas colocá-lo dentro daqui, não
vai funcionar. Então, clicando na pasta de conteúdo. Mais uma vez, muito importante. Não clique em outras pastas. Não entre aqui e coloque aqui. Não vai funcionar. Então lembre-se de ficar na pasta de conteúdo e, em seguida, clique em Selecionar pasta e, em seguida, ele irá migrar e ele irá copiar todos os arquivos. E não se preocupe que ele dirá que alguns dos arquivos não puderam ser copiados. Está tudo bem, vai funcionar. Então, voltando ao projeto que temos, você pode ver que ele migrou o pacote super grade que pedimos. E estes são todos os arquivos que estão dentro dele. E eles trabalharão com o nosso projeto. Então, antes de seguir em frente, vamos realmente importar algumas outras coisas. Eu fiz upload. Alguns itens, são alguns materiais para você. E as coisas que enviei para você neste site, você pode ir em frente e baixá-lo. E são esses itens que enviei para você. Temos um ícone que podemos usar. Temos algumas músicas que encontrei no YouTube, algumas músicas livres de royalties. Temos alguns efeitos sonoros, e vamos em frente, criar uma pasta e importá-los. Portanto, dentro da pasta de conteúdo, você pode clicar com o botão direito do mouse e clicar em Nova pasta. E eu vou chamar essa interface de usuário de uma interface de usuário. E dentro daqui eu vou fazer uma nova pasta chamada ícones. E tecnicamente nós realmente não precisamos disso para este projeto porque ele é tão pequeno e este é provavelmente o único ícone que vamos precisar. Mas eu só quero te mostrar se este um grande projeto em que estamos trabalhando, o que eu faria. Então eu sempre quero organizar minhas coisas. E eu vou colocar a estrela aqui. E você provavelmente vai perceber que eu, que eu chamo de ICO desde o início. Isto é para o ícone. Normalmente chamo ícones, esta convenção de nomes. E então queremos fazer uma nova pasta chamada podemos chamá-la de áudio, e podemos chamar uma. Ou, na verdade, vou importar tudo aqui. Mas se você tem muitas trilhas sonoras e muitos efeitos sonoros, você provavelmente gostaria de criar uma pasta para música e uma pasta para efeitos sonoros, mas vamos apenas importá-los e arrastá-los dentro deste arquivo de áudio ou pasta de áudio. E aqui está todo o áudio que temos. Ok, eu poderia tocar, talvez seja alto e tenha cuidado. Agora, isto está bom. Então agora você pode aqui, estes são os fatos. E então temos também um pouco de música. Então, estas são na verdade todas as coisas que precisamos para fazer o nosso jogo. Então, agora que importamos os ativos, vamos em frente e criar o nível.
11. Criando o nível: Então vamos criar o nível. E antes de fazermos isso, vamos realmente ir em frente e salvar nosso projeto. Você pode ver aqui que temos algumas estrelas. E essas estrelas significam que estes são arquivos não salvos da última lição. Eu estou indo para ir e clique em salvar e nosso arquivo e salvar tudo. Isso salvará tudo. E deixe-me clicar com o botão direito do mouse na pasta de conteúdo, criar uma nova pasta e criar uma chamada mapas. Também pode chamá-lo de níveis. Isso é com você. E aqui, dentro daqui. Vamos em frente, clique no mouse ou clique em Arquivo aqui. Na verdade, clique em novo nível. A menos que possamos escolher um nível vazio e, em seguida, colocar a nossa iluminação, ou podemos escolher o nível padrão e apenas ajustado. Então vamos, vamos apenas usar o nível padrão. Então temos um pouco de céu e qualquer coisa. E agora vocês podem ver aqui que estamos dentro do novo nível. Isso quase parecia o nível em que já estávamos, mas este é realmente o novo nível agora. E vamos clicar neste botão Salvar nível atual. Então, clique neste. Vamos salvar esse nível em que estamos, clicando nos mapas, e vamos chamá-lo de mapa. Então eu gosto de começar com uma convenção de nomes para todos os meus arquivos. E isso é muito útil para quando você procura por itens aqui. Então, se você quiser encontrar os mapas especificamente, você pode escrever mapa aqui em cima e todo o mouse será listado. Ou se você procurar como Fx, todos os efeitos sonoros serão listados. Então, é muito legal escrever uma convenção de nomenclatura é um prefixo pouco antes de ele chegar o nome desse mapa. Então este mapa vamos chamar de bola de talão. Então só temos este mapa. Então, vamos em frente e clique em Salvar. E você pode ver que este mapa foi salvo e criado. E antes de fazermos algo próximo, vamos clicar neste. Este é o medo de reflexões, então nós realmente não precisamos da esfera de reflexão. Então vamos em frente e excluí-lo. E à direita dentro do World Outliner, você pode clicar nele. E é aqui que você vê o que está dentro deste nível. Assim, por exemplo, se você clicar no nevoeiro atmosférico, você pode ver aqui que ele seleciona o nevoeiro atmosférico e ele pode realmente selecioná-los dentro da janela de exibição. Isto é a mesma coisa. Você também pode selecioná-los dentro daqui. E você pode verificar se há algumas coisas que não precisamos. Temos uma clarabóia, uma esfera do céu. Isto é bom. Então este é o disfarce da clarabóia. Medo é tudo isso. Isto está tudo bem. E então temos o jogador começa, vamos ajustá-lo mais tarde então está tudo bem agora. Temos a luz do sol. Esta é uma fonte de luz com, que é chamada de luz direcional. Eu tenho o chão e depois temos um pouco de nevoeiro atmosférico. Não sei se precisamos do nevoeiro atmosférico. Vamos simplesmente apagá-lo por enquanto. E o chão, vamos excluí-lo em um pouco. Então deixe-o ficar dentro daqui. Então clique em Arquivo e salve tudo. Agora estamos prontos para projetar o ambiente. Então vamos em frente na próxima lição e projetá-la.
12. Design do ambiente: Agora é hora de projetar o ambiente. E para projetar o ambiente, temos que ir para dentro da pasta super grupo. E dentro daqui temos o pacote inicial. E diga ao pacote inicial que temos a fonte da pasta e as malhas. Ok, então dentro daqui, dentro da pasta de malhas temos um monte de malhas que podemos usar para projetar nosso nível. E vocês podem ver aqui que temos cantos, cones e esferas, e também temos cilindros e caixas. Então, para isso, eu vou excluir a malha do chão aqui, malha de piso padrão. E podemos pegar esse chamado Zuber Grid Box. Então tente arrastá-lo para dentro E então você pode ver aqui, se você clicar no botão de seta para aumentar a escala, então você pode usar a ferramenta de escala para realmente
dimensioná-la em uma direção ou outra direção. E ele pode realmente construir a partir dessas caixas aqui ou apenas em geral de todas essas malhas. Então eu vou apagar este aqui e para fazer o chão, eu gosto de usar o avião. E aqui, a razão pela qual eu não estou usando um, uma caixa aqui em vez do chão é porque isso é mais otimizado. Você não quer todos esses locais diferentes debaixo do solo. Então, por exemplo, deixe-me pegar isso, pressionar a ferramenta R e escalá-la em um lado, esqueleto, outro lado. Então, se você fez isso com a caixa e tentamos escalá-lo, a diferença entre estes é isso é mais otimizado se ele é usado como um piso porque este também tem lados aqui e lados aqui e lados aqui e locais abaixo também. E esses sites você pode não ver se você está realmente usando isso como um solo e você está em pé sobre ele. Por que você precisaria desses polígonos diferentes que estão nos lados que você nunca verá. Estes, estes também estão tendo desempenho. Então você está fazendo algo como um piso é melhor
usar um avião a menos que o jogador vai ver os lados. Então eu posso mostrar a vocês o que eu fiz para o nível 2. Vou fazer isso e misturar. Então, por exemplo, podemos fazer este andar. E o que posso fazer é pegar esta caixa e você pode movê-la para a
direita, bem abaixo do chão. E aqui na frente dele. Você pode realmente usá-lo assim. Deixe-me só reduzir. Então você pode usá-lo exatamente como este aqui. O jogador se move aqui para o lado e realmente pode ver este lado porque os flúores aqui, eu posso escalá-lo para cima. Em seguida, o jogador vai ver como um desertor tipo de coisa aqui no lado. Então você pode fingir. Pode girar isso. E a propósito, para copiar, acho que não mencionei todo o botão antigo. Então, clicando na ferramenta girar, não
importa qual ferramenta você tem, mas agora eu quero girar. Então, mantendo pressionado o botão Alt e, em seguida, Girando irá duplicar a malha que você está girando. E isso combina com tudo. Se você tiver a ferramenta Mover e segure Alt e arraste, ele irá copiar a malha. Então, por exemplo, você pode fazer isso. E para este eu não quero paredes aqui ao longo do lado porque eu tenho paredes aqui e o jogador não vai ver. E vamos movê-lo para o lado. E isso é tão legal usar a ferramenta de encaixe, eu não tenho uma briga, não tive o encaixe. Seria mais difícil para mim posicioná-lo exatamente aqui no final. Isso seria quase impossível para mim. Vou clicar em Control Z e deixar o encaixe além. E se você está projetando um nível enorme, você aconselha colocá-lo em 50 em vez disso. E agora estalando a cada 15, Isso também funciona. Então o que eu faço com as paredes, em vez de colocá-las em cima do chão, eu as coloco aqui nos lados. O jogador não vai notar de qualquer maneira. Só estou me certificando de que não está cortando. E, essencialmente, voando. O que eu quero fazer é clicar sobre isso. Eu vou colocar o avião em 000
000 só para ter certeza que ele está realmente centrado e isso é mais fácil de colocar. Então coloque isso em zeros 0000 também. E agora posso usar a ferramenta de encaixe. Agora vai estalar perfeitamente. Então, assim, agora estalando perfeitamente. Então este mais fácil de apenas colocá-lo em
000, 000, 000, é no meio do do nível. E agora você pode arrastar até aqui e fazer as paredes. Você pode segurar Alt e depois mover para duplicá-lo, colocar a parede aqui. E então você pode fazer o chão maior, se você quiser. Esta é a área inicial do nível. Então talvez eu possa fazer isso um pouco. Maior. E, a propósito, eu já criei o nível. E eu vou mostrar a vocês, eu não vou
projetar todo esse vídeo porque isso vai levar horas. Talvez. Se eu, se eu não os tenho em minha mente, o que eu quero criar. Mas eu já criei um nível, mas eu só quero mostrar como você pode começar e fazer isso. Então eu odeio pular em tutoriais e você não aprende muito. Então vamos tentar fazer a primeira parte juntos. Então agora temos que construir essas paredes. E o que eu posso fazer aqui, vamos segurar Alt novamente e mover para duplicar isso. Por exemplo, digamos que você queria, você queria ter algum tipo de quarto aqui. E vamos duplicar essas paredes também. Digamos que você queria construir algo aqui. Por exemplo, posso pegar essa caixa de grade novamente. E o que posso fazer é movê-lo para baixo para que tenha sido necessário o chão. Agora você pode torná-lo maior assim. Então é como uma ponte. E talvez apenas fazer mais um, assim como. Então, você escolheu como você quer criar o seu nível que depende de você. Talvez você queira cortá-lo aqui, e então você realmente quer girá-lo. Assim como este. Então seja criativo com a criação do nosso nível. Não importa no final o que você cria, nós só queremos um nível e este nível que vamos programar para que o jogo está funcionando. Tecnicamente, não importa o que você cria, mas é sempre divertido ver níveis criativos e ver o que as pessoas estão fazendo. Então, por exemplo, algo assim. E isso não parece bom, na minha opinião este ano. A parte do chão queremos que algo aconteça. Então eu vou clicar em E segurar Alt e arrastar aqui para duplicar esta parede. Então mova para baixo. E eu vou movê-lo em chiclete. Eu preciso mover isso um pouco mais. Eu vou, a propósito, estou clicando em Controle e clicando em todas essas partes para selecioná-las todas. E eu posso movê-los um pouco para trás assim. Então acho que fica melhor se tivermos algo aqui embaixo. Não gosto que o chão seja cortado assim. E a mesma coisa que podemos fazer com este, eu vou movê-lo, duplicar isso. Ok, e eu quero novamente segurar Alt e descer. Quero duplicar o chão e talvez colocá-lo aqui. Então, quando o jogador cai neste buraco, o nível ou reset, e ele vai colocar o jogador no ponto de verificação que eles estão em. Então vamos criar pontos de controle também. E novamente, eu só vou reescalonar ou apenas tentar torná-lo adequado e tentar criar o seu nível. E ele pode duplicar, continuar duplicando, criar o nível. Assim como assim. Eu posso duplicar isso também. Simplesmente assim. E este está realmente indo, eu posso realmente excluir isso. E eu posso fazer isso tão longo quanto este. Apenas faça com que seja mais longo. Assim como este. E eu posso fazer o mesmo aqui, assim. Então agora você tem um nível e os Balcãs começam aqui, por exemplo, e você tem uma parede, basta escrevê-lo atrás dele para que a bola não caia. Vou colocá-la aqui, por isso encerra assim. Então a bola começa aqui nesta sala aqui. E pode mover-se e mover-se sobre esta ponte. E então você pode apenas tentar fazer o nível Daniel como quiser. Este é o princípio principal. Basta manter a cópia colando código colando. E também uma coisa legal de se fazer, você tem esse anel aqui também. Pode fazer túneis, se quiser. Certifique-se de que a bola sirva bem aqui. Então talvez fazendo o túnel assim. E ele pode realmente usar a ferramenta de escala também para este. Então ele pode torná-lo maior e realmente fazer algum tipo de,
um túnel para passar. E um complexo ao redor. Talvez você queira colocar uma parede aqui, apenas certifique-se de que não é o, não está se sobrepondo assim porque LC vai fechá-lo dentro da esfera. Então, só tentei ver se isso parece bem. Às vezes algo não parece bom e eu vou simplesmente deletar novamente. Mas às vezes você pode tentar do seu jeito e ver se parece bem. Vou colocá-lo no meio. Assim como este. Copie isso e veja se está no meio. Oops. Sim, então é no meio. Talvez você possa fazer assim. Ou talvez você queira adicionar, duplicando isso. Talvez você queira adicionar uma parede aqui também. Simplesmente assim. Certo, então você pode fazer seu nível do jeito que quiser. Para ser criativo. É sempre divertido criar um nível em que você gastou tempo. E você sempre pode tentar usar todas essas estruturas de grade, tirá-las, é amarrado para escalá-las e ver o que acontece. Talvez você possa adicionar algum tipo de artes
como que vai parar sua bola e você tem que evitar essas partes como obstáculos. Então é assim que você constrói um nível se quiser ser criativo, por favor. Fico feliz em ver o que você fez. Você pode vinculá-lo no servidor Discord ou vinculá-lo em nossas mídias sociais. É muito legal ver o que as pessoas criam. E deixe-me ir em frente e mostrar-lhe o que eu criei para o nível. Então aqui está o nível que eu projetei. Então este é o primeiro nível. E você começou aqui com a bola como criamos antes. E você só tem um buraco básico aqui. E novamente, isso é exatamente como o que aprendemos antes. Isto é apenas uma parede e cercando o piso plano aqui. E esta é a parede que também criamos no último. Então, apenas caixas básicas e básicas. Eu só escalo como antes. Eu tenho este nível e eu tenho a ponte que é apenas a parede novamente. Mas eu coloco aqui e você passa por esta ponte e eu tenho em torno que você voa sobre 0, voa sobre esta, esta parte aqui, que também é uma parede. E também o chão aqui e a parede aqui. Vou clicar em Control Z para voltar e mudar o material para que pareça escuro. E assim, em vez de azul, você pode clicar em uma dessas paredes que você colocou para baixo. E você pode ver esta lupa. E este é o material que realmente faz a aparência desta malha. Então você pode ver aqui que este é o material azul. E para ir a este material, você pode realmente clicar nesta lupa que diz Procurar. E isso o levará diretamente a ele para que você não tenha que entrar aqui e procurar por ele. Então, clicando na lupa, ele irá mostrar-lhe o que está usando. Você pode ver aqui há um preto padrão ao lado dele, e isso é realmente o que eu estou usando para este. Então, o que você pode fazer para mudá-lo como você pode apenas clicar e arrastar e ele pode colocá-lo em qualquer, qualquer bagunça que você quer usá-lo em. Então, por exemplo, se eu quiser que você vire esta parede, eu posso clicar e soltar. E você pode ver que fica preto. Se eu quiser torná-lo padrão novamente, eu posso deixar isso ou azul em cima dele. E você pode tentar usar todos esses diferentes. Então há um verificador legal que eu realmente usei para o nível 2. Podemos ver que isso é muito legal também. Próprio você tem todos esses padrões diferentes que você pode usar. Ok, então eu vou voltar para este azul, e eu estou movendo este 12 preto para este, para este RAM, porque eu acho que é um pouco difícil vê-lo assim. Então, é mais interessante torná-lo preto aqui. Então você voará sobre isso e aterrissará aqui. E você tem essa ponte menor de novo. E aqui eu quero fazer uma poça para ir para o nível 2. Então este é um nível muito simples. E para fazer vários níveis você realmente, você realmente não quer entrar neste mapa e fazer um novo nível. O que você quer fazer é apenas criar um portal aqui e ele irá relatá-lo para o próximo nível, mas na verdade não é um verdadeiro próximo nível. É aqui do outro lado do mapa. Então ela vai criar vários níveis. Basta criá-los dentro deste nível. Certo, então só dentro do nível do hospedeiro, não entre aqui e faça um novo nível. Então aqui temos o nível 2, ele vai derramar tubo, então esta parte aqui. Então todos nós começamos aqui. E então você vai passar por cima desses cilindros. Estes cilindros, você pode ver aqui, se eu clicar na lupa, ele vai me levar para a pasta cabeça cabeça chamado nível tutorial. E dentro dele ver aqui onde estava apenas alguns queriam encontrá-lo. Mas nível de tutorial. E, em seguida, dentro das instâncias materiais, então você tem todos esses materiais de aparência legal que você pode arrastar e soltar em cima disso. E aqui será o último portal. E se você entrar nesta garrafa, você vai chegar à tela final. Então você tem apenas dois níveis aqui. E, novamente, é muito útil fazer a câmera um pouco mais rápida se você tiver um nível maior, para que ela possa se mover mais rápido aqui. Então nós temos o nível 1, nós passamos pelo portal, nós temos o nível 2, nós passamos pelo portal e então você vai chegar à tela final, que é aqui. Então este é o nível e, em seguida, este é apenas algumas paredes básicas em torno de um avião. Então este é o básico que eu fiz. Você pode criar quantos níveis quiser. A programação que vamos fazer será, vai caber toda a quantidade de níveis que você quer. Por exemplo, se você quiser fazer 10 níveis, tudo depende de você. A programação vai funcionar para todos os dez. Mas agora só para fazer isso não muito longo, eu fiz dois níveis. E eu fiz uma tela final, que a bola vai aparecer aqui no final da tela. Então é assim que você desenha o ambiente. E, por favor, vá em frente e seja criativo. Adoro ver o que vocês estão fazendo. Às vezes você faz um trabalho melhor do que eu. Alguns de vocês são muito, muito criativos. E se você não quer fazer um nível completo, tudo bem para você. Se você, se quiser se concentrar mais na programação, tudo bem também. Isso não importa. E se você quiser ser totalmente criativo, por favor, vá em frente e publique-o em nosso servidor de discórdia. Na verdade, quero ver o que vocês vão criar. Então vamos em frente na próxima lição e dar uma olhada na iluminação.
13. Iluminação do ambiente: Agora é hora de dar uma olhada na iluminação. Então, antes de fazermos qualquer iluminação, eu queria ir ao World Outliner. Então é aqui que todas as minhas coisas estão dentro do nível. E o que eu quero fazer é apenas organizar um pouco para que você
possa ver são pastas diferentes que está parecendo estranho. Indo para clicar em um, mantenha a tecla Shift pressionada, clique no outro aqui. Vou movê-lo para dentro desta pasta 3D. Então arrastá-lo para dentro daqui. E eu também vou clicar neste. Clique em Shift, clique no último. Agora também deve soltá-la nesta pasta. E eu vou apagar essas pastas que eu tenho. E uma coisa melhor a fazer na verdade é dividi-los em níveis. Então o nível um deve estar em uma pasta de nível 1 e assim por diante. Mas está tudo bem por enquanto. Não estou muito preocupado. E agora temos alguma iluminação, então temos a fonte de luz. Isto é o que começamos como padrão. Então esta é a luz do sol que temos. E também temos a clarabóia e o medo do céu. E para fazer o deslizamento, se você não tê-los dentro de seu nível, você pode ir em frente e clicar em Criar aqui. E nas luzes você pode criar a luz direcional, que já temos. Esta é a luz do sol. E também pode criar a clarabóia, que é o, sim, ele fez isso história fixa a clarabóia. E para criar essa esfera do céu, você tem que fazer outra coisa. Você tem que ir para dentro das configurações aqui. E você tem que entrar no conteúdo do show engine. E quando você clica nisso, vamos minimizar todas essas pastas. Pode realmente ver, agora você pode ver alguma pasta de conteúdo mecanismo. E se você clicar nesse e você realmente procurar aqui ou no céu, então você vê algo chamado esfera do céu BP. E você pode realmente usar este aqui para ter algum céu aqui em cima. Então o que você pode fazer aqui para começar é apenas clicar
na fonte de luz aqui, esta é a luz do sol. Então, clicando nesse, vou clicar em E para girar. E nós vamos girá-lo aqui para apenas dar uma chamada. Basta encontrar um local legal ou o que você quer que seu nível para olhar como. Eu acho que essa rotação do sol é muito legal. Ok, então isso é muito legal. E antes de fazermos qualquer outra coisa, você pode ver aqui, quando eu vou embora, fica mais escuro. Quando eu me aproximo, lentamente se torna mais leve. E não queremos isso no nosso jogo. Isso vai ser muito irritante para o jogador
de repente ficar mais escuro e de repente fica mais leve. Isto não é, não queremos que a iluminação seja tão realista. Então o que queremos fazer é queremos, e na verdade isso é para a próxima lição. Queremos criar um volume pós-processo, mas temos, temos que criá-lo agora, a fim de fazer alguma boa iluminação. Então vá para dentro dos efeitos visuais e clique no volume pós-processo. E que post, volume pós-processo. É como se você quiser editar imagens dentro do Photoshop. Então você faria a classificação de cores, você edita as cores da imagem. Este é o volume pós-processo aqui. Então você pode, você pode editar cores dentro deste nível, mas vamos falar sobre isso mais detalhadamente na próxima lição. Por enquanto, eu só quero remover essa exposição, que torna o sol mais claro e mais escuro e assim por diante. Então isso está realmente tornando impossível para nós iluminar o mapa. Então, clicando na exposição dentro do enquanto clica no volume pós-processo. Clicando na exposição, levando o brilho mínimo e o brilho máximo para a exposição. E pode definir ambos para um. E você pode ver que nada aconteceu. E isso é porque temos que descer. E aqui temos algo chamado extensão infinita. Porque agora, deixa-me abrandar a câmara. Agora o volume pós-processo só funciona se eu entrar no volume porque ele agora mudou. Mas se eu sair do volume
, não vai funcionar. Vai ser leve entrando de novo, indo para o trabalho. E usando a extensão infinita, isso significa aplicar isso o que estou fazendo em todo o mapa. Então, se eu clicar nele, você pode ver que agora parece mais normal. Agora o mapa não ficará mais escuro. Se eu for embora, ele vai ficar na mesma iluminação. Isto é o que queremos. Certo, então agora temos isso. E você pode tentar entrar na luz solar ou fonte de luz aqui e ajustar a intensidade da luz. Então agora você pode, você pode editar a intensidade. E eu acho que este deslizamento é perfeito. Na verdade, não quero editar nada. O que eu quero editar no entanto, eu acho que estas, essas sombras são escuras dentro do meu nível. Então eu quero torná-los um pouco mais leves. E o que eu quero fazer é dentro do World Outliner, clicar nestas clarabóias. E dentro daqui temos algo chamado Escala de Intensidade. E você pode ver se, se eu escrever três, por exemplo, essas sombras serão muito mais leves. E eu não quero que eles sejam muito escuros. Quero que as sombras sejam claras para que possamos ver alguma coisa. Não os quero assim. Agora vou colocar um 1.8. Acho que este é o valor que eu tinha antes. Tente testá-lo, ou talvez possamos escrever dois. Então esta é uma iluminação muito legal. Talvez se eu for aqui e ver como é, acho que dois está bem. Então é isso que podemos fazer. Então, agora a clarabóia é muito mais leve. Isto foi antes, e isto é agora. E vamos clicar em Salvar tudo. E eu também quero adicionar um pouco de iluminação aqui porque isso é muito escuro e eu, na verdade, você terá um portal aqui mais tarde. Então, quando eu quero fazer é ir em frente e criar luzes e criar um React ou luz vermelha. Então aqui está o reator. E eu vou diminuir a velocidade da câmera. Isto é muito rápido. E clicando em g para que eu possa ver o que é a iluminação. Então é como, como aqui, então ele está deslizando naquela direção. E eu vou diminuir o tamanho ou as alturas aqui, apenas algo assim. E talvez diminuindo a intensidade. Você pode brincar com esses raios e ver o que é, o que está bom para o nível. Usar as alturas de origem pode ser melhor ter essa altura. Então, não é muito duro nos sites. E mar infinito. Talvez só então tensidade em geral. Certo, algo assim. Por enquanto, está tudo bem. E a última coisa é que teremos um portal aqui, e eu realmente também quero alguma iluminação aqui para que você possa ver o portal. Então vá em frente e crie, eu vou criar um holofote. Então, tecnicamente, não temos um holofote realisticamente, mas eu só quero colocar um dentro daqui para podermos ver a foto no final. E acho que está tudo bem. E então aqui novamente, você pode ajustar a intensidade dele. Você pode mudar o raio, você pode mais g para realmente ver o cone mudando. Então este é o quão longe a luz está indo e como,
quão grande é o cone interno para suavizá-lo, quão grande é o aggrecan e assim por diante. Mas acho que vou deixar que seja assim. Isto é bom. Vou clicar em Arquivo e Salvar tudo. E foi isso para a iluminação. Então criamos uma luz solar que tínhamos. Temos uma clarabóia. E você pode tentar, se você tiver manchas escuras dentro de seu nível, você pode usar, você pode usar uma luz pontual, um holofote, uma luz vermelha para iluminar seu ambiente. Foi isso por enquanto. E vamos falar sobre o volume pós-processo na próxima lição.
14. Lightmass e volume: É hora de falar sobre o volume pós-processo. E antes de fazer isso, deixe-me ir em frente e esconder a pasta de conteúdo do mecanismo novamente. Então, clicando em Configurações e clicando em Mostrar conteúdo do mecanismo, isso irá ocultá-lo. E a próxima coisa que eu quero fazer, você pode ver que eu fechei o projeto desde a última lição. Então eu quero abrir o mapa novamente e lembrar de fazê-lo. Lc estará dentro do mapa vazio. E eu vou mostrar-lhe mais tarde sobre como você pode mudar o mapa para ser OK para abrir por padrão neste mapa de bola de velocidade. Clicando duas vezes no mapa, então estou dentro do mapa do jogo. Portanto, já criamos um volume pós-processo na última lição, se você se lembra, e se você não assistiu ao último vídeo apenas para o caso de criar um volume pós-processo clicando em Criar e efeitos visuais. E o volume pós-processo também pode encontrá-lo dentro de volumes. Existe o volume pós-processo. É a mesma coisa. E quando um volume pós-processo é, você pode imaginá-lo exatamente como no Photoshop. Quando você coloca uma imagem dentro do Photoshop e você vai editar as cores dessa imagem. Isto é, isto é o que um volume pós-processo é. Você pode editar as cores da imagem dentro do jogo, assim pode editar a aparência do jogo. Você pode editar a saturação da aparência, o brilho e assim por diante. Então é isso que vamos fazer. Então já colocamos esse volume pós-processo. E o que fizemos no último vídeo, a única coisa que fizemos foi entrar na exposição e pegar o brilho mínimo e máximo e colocá-los em um só. E isso é porque se eles não forem um, a iluminação vai mudar o tempo todo quando nos movermos e não queremos isso. E você também se lembra de clicar na extensão infinita não vinculada. E se você não fizer isso, se eu desmarcá-la, você pode ver que a luz será forte novamente, mas ela só funcionará se eu entrar no volume pós-processo pode ver agora ele diminui. Se eu sair dele, será alto de novo. Então, se este é o uso disso, às vezes digamos que você tem uma caverna dentro do mapa, dentro do seu jogo ou outra coisa. E você só quer que o, você só quer que a área específica seja afetada por esta cor. Digamos que você entra em uma casa e tudo o que vê é roxo. Você pode fazer isso com um volume pós-processo. E digamos que eu escalei o tique-taque da ferramenta de escala. Escalo-a apenas para esta área. E para esta área só diminuirá a luz, por exemplo. Então este é o uso dele. Se você não quiser que isso afete todo o mapa, você pode afetar áreas específicas com iluminação específica que desejar. E você pode, você pode inserir quantos volumes pós-processo quiser dentro do mapa. Mas para isso queremos afetar todo o mapa. Então, clicando em extensão infinita, e não importa esforço e agora dentro ou fora
dela, afetará todo o mapa. Certo, então ajustamos a exposição. E a próxima coisa que eu quero fazer dentro daqui é realmente afetado o equilíbrio de brancos. Você pode ver que temos flor. Isto é, se você quiser florescer ou não. Então, se eu colocar isso ao júri pode ver, agora parece menos sombrio. E se eu colocar “oi “, você pode ver que fica me chupado. Eu só estou indo para o valor padrão não importa para mim agora. E também temos efeitos de imagem. Isso também é muito legal. Você pode adicionar uma vinheta e ver que a vinheta é apenas estes, assim como no Photoshop para adicionar como um borrão preto ao redor da imagem para torná-la mais cinematográfica. E você geralmente pode jogos tê-lo para 0. Também tenho uma cauda de 200 na fazenda. Porque algumas pessoas acham que é irritante que você tenha algum tipo
de borrão escuro em torno da imagem para seu jogo. Mas este é o padrão. E podemos colocá-lo para 0,2 só para que não seja muito forte. E este é o balanço de brancos. Então o balanço de branco é, você pode editar esta temperatura. Então você pode ver se eu baixar a temperatura, vai ficar mais frio, fogo mais alto a temperatura. Será mais quente. E baixo. Pegue a flor. Floresce bem. Ok, então esta é a temperatura que você pode editar dependendo do olhar que você está tentando alcançar. E por padrão são 6.500. Então eu vou abaixar um pouco. Eu queria um pouco mais frio, então talvez 5.800. E o que eu gosto de fazer agora é um pouco mais frio. Gosto de aumentar um pouco essa tonalidade. Você pode ver você e eu colocamos o 10 dub, torna-se mais púrpura. Acho que vou colocar um pouco para cima para que não pareça muito roxo, para azul, desculpe. Talvez haja 0,1. Então, se eu desmarcar e Ticket para vários, eu não sei se você pode vê-lo do seu lado, mas é uma diferença muito ligeira. Então fazer isso e eu acho que vou baixar o Blumer um pouco, isso está me irritando. Então 0.3, eu acho que está tudo bem. Então esta é a única coisa que eu quero fazer com o volume pós-processo, mas você pode ir em frente e ver se você quer fazer mais. E o que você pode fazer também é dentro do global, você pode editar a saturação de, por exemplo, se você quiser aumentar a saturação e torná-la muito saturada, eu vou colocá-lo de volta para um novamente. Você pode editar o contraste, por exemplo. Então, dependendo do tipo de olhar que você quer para o seu jogo, você pode fazer isso, conseguir isso aqui. E lembre-se também se, se as sombras para você estiverem muito escuras, você sempre pode entrar na clarabóia. E dentro da clarabóia. Lembre-se que você tinha a escala de intensidade e você sempre
pode torná-la mais alta se estiver muito escuro para você. E se você quiser tê-lo um pouco mais leve. Então isso é o que temos agora. E acho que está tudo bem. E se precisarmos de fazer mais ajustes no futuro, faremos isso. Mas, por enquanto, acho que está tudo bem, e vamos tentar dois, prossiga. O que teríamos? Então, apenas para ter certeza no final de que tudo é construído corretamente para a iluminação, podemos ir em frente e em vez de construído, você pode clicar em qualquer construir iluminação apenas ou construir todos os níveis. Vou clicar em Construir todos os níveis. Então, nos cintos, tudo. E isso fará a iluminação para as malhas que você tem dentro do seu nível. Então parece correto. E quando você faz isso, diz que nenhum volume de importância foi encontrado para a cena. Então eu vou te mostrar o que você pode fazer aqui. E isso também é importante que você coloque importância, importância leve, volumes. Então, clicando em Criar em volumes, você tem algo chamado massa leve, certo? Volume de importância de massa. E este volume aqui, você pode tentar dizer ao jogo quais partes do mapa ou quais partes deste nível você quer se concentrar em relação à iluminação. Então eu vou redimensioná-lo tão grande quanto este nível e também re-dimensioná-lo e o eixo z para que ele cobre todo o nível. E assim você pode fazer isso e também escrever sua cópia. Talvez eu só, eu vou realmente apenas escalá-lo todo
o caminho e cobrir tudo em vez de fazer múltiplos. Então, só cobrindo tudo. Eles não têm que renderizar mais do que o que você precisa aqui. E o prédio está completo. E isto é o que temos até agora. Então agora nós criamos a iluminação e temos o volume pós-processo, e eu acho que está começando a ficar ótimo. Agora não temos mais coisas para fazer em relação ao design do jogo. Então vamos realmente ir em frente na próxima seção e programar o jogo e tentou fazer tudo se mover e trabalhar.
15. Introdução para impressão Blueprint: Olá e bem-vindo a esta seção onde vamos realmente programar o jogo. E quando digo programação, estamos nos concentrando em Blueprints, que é a linguagem de script visual no lado do Unreal Engine 5. Agora, nesta lição, eu quero explicar a vocês a interface
do usuário dos blueprints ou um editor de blueprint. E se você assistiu meu outro vídeo sobre os projetos para iniciantes, você provavelmente já sabe e pode pular para o próximo vídeo. Mas deixe-me ir em frente. Se você não viu o editor de blueprints antes. Deixe-me ir em frente aqui e dentro de plantas e clicar em diagramas de nível aberto. Clique nele. Você vai entrar nesta visão e é aqui que vamos trabalhar principalmente. Então, dentro desta vista aqui no meio você pode ver que temos algumas notas, e esta é a peça inicial. Então aqui você pode dizer ao jogo o que você quer fazer quando você começar a jogar o jogo e quando você sair de uma caneta de execução. Pode ver aqui alguns executar, as ações executáveis aparecerão. E aqui temos um monte de funções que podemos adicionar e
podemos dizer ao jogo o que realmente fazer agora. Então, parece muito confuso quando você abre pela primeira vez. Porque olha para ele e depois pensas, como é que vou lembrar-me de tudo isto? E você não precisa se lembrar de tudo isso. Ele virá devagar. Não vamos nos preocupar com isso por enquanto. Então você pode arrastar para fora daqui e você pode escolher uma função que você deseja adicionar. Assim, por exemplo, o muito simples que você
aprenderá no início é a string de impressão, que imprime um texto na tela. E ele vai dizer olá sempre que você começar a jogar o jogo. Então, se eu compilar, e é muito importante compilar porque então você pode pensar nisso como limpar o código e lembre-se de salvar. E também pode clicar em Reproduzir. E você pode ver que diz “Olá “aqui em cima. E se eu clicar em parar e jogar novamente, ele diz em baixo aqui em cima. Agora é assim que é usado. Este é o gráfico de eventos. Aqui é onde você vai escrever todas as suas plantas. E à esquerda temos coisas diferentes. Temos os gráficos aqui, temos as funções. Então você pode criar suas próprias funções. Então, se eu escrever string de impressão novamente, esta é uma função, você pode ver que diz f, isso é chamado de função. Assim, as funções são anexadas a eventos. E assim um evento irá conduzir o código. Portanto, tem que haver um evento para que o código seja executado. E as coisas que estão sendo executadas são as funções que você pode criar suas próprias funções. Não precisamos disso agora. Vamos falar disso mais tarde. E você pode criar macros que são basicamente como funções, como esta. Mas a diferença é que você pode ter funções cronometradas dentro dele. Então, por exemplo, se você tiver o nó delay, isso atrasará o código por, por exemplo, dois segundos, e então ele irá imprimir outra string. Se eu disser string de impressão, digamos novamente e clique em Reproduzir. Então ele vai estreitar vai dois segundos antes que ele diga novamente. Então esta é a função de atraso e crença são cronometradas para funções. Você pode ver que há um relógio aqui em cima. Funções temporizadas não podem ser recolhidas em funções. Então, se você clicar com o botão direito do mouse em um glutão para funcionar, ele vai dizer colapso para falha de função. E isso ocorre porque as funções temporizadas não podem estar dentro da função. Você não pode colapsar em uma função, você só pode recolhê-la em uma macro. E isso será possível para macros são apenas como funções, mas apenas esta ligeira diferença. Bem, deixe-me ir em frente e deletar de novo. E você tem variáveis, e chegaremos a isso mais tarde. E temos despachantes de eventos que são simplesmente como eventos. Temos o botão Salvar, temos o botão Localizar para que você possa procurar o código do blueprint que você escreveu. E especialmente se você tem uma longa linha de código, ou se o seu jogo, se você está trabalhando há seis meses e agora você vai procurar por algum código que você já escreveu antes. Nós temos as configurações de classe. E há algumas coisas que podemos editar. Não se preocupe com isso por enquanto. Nós temos alguns padrões de classe e não se preocupe com isso por enquanto também. Você pode ver que existem alguns padrões para cada blueprint. E ele pode novamente clicar em jogar para jogar o jogo que você tem. Então este é simplesmente o editor de blueprint e nós vamos trabalhar aqui. Então eu vou fechá-lo. E na verdade, só quero te mostrar outra coisa. Então, dentro desta pasta de blueprint que eu fiz, então clique com o botão direito ,
crie uma nova pasta, e eu chamo os blueprints para que ele fique vazio agora. E dentro desta pasta você pode clicar com o botão direito do mouse. E você pode ver que há algo chamado Classe Blueprint. Também pode encontrá-lo dentro de plantas. Toda a classe Blueprint. R. Clicando sobre isso, você pode ver diferentes classes e eu quero explicar para você na próxima lição o que são essas classes.
16. Cursos de impressão Blueprint: Antes de prosseguirmos, vamos falar sobre as aulas. Então radical ocorrer na pasta blueprint e clique na classe Blueprint. Isso criará uma classe blueprint. E então você vê essa janela aparece e temos classes
diferentes que podemos recriar dentro de blueprints. Então temos algo chamado ator. E um ator é apenas um objeto que pode ser colocado dentro do nível. Assim, por exemplo, quando criamos o portal que fará com que a bola apareça no próximo nível, isso é um ator. E por exemplo, se você tiver um jogo de RPG e você colocar algum tipo de loja de moedas ou uma loja de armas. E esta arma afiada consiste em um sinal de madeira e o edifício e assim por diante. Este é um ator é apenas um e um ICM ou um edifício ou o que pode ser colocado dentro do nível. Esta rampa também pode ser um ator. E então temos sobre e sobre é um ator que pode ser possuído e receber entrada de um controlador. Você quer fazer algo que possa se mover. Você terá que usar um lago porque sobre pode ser possuído, podemos realmente dar-lhe entradas, podemos movê-lo, podemos usar o teclado para mover este ponto. E, por exemplo, a bola que vamos fazer vai ser o ponto. Não podemos criar um real a partir da bola. A bola que vamos mover com o nosso teclado. Não podemos fazer disto um actor. Temos que fazê-lo como em, caso
contrário, não pode receber entrada. Então temos um personagem. Um personagem é um tipo de pornografia que inclui a capacidade de andar por aí. Então agora o personagem é, na verdade, um tipo de lagoas. Então esta é a classe principal, esta é a subclasse. Assim, o personagem, você pode ver o personagem também pode receber entrada. Também podemos fazê-lo funcionar. Então, qual é a diferença? E quando, quando você vai fazer sobre e quando você vai fazer um personagem? Então a maneira que você tem que pensar sobre isso é, você tem um personagem com dois braços e dois lagos que podem andar por aí? Se assim for, então você quer fazer um personagem. Se você não, por exemplo, nós temos uma tigela com a qual vamos correr, então você vai fazer um ponto. Então nosso personagem é como um personagem real. Dois braços, duas pernas podem, pode andar por aí e assim por diante. Então, por exemplo, se estamos fazendo um ataque Conda ou estamos fazendo um World of Warcraft. Estes caracteres são, na verdade, caracteres e não, não dois pontos. E tem a habilidade de andar por aí. Assim, ele também recebe entrada de um controlador. Agora temos o controlador do jogador, e o controlador é um ator responsável por controlar sobre, usado pelo jogador. Então, o controle do jogador, não
é a mesma coisa que o controle que você tem em sua casa, seu controle Xbox ou controle PlayStation. Este controlador é aquele que codificamos para dar movimento ao personagem ou ao ponto. E eu mostro-te mais tarde. Então, através do controlador, eu costumo fazer toda a lógica do movimento. Então, se você clicar em W no teclado, você se move e também faz a interface do usuário dentro do controle do player. Então você tem que pensar que cada peão que você faz, um, cada personagem que você faz
será, estará recebendo entrada por este controlador jogador. Então temos o Modo de Jogo. E novamente, o modo é aquele que está controlando as regras. Assim, o modo de jogo baseado define o jogo que está sendo jogado, suas regras, pontuação e outras facetas do tipo de jogo. Então, por exemplo, se você tiver um modo de jogo chamado Capture the Flag, você vai codificar todas as regras dentro deste modo de jogo. Então, por exemplo, quantos pontos você ganha por entregar a bandeira e assim por diante. Quantos são segundos ou minutos? A rodada dura? E esses outros componentes aqui, não se preocupe com eles por enquanto. E vamos trabalhar com todos eles quando
vamos criar nosso primeiro jogo e segundo jogo. Então não vamos nos preocupar com eles por enquanto. Vamos, vou explicar cada um à medida que avançamos.
17. Curso de impressão média global vs Blueprint: Então, antes de criarmos nossa primeira classe de blueprint, deixe-me realmente dizer-lhe a diferença entre o Level Blueprint aqui e a diferença entre este e a classe Blueprint. Ou se eu criar um ator de blueprint, por exemplo, apenas um rápido e eu clique duas vezes. E você pode ver que eu também tenho este gráfico exatamente como antes. Se eu clicar de volta para o, para o plano de nível, você pode ver que estes são dois gráficos. Há algumas pequenas diferenças entre o plano de nível e o ator de blueprint. Por exemplo, você pode ver que esta janela não tem a mesma aparência que aqui. Mas qual é a diferença? Quando vamos usar o Level Blueprint e quando vamos usar a classe blueprint? Assim, a principal diferença entre eles está dentro do Level Blueprint. Este é o código que será específico para este nível que você está dentro. Então, se eu ir em frente nos mapas e eu criar um novo nível, este código, que é escrito aqui especificamente dentro desta bola de velocidade mapa, será apenas para a bola de velocidade do mapa de alto grau novo nível e ir para dentro deste novo nível. Este código aqui não será levado para o próximo, para o próximo nível. Então você pode pensar, mas por que você faria isso assim? Por que você não, por que você não escreve todo o código dentro de uma classe de blueprint, que será realmente transferido para o próximo nível. E a razão para isso, talvez às vezes você quer código específico para um nível específico. Por exemplo, digamos que para este nível especificamente chamado bola de velocidade do mapa, talvez você queira que a velocidade seja cinco vezes mais rápida do que o próximo nível. Para que a coisa que faz a bola cinco vezes mais rápido, você poderia codificar dentro do Plano de Nível porque é específico para este nível, ele não será levado para os próximos níveis. Então é assim que você tem que pensar sobre isso. Se você tem algo muito específico para este nível, que só deve estar neste nível, você pode codificá-lo dentro do Level Blueprint. Se você tiver código que você deseja ser transportado para os próximos níveis dentro do jogo. Você tem que fazer isso como uma classe Blueprint.
18. Variáveis: Agora, antes de continuar e realmente começar o jogo totalmente, Vamos realmente falar sobre algo chamado variáveis. E isso é muito importante de entender porque é um dos principais conceitos de programação. E então vamos em frente e clique em Blueprints e abra o Level Blueprint. Então aqui, podemos excluir esses eventos. Não precisamos deles agora. E eu quero explicar a vocês quais são as variáveis. E você pode ver aqui à esquerda, temos algo chamado variáveis. E quais são as variáveis que você pode imaginá-las como contêineres. E eles podem conter informações. Por exemplo, eles podem conter informações sobre o nível de seu personagem se você estiver jogando um jogo de RPG. Eles podem conter, se o seu personagem está morto ou não. Eles podem conter quantas moedas você carregou algumas moedas alusivos dentro de seu jogo. E ele também pode conter quanto tempo você tem da
sua rodada se você estiver jogando um jogo de tiro e assim por diante. Portanto, variáveis são muito importantes para entender e eles são o conceito principal ou um dos principais conceitos de programação. Eles são apenas contêineres que contêm informações para qualquer informação que você está armazenando neles. Então, para criar uma variável, você pode simplesmente clicar neste botão mais. E tudo isso cria uma variável e você pode dar um nome a ela. E o primeiro que podemos chamar de moedas, e assim por diante. Agora você mudou um nome e você pode ver aqui à direita, nós também temos detalhes. Você poderia ter mudado o nome deles também aqui para a direita. E então você tem que escolher o tipo de variável. Você pode escolher a partir daqui ou você pode escolher o tipo de variável a partir daqui. E você pode ver que temos todos os tipos de variáveis e eu vou passar por cada um deles. Então, por exemplo, aqui no início temos um booleano. E o booleano é apenas algo que é verdadeiro ou falso. Por exemplo, nós poderíamos, moedas não faria sentido para este booleano. Então vamos mudar o nome para este está morto, e eu costumo escrever B para booleano para começar com cada vez que eu tenho uma variável booleana. E eu posso escrever é que ADH, agora este booleano está armazenando se meu personagem está morto ou não. Então agora ele diz,
por favor, compile o blueprint antes que ele possa alterar qualquer coisa no valor padrão. Agora você pode clicar, Compilar e Salvar. E você pode vê-la agora que esta aparece. E um booleano é apenas um valor que é verdadeiro ou falso. Então você pode ver aqui agora que é falso. E se eu marcar, é verdade. Isso era verdade ou falso. E você pode escolher o que quiser fazer com isso. Então, por exemplo, deixe-me escrever os eventos de início do jogo. Agora tem o evento de início do jogo, e deixe-me escrever string de impressão para imprimir uma string para a tela, ou imprimir um texto para a tela. E deixe-me arrastar esta variável para que possamos clicar e arrastá-la para o gráfico de eventos. E agora você pode colocá-lo. Você pode obter a variável ou podemos definir a variável. Então agora eu só quero obter a informação desta variável. E eu posso realmente ligá-lo a esta string. E ele diz, eu vou converter essa variável booleana, booleana em uma string, que significa adicionar texto que eles podem exibir na tela. Então é isso que estou fazendo por você. É, ele está mudando o booleano em uma corda e está imprimindo para a tela. Então, agora, quando eu clicar em Reproduzir, eu posso ver que ele diz falso. Então agora está dizendo falso. E isso é porque essa variável é realmente falsa agora. E bilhete FI e clique em Jogar. E vai dizer que é verdade. Uma variável booleana é e sua fonte. Por exemplo, se você tem um jogo de tiro, pode armazená-lo se você está segurando uma arma agora ou não, e você pode usar essa informação para algo. Então o outro é chamado a. o, os outros três na verdade eu só queria fazer rapidamente é o inteiro. E um inteiro é um valor numérico. Então, por exemplo, aqui faz sentido chamá-lo de moedas porque moedas são números. E podemos compilar para ver o valor padrão. E este é apenas um valor numérico. Por exemplo, eu tenho 25 moedas. Então eu posso tentar obter essa variável e colocá-la aqui. E se eu imprimi-lo, ele vai dizer 25. Então o próximo que quero fazer é um carro alegórico. E um flutuador também é um valor numérico. Mas tem decimais. Você não pode ter decimais com inteiros, mas você pode ter decimais vai flutuar. Portanto, se você tem um número que precisa de casas decimais, você não pode usar um inteiro porque ele não tem decimal. Então, se eu escrever decimais aqui
, não aceitará. Então aqui no carro alegórico, por exemplo, queremos o peso do personagem. E aqui, por exemplo, a forma como são 75,5 quilos. E aqui temos a variável fluida. Portanto, é um valor numérico com casas decimais. E um inteiro é um valor numérico sem casas decimais. E podemos criar algo chamado byte. Este é também um valor numérico, mas o valor máximo para uma mordida comigo arrastá-lo para fora e eu posso chamá-lo de estereótipos e eu vou explicar porquê. Eu posso apenas arrastá-lo para fora. E, a propósito, se você quiser arrastá-lo para fora e não clicar em Obter e Definir, você pode realmente segurar Controle enquanto está arrastando para fora. Isto irá obtê-lo automaticamente. E se você segurar Alt e segurá-lo e
soltá-lo, ele irá configurá-lo automaticamente. Então, em vez de soltá-lo e clicar em obter o nosso conjunto, podemos apenas segurar Controle para obtê-lo e segurar Alt e arrastar para configurá-lo. Então aqui, este byte também é um valor numérico, mas este só pode armazenar até 255. Então isso é muito importante saber. Isto. Por exemplo, não ser usado para moedas. Imagine se você tem 2000 moedas, você não pode ter o valor de 2000 aqui porque o número máximo é 255. Então a maneira como você usa a mordida é você apenas imagina para um jogo quando você está criando um mecânico, então você está pensando, esse valor vai ser maior que 255? Se não, provavelmente preciso de uma mordida. Um exemplo disso são os tipos de cabelo. Então, por exemplo, se você estiver em uma tela de seleção de caracteres e você estiver indo para escolher um tipo de cabelo. Você provavelmente não tem mais de 255 tipos de cabelo. Então, por exemplo, eu posso selecionar o tipo de cabelo número 58 e assim por diante. Então este é o uso de bytes. Então esses três são variáveis numéricas. Agora vamos criar um novo, e vamos falar sobre o texto, a string, eu vou criar três e no nome. Então agora temos uma string de texto e nome e estas são variáveis de texto. Então deixe-me chamar este, por exemplo, quando mensagem e o outro eu posso chamar Thurber nome. E o terceiro podemos chamar de nome de arma. E eu vou explicar para vocês o que cada um deles é. Vou segurar o Controle e arrastá-los para que você possa vê-los. Todos os três. Então, qual é a diferença entre estes? Estes são todos se eu compilar e clicar sobre eles. Agora você pode ver que eu posso realmente colocar em algum texto em todos os três. Então, qual é a diferença entre essas três variáveis de texto? Quando você deve usar isso ou isso, ou isso? Então, a coisa mais simples a pensar é o texto, que é o superior. Esta, esta é a variável de texto. A variável de texto que você pode traduzir para outros idiomas. Então, por exemplo, se você quiser que seu jogo seja em alemão, ou você quer que seu jogo seja em chinês ou japonês, ou em qualquer idioma que você queira que ele esteja. Você pode realmente traduzir as variáveis de texto. Esta é a única variável de texto que você pode traduzir. E se você usar uma variável de string, que também é um texto, você não pode traduzi-la para outros idiomas. Então você tem que ter em mente, se você quiser traduzir seu jogo para outros idiomas,
vá em frente e use um texto. Se você não tem nenhum plano de traduzir nada, você pode usar uma string em vez de um texto. E, por exemplo, este pode dizer, incrível, você ganhou. E agora se eu imprimi-lo nesta tela aqui, se eu apenas apagar este e colocar o booleano aqui em cima. Se eu imprimir esta mensagem quando, Eu posso clicar em Reproduzir e você pode dizer também mu 1. Ok, então aqui você pode escrever um texto e você pode realmente traduzir para outras línguas. Então a string aqui, você não pode traduzir para outros idiomas, mas você ainda pode usá-lo como um texto, assim como a variável de texto aqui. Então isso, e você deve ter sabido que esta é a variável string. E neste, a string de impressão é, na verdade, também uma variável de string. Então, se eu conectei isso não mudará nada. Assim como, por exemplo, se fizéssemos com este, ele converteu o texto em uma string. Ele não vai fazê-lo com este porque já é uma corda. Então eu costumo usar isso sempre que eu preciso traduzir meu jogo, por exemplo, e cauda de fazenda, que está no Steam. Eu traduzi meu jogo para 16 idiomas e eu tive que
adicionar as coisas que eu queria traduzir em uma variável de texto senão isso não era possível. E se você não quiser traduzir para nada, vá em frente e use uma string. E então você pode perguntar, por que eu não uso um texto para tudo o que eu tenho? Por que eu deveria me preocupar em usar uma string se eu posso apenas usar um texto? E isso é por causa da memória e otimização. E este usa mais memória que leva variável. Obviamente você não vai sentir nada se você acabou de sentir, digamos 100 deles. Mas se você tem milhares e milhares de textos, este está tomando muito mais memória do que a corda. Então vá em frente e use a string sempre que você é capaz de usar outro texto. E novamente, isso é para texto traduzível, e isso não é para texto traduzível. Agora o último que temos é o tipo de variável name. E aqui você também pode escrever algo. Por exemplo, eu posso escrever AK 47 e amostragem C vai. Agora eu tenho AK 47 e este é o meu nome de arma. E enquanto uma variável de nome é, você pode ver que também é um texto como os outros, mas uma variável nomeada. Não é possível modificar o texto dentro dele. Então, por exemplo, o nome do servidor, Digamos que eu criei um nome de servidor e foi chamado Rus para servidor dinamarquês. Digamos que criei este servidor dentro da ferrugem. E o que quero dizer com modificando é que você pode modificar string e você pode modificar variáveis de texto. E o que isso significa é, digamos, que eu não quero permitir que a palavra dinamarquês dentro do meu jogo porque talvez seja uma palavra ruim. Eu não sei. Então eu quero remover este dinamarquês e o que eu posso fazer com isso é que eu posso realmente, em tempo real durante o jogo, eu posso modificar o jogo até ele. Se encontrar o nome ou se encontrar a palavra polícia dinamarquesa, remove-o do nome do servidor antes de criá-lo. Então, quando o jogador atualiza para o servidor, é realmente apenas vai dizer Russ servidor 24, 7 aberto sem o dinamarquês. Então, desta forma, podemos realmente em tempo real, modificar cada variável X durante o jogo. Talvez você queira remover a última parte ou remover a primeira parte e apenas dizer que você tem uma. E você também pode modificar a variável string, mas com a variável name, você não tem nenhuma função para modificá-las. Então, se o seu nome aqui é AK 47 vai ser AK 47 e não algo mais que você não pode modificar, você não pode remover o sete ou o a ou qualquer outra coisa. Então a maneira de usar o nome é se você tem algo que é algo estático e não vai mudar nada, por exemplo, um nome de arma. Um nome de arma, você provavelmente não vai traduzido para outros idiomas. E você provavelmente não precisará modificá-lo porque é um nome. Por que você mudaria um nome? E para isso, eu usaria a variável name. Agora, isso não significa que você tem que usá-lo para todos os nomes. Por exemplo, digamos que você está jogando um jogo de RPG e o jogador escolhe um nome, por exemplo, ele quer se chamar de John. E você realmente não precisa usar uma variável de nome para isso, porque digamos que ele se nomeou John e algo ruim depois disso. E você quer modificá-lo e removê-lo e certificar-se de que ele desapareceu. Você pode realmente usar uma string para nomes,
nomes caracteres e assim por diante. Então, a variável name, você pode pensar nele como apenas um ID que não vai mudar em tudo durante o jogo. E, claro, este usa menos memória do que estes dois. Então lembre-se quando estiver programando, basta usar o que faz sentido para o cenário que você está criando. Então, se você estiver criando algo que não precisa de casas decimais, você vai criar um inteiro porque ele não tem casas decimais. Se você precisar criar algo com casas decimais, use uma carga. Se você precisar criar alguns textos que você irá traduzir mais tarde em seu jogo, vá em frente e crie uma variável de texto e assim por diante, embora as últimas variáveis que eu quero tocar, deixe-me voltar aqui e você pode ver algo chamado vetor e criar mais um, um rotador. E quando criarmos o último, uma transformação. Assim, por exemplo, o vetor que eu posso chamar e o rotador eu posso chamar rotação chão. E a propósito, você não tem que me seguir. Só quero mostrar o que cada um deles é antes de prosseguirmos em frente. Então você tem algum tipo de conhecimento básico de quais variáveis são e quais tipos nós temos. Então, o último que posso chamar de Lorde Transforme. E eu posso seguir em frente, segurar o Controle e arrastar tudo isso para fora. Então, estes são os últimos sobre os quais quero falar. E o que um vetor
é, é uma variável que contém três números. Então, por exemplo, se eu minimizar isso e eu
clicar na flora que criamos aqui em nosso nível, este andar, você pode ver aqui ele realmente contém esses números. E com um vetor, podemos realmente modificar esses três números para que a localização do piso possamos realmente modificar com este vetor. Então temos algo chamado localização do ator set. E eu não posso me arrastar para fora disso e fazer aquele local real. E agora ele criou essa referência porque eu realmente selecionei isso. E você pode ver aqui se eu escrever algumas seleções, se você estiver dentro do Plano de Nível, você só pode fazer isso no Plano de Nível se você clicar em
algo e você pode clicar com o botão direito do mouse e dizer Criar uma referência a isso. Então foi isso que ele fez. E vai dizer “set” na sua localização. E eu posso realmente definir este local para este novo local para que eu possa mudar o local do chão durante o meu jogo. Então, quando eu clicar em Jogar, Digamos que eu quero mudar o chão para 10, 10, 10. Então, quando eu clicar em Jogar, ele vai mudar a localização floral para este novo local. Então esta é uma variável vetorial e você pode usá-lo para alterar a localização de qualquer coisa no jogo, o que você tem dentro de seu jogo. E a mesma coisa aqui. Esta não é a localização, é uma variável rotadora. E aqui você pode alterar a rotação da malha que você tem no jogo. Então mesmo princípio, mas em vez de definir a localização do ator, você está definindo a rotação do ator. E a última variável que eu quero tocar é a variável de transformação. E a transformação é quase a mesma que esta, mas é todas elas combinadas. Você pode realmente alterar a transformação de uma malha. E, por exemplo, esta é a transformação que você pode ver aqui. Cada uma dessas malhas dentro de nosso nível, eles têm uma transformação e pode realmente mudar a transformação de algo. E só você pode mudar a localização dele que a rotação e a escala. E isso é útil também para gerar personagens e nosso jogo. Então, por exemplo, se quisermos gerar um personagem no jogo, temos que especificar, especificar qual local eu quero gerar o personagem, o que é uma rotação do personagem e qual é a escala do personagem. Ok, então isso pode ser usado com uma transformação. Então estas são todas as variáveis que eu queria tocar. E só para que você tenha a chance de entender o que estamos fazendo mais tarde, nos vídeos e nas lições. E vamos usá-los um pouco mais durante a aula. Então não se preocupe com isso agora. Eu só queria explicar o básico de cada um. E você pode ver durante o, durante a criação do jogo, você pode ver como vamos usar essas variáveis para realmente criar o jogo. Então vamos para a próxima lição.
19. Criando a bola: Agora que temos um entendimento básico para a Classe Blueprint é vamos em frente e criar a bola que vamos usar dentro do jogo. Então, dentro da pasta Blueprints, eu vou clicar com o botão direito do mouse e clicar na classe LaPlante. E eu vou criar um lago. Agora a bola precisa receber entrada. Temos que nos mover com o teclado. E significa que precisamos possuí-lo e movê-lo. Então temos que criá-lo como sobre e não um ator. Bem, clicando sobre e o que eu costumo chamar de blueprints é BP como um prefixo. E então chamarei de bola. Então esta é a classe pon que criamos. E podemos clicar duas vezes nele para entrar nesta classe de ponto. E você pode ver aqui você está agora dentro de uma janela de exibição. Nós temos o visor, nós temos o roteiro de construção. Então, o script de construção é um script que irá dizer ao, essa classe específica do blueprint o que fazer instantaneamente quando ele gerou antes de fazer todo esse código aqui. No entanto, este é um código muito importante que deve ser executado logo antes de fazer qualquer outra coisa. Só para evitar erros e o jogo às vezes. E dentro do Buford, agora
podemos adicionar esta bola que temos. O que você vê aqui é um componente raiz. Então este é o componente raiz. E novamente temos os padrões de classe e uma classe configurações e padrões de classe e podemos editar algumas configurações, mas não vamos nos preocupar com isso por enquanto. O que você quer fazer é adicionar uma esfera como isso vai atuar como nossa bola. Então, aqui no clicando no botão Adicionar, você pode clicar na esfera ou uma busca por esfera em vez. E clicando nesta forma, esfera. Então esta forma é a mesma forma que a grade subir aqui dentro de formas e clicar na esfera. Mas agora criamos a forma dentro da classe blueprint. E agora vocês podem ver que esta é a esfera que criamos. E você pode se mover dentro do gráfico de eventos ou dentro da janela de exibição, assim como você fez nas portas dessa exibição. Então esta é a esfera que criamos. E essa classe de blueprint consiste em todos esses componentes diferentes. E ele pode ver todos esses componentes. Podemos adicionar o que quisermos. Por isso, neste momento só precisamos da esfera. E você pode clicar com o botão direito do mouse nisso e clicar em Renomear, ou você pode clicar nele. Eu costumo usar esse atalho, clicando em F2 no teclado. Então, clicando em F2 e chamá-lo, vamos chamá-lo de bola. Então agora temos essa bola. E a próxima coisa que queremos adicionar é uma câmera, porque queremos ver essa bola de uma, algum tipo de visão superior. E, portanto, temos que ir dentro de adicionar e podemos adicionar uma câmera. Então, se sua busca por câmera, mas antes de adicionar uma câmera, há algo chamado uma mola sobre. Então, adicionando um braço de mola. E então eu quero adicionar uma câmera como esta. E você pode ver que temos a bola e dentro da bola temos o braço da mola. Você pode ver se você se move nesta primavera até as raízes e você pode anexá-lo à raiz. Agora está fora desta tigela. Não está ligado a ele. Mas eu queria colocá-lo dentro da bola como antes. Então, na verdade é uma criança disso e a câmera está dentro do umami ou sua mola, hum, e vamos derrubar é como um boom. Então você pode ver aqui se você clicar no braço da mola, você tem diferentes detalhes que você pode editar para ele. E, por exemplo, o comprimento do braço alvo você pode aumentar. Então isso é o quão longe você está da tigela e tipo de jogo. Então é como uma flor de microfone. Se você já viu um desses. Quando você vê jornalistas ir ao redor e, ou filmes e eles segurar este boom que mantém o microfone acima dos personagens. Embora isso seja tecnicamente o que isso é. E eu quero fazer este 900. Então vamos fazer 900. Este é o número específico para o jogo que queremos usar. E também acabei de testar estes números para não saber desde o início. Por isso, quando faço um jogo, não
faço ideia do que isto deve ser. Eu apenas configurá-lo para um número específico e eu jogo o jogo e ver se isso é o que eu quero. Se não, eu vou fazer isso mais longe e assim por diante. Então primeiro jogo, vamos usar 900. E queremos ver este jogo de uma vista superior. Então, clicando no E para girar. E lembre-se que você clicou no braço da mola e não na câmera. Então você tem que girá-lo aqui no eixo y. E vamos girá-lo. Vamos usar 40 graus para este jogo. Então agora vamos ver o jogo a partir desta vista. Então isso é tudo o que tivemos que fazer com o baile. E a última coisa, vamos mudar a aparência da bola. Então, clicando na bola, você pode mudar o material. E eu quero encontrar. Então, se você entrar na pasta super grade e clicar no nível do tutorial, olhando para instâncias materiais, eu quero usar esta cor amarela. Então, se voltarmos para a bola BP, isto aqui, vou minimizar um pouco. E eu vou para baixo nos detalhes e aqui o material, você pode arrastar este material para cima deste. Nós mudamos a aparência dele. Você também pode procurá-lo se você clicar neste aqui e você sabe o nome dele, você pode procurá-lo. Então agora este cofre parece com este e nós temos a câmera, que é que colocamos acima dele. Então isso é tudo que tivemos que fazer com a tigela. Podemos compilar e clicar, Salvar e salvar tudo. E você pode ver aqui se eu fechá-lo agora, e eu voltar para a pasta Blueprints, nós estamos lendo a bola. Eu posso realmente arrastar e soltar esta bola em qualquer lugar dentro do nível. E você pode ver aqui esta é a nossa bola. E você também pode ver, nós realmente temos uma câmera. É assim que você vê a bola. Então, se você clicar com o botão direito do mouse e clicar em piloto e na bola, você pode vê-lo da câmera que você colocou na bola, e é assim que você está visualizando. Então, se você clicar em f 11, você pode ver que esta é a visão que você está indo para obter. Se você não estiver satisfeito, você pode ir em frente e clicar na mola e você pode mudar o comprimento para outra coisa. E você pode ver agora que estamos muito perto dele. Este é o olhar, você quer ir para ele, mas vamos mudar de volta para um 900. E eu vou, vou pressionar este botão para parar de pilotar a bola. Então foi sobre isso que eu falei nas últimas lições. Eu falei sobre essas aulas, você pode levá-las para os próximos níveis. Então este, quando mudamos de nível ou se mudamos de nível, podemos realmente reutilizar o código que temos para esta tigela. E agora você pode ver que está dentro do chão, como este aqui. Eu criei, mas não se preocupe com isso por enquanto. Vamos desová-lo mais tarde. Mas isso é tudo o que tivemos que fazer para o baile. Vamos clicar em Salvar tudo e passar para a próxima lição.
20. Modos e jogadores para jogos: Vamos agora criar o modo de jogo e o controlador do jogador. Então, em vez dos blueprints, quero clicar com o botão direito do mouse e clicar na Classe Blueprint. E vamos primeiro criar o modo de jogo. Então, clicando no modo de jogo, não
importa o que criar. Primeiro. Vamos pegar o modo de jogo. E para modos de jogo, gosto de chamá-los de GM para um modo de jogo. E então eu gosto de chamá-lo de nome do jogo, então bola de velocidade. E vamos clicar com o botão direito novamente. Luke mês mais, a menos que crie o controlador do jogador. Então controle de fluxo, Eu gosto de chamar PC para controlador de jogador. E também chamá-lo pelo nome do jogo que tem pessoas. E eu vou clicar em Arquivo e proteger todos. Agora temos que tornar os jogos padrão Modo de Jogo como este,
este personalizado que acabamos de fazer, porque por padrão temos um Modo de Jogo padrão. E agora criamos nosso modo de jogo personalizado aqui. Então você tem que mudar o modo de jogo para o jogo. Então, clicando em Editar e indo para as configurações do projeto. Dentro daqui temos algo chamado mapas e modos. Dentro dos mapas e modos você pode ver que o jogo
está usando este modo de jogo padrão, que é novamente o modo base. O que queremos realmente mudá-lo para o nosso Modo de Jogo Personalizado que acabamos de fazer. E dentro do Modo de Jogo Personalizado vamos codificar o jogo. Então, clicando em bola de velocidade GM, que é o Modo de Jogo Personalizado que fizemos. E você pode ver que há uma seta aqui no modo de jogo selecionado em que você pode clicar. E então você pode ver essas diferentes classes padrão para seu modo de jogo. Nós apenas selecionamos a classe de ponto padrão que
temos, queremos para o nosso jogo é a tigela que fizemos. Então, em vez de fazer uma lagoa padrão, vamos escolher bola BP. Então este é o pon que vamos usar. E para o controlador do jogador, nós também apenas fazer, feito um personalizado chamado bola de velocidade PC. E assim, em vez de usar o controlador de jogador padrão, queremos usar nosso próprio controlador de jogador chamado PC speed ball. Isso é tudo que você tinha que fazer dentro daqui. Além disso, se você quiser alterar o mapa padrão com o qual o editor começa. Porque cada vez que você fechar este projeto e abri-lo novamente, ele vai abrir e vazio nível. E este é o padrão do modelo. Mas você pode alterar o editor Startup Map, e você pode alterar um mapa bola velocidade turista, bem
como o jogo Default Map. Você pode mudá-lo para o seu mapa de bola de velocidade. Então é assim que se faz. E vamos fechá-lo de novo. E para se certificar de que tudo está correto, Vamos clicar duas vezes neste modo de jogo. E aqui à direita, você tem que verificar se ele está realmente definido como bola de velocidade PC para a classe controlador. E se ele está realmente definido para ser pessoas para o vidro de ponto padrão e ele já está fazendo isso. Então isso está tudo bem. Vou clicar em Compilar e Salvar. Compilar e salvar na bola BP é muito importante, importante que você compilar e salvar. E também um truque muito útil. Você pode clicar nesses três pontos ao lado da compilação. Vá para o Salvar na compilação e clique apenas sem êxito. Então, agora, quando você compilar e ele for bem-sucedido, você realmente não precisa clicar em Salvar. Isto é, isto poupa-te um clique. Então, fechando. E a última coisa que queremos fazer para que funcione. Então especificamente para este nível que acabamos de fazer. Então, a bola de velocidade do mapa em que estamos atualmente, você tem que ir para as configurações do mundo. E dentro daqui, há algo chamado “Modo de Jogo”. E eu quero usar este modo de jogo personalizado que acabamos de fazer. Então, o cliente e o modo funcionarão. E você pode clicar nesta seta para se certificar de que temos a bola de velocidade PCS como o controlador de fluxo e a bola BP como o padrão ou padrão na classe. E isso é tudo o que tivemos que fazer para o Modo de Jogo e declarar controlador por enquanto. Então vamos passar para a próxima lição.
21. Adição de bola parte 1: Vamos agora adicionar os movimentos da bola para que possamos mover-se com a bola. Então, clique duas vezes sobre este controlador jogador, porque eu quero adicionar todo o movimento através do controlador jogador. O que você pode fazer também é apenas criar o movimento dentro desta tigela especificamente. Mas eu gosto de fazer todo o movimento dentro do controlador. Então isso é opcional, e depende do programador que você é e o que, o que você está acostumado. E o que eu gosto de fazer é apenas criá-lo através de seu controle de jogador. Então eu vou clicar duas vezes no controlador e nós vamos adicionar o movimento dentro daqui. Então não vamos fazer nada dentro de uma viewport e ir diretamente para o gráfico de eventos. E, por enquanto, podemos excluir esses eventos. Então, clique em Excluir. Você sempre pode criá-los dentro deste evento AND visualizador de função. Então, para começar, a fim de adicionar algum movimento. Por exemplo, se avançarmos, você pode escrever,
você pode clicar com o botão direito do mouse e escrever a chave W. E vocês podem ver aqui que temos algo chamado tecla W no teclado. Isto são eventos de teclado. Então, estes são eventos para clicar em w. E, a propósito, os eventos
vão aparecer como vermelho, assim como quando vimos a peça inicial. Então, o que acontece quando você começa a jogar o jogo? Quando você começa a jogar? Este código será executado. E você pode ver que todos os eventos são vermelhos. Então, se você estiver, se você vir um nó que é vermelho, isso significa que este é um, um evento. Então, por exemplo, um evento, se eu clicar em W no teclado, este é um evento. Então, quando eu clicar em WW, algo deve acontecer. Por exemplo, eu quero imprimir uma string e dizer olá. Então, se eu compilar e clicar em Reproduzir, você pode ver aqui quando eu clicar w, ele diz Olá cada vez que eu clicar em WW. Então este é um evento, e agora você pode fazê-lo desta maneira. Então você pode fazê-lo para que você possa fazer com o movimento escrevendo a tecla do teclado dentro do controle do jogador. Mas há algo que acima disso. E a razão pela qual não queremos fazer assim. Por exemplo, você pode imaginar no jogo, se você tiver seu menu de configurações e dentro do menu de configurações, o jogador realmente quer mudar essa chave. O jogador não quer se mover com o W, o jogador quer mover com a seta para cima para o jogador quer usar a seta para cima no teclado e não o WWE. Agora o jogador não pode
mais mudar isso dentro do menu de configurações porque você codificou a tecla W, ela sempre vai usar a tecla W se você fizer isso dessa maneira. E o jogador não pode alterá-lo através do
menu de configurações porque você codificou o valor. E a maneira como podemos evitar isso. Então vamos deletar este composto salvar. Vamos ao Edit. E dentro de Configurações do Projeto, temos algo chamado entrada, e queremos adicionar as chaves dentro daqui. Em vez de clicar na entrada, temos algo chamado Mapeamento de Ação e mapeamento de acesso a ação, você pode pensar nisso como um clique. Então, por exemplo, se eu quiser clicar em E para abrir uma porta, se eu clicar em ser recarregar ou se eu clicar em G para soltar a arma, tudo
isso é mapeamento de ação. Então, clicando em uma tecla, o mapeamento em excesso é o movimento. Assim, por exemplo, clicando em W para avançar e clicando na seta para cima ou clicando no joystick, no controle Xbox e assim por diante. Para mover, estes não são os mapeamentos de acesso. Então, já que queremos fazer o movimento, vamos em frente e fazer um mapeamento de eixos. Clique no botão de adição e clique na seta. E para este, vamos chamá-lo de “avançou”. E a propósito, eles se movem para frente, nós vamos realmente avançar e para trás. Então, este sou só eu. Eu gosto de chamar isso de seguir em frente. Você também pode chamá-lo mover,
mover para frente e para trás com um R em vez disso. E isso é com você. Não quero deixar o código muito longo. Eu só chamo isso de seguir em frente e é a isso que estou acostumado. Então, aqui você pode escolher qual chave você deseja seguir em frente. Então você pode escrever a tecla W e você pode ver aqui que você tem o W. Então agora eu posso seguir em frente com isso. E também queremos retroceder. Então, clicando nisso, posso procurar a tecla S. Mas uma maneira mais legal de fazê-lo, uma maneira muito rápida de fazê-lo é apenas clicar neste botão. Diz que selecione um valor de chave. Então, clicando nele. E agora você pode clicar na tecla S no teclado e ele irá atribuí-lo automaticamente. Então a escala longe é menos um porque você pode imaginá-la como um gráfico. Isto é para a frente. No eixo, é como um só. E quando você vai para trás é menos 1. E deixe-me criar outro mapeamento de eixo. E agora queremos nos mudar para os sites. Então eu vou chamá-lo de direitos MOOC. Mas tecnicamente está se movendo para a direita e para a esquerda Então também podemos chamá-lo de mover horizontalmente ou o que quer que seja. Eu só estou chamando isso de movimento, certo? Isto é o que faz sentido para mim. E clicando em D aqui, clicando neste botão, clicando em D. E vamos adicionar um novo botão, clicando em um e este, e este é menos1, então cada um em direções diferentes. Certo, agora temos essas chaves e vamos fechá-las. Podemos clicar duas vezes no controle do jogador novamente. E dentro daqui podemos encontrar os eventos que acabamos de fazer. Então, classifique, siga em frente. Você pode ver algo chamado os eventos do eixo. Temos um evento chamado seguir em frente. Então, clicando nele. Este é o evento que acabamos de fazer, ou você pode clicar nele e W e S. Então esta é a maneira legal de fazê-lo. Em vez de escrever a tecla W e codificar o código. Desta forma, os jogadores não poderão alterar isso dentro do menu de configurações. É melhor fazê-lo desta forma, em seguida, o jogador pode escolher o que eles querem mudar para avançar. Então eles sempre podem ir em frente e mudar a chave. Em vez de fazer um W que pode torná-lo seta para cima, por exemplo. E vamos em frente e adicionar nosso outro evento chamado direitos morais. Então este é o evento e nós temos algo chamado torque. Então deixe-me tentar arrastar para fora desta caneta de execução e você pode procurar por TOR, TOR q ui e remover este contexto sensível para visualizá-lo. Então você pode ver aqui no torque em graus e radianos, vamos escolher o chamado add torque em radianos. Agora, torque é algum tipo de física, e isso é o que é usado para dirigir nossa tigela. Então estas são algumas florestas que estamos adicionando à tigela para movê-la. E eu vou te mostrar como isso funciona assim que tivermos isso. Mas antes que possamos fazer funcionar, temos que selecionar um alvo. Nós temos que, nós temos o alvo é a bola. Então queremos adicionar essa física, essa força que se moverá. O item que queremos. Esta é a bola que queremos mover, então este será o alvo. Mas antes de continuarmos, tenho que ensiná-los sobre a comunicação do Blueprint porque o alvo aqui precisa ser a bola, porque queremos adicionar essa física à lâmpada para que possamos movê-la. E a bola é outra aula de Blueprint. Então, como estamos indo? Como podemos acessar essa malha de bola para ser usada dentro daqui? Como estamos, como somos capazes de conectar esta malha de bola desta bola BP dentro deste controlador de fluxo e conectá-la a este alvo. Então você tem que aprender sobre a comunicação Blueprint antes que isso seja possível. Então vamos em frente antes de continuarmos para a próxima lição.
22. Comunicação de impressão virtual — Casting: Agora é hora de aprender sobre a comunicação Blueprint. Então o problema que estamos enfrentando agora quando estamos fazendo o movimento é que queremos acessar essa tigela BB e queremos usar essa malha de bola porque queremos conectá-la ao alvo, porque queremos adicionar a este negrito especificamente para fazê-lo se mover. Então o alvo precisa ser a tigela. Mas como acessamos essa bola dentro da bola BP para usá-la dentro do controlador? E isso é o que a comunicação Blueprint é. Você tem que se comunicar entre dois projetos diferentes e usar informações desse projeto e usá-lo dentro de outro blueprint, que está aqui nos plebs no ombro. Então, por exemplo, estamos agora dentro
do controlador e queremos usar a informação dentro da tigela BP, que é na verdade um peão. E lembrem-se, aquela aula de bola que fizemos é na verdade uma aula de peões. Então você pode ver a cláusula pai aqui no canto superior direito. É um peão que criamos. Então aqui dentro do controle do jogador lag e clique com o botão direito e dizer fica camada sobre. Então você pode ver aqui que fica quente. Nós não queremos obter personagem jogador porque lembre-se não
é uma classe de personagem que fizemos como um personagem de ponto. Então clicando bom jogador sobre. E daqui podemos ver depois dos dois, temos algo chamado elenco. Então o que o casting faz é que queremos usar informações de um esquema específico. E neste caso, o pon que queremos usar é a nossa pornografia personalizada, que é BP Ball. Então podemos dizer elenco para BP bola. E você pode ver aqui selecionando custos para bola BP. E agora podemos conectar o pino de execução para que ele esteja funcionando. Ok, então o que nós fizemos aqui é que nós temos a classe de peão jogador padrão. E então estamos lançando para esta classe de peões específica que fizemos porque esta é a que queremos acessar. E agora, aqui, você pode acessar todas as informações que estão dentro das bolas BP. Então, por exemplo, se eu quiser a malha de bola ou se eu quiser um evento que eu quis dizer aqui ou algum código eu quero dizer, ou se eu queria um braço de mola e assim por diante, eu posso acessar tudo a partir deste pino aqui. Então, se eu descer aqui agora e escrever bola, e agora você pode ver que diz “pegar bola”. Então agora você vai pegar essa malha, que é essa. Então agora tem essa malha chamada bola. E agora essa malha você pode se conectar a esse alvo. Então isso vai funcionar agora. Então agora você custou a esta tigela BP e agora você está conectando-a. Então é assim que seu custo, e é assim que você pode se comunicar. Você tem que ver qual é a classe dos pais. Então, se eu for ao BPI Ball, posso ver que a aula de pais é pornografia. Então primeiro eu tenho que pegar a pornografia de jogador. E a partir daí eu posso enviar para a classe específica que eu quero acessar este caso. Quero carros para a BP Ball. E quando eu tiver feito isso, agora
eu posso acessar todas as informações dentro da bola BP. Então é isso que o elenco é, e você pode fazê-lo com outros projetos. Então, por exemplo, se eu quisesse acessar esse controlador Blair dentro da bola BP, então deixe-me entrar na bola BP só para praticar, você não precisa seguir por aqui. Só quero te mostrar. Então dentro da bola BP, digamos que eu queria acessar isso como eu queria acessar este controlador de jogador, e eu quero usar algum código dentro daqui. Então o que eu posso fazer é dentro da bola BP, Eu posso clicar com o botão direito e dizer Obter controlador de camada. Porque lembre-se, a classe pai para o controlador do jogador é o controlador do jogador. Então eu tenho o controle do jogador e eu posso então dizer elenco também. E você pode escolher a bola de velocidade do PC, que é o controlador personalizado que você está usando. E você pode, você pode adicioná-lo a um evento que você deseja. E agora você pode usar qualquer informação que quiser dentro deste controlador de bloco. Ok, então vamos em frente e deletar. Vou apagar todos esses eventos dentro da BP Ball. Não precisamos deles. E então agora é assim que você elenca e acessa informações. E é assim que você se comunica entre plantas usando casting. Agora, o único problema com elenco é que se você tem muitas coisas, você está lançando também. Então vamos dizer que você está trabalhando em um projeto maior e você está usando casting o tempo todo. Você está lançando para isso e, em seguida, você está causando para aquele projeto. E depois lá você, em seguida, novamente lançando para algum outro projeto. E isso vai criar referências difíceis. E isso vai atrasar seu jogo porque o custo vai criar referências Hart. E o que isso faz é que você tem que carregar todos esses custos antes que seu jogo prossiga. Então, às vezes eu vejo as pessoas tendo um menu, menu
principal quando você começou o jogo, ele vai levar sete segundos ou 10 segundos para o jogo para inicialização. E isso pode ser devido ao elenco. Se você elenco, digamos que você está lançando seu custando dez vezes duas coisas. E mais uma vez é saber que o código está ficando muito longo. E você está lançando, xingando e lançando. E vai fazer referências difíceis e vai aumentar muito o tempo de carregamento. Então, o que eu quero ensiná-los na próxima lição, que eu uso o tempo todo é Interfaces Blueprint, que evitará casting. Então elenco não é ruim. Não precisa entender mal o que estou vendo. Casting é bom, mas apenas se você fizer isso um pouco de tempo. Então não faça isso, não exagere e lance o tempo todo, isso não vai ser bom. Mas se você tem uma situação em que você só tem
que lançar uma ou duas vezes, tudo bem. Isso não afetará nada e você provavelmente deve fazê-lo. Mas na próxima lição, vou te ensinar sobre Interfaces de Plano. E com isso, isso é o que eu uso o tempo todo. Podemos evitar a criação das referências de altura, que é feito através da criação de fundição e são chamados também será muito mais limpo. Então, vamos seguir em frente na próxima lição e aprender sobre Interfaces de Blueprint.
23. Comunicação de impressão de Blueprint interfaces: Na última lição, falamos sobre elenco. Então agora vamos aprender sobre a comunicação Blueprint. E isso é o que eu uso o tempo todo em vez de fundição e só
são lançados muito, muito poucas vezes. Então vamos fechar isso e dentro daqui, podemos criar uma nova pasta. Dentro dos blueprints, crie uma nova pasta e chame-a de interfaces. Só para estarmos um pouco mais estruturados. E dentro da pasta interfaces, você pode clicar com o botão direito do mouse. E em Blueprints você pode ver algo chamado Blueprint Interface. Então vamos em frente e criá-lo e então eu vou explicar o que é. E para interfaces são geralmente chamados int no início. E para este, queremos fazê-lo especificamente para a bola BP. Então, vou chamá-lo de “pessoas”. Então, o que Interfaces de Blueprint são, você pode criar funções dentro daqui e você pode evitar a transmissão. Então vamos dar um exemplo, exemplo Yana, e dar uma olhada no que, como podemos usar isso. Então, para a bola BP, queremos criar uma nova função. Então, aqui você pode criar todas as funções que você deseja criar dentro da tigela BP. Então eu vou criar uma nova função e chamá-lo de “Get Ball ref”. Então eu vou pegar a referência da bola. Então isso é o que nós fizemos aqui dentro do controlador quando fizemos casting, nós temos a referência a esta bola. Mas queremos agora fazê-lo através da interface. E eu vou chamar essa função de pegar Belerofonte. E agora você pode adicionar uma entrada ou uma saída, e estas são variáveis. Então eu vou clicar em Saída e clicar neste plus. Agora você pode ver aqui, pode escolher o tipo de variável que você deseja adicionar, e você também pode chamá-lo de algo. Então, para esta variável, eu realmente quero uma referência a esta tigela. Então eu vou escrever bola VP e encontrar
esta bola BP que eu criei e crédito como uma referência objeto. Vou mudar o nome para “bowl”. Então agora temos essa função. E o que podemos fazer com essa função? Então eu vou em frente e abrir o polígono BP. E usar uma Interface de Blueprint. Isto é muito importante. Em primeiro lugar, lembre-se de compilar e salvar dentro daqui. E a próxima coisa que você quer fazer é dentro das configurações de classe na tigela BP, porque é aqui que queremos usá-lo. Aqui. Há algo chamado interfaces nas configurações de classe. E você quer adicionar a interface que você acabou de criar. Então, clicando em Adicionar e procurando a interface e clicando nela. E apenas perceba aqui que uma guia de interfaces aparecerá quando eu selecionei. E você pode ver isso aparece assim Compilar e salvar. Agora você pode clicar duas vezes nisso, obter bola ref. E agora você pode ver as funções que criamos. Não podemos editar a função aqui. Você pode ver que eu tentei arrastar e puxar aqui. Eu não posso fazer nada. Aqui neste visualizador de interface, só
podemos criar funções. E essas funções que
criamos, podemos usar dentro
das diferentes classes de blueprint dependendo se adicionamos à classe ou não. Então aqui nós adicionamos a boa bola ref, e se você clicar duas vezes nele para que você possa acessar a função. E agora eu posso me arrastar daqui e dirigir sozinho. E o que isso faz é perguntar o que, qual é a referência desta tigela? Então nós adicionamos, lembre-se de uma variável chamada bola BP. E aqui estamos apenas escrevendo esta referência. BP bola é realmente auto porque estamos dentro do beisebol. Então esta referência é eu mesmo. Esta é a aula de plantas. É assim que se faz. E agora nós podemos realmente nos comunicar com este projeto. Então vamos voltar para o controle do jogador e eu vou te mostrar. Então, o mesmo que fizemos aqui. Você pode dizer que fica camada sobre. E a partir daqui, em vez de fazer moldes para BP bola, você pode agora dizer fica tudo ref. Esta é a função que criamos com a interface. E lembre-se sempre de usar a mensagem que diz aqui no final, porque esta é a partir da Interface Blueprint. Agora, isso está funcionando exatamente como o elenco. Nós agora temos uma função e em vez de fundição e criado, criando uma referência difícil, nós podemos realmente agora apenas usar esta função Blueprint Interface que nós fizemos. E aqui podemos acessar a bola como fizemos com o elenco. Então você pode escrever bola e as variáveis estão todo o caminho até o fim. Ou você pode escrever o VaR, que eram quatro variáveis. E ele vai aparecer trabalhando na bola. E então podemos adicioná-lo ao torque, assim como o que fizemos aqui seria custar. By the way, você pode segurar Alt e clicando no alvo aqui ou clicando em qualquer nó aqui e você pode remover os links. Então é assim que você usa a comunicação Blueprint. Então agora o que não estamos mais lançando, estamos usando Blueprint Interfaces, e isso é o que eu prefiro usar apenas para ter um código muito mais limpo. Então eu vou dar uma olhada rápida só para que eu fique claro ou eu tenho certeza que você está entendendo o conceito. E Blueprint e superfícies geralmente são as coisas mais difíceis para iniciantes entender porque estamos indo e voltando e pode ficar um pouco confuso. Por isso, deixa-me voltar rapidamente. Criamos uma Interface de Blueprint clicando com o botão direito do mouse, criando a interface. Dentro da interface. Como antes de usar a interface que você tem em mente, o que você quer fazer com essa interface? Na minha mente, eu quero ter uma referência a esta bola BP porque eu quero usar esta malha de parede dentro do meu controlador. Então eu quero uma referência à minha bola BP. Então eu crio uma interface e eu chamo de bola BP. E dentro daqui, dentro da interface, eu crio uma função chamada obter a referência da bola. E não importa o que você chama. Isto é, isto é o que faz sentido para mim. E então você faz uma saída de uma variável e você escolhe essa classe de blueprint que você deseja se referir. Então eu quero me referir a esta bola BP. E então o que você quer fazer é lembrar de compilar e salvar e voltar para as pessoas. E dentro daqui, lembre-se de ir para as configurações de classe na interface da bola BP. E então isso aparece agora podemos acessar a função. E você tem que definir, mesmo que você tenha escrito que a variável é ser pessoas. Você tem que definir para o motor o que você quer dizer com isso. Então, dentro desta função, você arrastá-lo para fora e escrever auto. E isso significa que esta variável aqui é na verdade uma referência ao self, que é a bola BP. Então é apenas tentado, é a mesma coisa que escrever. Esta referência é a bola P, que é na verdade a classe Blueprint em que estamos atualmente. Agora, quando você teria feito isso, você pode voltar para o controle e obter a classe Upon. Lembre-se, você tem que pegar a classe dos pais, que é Po1. E agora você pode ver obter árbitro bola. E fazendo isso, agora você pode usar essa bola variável, que você fez, o que você fez aqui. E a partir disso você pode arrastar para fora e acessar qualquer coisa que você quiser dentro das pessoas. Espero que isso tenha sido compreensível e não muito difícil. E nós vamos usá-lo muito durante a programação do jogo. Então, se você não entendeu 100%, vamos obter mais exemplos disso. E se você, se precisar de ajuda com qualquer coisa que vejo nas minhas aulas ou nos meus cursos. Vamos em frente e conectar-se ao servidor Discord ou escrever-nos nas redes sociais. E estou disposto a ajudar-te com tudo o que precisares. Mas agora que sabemos um pouco sobre a comunicação do Blueprint, podemos agora fazer a parte do meio do movimento. Então vamos em frente na próxima lição e terminar o movimento da tigela.
24. Adição de bola parte 2: Agora que aprendemos sobre comunicação Blueprint, vamos realmente ir em frente e terminar o movimento do jogador ou o movimento da tigela em vez disso. Então deixe-me excluir este casting agora que criamos esta Interface de Blueprint. E deixe-me conectá-lo ao evento. E deixe-me conectar a bola que temos ao alvo deste torque. Então, agora o que vamos fazer é se clicarmos em w ou clicarmos em pedir para mover para trás, ele vai pegar esta bola e conectar-se a este alvo. Vai adicionar esta física a esta bola. Então ele vai mover a bola com esta física. E precisamos compilar e salvar apenas para remover esse erro. E precisamos dizer a ele o torque que ele é, que ele precisa aplicar porque agora ele está aplicando zero 0000 de força. Então agora, quando eu clicar em W, ele não vai se mover em tudo, porque não há nenhuma força aplicada em tudo. Mas eu preciso aplicar alguma força para que ele realmente funcione. E a maneira como fazemos isso é, na verdade, conectando esse valor de eixo. Porque se eu clicar em W, eu posso tentar escrever folhas impressas para que você possa ver o que isso realmente está fazendo. E deixe-me apenas rapidamente apenas conectado assim. Então está passando pelo código. Vou clicar em jogar. E quando eu clicar em W, você pode ver que ele imprime. Então, isso é quando eu
movê-lo, ele vai imprimir os valores. E eu também posso apenas, em vez de imprimir Olá, eu posso realmente conectar isso para a string aqui. E ele vai converter esta variável flutuante para uma variável string para que ele possa imprimi-lo para a tela. E deixe-me me mover para vermos o que está acontecendo. Parece muito Guam Girard agora. Então, assim, eu sou, eu posso remover isso da duração. Neste momento, ele vai imprimir o valor disto para a tela. Então, se eu clicar em Reproduzir e realmente w, Você pode vê-lo recebe um cada vez que eu clicar em W. E se eu clicar em S, ele fica menos 1. Então este é o valor x. E precisamos aplicar isso ao, deixe-me voltar. Eu sei que são sobre este erro. Vou mostrar mais tarde por que, por que recebemos isso. E vamos voltar para o controle do jogador. No momento, vamos conectar esse valor de eixo ao torque. É isto que queremos aplicar. Deixe-me conectá-lo de volta. E o que queremos fazer? Então, se voltarmos aqui e colocarmos a bola, então dentro das plantas, colocamos a tigela. Você pode ver aqui, quando você coloca a bola, você pode ver o ponto de pivô. E lembre-se, lembre-se desses pontos de pivô, o vermelho é x, o verde é o y, e o azul é o z. Então este é o Z. Queremos avançar, mas não queremos movê-lo através do x. porque se você clicar em E para girar, então esta é a ferramenta de rotação. Nós realmente queremos girá-lo ao longo deste eixo y porque quando você gira, você não gira dessa maneira. E você gira e move a bola. Você escreveu desse jeito, certo? Você está girando ao longo do eixo y. Então é por isso que queremos voltar para o SIR. E queremos aplicar esse movimento
ao eixo y e movê-lo para a frente aplicando força ao eixo y. Então esta é a variável vetorial tendo três valores, podemos realmente clicar com o botão direito e dizer Split Struct Pin. E isso irá dividi-lo nesses x, y e z. E agora podemos aplicar esse torque ao eixo y. Ok, então agora se eu compilar e antes que possamos realmente testar isso, eu tenho que, Vamos excluir esta tigela e eu tenho que adicionar um jogador começa. Então, em vez de criar, podemos criar este jogador começa. Então este é o lugar onde o jogador estava pontos e clique em G para ver os ícones. Se você os escondeu, como eu, e você pode movê-lo. E eu vou acabar na camada 2 nas promessas geradas aqui, por exemplo. Assim como aqui. E você pode clicar em Play. Você pode ver que nada acontece. Deixe-me voltar. E diz acesso não tentando ler a propriedade, obter bola Terra. E quando diz acesso, ninguém está tentando obter esta bola Terra e tentando fazer a bola se mover. Mas se a bola ainda não existe no nível, está ficando confuso porque por que, por que você quer mover esta bola? Porque não encontra nada aqui, não encontra a malha. E, portanto, isso vai te dar um erro. Imagine, por exemplo, em Counter-Strike jogador conjunto C servidor. E o jogador tem que escolher se eles querem ser um terrorista ou um contra-terrorista. E se o jogador ainda não escolheu nada, eles ainda estão no modo espectador. Este código dará um erro porque por que você quer mover o terrorista ou a preocupação de por que você quer mover o jogador se o jogador realmente não gerou ainda no lábil. Então isso é, isso vai te dar um erro. E o que você pode fazer para evitar isso é clicar com o botão direito do mouse aqui. E converta isso para um get validado. E o que isso faz
é, ele vai primeiro perguntar, esta bola realmente existe no nível ainda? Se isso acontecer, se for válido, então vá em frente e aplique o torque. Então, se eu compilar e clicar em Reproduzir, ele deve se livrar de todos esses erros. Então, se eu fizer isso, você pode ver agora que geramos no nível, não
estamos recebendo mais um erro. E, na verdade, como W, nada acontece. E isso ocorre porque o torque que aplicamos não é suficientemente duro. E a segunda coisa, lembre-se que eu disse que torque é física. E quando aplicamos física, temos que simular física para a bola. Então, se eu clicar em escapar, vai dizer simular física. Eu posso voltar para a minha bola VP e clicar nesta bola, eu posso ir para dentro da física e clicar em simular física. E se eu clicar em Jogar agora pode se mover, mas a força ainda é muito baixa Então eu não posso, eu não posso fazer nada. Então eu tenho que entrar no controle do jogador. E o que eu posso fazer é apenas aplicar uma, uma conversa mais difícil para que ele possa se mover. Então aplique mais força. Então vamos fazer isso arrastando até aqui. E eu quero multiplicar esse número. Multiplicar. E eu quero multiplicá-lo pelo comprimento 35 foi um bom número para mim. E você pode testar isso. Você pode apenas falar números e ver o que é muito rápido e muito lento. Então agora estou aplicando uma força a isso, a essa bola, e estou multiplicando esse valor-x por 35. Se eu clicar em Jogar agora e eu me mover, enchendo, movendo para cima, e isso é apenas eu para conseguir algo. Na verdade, eu queria clicar nessa mudança de aceleração. E o que isso vai acelerar a mudança vai fazer
é que ele vai realmente ignorar a massa desta bola. Porque a bola agora, esta esfera que você adicionou realmente terá uma massa. Então tem um peso. E esse peso não levará em conta se você tiver isso marcado. Embora se você não tenha verificado, então você quer saber massa a ser calculado, você tem que aplicar uma força muito maior ou um valor muito maior, a força aérea 2 para fazê-lo se mover. Mas agora eu não quero levar o peso em conta e eu só quero multiplicar por 35 e isso deve ser suficiente. E agora eu estou realmente recebendo esse erro porque eu realmente tenho dois jogadores começa. Então eu percebi que dentro do meu nível, eu volto. Eu tenho um ponto fechado um, que é na verdade o ponto mais que estamos usando agora. E eu também vou sem esperança Tatu, é por isso
que não está gerando minha tigela e me deu um erro. Então eu vou excluir o mais d2. E quando você clica em Reproduzir, ele deve funcionar como deveria. Então agora quando eu clicar W e mover, você pode ver as câmeras realmente se movendo com a bola e está olhando também li e nós provavelmente vai ficar doente se olharmos para isso muito. Então vamos em frente e consertar isso. Então, dentro da bola BP, podemos clicar na mola para cima. Aqui no braço da mola temos a rotação. Não queremos que estes levem para cima para girar junto com a bola. Bem, clicando nesta rotação e alterando a rotação para o mundo em vez de relativo e clicando em compilar salvar. E agora, quando clicamos em Jogar e mover, podemos mover a bola para frente e para trás. Então agora está funcionando. Ok, incrível. Então agora queremos adicionar os movimentos esquerdo e direito. Então vamos em frente e terminar o movimento. Então já fizemos a jogada certa? Entradas. E dentro daqui, podemos apenas ir em frente e dizer, ser suportado. By the way, você também pode copiar, colar este texto ou este, este código. Mas eu só quero te mostrar só para praticar. E ele pode obter bola ref para obter a função Blueprint Interface. E aqui você pode acessar negrito, novamente, a variável bola. E ele pode convertê-lo em um gets validado. Agora está perguntando se a tigela é válida? Se for, então queremos aplicar esse torque. Torque em radianos. Agora ele vai aplicar o torque. E agora queremos clicar com o botão direito do mouse aqui no torque e dividir o pino
atingido e mover para a direita e para a esquerda, se eu colocar a bola para mover para a direita e para a esquerda, temos que girar ao longo do eixo x. Este é o vermelho, este é o eixo x. E temos que aplicar torque ao eixo x, que é aqui. E podemos aplicá-lo aqui. E lembre-se de multiplicar o torque. Eles vão multiplicar a força. A força não é forte o suficiente e não vai mover a bola. Então agora podemos adicionar a força aqui e podemos clicar duas vezes sobre isso, nesta linha aqui para fazer um nó reescrito. Então isso vai realmente fazer o seu código muito mais limpo e agradável com essas linhas aqui. E vamos lembrar de clicar na mudança de aceleração
absoluta e Compilar e Salvar como isso deve funcionar. Então, vamos clicar em Reproduzir. Agora pode se mover para a esquerda e para a direita. E você provavelmente vai perceber que estamos realmente indo na direção errada quando eu clicar em um, estamos indo para a direita quando eu clicar em D ou um milhão para esquerda. E para corrigir isso, podemos ir dentro da edição, dentro das configurações do projeto. Na entrada. Aqui podemos reverter essas escalas. Então escrevendo menos um aqui e escrevendo um aqui em vez disso. E isso deve ser corrigido clicando em Play. Agora você pode mover a bola no suposto e você pode realmente jogar o jogo agora com esta bola. Então é assim que você cria o movimento da bola. E agora que temos a bola trabalhando, agora podemos criar o serviço que será saqueado
pela tigela quando você interagir com os inícios. Então vamos em frente e fazer a estrela.
25. Criando a estrela: Agora vamos em frente e criar a estrela para os níveis. Então, dentro dos planos, vou clicar com o botão direito do mouse e clicar na classe Blueprint. Então a estrela é apenas um ator porque nós realmente não precisamos controlar
a estrela ou qualquer coisa parva como essa. Então vamos lá e clicar no ator. E aqui podemos chamá-lo de estrela da BP. E podemos clicar duas vezes neste ator. E aqui podemos agora adicionar as estrelas. Então lembre-se, assim como a tigela, podemos adicionar componentes. Então aqui podemos adicionar uma malha estática e podemos adicionar a estrela. Então eu vou chamá-lo de estrela. E aqui nesta malha estática, ele agora está procurando por uma malha estática e você pode realmente usar a estrela aqui. Você também pode encontrá-lo dentro de, Eu acho que foi super grade e tutorial e, em seguida, utilidade e as malhas. E aqui está a estrela. Então nós podemos realmente usá-lo vem com o pacote super grade. E você também pode apenas procurar por ele, apenas procurar por estrela. E você pode clicar nele. E você pode ver que esta é na verdade a estrela. E como você pode ver aqui, ele está realmente se movendo. Mas não queremos fazer isso com o material. Nós realmente queremos movê-lo através de código. Clique nesta lupa, um copo para encontrá-lo para este material utilitário ícone fav. Então, clicando na lupa, ele irá levá-lo aqui no servidor ou no navegador de conteúdo e servidor ou navegador para levá-lo a este navegador de conteúdo e levá-lo para o material. Se você clicar na lupa e você pode clicar duas vezes nela. E este nó material se abre. Eu não quero que isso seja sobre o editor de material, então não se preocupe com o que está acontecendo agora. Mas eu, o que eu simplesmente quero que você faça, para fazer aqui é apenas segurar Alt e clicar aqui para desconectar este salvamento e pronto, fechá-lo. Você pode ver que não está mais se movendo. E isto é o que queremos. Nós realmente queremos controlar o movimento através de código. A próxima coisa que queremos acrescentar é um efeito de partícula. Então, clicando em Adicionar e procurando por sistema de partículas. Então, clicando neste sistema de partículas, e eu vou chamá-lo de estrela P, P para efeito de partículas ou sistema de partículas. Também podemos chamá-lo de PS. Isso é com você. Vou chamar-lhe estrela P. E aqui você pode, novamente escolher o tipo de partículas que eles querem. E há alguém, alguns artigos chamados P star. Você pode clicar em. E você tem uma estrela. Na verdade, eu não sei se isso é muito grande porque você pode ver os artigos aqui dentro. E eu não sei se esta estrela é muito grande. Então deixe-me realmente, a maneira que eu posso testá-lo é clicar nas plantas. E aqui, deixe-me realmente arrastar esta janela de blueprint e anexa a aqui para que seja mais fácil de ver. E agora podemos mover esta estrela para cima. E ainda assim é muito grande, então podemos reduzir o tamanho da estrela. Então, clicando na estrela, posso reduzir o tamanho para 0,50,50,5. E deixe-me arrastá-lo novamente, embora, muito grande. Então deixe-me reduzi-lo para 0,3. E em vez de mudar os três, posso clicar nesta fechadura. Então mudará todos os três ao mesmo tempo. E isso ainda é um pouco grande demais. Talvez 0.20.2 seja o perfeito. Talvez ainda seja muito grande, mas na verdade está tudo bem. Agora. Agora posso clicar neste efeito de partícula. Eu vou, você pode ver aqui que está ligado à estrela. Posso anexá-lo à raiz. Ele está ligado a uma estrela, então ele é realmente reduzido o tamanho, bem como a estrela. Então vamos apagar esta estrela P. Vamos fazer um novo sistema político só que este é o caminho mais rápido. Oops. Clique em Enter, faça um novo sistema de partículas. Esta é a maneira mais rápida e chamá-lo de estrela P novamente. E aqui você pode encontrar a estrela. E agora é grande e parece muito melhor. Então é assim que parece agora. Estamos em um efeito de partícula de dia. E a última coisa que queremos acrescentar é algo chamado esfera de gatilho. Então, chamando à procura da esfera. Você pode ver aqui uma colisão de esfera. E isso é, podemos usar isso para dizer que eu vou chamá-lo de esfera maior. E podemos usar isso para dizer o que acontece se nós, se colidirmos com essa esfera. Então esta é uma esfera de colisão. Então eu vou clicar em arte e redimensionar isso para um pouco maior. Ou você pode clicar em Control Z e você pode realmente fazê-lo aqui no raio da esfera. Você pode fazer isso também. E apenas ajustando. Então, se minha bola vai aqui e papéis no nível e realmente vai dentro desta esfera. Ele irá desencadear um evento para que possamos usar isso desencadeia medo ou esfera de colisão para desencadear eventos. Então agora temos isso, temos a estrela, temos esse efeito de partícula, e temos a esfera de colisão. Agora vamos clicar em Compilar
e Salvar, e vamos realmente voltar e tentar colocar isso dentro dos níveis. Então, arrastando a estrela, colocando-a, posso arrastá-la até aqui. E isso é bom. E eu posso editar. Vamos apenas fazê-lo assim e vamos clicar em Jogar. E vocês podem ver aqui agora que temos esta estrela e é um pouco grande demais para que possa reduzir ligeiramente o tamanho. E você pode ver se eu entrar
nele, ele está realmente bloqueando, então nós temos que mudar a colisão dele. Então a maneira como fazemos isso é voltar para a estrela, clicando na malha. E aqui na colisão, podemos removê-lo. A colisão se apresenta. Então, clicando nesta Predefinições de Colisão e clicando em nenhuma colisão. Então agora não tem colisão. E quando clicamos em Jogar e nós realmente ups, se clicarmos em Jogar, agora podemos ver aqui que não podemos colidir mais com ele. Então agora podemos realmente olhar para isso, e isso é o que queremos fazer na próxima lição, fazendo com que funcione com o saque. Então é isso e vamos realmente reduzir o tamanho da estrela. Eu estou realmente indo para arrastar para fora os efeitos de partículas, então não está reduzindo em tamanho para fazer, eu vou anexá-lo às suas raízes e apenas reduzindo o tamanho da estrela para 0,15. E então eu vou anexar o efeito para a estrela e jogar. E agora a história é mais razoável. Então agora o tamanho é bom e nós só queremos fazer o saque na próxima lição. E antes de fazermos qualquer alusão, vamos realmente adicionar um pouco de movimento à estrela porque agora é um pouco chato. É surtos para estudar estrela que não há nenhum movimento que eu queira gostar de cima e de baixo. Assim como se eu remover este estalo, eu quero me mover assim. E nós podemos realmente fazer isso através de código. E se você clicar duas vezes na estrela e ele entrar no gráfico de eventos, eu só quero deletar isso e podemos usar a peça inicial. Podemos fazer algo chamado linha do tempo. E o que é uma linha do tempo. Se você clicar em Adicionar Linha do Tempo, você pode chamá-lo de algo, e eu só queria chamá-lo de movimentos iniciados. O que é uma linha do tempo, podemos realmente fazer movimentos suaves com ela. Então, por exemplo, se você tem a estrela, neste caso, queremos fazer a estrela aspirar para cima e para baixo. Podemos usar uma linha do tempo. Se, por exemplo, você tiver portas em seu jogo e quiser que a porta abra sem problemas. Para montar uma porta dupla para abrir sem problemas, você pode usar uma linha do tempo para isso. Então, qualquer coisa com movimentos suaves, você pode usar uma linha do tempo. E a linha do tempo em que você pode clicar duas vezes. Então você pode ver aqui é um gráfico vazio. E dentro disso você pode fazer um gráfico de flutuação ou uma faixa. Aqui, neste caso, eles chamam de uma faixa ou uma faixa vetorial, um trach de evento, faixa de colarinho, e uma faixa curva. Então aqui nós queremos, vamos voltar e eu vou te mostrar como nós decidimos o que fazer. Então o que queremos fazer é queremos a estrela aqui. Queremos que mude a localização. Queríamos ir para cima e para baixo. Na verdade, vou segurar o Controle, arrastá-lo para fora. E aqui eu vou arrastar para fora desta estrela e, em seguida, escrever conjuntos de localização relativa. E se você não sabe como a função é chamada, a maneira mais fácil para mim desde o início, eu apenas escrevi localização. E então aqui você pode ver todas as funções com a localização e você escolhe aquela que faz sentido. Então aqui temos a localização relativa do conjunto ou uma localização do mundo conjunto. E qual é a diferença entre estes? A localização relativa definida é o local onde sua estrela está atualmente. E você só muda a localização dependendo desse local em que está atualmente. Se você fizer o conjunto bem o mundo do conjunto de cordas, esse local, você vai definir
a localização mundial da estrela e ele não estará mais aqui. Isso será mais fácil quando você começar a trabalhar com ele. Também foi confuso para mim desde o início. E algumas pessoas têm problemas com isso. Então deixe-me escrever a localização e fazer a localização relativa definida. Então eu só quero mudar a localização um pouco. Neste local, está no momento. Então eu vou conectá-lo com a atualização. E agora preciso de um novo local. E para este local você pode ver que é uma variável vetorial. É amarelo, é uma variável vetorial, e precisa de três números. Mas o que posso fazer aqui na linha do tempo, se eu clicar duas vezes nela, posso criar uma faixa vetorial quando preciso de um vetor. E dentro daqui, você pode chamá-lo de gráfico vetorial algo. E aqui eu realmente só queria, quero chamá-lo de localização alfa. Ok? Então, agora, se você compilar e salvar e voltar para o gráfico de eventos, você pode ver o que você chama,
ele aparecerá aqui e ele pode realmente conectá-lo ao novo local. Então agora nós estamos realmente indo para criar este gráfico. Então podemos criar, isso é muito fácil. Você pode criar três chaves diferentes para adicionar três chaves. E aqui você pode escolher o comprimento da linha do tempo. Quanto deve fazer loop? Então eu vou olhar por três segundos. Então vai subir e descer. E este é um loop, este é três segundos. Então eu vou começar de novo, para cima e para baixo e assim por diante. Então, três segundos. E aqui você pode mudar a hora. Então, o tempo, podemos definir o 0 e o valor de 0. E o último ponto, o tempo é três, então este é o último ponto aqui. E o valor também é 0. E eu quero que isso seja no meio, então 1.5. E o valor em que queremos movê-lo é na verdade a quantidade. Se eu voltar aqui e
desconectá-lo, é a quantia que queremos movê-lo para cá. Então, se eu conectá-lo novamente, clique duas vezes. E aqui a quantidade que eu quero mudar para mim, o que funcionou melhor para mim foi 20, mas você tem que testá-lo. Talvez comeces com cinco e depois dizes que isto não é muito comovente. Então eu preciso movê-lo muito mais. Então, 20. E para ver todo o gráfico, você pode clicar nessas setas. Certo, então vamos ver se está realmente funcionando e ver o que acontece. E agora temos um pequeno erro aqui, mas vamos jogar e eu posso mostrar a vocês, você pode ver que está realmente se movendo, mas não está em loop. Ele, ele se moveu ligeiramente, então clicando duas vezes
sobre ele, na linha do tempo, podemos clicar em loop, Usar último quadro-chave. Agora está em loop. Mas você também viu que o movimento não estava realmente se movendo para cima. Está se movendo um A, B, um jeito estranho. Está se movendo para o lado. E nós não queremos isso, nós só queríamos ir para cima. Então a maneira como você faria isso está desconectada aqui. E aqui você pode me escrever convector. Então agora você dividiu este vetor. Outra maneira que você pode fazê-lo é apenas clicar com o botão direito e divide pino atingido. Agora você tem isso e aqui você também pode clicar com o botão direito e dividir o pino Atingido. Então, cabe a você. Você pode fazer isso, desta forma ou você pode fazer um vetor. E aqui você tem que quebrar a palestra. Então, Greg, um vetor. Agora, esta é a mesma maneira que antes. E aqui o que você pode fazer é realmente conectado o valor z com o valor z. E isto deve funcionar. Ele só deve se mover para cima, que é o valor z ou o eixo z. Compilar e clicar em jogar. E você pode ver aqui é agora,
agora movendo-se para cima e para baixo em tela cheia para que possamos vê-lo melhor em sua tela. E agora está se movendo para cima e para baixo. Então agora isso está funcionando e a única coisa que precisamos fazer agora é realmente torná-lo carregável. Então vamos passar para a próxima lição e aprender como torná-la adequada.
26. Criação da estrela: Vamos agora tornar a estrela carregável. Então, a fim de fazer isso, nós temos, lembre-se criado isso desencadeia medo ou esfera de colisão. E queremos, quando a bola atingir esta esfera, queremos fazer algo para que possamos gerar um evento a partir desta esfera de colisão. E o que podemos fazer é descer até o fundo. E aqui você pode ver eventos. E você pode ver que há algo chamado um componente começar sobreposição. Clicar neste sinal de adição irá criar um evento dentro do gráfico de eventos. Então, agora, o que acontecerá se nos sobrepusermos? Isso desencadeia o medo e que chamamos de Esfera de Lesão Oráculo. Agora o que eu quero acontecer é simplesmente alaçar esta estrela. Então, na verdade, podemos dizer algo como Destruir Actor. Então você pode ver aqui se eu agora compilar e clicar em Reproduzir e eu ir e se sobrepor com a estrela, ele vai destruir o ator. Então é como fingir o saque. É assim que fazemos na programação. Acabamos de destruir o ator. Então deixe-me voltar para dentro da planta da estrela. E quando eu quero fazer aqui é dar ao jogador uma estrela por perder isso. Então nós realmente precisamos criar uma variável que irá armazenar a quantidade de estrelas que temos. E a maneira como fazemos isso é vamos abrir o modo de jogo. Porque lembre-se dentro do modo de jogo podemos adicionar variáveis ou apenas coisas que irão controlar as regras do jogo, ou quanto pontuação você tem, ou quantos pontos você tem e assim por diante. Então, dentro do modo de jogo, vamos apenas criar aqui uma variável e chamá-la de estrela, estrelas. E vamos transformá-lo em um inteiro porque este é um valor numérico e nós não precisamos decimais, então nós não precisamos transformá-lo em um flutuador. Apenas um inteiro será suficiente para isso. A próxima coisa é dentro do modo de jogo, eu quero criar um evento personalizado para que possamos adicionar a estrela toda vez que aludimos aqui. Então o que eu quero fazer é simplesmente excluir esses eventos normais. E aqui podemos realmente escrever personalizado. Então agora podemos criar nossos eventos personalizados. Então adicione evento personalizado e dar-lhe um nome. E deixe-me chamá-lo de “adicionar estrela”. Certo, podemos fazer assim. Ou podemos, na verdade, em vez de fazer um evento personalizado como este, podemos realmente fazê-lo através da Interface de Blueprint, e isso é muito melhor para a comunicação entre blueprints. Então deixe-me deletá-lo e deixe-me voltar aqui dentro de interfaces. Lembre-se que criamos int BP bola mais cedo. Eu quero que você crie uma interface para o Modo de Jogo porque eu quero criar um, um evento dentro daqui. Então, clicando com o botão direito do mouse dentro de blueprints, clicando em Blueprint Interface, eu vou chamá-lo int Game Mode. Abrindo esta interface, agora podemos fazer uma função, e agora eu vou fazer uma chamada add star. Então, queremos adicionar uma estrela toda vez que atingimos esta sobreposição. E com esta estrela add, o que você precisa saber sobre interfaces é se você tem uma função sem nenhum nó de retorno, ele vai ser um evento. Mas se você, se você clicar nesta saída e você adicionar uma variável, assim como fizemos aqui com a nossa bola bp. Se eu voltar, se você não retornou nó como este, se você tem algo na saída, isso vai ser uma função. Se você não tem uma saída, assim como aqui, se você não adicionar nada aqui, este será um evento. Então isso é muito, muito importante entender que você não pode ter um evento se você tem uma saída aqui. Então agora este é um evento chamado essa estrela. E você também pode adicionar entradas para este evento. Isso é tudo bom, mas você não pode ter uma saída. Então dentro do modo de jogo, lembre-se que temos que adicionar a Interface Blueprint antes de poder usá-lo. Então, escrevendo em um modo e nós adicioná-lo, podemos compilar e salvar. E você pode ver que isso agora é amarelo porque este é um evento. Se não foi um evento, será, se eu voltar para o baile aqui, ficar azul. Se não for um evento e for uma função. Mas se for um evento, será amarelo aqui, aqui, e não posso clicar duas vezes nele e acessá-lo porque é um evento. Então vamos clicar com o botão direito aqui e escrever na estrela. Aqui diz evento na estrela. Podemos comandar isto. Agora temos esta função Blueprint Interface, nosso evento. E você pode ver aqui esta é a partir da Interface de Blueprint. Isto é o que o ícone significa. E o que nós simplesmente queremos fazer com isso é apenas arrastar para fora o inteiro estrela. Então mantenha o controle pressionado, arraste-o para fora, ou você pode arrastá-lo para fora e clicar em Obter. Assim, a mesma coisa. E aqui você pode dizer mais, mais e clicar nele. Aqui está, ele diz adicionar 1 ao valor especificado, em seguida, defina-o. Então, vamos adicionar um a esta estrela. Outro método que você poderia ter feito isso para ele é apenas clicar em mais, clicando em adicionar. E aqui você vai adicionar um. Por exemplo, toda vez que
olharmos, vamos adicionar uma estrela. E então você vai arrastá-lo para fora, clique em Definir, e arrastá-lo aqui, e então conectar tudo. Então, este é o mesmo método que plus. No entanto, o, o plus é muito mais curto para escrever, então eu gosto de escrevê-lo. E lembre-se que isso é, isso só pode adicionar um. Então, se você precisar adicionar. Um valor de dois ou mais, você não pode usar isso. Por isso, neste momento só queremos adicionar uma estrela, por isso vou apagá-la. Isto é bom para nós. Então agora vamos adicionar uma estrela. E o que, isto é, o que queremos fazer aqui toda vez que nos
sobrepomos com a estrela, queremos adicionar um a esta variável inteira de estrelas. Então nós vamos aumentá-lo em um e ele vai armazenar a quantidade de estrelas que temos carregado. Então o que queremos fazer é lembrar, precisamos de comunicação entre esses dois projetos. Eu realmente na estrela, Eu preciso usar a informação que está dentro deste modo de jogo. Então o que eu posso fazer é escrever ganha um modo. E agora este é o modo de jogo geral. Lembre-se que esta é a classe pai deste modo de jogo. É o modo de jogo. E agora eu quero apenas, assim como escrever custos para o nosso Modo de Jogo Personalizado. Em vez de casting, eu quero usar a Interface Blueprint. Então, dentro da interface do modo de jogo, eu vou adicionar uma nova função e eu vou chamá-la de Get Modo de Jogo ref. Então, obtenha a referência do Modo de Jogo. E isso vai ser uma função, então eu vou adicionar uma saída. E a saída é o, O Modo de Jogo que você está tentando se referir. E esta é a bola de velocidade g m. Então rodando a bola de velocidade GM no meu tipo de variável e clicando na referência do objeto. Agora posso chamá-lo de modo de jogo. Compilar e salvar. E dentro da bola de velocidade do modo de jogo, agora
você tem esta função que você pode clicar duas vezes. E agora ele está perguntando o que é essa variável de modo de jogo? E aqui eu posso ver que é eu mesmo. Então é realmente este eu, significa esta classe blueprint que você está atualmente e este é o Gemara quer usar. Isto aqui é muito fácil. Agora podemos dizer obter o modo de jogo. E agora ele vai dizer que modo de jogo você quer obter. Quero pagar a dívida. Modo de jogo ref, o que eu apenas a função que eu acabei de criar na Interface Blueprint. E agora ele sabe que eu estou me referindo a este modo de jogo porque aqui nós escrevemos auto. Então, a partir daqui, deixe-me conectá-lo a aqui. E dentro daqui, queremos usar isso no evento das estrelas. Então vamos chamar este evento. E aqui, a maneira como você chama eventos é apenas escrever o nome do evento. Então escrever adicionar estrela. E aqui você pode escolher esta mensagem. Lembre-se que este é um Evento de Interface de Blueprint que fizemos. Então temos que clicar em Mensagem, a chamada mensagem, não esta ou esta. Então agora ele vai chamar este evento. Então, toda vez que nos sobrepomos com esta estrela, digamos que temos muitas estrelas em nosso nível. Toda vez que nos sobrepomos com a estrela, vamos para o modo de jogo. E estamos organizando este evento. E este evento nos dará uma estrela para esta variável. Assim, aumentará esta variável em um cada vez que esperamos sobrepor a estrela. Então ganhamos uma estrela toda vez que a sobrepomos. E agora podemos adicionar o Destruir Ator. E vamos realmente imprimir isso na tela para que você possa realmente ver o que está acontecendo. Eu vou escrever aluguéis, imprimir string, e eu vou imprimir este valor. Então você pode ver que ele está realmente aumentando cada vez que atingimos a estrela. Então salve tudo e lembre-se de compilar e salvar tudo. Vamos minimizá-lo e deixe-me clicar na estrela, segure Alt e arraste para que eu possa copiá-lo algumas vezes. E assim podem ver que estou carregando a estrela. Então, clicando em Jogar. Agora, vou entrar em um. Você pode ver que diz um no canto superior esquerdo se eu aumentar a tela. Então, o canto superior esquerdo você pode ver agora 23456. Então agora nós estamos realmente carregando as estrelas e ele está adicionando uma para a variável de estrelas toda vez que começamos. Isto é, esta foi uma maneira rápida de fazê-lo. E o que eu quero fazer realmente
no próximo vídeo é em vez de apenas fazê-lo desaparecer assim, Vamos fazer uma animação para que a estrela vai voar e girar e, em seguida, desaparecer.
27. Adição de loot: Vamos agora criar a animação para quando você carregar a estrela. Então, quando você olha para esta estrela, eu quero começar a me mover para cima e ela também vai girar ao mesmo tempo. Então vamos em frente e clicar duas vezes sobre a estrela da BP que fizemos. E dentro daqui eu quero fazer outro evento. Agora podemos ir em frente e fazer uma Interface Blueprint e através dessa interface para a Estrela, fazer um evento. Mas eu realmente só quero fazer um
evento personalizado normal do cliente porque esta é a única coisa que eu vou fazer. Então eu não quero fazer uma interface inteira só para isso. Então vamos chamar esta estrela do evento do cliente alusiva. E aqui vamos fazer toda a animação. Por isso, neste momento, ainda não chamámos esta animação. Então vamos em frente aqui e dizer, o que chamamos de estrela aludida a aqui podemos dizer que estrela aludiu. E agora vamos chamar o evento. Lembre-se que você tem que chamar o evento para que ele funcione em outro lugar. Jogo realmente não sabe quando executar este código. Se você não disse em nenhum lugar em seu código, um para executar este evento. Então, quando você se sobrepõe com a estrela, nós vamos alaçar esta estrela. Então vamos adicionar a estrela que adicionamos aqui no modo de jogo. E nós vamos executar este evento alusivo estrela. Então agora vamos construir o código dentro daqui. Então o que eu queria fazer era adicionar uma linha do tempo. Então vamos escrever uma linha do tempo. E este podemos chamar de movimentos de humor sombrio. Assim como o que temos aqui, a estrela está se movendo para cima e para baixo. Agora queremos começar a voar para cima quando aludimos. Então, quando atingirmos a estrela e vamos jogar esta linha do tempo. E dentro daqui, o que queremos fazer é mudar a localização deste projeto. Então, quando temos o garanhão nesse nível, queremos, queremos mudar a localização desta estrela BP. Então, para fazer isso, podemos apenas dizer, clique com o botão direito e dizer ainda localização do ator. E se você não sabe como é chamado, o escuro é apenas o local certo. E você vai encontrá-lo. E diz que você pode rolar para cima e para baixo para encontrá-lo se quiser. E esta leitura através e aqui você pode ver a localização do ator. Então agora você está recebendo o, Esta localização de atores agora. E o que queremos fazer é definir a localização, assim disse ator, localização relativa. Então é isso que você vai usar. E agora o alvo para isso é apenas eu. Nós não precisamos adicionar um alvo porque a coisa
que queremos mudar sua localização é realmente esta estrela BP. Então isso, isso é o que eu significa. Isto é, isto significa que o alvo é este plano. Então isso está correto. Então o que queremos fazer é mudar a localização da atriz. Então mude esta planta, localização das plantas. Então, qual é a localização? Vamos, vamos fazer um vetor aqui. Então agora queremos mudar o valor z, assim como o que fizemos aqui. Nós mudamos o valor z para subir e descer aqui queremos mudar o valor z para que a estrela voe para cima. Então vamos clicar duas vezes sobre este movimento de saque de estrelas. E dentro desta linha do tempo, queremos criar um arrasto vetorial. E dentro desses Vector Track, vamos chamá-lo de localização alfa. E aqui vamos criar, vamos para 2, então duas chaves, adicionando duas chaves. E vamos fazer o comprimento disso pode ser 1 segundo. Podemos sempre tentar e ver se é demais. E clicando no último quadro-chave. Agora vamos passar o mouse e selecionar esses três pontos. E a propósito, eu digo três pontos porque eles são três pontos se você seguir em frente e você pode ver aqui estes são na verdade três pontos porque este é um vetor x, y e z. Então, clicando em Controle Z, selecionando esses três pontos, e então eu vou escrever 0 neste momento e a tensão 0 e no tempo 1, que é o último quadro-chave aqui, vai ser, Vamos movê-lo para cima por dois. Vazamento sobre estes ajuste horizontal e vertical para que possamos ver todo o gráfico absorvendo na compilação. E agora acho que está tudo bem. Então vamos, vamos em frente e voltar aqui. E dentro daqui, vamos arrastar para fora daqui e podemos escrever break vector. Agora. Agora nós quebramos o vetor e agora podemos fazer alguma entrada aqui, a doença. Então vamos conectar o z. e isso é o que queremos controlar. Queremos controlar a entrada Z porque queremos fazer
a estrela de voar para cima quando aludimos. Então é isso que estamos tentando fazer. E agora não vai funcionar Legos e eu vou te mostrar o porquê. Então, se tentarmos compilar, salvar, e antes de eu clicar em Reproduzir, vamos remover este Destruir Ator porque ele vai destruir o ator uma vez que entrarmos nele. Não queremos isso agora. Só queremos entrar no assunto e depois. Vai tocar esta animação. Então deixe-me compilar e clicar em Reproduzir e ver o que acontece. Então agora está desaparecendo. E, na verdade, o código está funcionando. Não é porque não está funcionando. Você pode ver aqui, se você olhar de perto, o, o efeito de partícula ainda está tocando. Então, se eu removê-los,
os efeitos de partículas ainda estão tocando. Mas o problema é que não estamos definindo o local corretamente. Então, na verdade, o código está funcionando, mas não estamos sentados corretamente. E isso é porque agora estamos definindo o x e y como 0. Isso não é verdade porque não queremos definir esses valores como 0. É por isso que temos de escrever isto. Desde o início. Escrevemos a localização do ator. E o que é o ator? E o ator é eu mesmo. Esta é a estrela da BP. Queremos obter o, a localização da estrela em que se encontra atualmente. E vamos clicar com o botão direito e dividir o pino de interrupção. E queremos conectar a localização atual do x dois aqui e a localização atual do fio até aqui. Então agora estamos obtendo a localização atual da estrela, o x e y, e estamos conectando-a. E nós só queremos alterar o valor Z. O valor Z. Nós também queremos, queremos o valor atual de Z. E então nós só queremos alterá-lo dependendo de onde o valor z está atualmente em. Então aqui eu vou apenas escrever mais para adicionar peso para mover isso um pouco mais longe. E eu vou conectar o valor z e, em seguida, conectá-lo a este valor final Z. Então, estamos levando o valor z original onde ele está atualmente no momento. E estamos adicionando isso a que está atualmente dentro da linha do tempo. Isto é o que estamos olhando agora. E vamos em frente compilar, salvar tudo e clicar em Reproduzir e ver o que acontece. Então, agora, se eu entrar na estrela, ela vai voar para cima. Então isso é o que acontece e isso é realmente o que queremos. Ok, agora está olhando, está olhando legal, olhando notas. E o que queremos fazer agora? Na verdade, também queremos girar. Então vamos em frente e fazer isso. Vamos escrever set ator rotação relativa aqui. Então agora vamos definir a rotação também. Agora, em vez de obter o local real, nós também podemos escrever gets após a rotação. Agora temos essa rotação. E com esta rotação só queremos girar. Se voltarmos para dentro da janela de exibição, queremos girar ao longo do eixo z. Então podemos ver aqui, queremos girar assim. Então queremos girar ao longo do eixo z. E vamos voltar a uma estrela VP. Então vamos dividir o Pentágono Atacado. E vamos dividir este também. E nós só queremos girar o eixo z, então a rotação x e y será a mesma que a lei atual da rotação do ator atual. Mas só queremos afetar a rotação do eixo z. Então a maneira como fazemos isso é também com a linha do tempo. Queremos girá-lo. Então clique duas vezes na linha do tempo. E dentro desta linha do tempo nós realmente temos que fazer um novo gráfico. Então este novo gráfico que vamos fazer, vamos fazer um flutuador. E esta falha, vamos chamar rotação alfa. E aqui vamos adicionar quatro chaves, mas adicionando 1234, assim por diante. Agora temos quatro chaves. Então, a primeira chave que eu quero ser um 000, então no tempo 0 e valor 0. E o último que eu quero ser, eu realmente testei isso antes, então eu sei quais serão os valores. Mas se você gosta desde o início, quando você tenta fazer isso, você apenas experimenta valores, por exemplo, aqui você está certo no momento 1. Talvez você queira girar para ser 360. Então agora está virando para um lado. Está girando 360 graus. E eu estabeleci alguns valores aqui. Deixe-me ver o que são. Então, no tempo 0, 25, eu tenho o valor para 180. Então está indo, deixe-me encaixar este visor. Então, no momento 0,25, ele vai virar 180, então a meio caminho. E em seguida, no 2.5º, ele vai virar 360. Então agora virou um, uma vez. E aqui em, deixe-me ver aqui, Deixe-me adicionar mais um, mais
um 0, 75 vai virar novamente. E você pode realmente uma maneira legal de fazê-lo se você quiser girá-lo 180, novamente, basta escrever mais 180 e ele vai calcular para você. Então, em um, eu vou dizer mais 360, assim. E podemos ajustar o gráfico assim e Compilar e Salvar. Agora vai girar assim. Vamos voltar. E esta é a rotação alfa. Agora podemos conectá-lo à rotação aqui. E vamos clicar em Reproduzir e ver o que acontece. Então, se eu entrar na estrela, ela vai girar para cima e isso é o que queremos. Então isso é muito legal. Agora está funcionando. E agora queremos destruir o ator quando ele está aqui em cima, para que não seja mais visível. E do jeito que fazemos, vamos pegar esse Destruir Ator e usá-lo aqui. Quando a linha do tempo terminar, vamos destruir o ator. Vamos em frente e limpar um pouco porque está ficando um pouco confuso. Então, talvez coloque isso, coloque isso aqui. E este, talvez possamos arrastar para baixo para
colocá-lo debaixo de tudo para que não estrague a estrutura. Algo como isto. Agora. Parece muito melhor e um pouco menos confuso. Então, algo assim. E quando terminar, vai destruir o ator. Agora, outro problema que temos é que o efeito de partícula ainda
está aparecendo e queremos desativá-lo quando olhamos. Então aqui, vamos realmente tirar essa estrela P. Este é o efeito de partícula que adicionamos anteriormente. E com este efeito de partícula, queremos afetar a visibilidade. E clicando neste efeito de partícula. E descendo aqui, você pode ver que temos algo chamado visível. E se desativarmos a visibilidade, o efeito de partícula desaparecerá. Se o permitirmos, o efeito de partícula estará aqui. Então nós realmente queremos torná-lo invisível. Então, verificando isso e escrevendo visível. E vocês podem ver aqui que temos algo chamado visibilidade do conjunto. Clicando sobre isso. E vamos conectá-lo. E a nova visibilidade está desmarcada, e isso significa que não será visível. Se tivéssemos isso marcado, isso significaria que as visibilidades da estrela deveriam ser ativadas, mas vamos desativar a visibilidade e seria que o efeito do artigo desaparecesse. Então, clicando em
compilar, clicando em jogar e podemos testá-lo. Vai girar e vai desaparecer. Uma vez que tenhamos aludido à estrela.
28. Criando a interface a Star: Agora estamos prontos para criar alguma interface de usuário e mostrar quantas estrelas o jogador carregou. Então, agora, quando clicamos em Jogar e nos movemos, você pode ver que ele exibe no canto superior esquerdo quantas estrelas aprendemos. Mas esta é apenas uma função de string de impressão e este fluxo de impressão, o jogador não será capaz de ver quando seus amigos ou familiares jogá-lo. Isto é apenas temporário para o desenvolvimento. E então precisamos criar interface de usuário real ou uma interface de usuário real para exibir quantas estrelas declarar carregou. Então aqui dentro da pasta
UI, vou clicar com o botão direito do mouse e clicar dentro da interface do usuário, olhando no Widget Blueprint. E eu vou chamá-lo de WB para Widget Blueprint como um prefixo. E então eu vou chamá-lo principal porque é, esta é a interface principal que temos. Vamos salvar tudo. Vou clicar duas vezes neste Widget Blueprint. E você pode ver que estamos dentro de um, um gráfico ou um designer. E aqui à esquerda temos coisas diferentes. Podemos adicionar, por exemplo, um botão ou uma imagem, ou um controle deslizante, ou algumas tags. Portanto, existem alguns elementos que podemos adicionar a esta interface do usuário. E aqui você pode ver todos os elementos que você adicionou à interface do usuário. Atualmente está vazio porque não temos nada. E à direita você pode ver que temos um designer no qual estamos atualmente. Aqui. Nós projetamos a interface do usuário. E à direita há algo chamado gráfico. E dentro daqui, isso se parece com as plantas, óculos ou Level Blueprint em que temos trabalhado. E dentro do gráfico, você pode realmente codificar funcionalidade para os botões que você projetar dentro daqui. Agora não temos botões, então não podemos fazer nada. E antes de projetar UI, você só tem que pensar sobre o que você está tentando alcançar o agora, nós só queremos a estrela, então precisamos de um ícone de estrela. E ao lado do ícone da estrela, precisamos exibir quantas estrelas o jogador carregou. Então, já dentro dos ícones da interface do usuário, já
importamos esta estrela ícone. E se você ainda não fez isso, eu fiz upload no site. Então você pode carregar esta estrela ícone. E precisamos deste ícone dentro daqui e de alguns textos ao lado dele. Então, para fazer isso, o ícone é apenas uma imagem. Então precisamos, podemos arrastar esta imagem em cima deste designer e soltá-la. Você pode ver que ele adiciona uma lágrima ao painel de tela. E se eu excluir novamente, clicando no botão excluir, eu também posso arrastá-lo para baixo em cima
deste painel de tela e ele irá adicioná-lo automaticamente. Normalmente eu trabalho assim, então eu adicionei aqui dentro. Agora temos esta imagem. E você pode ver quando você clica nesta imagem, nós temos um monte de propriedades à direita, nós temos algo chamado uma âncora. Então esses pontos de ancoragem definem onde a imagem que clicamos agora, onde ela está dentro do designer. Então, por exemplo, se é uma imagem que deve ser centrada na tela, eu deveria clicar nisso. E este não é muito importante agora. Vou explicá-lo mais tarde em detalhes em outro curso. Mas aqui você pode posicionar, você pode posicionar
a imagem, ou você pode simplesmente clicar e arrastar. Além disso, isso funciona. Você pode ver a posição está mudando, também
pode alterar o tamanho da imagem. Aqui. Você pode alterar o alinhamento da imagem. A coisa que precisamos clicar é pincel. Então, em vez de pincel, se você clicar na seta, esta é a aparência. Aqui. Você pode realmente escolher qual imagem você deseja. Então, na verdade, queremos o ícone da estrela. Então você pode clicar e arrastar aqui e soltá-lo em cima dele. Ou você poderia ter apenas clique aqui e procurar por estrela e você teria encontrado. Estamos fazendo isso de duas maneiras. Ok, então agora podemos ajustar o tamanho dele. E vocês podem ver aqui, quando ajusto este tamanho, este tamanho de imagem, nada acontece. E isso é porque agora nós apenas arrastamos a imagem para cima desta tela. E nós podemos realmente mudar o tamanho disso aqui em cima e não aqui em baixo. Portanto, este tamanho de imagem só pode ser alterado aqui se estiver dentro de outros elementos. E eu vou te mostrar o que quero dizer. Então, basicamente, nós também
precisamos colocá-lo dentro de algo e eu vou mostrar a vocês o que eu quero dizer aqui. Então vamos deletar isso. E há algo chamado uma caixa horizontal e uma caixa vertical. Uma caixa horizontal, posso mostrar o que é. Diz para permitir que os interruptores sejam colocados em um fluxo horizontalmente. E isso é o que precisamos porque precisamos de um ícone de estrela e precisamos de alguns textos ao lado dele. Então precisamos de uma caixa horizontal aqui. Então, clicando e soltando esta caixa horizontal aqui, você pode ver agora que temos uma caixa horizontal. Este é apenas um recipiente vazio, mas quando soltamos itens dentro desta caixa horizontal, ele irá colocar os elementos horizontalmente toda vez que deixarmos cair algo. E deixa-me mostrar-te. Se você agora arrastar a imagem, temos que arrastá-la para cima da caixa horizontal, não para o pacote de tela. Então, em cima da caixa horizontal soltando-a, você pode ver agora que está dentro da caixa horizontal. E se colocarmos alguns textos porque queremos exibir quantas estrelas você pilhou,
soltando-o em cima da caixa horizontal. Você pode ver que eles estão agora horizontalmente ao lado um do outro. Então, se você continuar soltando itens na parte superior da caixa
horizontal, horizontal, você pode ver que não são adicionados horizontalmente. Agora isso é o que uma caixa horizontal é. Está bem, faça-o maior assim. Então, vamos excluir todo esse texto. Só precisamos de um. E quando precisamos fazer aqui é adicionar a estrela. Então, clicando nesta imagem aqui, indo para a aparência do pincel. E novamente, vamos encontrar a estrela. Clique no botão Iniciar para adicioná-lo. Então agora temos a estrela. Agora você pode ver que não temos um tamanho aqui em cima que possamos mudar. E isso é porque esta imagem está agora dentro desta caixa horizontal. Você só pode alterar o tamanho aqui se for o pai, o elemento pai. Então, se você tem filhos dentro dele, todas essas crianças não têm tamanho aqui em cima. Só pode mudar o tamanho para os pais. Ok? Então, para as crianças, agora
você pode mudar o tamanho aqui em baixo. Então agora isso está funcionando. Por exemplo, se eu quiser que as estrelas sejam 5050, algo assim. E você pode ver que eu mudei o tamanho, mas nada aconteceu. E um está funcionando, mas este não está funcionando. Tão bem. Deixe-me mudar o 1550. E isso é porque temos algo chamado alinhamento horizontal e alinhamento vertical. E você pode ver aqui, ele está tentando se esticar. Está tentando preencher esta imagem na horizontal e na vertical. E nós não queremos isso, nós só queremos, vamos colocá-lo dentro do meio. Então, clicando sobre isso e clicando sobre isso. Agora está no meio desta caixa e deste texto. Vamos fazer o mesmo. Não queremos encher. Vamos colocar no meio, no centro. E para este texto podemos escrever. Não importa agora porque isso mudará dinamicamente dependendo de quantas estrelas você carregou. Então vamos escrever 23 apenas por agora para que possamos visualizar como ele realmente se parece. Ok? Então isso está parecendo agora. Esta é a imagem e esta parece boa. Mas o que eu quero fazer aqui na verdade é que eu quero esta estrela 2 ou eu quero que este texto seja um pouco mais longe da estrela. E você pode ver aqui você também pode clicar em algo chamado preenchimento. Então, na imagem aqui, se você clicar na imagem e vamos realmente renomeá-la para que seja melhor olhar. Então, clicando em F2 e deixe-me chamá-lo de IMG para imagem. E deixe-me chamá-lo de estrela. E aqui F2 TXT para texto. E eu vou dizer estrela, estrela, tudo bem. Compilar e salvar. Agora, se você gostou desta estrela de imagem, você pode clicar em algo chamado ano no tamanho, algo chamado preenchimento. E isso significa que ele realmente vai preencher. Você pode ver aqui se eu clicar duas vezes na caixa horizontal, agora se eu arrastá-la ao redor, você pode ver, mesmo que eu esteja fazendo um salto maior aqui horizontalmente, ele não está se movendo. E eu gosto de ter minha interface dinâmica Lee se movendo. Por exemplo, se você ver se eu arrastá-lo para baixo, ele está se movendo corretamente. Então, dependendo do quão grande isso é, mas não está funcionando assim. E eu gosto que minha interface de usuário seja totalmente dinâmica ou totalmente dinâmica. E para fazer isso, clicando na estrela, você pode clicar no botão chamado Preencher. Então agora está enchendo. E você tem que fazer o mesmo aqui com o, com o texto. Então, clicando em preencher e você pode ver que ele está realmente preenchendo. Então agora estes estão tomando, a estrela está tomando metade do espaço dos bugs horizontais, e este texto está tomando a outra metade. Então eles estão tentando preencher dependendo de quanto espaço existe. Então agora você pode realmente movê-lo mais perto. Talvez algo assim. Eu só gostaria disso. E se você quiser visualizar a interface
do usuário seria sem todas essas linhas tracejadas, você pode clicar neste botão aqui em cima. Então agora você pode ver a interface do usuário sem todas essas linhas tracejadas. E eu acho que isso está ótimo. Talvez precisemos reduzir o tamanho para 45. 45. E isso parece bom. Então agora temos este texto. Temos, podemos definir a fonte que queremos usar. Podemos definir a cor dele para que ele possa mudar de cor, se você quiser. E vamos apenas, eu não sei, vamos mudar para algo só por diversão. Ou talvez algo alaranjado também. Então, algo assim. E agora este é o topo da interface do usuário. Então imagine isso como sua tela. E agora você pode arrastar isso aqui no topo da tela. Então, para cima à esquerda aqui. Então, algo assim. E vamos economizar, e isso é bom para mim. Agora, nós projetamos esta estrela e isso vai ficar bem. O que temos para fazer este número dinamicamente? Ele tem que atualizar dependendo de quantas estrelas você carregou. Então, clicando nisso, há algo chamado aqui no texto, algo chamado bind. E esta ligação, você pode criar uma ligação e você pode atualizá-la para dinamicamente dependendo de quantas estrelas você carregou. Agora, clicando sobre isso, 23, aqui no texto, você tem algo chamado bind, clicando sobre ele, criar bind. E aqui vocês podem ver que estamos agora dentro do gráfico em vez do designer. E ele realmente criou uma função aqui, querendo clicar em bind. Criou uma função para nós. E vamos mudar o nome da função porque está parecendo estranho agora. Vamos clicar em F2 e dizer Obter quantidades de estrelas. Então isso é o que ele vai conseguir para nós. Então compile e salve. Então agora eu tenho que codificar algo dentro disso e isso é muito fácil. Lembre-se, nós codificamos isso. Deixe-me voltar ao modo de jogo. Dentro do modo de jogo, fizemos esta variável começa, que na verdade armazena quantas estrelas temos e precisamos acessar essa variável. Então agora novamente, precisamos fazer alguma comunicação Blueprint porque precisamos de
algo do modo de jogo e do modo de jogo. Nós já criamos o vestido Gamew do gueto. Lembre-se na interface do usuário que criamos isso. Então agora podemos obter a referência para este modo de jogo. E novamente, a maneira de fazer isso é olhar para a classe pai. Então, estamos adicionando get Game Mode. E agora ele vai perguntar que jogo ou você quer, para pedir? E eu quero minha respiração obter Modo de Jogo porque eu fiz isso na minha interface de usuário. Então escrever bom modo de jogo ref, e é uma mensagem porque é uma função de interface de usuário. E agora, quando me conectei, agora posso acessar tudo dentro do meu modo de jogo. Eu quero acessar a variável stars. Então arrastando até aqui e escrevendo estrela, e você pode ver aqui obter estrelas, agora
podemos obter essa variável. E agora esta variável, podemos agora ligar a este texto. E ele vai dizer, você está tentando conectar uma variável inteira dentro de uma variável de texto, eu vou converter o inteiro para um texto antes que eu possa fazer isso. E isso é o que ele está fazendo. Está dizendo para texto, e este é o valor de retorno. Então é fazer o seu número para um texto e, em seguida, conectá-lo. Agora vamos ligar a última coisa aqui. Então agora vai funcionar. Vai actualizar automaticamente. Isto é muito fácil. Bem, vamos salvar. E esta é a única coisa que tivemos a ver com a interface do usuário. Nós só queríamos uma interface muito simples que mostraria quantas estrelas temos. E agora ele é exibido automaticamente ou dinamicamente. Se você for para o gráfico, agora
você tem essa função. Só não se confunda. Se você estiver no gráfico de eventos e vir que ele está vazio. É porque você fez isso dentro de sua função. Então começar a quantidade se você clicar duas vezes nele e abri-lo, você tem o seu código dentro daqui. Então vamos passar para a próxima lição.
29. Exibindo a Star UI: Agora criamos a interface do usuário para a estrela, por isso dupla exibição quantas estrelas o jogador aludiu. Mas temos que adicioná-lo à janela de exibição. Então agora nós não, não podemos ver a interface do usuário que acabamos de criar na última lição. Então vamos em frente e exibi-lo para o jogador, e isso é muito fácil. Então vamos para as plantas. E eu gosto de fazer minha interface dentro do controle do jogador. Algumas pessoas gostam de fazê-lo através do modo de jogo, e isso depende do tipo de programador que você é, o que você quer fazer e o que você está acostumado a fazer. Então eu gosto de fazer isso através do controle da placa. Acho que é mais fácil. Então, aqui, clicando com o botão direito do mouse e fazendo o evento start play. E eu quero exibir a interface do usuário assim que o planeta ou quando o jogo começa a jogar. Então, aqui no evento start play, eu quero arrastar para fora e fazer algo chamado cria widgets. E você pode ver aqui temos algo chamado criar widget. Se você clicar nele. Agora você pode selecionar qual widget você deseja criar. E aqui eu quero selecionar meu w, O principal, esta é a interface do usuário que criamos e o Owning Player é o jogador que possui o widget. E isso significa que temos que fazer uma referência para obter controlador de sinalização. E a coisa boa sobre isso é que você tinha que fazer isso assim se você estiver no modo de jogo. Mas agora estamos codificando dentro do controle do jogador. Então, desta forma, nós realmente não precisamos um controlador preto porque já estamos dentro do controlador plebs. Então é por isso que gosto de fazer e fazer isso aqui. Então eu não tenho que escrever isso aqui. Ok, então agora nós criamos esta interface do usuário. Mas antes que possamos vê-lo, também
temos que exibi-lo. Então, estas são duas coisas separadas. Você criou a interface do usuário e, em seguida, você escreve Adicionar ao Viewport, adicionando-o à tela. Então você está criando a interface do usuário e, em seguida, você está adicionando-a à tela. Então isso é muito simples. Era tudo o que tínhamos que fazer. Então, clicando no jogo e ver, agora contando e está funcionando. Isto é muito fixe. Vamos remover a cadeia de impressão. Eu posso ver que está contando duas vezes porque nós também temos uma cadeia de impressão. E deixe-me ver, ou na verdade não era um modo de jogo, eu acredito. Então. Dentro do modo de jogo, temos esta cadeia de impressão menos agora excluída. Agora estamos exibindo. E nós também temos algo vendo Olá toda vez que nós, cada vez que começamos o jogo e eu acho que está na tigela. Não me lembro onde fizemos essa corda de impressão. Ok, então agora eu não consigo encontrá-lo da maneira mais rápida. Se você tem um monte de código, talvez você tenha que encontrar algo como isso em um jogo maior. Dessa forma você pode fazer isso é clicar em indefinido. E então você escreve string de impressão porque isso é o que ele está fazendo. Está dizendo “olá “toda vez que começamos o jogo. Então cadeia de impressão, eu estou procurando cadeia de pegada, mas agora ele está apenas procurando dentro deste projeto. Então você tem que clicar aqui neste botão. E agora ele exibirá todos os lugares. Diz corda de impressão. E você tem que olhar para os títulos. E está aqui. Esta é a nossa planta que fizemos dentro do mapa, mapas de pessoas. Agora este é realmente o plano de nível, então clicando duas vezes sobre ele, você pode ver que temos aqui, isso é o que fizemos antes na lição anterior. Vamos apagar isso e eu também vou querer fazer isso. E eu também quero excluir tudo isso porque nós não estamos usando eles. Assim mesmo, compilando, salvando tudo. E agora está funcionando como deveria, e está contando.
30. Ator: Antes de continuarmos, quero mostrar-vos que um nó chamado actor marcou. E vamos em frente e dentro da estrela da BP,
bem, clicando duas vezes sobre ela. E aqui temos a lógica para quando nos
sobrepomos com os gatilhos medo ou com a esfera de colisão. Deixe-me realmente mover isso um pouco para baixo. Quando nós, quando colidimos com esta esfera de colisão que temos aqui, estamos a fazer algumas coisas. Então agora o que quer que você tinha MPC ou inimigo, inimigo AI dentro de seu jogo e eles colidem com esta esfera. Isso irá realmente acionar o código. E você não quer isso. Você só quer que o jogador ative este código. Não queres que a tua IA o faça. Dois. Por engano, pisar dentro da estrela e a estrela será realmente saqueada mesmo que não seja você carregando. E para evitar isso, podemos usar algo chamado “O ator tem tag”. Então vamos mover isso para o lado um pouco. E este é o ator. O outro ator é o ator que está sobrepondo esta estrela. Então agora o que podemos arrastar para fora daqui, ator
Android tem tag. E podemos usar essa função. E agora você pode escrever em que sagen o jogador tem. Então isso nós podemos realmente editar se entrarmos na bola BP. Então, clique duas vezes nesta classe blueprint. Esta é a bola que fizemos dentro daqui. Você pode realmente, nos padrões da classe, você pode procurar por tags. E você pode realmente atribuir tags a este ator para clicar neste botão mais, podemos adicionar uma tag a esta bola BP. E eu quero adicionar uma tag chamada jogador. Tão convincente e economizadora. Então agora dentro de BP estrela aqui você pode escrever um jogador dentro desta tag. Então agora você está dizendo que se a tag é jogador do ator tem o tag player, então você pode interagir. Então, arrastando para fora daqui e clicando em B para criar uma ramificação. Porque agora isto é, isto é perguntar se algo é verdade ou não. Então este é um booleano. Lembre-se se criarmos uma variável e o booleano é vermelho, então este é um booleano. E o que um booleano era, é um valor que é verdadeiro ou falso? Então, se você for arrastado para fora deste booleano e escrever B, você tem algo chamado ramo. E o ramo é apenas uma condição. É calculista, estão vendo se esta condição é verdadeira ou não. Então eu vou conectá-lo. E agora você está perguntando, veja isso, verifique este outro ator que acabou de se sobrepor e a estrela, por exemplo, se a embaixada ou se é a Blair. E verifique se o ator tem o jogador técnico e nós acabamos de adicionar o jogador tag na nossa bola BP. Então agora, agora está dizendo, isso é verdade? Será que esta tag, ou este ator tem o técnico? Isto é o que a filial faz. Diz, se for verdade, vá em frente e execute o código. Se for falso, então não faça nada. Então não temos que conectar nada aqui. Então, com o MPC, MPC agora caminha dentro da estrela. Nada vai acontecer porque o MPC não tem um,
o jogador de tag nele. E agora não temos embaixadas ou inimigos, como isso é apenas em teoria. Mas se você tem um jogo com IA, eles não podem sobrepor a estrela agora descarregada, você só pode fazê-lo porque você tem o jogador tag em suas pessoas feed. Então agora estamos nos certificando de que só o jogador pode levar até a estrela.
31. Criando pontos de controle: Agora estamos prontos para criar alguns pontos de controle. E depois de criar os pontos de verificação, podemos então criar os portais que nos levarão para os próximos níveis. Mas primeiro temos que verificar para produzir alguns pontos de controle que vamos saltar dos diferentes níveis. Então vamos em frente e trabalhar nos postos de controle. Em primeiro lugar, queremos que o Gamow controle os pontos de controle porque isso faz mais sentido. Controla as regras do jogo. Então vamos criar algumas variáveis para os pontos de verificação. Agora primeiro, você tem, antes de fazer uma variável, você tem que pensar sobre o que são postos de controle. E são apenas locais no mapa e locais. Lembre-se, a localização é o vetor que usamos antes. Assim como se você definir um local de ator, você terá que usar um vetor. E neste caso, também podemos fazer uma variável vetorial. Então vamos em frente e fazer uma variável, e vamos chamá-la de checkpoints atuais. Agora este é o ponto de controle atual. Mas também vimos, vamos transformá-lo em um vetor. Mas também temos que fazer outra variável, e esta variável conterá todos os pontos de verificação que temos. Então temos duas variáveis diferentes, uma para o ponto de verificação atual que estamos atualmente, e outra que contém todos os nossos pontos de controle no jogo. Então vamos criar outra variável, e vamos chamar este um checkpoints. Oh, este aqui contém todos os postos de controle. E para este, vou usar um mapa. Então aqui, até agora criamos variáveis normais e normais. Então, apenas criando a variável. Mas aqui à direita, você pode clicar neste pequeno botão e você pode realmente mudar esta variável normal para outra coisa. E neste caso vamos usar um mapa e eu vou explicar para vocês o que é um mapa. Então, se você clicar no mapa, então um mapa é duas variáveis diferentes em uma variável. Então temos 22 variáveis. Então, aqui vamos começar por alterá-lo para uma variável de string. Então, uma string lembre-se, é apenas um texto. E o outro, queremos mudar para um vetor. Certo, então o que é uma variável? Então deixe-me arrastá-lo para fora e mostrar-lhe, por exemplo, que eu posso arrastá-lo até aqui. Isto é o que parece, e é assim que um vetor normal se parece. Então agora o que temos um mapa, e você pode ver o ícone torna-se assim quando é um mapa. E o pino se torna assim se for uma variável normal. Então, se eu clicar em Compilar e Salvar, você pode ver aqui podemos adicionar um valor padrão. Então, se eu clicar no mais, você não tem que seguir junto agora eu só quero mostrar a você. Então, se você clicar no botão mais, e aqui temos a variável string, e aqui ao lado dela temos a variável vetorial. Então, por exemplo, se eu escrever primeiro ponto de verificação e é o primeiro ponto de verificação e saída mais novamente, eu posso adicionar outra coisa, e eu posso adicionar outra coisa aqui e assim por diante. Então isso é muito legal porque você pode usar essa informação. Então, por exemplo, eu quero obter informações do primeiro ponto de controle. E quando eu fizer isso, ele me dará essa informação, o vetor. Então vamos em frente e trabalhar com isso. Então é como um mapa. Você quer, você deseja acessar esta informação, que é esta string. Você está contando a recontagem do jogo. Vá em frente e mova para a string chamada primeiro ponto de verificação. E então ele conhece o primeiro ponto de controle, na verdade, como este local e o segundo ponto de controle tem este local e assim por diante. Então vamos tentar criar pontos de verificação como este. E acho que entenderá melhor se começarmos a trabalhar com ele. Então deixe-me excluir tudo isso e não ter nada porque queremos adicioná-los mais tarde. Então deixe-me deletar. E quero trabalhar com os meus postos de controlo. Quero criá-los dentro do Plano de Nível. Então, entrando nas plantas e abrindo o Plano de Nível. Então, dentro daqui eu realmente quero fazer meus pontos de controle. E a razão pela qual eu quero fazê-los dentro daqui é porque agora eu posso colocar esses jogadores começando. Então deixe-me colocar um aqui e deixe-me segurar Alt e arrastar para copiá-lo. Então agora este é o segundo. E novamente, deixe-me segurar Alt e arrastá-lo para copiar. E deixe-me colocar o terceiro dentro daqui. Então, se eu clicar no World Outliner, eu agora tenho para cima. Vamos começar 123 e deixe-me renomeá-los. Vamos chamá-lo de PS4. Jogador começa novamente, 0, 1, e o segundo 102, e o terceiro 003. Agora eu tenho três partidas de jogadores. Então esses três jogadores começam o que eu posso fazer agora dentro dos planos de nível. Você pode realmente, se eu torná-lo um pouco menor, eu posso realmente clicar em um dos jogadores
começa e clicar com o botão direito do mouse aqui e criar uma referência para este jogador começa. Você não pode fazer isso dentro de classes de blueprints, você só pode fazer isso dentro de um Level Blueprint. Então, clicando no segundo, estou criando uma referência aqui. E o terceiro e criando uma referência. Agora temos uma referência a todos esses jogadores iniciantes. O que queremos fazer é que queremos obter a localização dessas estatísticas de jogadores. Então, arrastando para fora e escrevendo obtém a localização do ator. Porque queremos definir o ponto de verificação para este local. Eles são anúncios atualmente. Então eu vou copiar isso e conectei algumas vezes. Ok, agora temos a localização real e agora podemos fazer algo com deslocamento. Então agora eu quero acessar
a variável aqui que eu fiz chamado checkpoint dentro do modo de jogo. Então vamos em frente e dizer git Game Mode e obter o jogo MoGraph, que é a função Blueprint Interface que fizemos. E aqui como o modo de jogo, queremos obter a variável chamada checkpoint. Então, só estou conseguindo. E então temos outras funções. Então dentro de, se você mover para baixo os utilitários e dentro do mapa, você pode ver esta variável tem um monte de funções que podemos usar. Podemos adicionar coisas a ele. Podemos limpar toda a variável para torná-la vazia. E podemos encontrar itens dentro dele. Podemos perguntar se está vazio ou não, e podemos fazer isso com essa informação. Então temos um monte de funções que podemos realmente usar. Então, vamos clicar em Adicionar porque queremos adicionar algumas informações a ele. Então, aqui estamos adicionando, vamos conectá-lo. Então agora precisamos adicionar algumas informações. E a informação que precisamos adicionar é, na verdade, isso, esses pontos de verificação que temos carga porque queremos adicionar todos os pontos de verificação dentro desta variável. Então, aqui no texto, você escolhe o que você quer escrever aqui. Então, por exemplo, eu chamo de primeiro ponto de controle. E é perguntar qual é o local que você deseja adicionar. A localização é, na verdade, este jogador começa. Temos a localização desta camada começa, então ele sabe que está aqui agora. E isso queremos nos conectar a essa variável. Então agora nós adicionamos a localização deste, e podemos sempre encontrar este local usando a primeira string de ponto de verificação. Então isto é um mapa. É assim que eu uso. Temos uma corda e podemos encontrar o local para ela. Então vamos fazer isso mais algumas vezes. Vamos tentar adicionar. E aqui podemos conectá-lo. Podemos chamá-lo de segundo posto de controle. E podemos conectar o segundo posto de controle. E vamos adicionar o terceiro ponto de controle. E podemos ligar essa. Então agora nós adicionamos todos esses três pontos de controle. E agora, esta variável de mapa, como você viu antes aqui. Quando adicionamos coisas, agora temos um primeiro ponto de verificação, um segundo, terceiro, e ele sabe o, o vetor ou a localização
desses pontos de verificação porque adicionamos a localização real a ele. E agora o que os usamos dentro do nosso jogo? Podemos realmente chamá-lo dizendo, eu quero, eu quero fazer a bola ir para o primeiro set point, então ele sabe o local que você adicionou. Então é assim que funciona. E vamos compilar e salvar. E aqui queremos a bola no primeiro local. Então aqui eu tinha começado a jogar. Na verdade, temos algo chamado nó de sequência. Então arrastando e escrevendo sequência. E a sequência é usada apenas para limpar o código. Então é uma função de fluxo, é chamada de função de fluxo. E é usado para limpar o código. Então nós não temos que escrever todo o nosso código em uma linha e ele fica grande e confuso. Então uma coisa boa de fazer é como dividi-lo em vários pedaços. Então, por exemplo, aqui, para este modo de jogo, eu realmente quero fazer uma variável. Então vamos, deixe-me clicar em x e, e apenas arrastá-lo aqui. Deixe-me conectá-lo aqui. E o que eu posso fazer com este modo de jogo aqui, em vez de apenas chamar isso toda vez, eu posso clicar com o botão direito e dizer promove uma variável. E posso chamá-lo de modo de jogo. Então agora temos essa variável do modo de jogo que temos. E em vez de chamá-lo Todo o tempo, eu posso agora realmente apenas arrastar para fora esta variável de modo de jogo olhando em recebe. E agora posso conectá-lo diretamente ao ponto de controle. Então agora, quando obtemos esta variável de modo de jogo e escrevemos, por exemplo, queremos obter este ponto de verificação atual. Podemos ver os postos de controle atuais obter o ponto de verificação verde. Então isso é muito mais limpo. Em vez de chamar isso o tempo todo. Então, se você tiver que usar o Modo Jogo várias vezes dentro do seu blueprint, vá em frente e faça uma variável dele. Se você está indo apenas como uma vez, você realmente não precisa fazer uma variável. Então agora nós fizemos uma variável dele, e vamos conectá-la aqui. Então este nó de sequência está dizendo, em primeiro lugar, ele irá em frente e executar este pin. Então ele irá em frente e criar esta variável. E então ele vai executar este código. E se adicionarmos algo em terceiro lugar, ele vai fazer isso. Então é uma maneira de quebrar o código e torná-lo mais limpo. Bem, vamos colocar isso aqui em cima. E vamos arrastar isto. Eu vou, eu vou rever todos estes,
selecionar todos estes e pressionar em Q. Isto vai direto. Agora, a linha aqui, nós vamos arrastá-los para cima, clique duas vezes neles. Então você cria um nó redirecionar. E eu vou desconectá-lo segurando Alt e clicando. E eu vou arrastar a partir disso e conectá-lo, clique duas vezes para fazer um nó redirecionado e selecionando todos eles pressionando Q. Então agora ele está parecendo muito mais limpo e nós entendemos o que realmente está escrito aqui. Então a última coisa que quero fazer é desovar a bola no primeiro posto de controle. Então agora podemos arrastar daqui. E agora podemos dizer que precisamos da referência da bola. Acho que não temos uma referência aqui. - Sim. Então aqui podemos dizer que fica mais leve porque lembre-se, nossa tigela é de pornografia de classe que fizemos. E aqui podemos dizer que recebe pornografia ou obter bola Terra, porque nós já fizemos. Se você não se lembra, a bola é merecida peão de classes. E nós já fizemos uma função de interface chamada get ball rife. Eles vão pegar o árbitro da bola. Agora podemos acessar qualquer coisa dentro desta bola EP. E a outra coisa que queremos acessar é essa malha de bola. Escrever fica tudo. E podemos usar essa variável chamada bola. E queremos definir a localização do mundo. Então, queremos definir a localização da bola para o primeiro ponto de controle. E agora precisamos usar este local. Então, a maneira como fazemos isso é obter o modo de jogo. Temos a nossa variável de ponto de verificação. E lembre-se que atribuímos o primeiro ponto de controle aqui. Então, na verdade, temos essa informação agora. Então agora podemos usar dentro de utilitários, você pode ver algo chamado Localizar. E agora podemos usar a função de encontrar e podemos encontrar os pontos de verificação de explosão. Então agora ele vai ter a localização. Este é o vetor, este é o local do primeiro ponto de controle. Agora, isso está correto e precisamos nos conectar. É assim. Então agora temos, estamos definindo o modo de jogo. Estamos a atribuir os postos de controlo. E aqui, no terceiro, estamos respondendo a bola no primeiro posto de controle. Vamos compilar e salvar. A última coisa que queremos fazer antes de terminarmos isso é que
realmente queremos definir o que é o ponto de controle atual. E o ponto de controle atual agora é apenas o primeiro ponto de controle. Então podemos ir em frente aqui e escrever. Podemos obter o modo de jogo, mas a maneira mais fácil de fazê-lo é apenas começar este primeiro jogador. E então podemos dizer, e apenas adicioná-lo aqui e dizer, agora eu esqueci o que eu queria fazer. Sim, eu queria atribuir o posto de controle atual. Desculpe. E vamos aqui pegar esse ponto de controle atual. Já temos o modo de jogo. Então vamos arrastar o modo de jogo. E vamos arrastar para fora e dizer ponto de controle atual. E queremos definir os pontos de controle atuais. Então, clicando no set, e queremos configurá-lo para este local real atual para o primeiro jogador de títulos começa que temos no mapa. Então conectando-o e isso será atribuído também. Então este é, vamos usá-lo um pouco mais tarde. Não faz sentido agora atribuí-lo, mas nós o atribuímos agora e vamos realmente usá-lo mais tarde, então faz sentido para você. Então foi isso para os postos de controle e vamos em frente e criar os portais.
32. Criando o portal: Agora que criamos os pontos de controle, podemos ir em frente e criar os buracos e depois adicionar os pontos de controle a ele. Então vamos em frente e criar os portais que nos teletransportarão para o próximo nível. E aqui podemos clicar com o botão direito do mouse e escolher Blueprint Class e clique no ator. E você pode criar um chamado portal BB. E clique duas vezes neste portal BP. E dentro daqui, você pode clicar em Adicionar para os componentes. Vamos adicionar um cilindro. Mas uma vez que você realmente pode adicionar isso diretamente é este anel. Então, se eu voltar para super grade iniciante pack cavalos malhas, aqui nós temos algo chamado a super grade Hing. Então vamos usar isso como portal. Bem, deixe-me voltar às plantas, abrir meu portal. Eu posso procurar. Vamos adicionar uma malha estática. Para adicionar uma malha estática. E vamos chamá-lo de portal. E aqui podemos procurar o grupo sukha. Essa coisa se chama anel, sim, super grade ressentida, essa aqui. Então agora temos este portal aqui. Para este módulo, eu quero adicionar alguns tipos de uma garrafa olhando coisa no meio. Então aqui eu vou adicionar um avião. Então, usando este avião, e eu vou chamá-lo, e podemos chamá-lo de avião. Não importa agora, na verdade. E deixe-me clicar na ferramenta de arte, girá-la assim, e vamos escalá-la assim, então ela cobre e deixe-me movê-la um pouco para cá. E deixe-me voltar para as instâncias de material de nível tutorial super grades. E podemos usar um material daqui. Então, se eu abrir minha garrafa de volta, eu posso realmente arrastar uma instância material para cima disso. Então você pode ver, pode realmente fazer um portal olhando coisa aqui. Isso está parecendo muito legal. Agora eu também quero fazer este preto em vez de azul. Agora, se eu clicar na lupa para este material, vai me levar a este material, eu posso arrastar este preto para cima. Opa, não aqui, em cima daqui. E agora temos esta garrafa escura pode compilar e salvar. A última coisa que queremos adicionar é na verdade uma caixa de colisão porque queremos interagir com este portal. Então, clicando em Adicionar e procurando por colisão. E você pode ver uma chamada caixa de colisão. Então trigonometria clicando nele e eu vou chamá-lo de dólares de gatilho. Então, esta caixa, nós podemos realmente mudar para cá. E você pode rastrear o tamanho dela aqui. Só para cobrir todo o portal assim e o tamanho dele. E torná-lo menor. Algo como isto. Posso arrastá-lo para frente e para trás para ver como é. Acho que isso está ótimo. Então agora cobre todo o portal. E vamos clicar em Salvar e compilar. Podemos fazer agora com as manchas ou perder. Na verdade, vá em frente e colocá-lo no nível. Então eu vou habilitar meu encaixe de grade. E eu estou indo para blueprints tipo minha pasta
Blueprints e arrastando este pacote e colocando-o aqui. Nós vamos movê-lo para cima assim, então ele mal está tocando o chão assim. E agora posso usar isso como portal. Vou movê-lo de volta, reduzir o estalo para 10. Assim como este. Agora temos uma partícula e deixe-me fazer isso aqui. Então deixe-me aumentar a velocidade da câmera. E é por aqui. E este é o último portal que atingimos. Posso movê-lo no meio, acima do chão e aqui no topo. Assim como este. Então agora temos dois portais. Então vamos, vamos em frente e voltar para o Portal da BP. E agora queremos fazer algo com esse dinheiro de gatilho. Então, clicando neste gatilho dólares e voltando para o fundo, podemos clicar sobre a ONU começar sobreposição. Então, o que acontece quando você sobrepor essa caixa de gatilho? Primeiro, como antes, no outro ator. Podemos escrever ator tem tag para se certificar que é o jogador que está desencadeando este evento. Então lembre-se que usamos, nós escrevemos o jogador técnico dentro da nossa tigela de rbp e a lição anterior. E aqui podemos fazer um ramo, então ramo de escrita. Então agora ele vai dizer, se o jogador tem o ator ou o ator tem o tag player? Se isso é verdade, então vá em frente e faça alguma coisa. Se não for verdade, então não faça nada. Então aqui o que queremos fazer, nós realmente queremos definir a localização da nossa bola porque queremos teleportar para o próximo nível. Precisamos de uma referência à tigela. Então aqui podemos dizer que é camada sobre e obter bola ref. Claro que há uma função Blueprint Interface. E aqui podemos obter a variável bola. Agora esta é a malha estática. E para este, queremos definir a localização do mundo, então queremos teleportá-lo. Queremos nos teleportar daqui até o começo aqui. Então vamos definir a localização do mundo dele. Tão triste, a localização do mundo. Agora está perguntando, para que local vou configurá-lo? A deslocação é, na verdade, a volta nos Planos de Nível, os locais na verdade esses pontos de verificação que atribuímos na lição anterior, o primeiro segmento, segundo, terceiro. Então nós podemos ir em frente e obter a referência para o modo de jogo porque este é o lugar onde nós fizemos a variável. Então, escrever recebe o Modo de Jogo e obter a referência Demode. Agora, agora temos o Modo de Jogo. E dentro do modo de jogo queremos acessar os pontos de controle. Este aqui, queremos teleportar Doppler para o próximo posto de controle. E aqui podemos dizer encontrar, porque queremos encontrar o posto de controle. E aqui, codificando quando revestir algo, queremos fazer o máximo de dinâmica possível para que não tenhamos,
por exemplo, aqui, deixe-me mostrar a vocês se eu conectei, eu os conecto. Então aqui, por exemplo, eu posso dizer encontrar primeiro ponto de verificação, e então eu sempre posso conectá-lo e assim por diante. Mas e se este portal não for o primeiro ponto de verificação, então temos que fazer outra sobreposição ou o segundo portal e depois dizer, vá em frente e encontre o segundo ponto de verificação e assim por diante. Como você sabe que este é o primeiro posto de controle ou o segundo ou o terceiro ou o 40º, ou quantos níveis você fez. Não temos que fazer uma dinâmica. Então ele sabe que este é o primeiro, por exemplo, ou o segundo e assim por diante. Então a maneira como fazemos isso é dentro do portal BP aqui. Podemos fazer uma variável e podemos fazer, podemos chamá-la e, em seguida, nomear esta variável. Queremos mudá-lo para uma string, então é apenas um texto. Compilar e salvar. Para este, vamos clicar e clicar em instância
editável e expor na lombada, Compilar e Salvar. E o que isso vai fazer é gerar
a variável para que possamos editá-la dentro do nível. Então, se você clicar neste portal, você pode agora ver que agora temos exposto esta variável. Quando clicamos instância editável e exposição e geração, temos agora exposto essa variável de nome que fizemos, que é uma string. Podemos escrever uma mensagem. Nós o expusemos para que possamos realmente editá-lo aqui no painel Detalhes. Então é isso que você pode fazer. Você pode fazer todos os tipos de variáveis, mesmo que seja um booleano e você pode torná-lo exposto na geração. E você pode ver que este booleano agora aparece. Portanto, isso é muito útil se os programadores fizerem isso para artistas também. Então eles podem trabalhar sem entrar nas plantas se eles não têm idéia do que são plantas. Então agora temos exposto esta variável nome. E o que podemos fazer aqui agora podemos tornar o portal tão único. Então aqui queremos ir para o segundo posto de controle. Isso pode fazer um checkpoint. Então, quando entrarmos nisso, queremos ir para o segundo posto de controle. E para este, este é o último. Queremos ir para o terceiro posto de controle. Então agora dentro do portal BP, podemos agora dizer encontrar. E então, em vez de escrevê-lo estaticamente, podemos fazer uma dinâmica. Então podemos arrastar esta variável de nome e colocá-lo em cima daqui. Então ele vai dizer obter esta variável de ponto de verificação, encontrar este ponto de verificação. Então ele vai encontrar, por exemplo, o terceiro ponto de controle. Então ele vai encontrar este nome que você escreveu dentro de seu nível aqui no portal. E agora ele vai encontrar este local porque ele conhece o terceiro posto de controle. Nós já o atribuímos,
que aqui ele vai tomar a localização desta camada começar três. E podemos usar este local para definir a localização do ator. Então ele vai encontrar qualquer nome que você escreveu. Então, se entrarmos, se entrarmos neste portal aqui, ele vai teletransportá-lo para o segundo posto de controle, que é aqui, que é este jogador começa que fizemos aqui. Então vamos em frente e testar e ver se está funcionando ou se temos alguns bugs. Então vamos compilar e clicar em Reproduzir. E vamos nos mover. E aqui vou eu entrar. E agora temos uma escuta aqui. E o bug era que nós, por atrás, se eu voltar para dentro do portal, clicando neste plano que criamos, vamos remover a colisão porque você pode ver que ela nos afastou. Então, dentro de sua colisão. E essa predefinição de colisão, podemos clicar em nenhuma colisão e, em seguida, compilar salvar. E espero que eu acerte o salto e então eu posso ir em frente e entrar no portal. Então agora você pode ver que está realmente funcionando. E se você não quiser se mover, se você quiser fazer a bola ainda vai aqui. Quando estiver se teletransportando. Você pode ir em frente aqui e dizer, você pode arrastar desta bola e dizer física. E eu vou te mostrar a função. Então, a física, nós temos um monte de funções, então não é fácil encontrar este conjunto de velocidade linear física. Mas este vai fazer a bola e não se mover em tudo. Se eu compilar e clicar em Jogar pela última vez, e eu mudei e eu entrar no portal, vai fazer minha bola vai ainda, e então eu posso mover novamente. Isto é, claro, se você não quer mover a bola quando você,
quando você tomou parte para o outro nível. Mas se você quiser manter sua velocidade, basta ir em frente e remover este que depende de você, dependendo do que você deseja criar. Então, antes de terminarmos em, deixe-me criar um nós reescritos para que ele pareça limpo. Então, clique duas vezes aqui. Como este. Talvez apenas criar um nó ferroviário seja suficiente assim. E podemos criar um nó reescrito para este também. Lembre-se de limpar o código de outra forma. Vai ser muito, muito confuso no final. Por enquanto, este é o portal que criamos. E vamos seguir em frente na próxima lição e realmente criar a lógica para quando você perder. Então, quando você cair aqui, ele deve dizer a uma porta que você volta para o posto de controle. E isso deve ser fácil de fazer porque já temos a lógica para isso. Mas vamos passar na próxima lição.
33. Criando a lógica PERtendo: Então vamos agora criar a lógica perdedora para este jogo. Então, quando a bola se dobra aqui neste buraco, temos que teleportar a bola de volta para o posto de controle, que você não fique preso aqui para sempre. E vamos fazer isso por ir em frente e criar. Você pode, dentro dos volumes, você pode encontrá-lo, mas você também pode encontrá-lo aqui, que é chamado de gatilho de caixa. Então, clicando no gatilho caixa, você pode ver aqui ele criou uma caixa se você pressionar G para ver os ícones. E este gatilho de caixa é exatamente como os gatilhos que fizemos aqui no portal, por exemplo, os que fizemos anteriormente. Bem, este aqui nós criamos dentro do nível. Então, criando esse gatilho. E podemos aumentar o tamanho dela aqui para cobrir o que precisamos fazer. Por isso, quero afectar esta parte aqui em baixo. Só vou torná-lo um pouco mais alto. Tão afetando quando a bola bate por aqui. Então, na bola é aqui em baixo, ele vai acionar esta caixa. Então eu vou aumentar o tamanho e eu realmente quero cobrir todos os meus mapas. Então cobrindo isso. E porque estas são da mesma altura que você pode ver aqui, e a bola cai aqui em baixo. Vai querer redefinir o jogo para o ponto de controle. Então eu quero que você faça isso tão grande quanto o nível. Então agora está cobrindo todo o chão, que é por aqui. E não queremos cobrir isso porque esta é a única área. Não queremos nenhum gatilho ou aqui. Então neve cobrindo todos os terrenos aqui embaixo porque está cobrindo toda essa área. E podemos mudar o nome aqui. Você pode renomeá-lo gatilho solto, talvez. E vamos em frente e criar alguma lógica para isso. Então aqui, queremos criar, queremos obter uma referência a ele. E a maneira como podemos fazer isso é dentro do Plano de Nível. Então, clicando em esquemas de nível Aberto. E dentro daqui podemos clicar com o botão direito do mouse e dentro de eventos no evento para acionar caixa. Isto é o que queremos e o evento de colisão. E queremos fazer algo na sobreposição inicial. Então, quando a bola se sobrepõe a esta caixa de gatilho, queremos fazer alguma coisa. E novamente, no outro ator, podemos dizer ator tem tag. Se o ator tem o jogador de tecnologia, então vá em frente
e, e lembre-se que isso é o que criamos nas últimas lições para como o ator tem o player tag, então vá em frente e isso é muito fácil porque já temos o ponto de controle. Queremos definir a localização mundial da bola, então precisamos obter uma referência à bola. E você pode ver aqui, nós já temos a referência aqui, então agora vamos usá-lo várias vezes. Então, por que não criamos uma variável para que não tenhamos que criar o tempo todo. Então aqui nós podemos realmente clicar com o botão direito nesta bola ou
esta, esta variável aqui e criar promoção para variável. Eu estou indo, eu vou chamar isso de uma bola BP. Então você não se confunde aqui porque esta é a malha estática óssea e esta é a bola BP. Então esta é na verdade a classe do plano. Então esta é a aula de plantas. E a partir daqui podemos conectá-lo à bola SPP. E conectado exatamente como o que fizemos aqui com o modo de jogo, nós fizemos uma variável a partir dele. Nós também podemos fazer isso aqui para o volume. Agora, em vez de fazer tudo isso, agora
podemos usar nossa variável. Então, tirando essa bola BP. E agora podemos ver, agora
podemos pegar, pegar a bola. Então pegando a malha de bola. E podemos dizer definir a localização do mundo. E qual é a localização do mundo? Queremos definir? A palavra localização é este ponto de verificação atual que você fez. Então eu estou indo para obter o modo de jogo e dizendo ponto de controle atual. E este ponto de controle atual onde você quer se conectar aqui. Porque lembre-se, toda vez que você entrar no portal, você vai encontrar isso. Mas aqui também precisamos definir o local atual porque precisamos atualizar este ponto de verificação para este,
este local atual para um ponto de verificação. Para este ponto de controle estamos agora. Então aqui quando entramos no portal, vamos encontrar, por exemplo, o segundo ponto de verificação, dependendo do nome do portal. E vamos assinar este local antes de fazermos isto. Então deixe-me levar isso um pouco mais adiante. E eu vou pegar o modo de jogo aqui e pegar o ponto de controle atual. E eu vou definir isso aqui para este. Então vamos definir o Checkpoint atual toda vez que entrarmos em um portal. Portanto, esta variável de ponto de verificação atual atualiza a geolocalização toda vez que você interrompe o portal. Então, digamos que você está no nível 20 e você entra no portal no nível 20, ele irá atualizar este local para,
digamos, o seu ponto de verificação número 21. Então ele continua atualizando o ponto de verificação atual. E vamos em frente e fazer isso. E o que podemos fazer na verdade, você pode, é a mesma coisa porque agora você disse que eles podem verificar pontos. Você pode conectar este pino aqui a aqui, o que fizemos agora. Isso está correto, mas você também pode fazê-lo aqui. Isso depende de você, porque é a mesma coisa. Você continua definindo-o para esta variável. Vamos deixar que seja assim e vamos regular um pouco mais perto. Então agora nós dissemos o posto de controle atual o tempo todo. Então o que podemos fazer aqui é obter o Checkpoint atual toda vez que caímos e perdemos para nos apoiar para o ponto de controle atual onde estamos agora. E só de novo, como antes, com a garrafa, podemos ir em frente e usar essa velocidade linear da física para não voar para que eu possa pausar a bola. Então eu posso dizer aqui define física linear, velocidade linear. E eu posso conectá-lo. E a velocidade é apenas 0, 0, 0. E podemos ir em frente e clicar em Arquivo, Salvar e clicar em jogar. E se descermos agora, vamos aos teletransportadores para este posto de controlo por queda de novo. E deixe-me passar para o próximo nível e ver se está realmente funcionando. Se me teleportar para cá e
cair, vai para Tilburg para o posto de controlo em que estou agora. Então isso está funcionando perfeitamente e
vai nos teleportar para o posto de controle enquanto estamos lá.
34. Área de vitória: Vamos agora nos concentrar na uma área e, na verdade, cria a tela final. Então, quando entrarmos neste portal no final, queremos definir a visão para aqui. Por isso, neste momento não temos uma câmara. Então o que eu quero fazer para esta tela, eu realmente quero apenas me deixar reduzir a alimentação das câmeras. E eu quero apenas ver o jogo assim. E você pode se mover com sua tigela livremente, mas a câmera ficará estática assim. Então vamos encontrar um bom, por favor tente encontrar um bom lugar. E digamos que eu queria aqui. E o que você pode fazer aqui e a visão atual que você está agora, se você está feliz com isso, você pode clicar neste botão aqui em cima. E ele pode clicar com o botão direito do mouse em Criar câmera aqui e criar este ator câmera. E agora eu posso clicar nisso e você pode ver que ele cria um ator de câmera. Então agora eu posso realmente me mover novamente com esta câmera. Isto não importa. E eu criei esse ator de câmera onde eu estava olhando. E eu vou clicar com o botão direito do mouse só para eu não movê-lo por engano e dizer Transformar, bloquear, movimento de ator. Agora você não pode, você não pode movê-lo por engano. Então, se eu clicar com o botão direito do mouse e clicar no piloto, você pode ver isso é o que parece agora. Vou clicar neste aqui para injetar remoção de pilotagem. E agora queremos definir para esta vista sempre que entrarmos nesta área quando. E podemos fazer isso se formos ao portal. E aqui, lembre-se, o último ponto de controle que temos é chamado de terceiro ponto de controle, e esta é a última, a última garrafa. Então, se eu fizer minha câmera muito rápido para que eu possa ir aqui. Este faz. O último quebra-cabeça tem o nome por checkpoints, então este é o último lugar. E o que você pode fazer aqui no portal BP, podemos dizer se esse nome é igual ao terceiro ponto de verificação, então vá em frente e faça algo. Então aqui podemos ver esse nome. E então podemos dizer, isso é igual? Então, para fazer isso igual, basta acertar o sinal de igual. Talvez eu tenha feito muito rápido. Então, escrevendo o sinal de igual, eu clico no SQL é esse nome. Então agora estamos verificando este nome do portal e verificando se é um terceiro ponto de verificação para que você possa copiar este terceiro ponto de verificação. Isto é igual ao terceiro posto de controlo? E vamos fazer um galho. Então agora, se isso for igual ao terceiro ponto de controle, podemos ir em frente e definir a visão para esta câmera aqui. E do jeito que fazemos isso, podemos pegar a câmera primeiro. E a maneira como podemos fazer isso ainda é ator de classe. Então, pegando o ator da classe, nós vamos ter um ator. O que, o que queremos comprar? Queremos pegar a câmera, o ator da câmera. Então agora o ator da classe está recebendo o ator da câmera, que está agora dentro do nível. E você pode ver aqui, se eu procurar por câmera, nós só temos uma câmera lá fora. Então agora temos um ator de câmera. E o que queremos fazer é algo chamado set. Você tem o alvo com a mistura? E se eu remover esse contexto sensível, e eu rolar para baixo este alvo definido visualizador com mesclagem. Então o que isso faz é definir o alvo de visão para esta câmera. Então, quando eu entrei na terceira garrafa, nós vamos definir a vista para esta câmera. Este é o alvo de exibição definida seria mesclada. E agora está no, ele pede um alvo e diz referência de objeto do controlador do jogador. Temos que chamar o controlador do jogador. Vou levar este contexto sensível novamente. E aqui eu vou escrever o controlador de camada get. E este, assim como este. E agora vai funcionar. Então, se eu clicar no jogo, na verdade, eu não quero começar desde o início. Estamos apenas testando o jogo. Então eu estou pegando este jogador começa e eu estou soltando aqui só para que eu possa apenas entrar no possível sem jogar o jogo todo. Em cima, olhando para o azul. E agora você pode realmente vê-lo, nós temos um bug. E o bug é na verdade o gatilho perdedor porque esta parte do mapa estava funcionando. Mas quando você entra aqui você pode ver que é, o mapa está realmente indo para baixo. E agora o gatilho perdedor é, se eu movê-lo aqui para o lado, você pode vê-lo realmente cobrindo todo esse loop como este. Desculpe, este era o volume de importância em massa. Então, se eu movê-lo para cá, você pode ver que ele está realmente cobrindo toda essa área. E, portanto, não temos uma maneira de entrar no portal. Então está correto aqui. Mas não está correto aqui porque o mapa está caindo e precisamos entrar aqui. Então precisamos consertar isso e vamos consertar mais tarde. Agora, eu vou empurrar isso um pouco para baixo para que possamos jogar o jogo. Vou jogar e vou apresentar o Portal. E agora você pode ver que nós definimos o alvo de visão vai se misturar. Então nós definimos o devido a esta câmera e eu ainda posso me mover. A minha bola está muito fixe. E esta é a tela vencedora. Vamos nos concentrar em terminar sua área vencedora. E no final, Vamos corrigir o bug seria perder, perder área e outros bugs que podemos, podemos encontrar durante o caminho.
35. Criando o UI de tela de vitória: Vamos agora criar nossa UI final. E a interface final é a tela vencedora. Então, quando você quer saber jogo, ele vai dizer que você coletou e ele vai exibir quantas estrelas você coletou. Então vamos passar por dentro da interface do usuário e
clique com o botão direito do mouse na interface do usuário e criar outro widget, Blueprint. Vamos chamar este WB para Widget Blueprint. E vamos chamá-lo quando. Clique duas vezes neste blueprint de widget. E dentro daqui, como antes, podemos arrastar e adicionar algumas coisas aqui. E o que eu quero acrescentar é apenas dizer que você coletou e abaixo dele vai exibir o ícone da estrela e quantas estrelas você coletou. Então, antes de usarmos uma caixa horizontal, agora, vamos usar uma caixa vertical porque queremos texto aqui e abaixo dela. E a quantidade coletada, eu vou deixar cair a caixa vertical. E eu vou procurar por texto e deixar cair isso em cima da caixa vertical. Então, agora este texto, eu vou dizer, você coletou assim. E deixe-me clicar nesta caixa vertical, torná-la um pouco maior e arrastá-la para cá. Agora este ponto de pivô, você pode ver que agora está aqui em cima. Então imagine se você tivesse este jogo e o jogador quer jogar no modo janela, e as escalas do jogador assim. Este texto irá realmente para este canto quando você redimensionar. Mas o que você quer é, eu quero que este texto fique aqui no meio. Então eu não gosto se eu colocá-lo aqui no meio agora. E o jogador vai redimensionar a janela. Não vai ficar no meio. Vai ser empurrado para este ponto de pivô. E eu não quero isso, quero que seja no meio. O que posso fazer aqui é aqui à direita, e as âncoras mudam o ponto de ancoragem para estar no meio superior. Aqui é onde eu quero que o lugar principal seja. E o que eu posso fazer aqui é continuar desenvolvendo aqui nesta interface. Então o que eu quero fazer aqui é que eu quero centralizá-lo. Então, clicando neste alinhamento horizontal, centro, assim como este. E a próxima coisa que eu quero adicionar o ícone de estrela abaixo dele e o texto. Agora não podemos, não podemos simplesmente chegar aqui e adicioná-lo assim porque você pode ver que imagine isso como o ícone da estrela. E então eu, vamos adicionar meu texto para mostrar o quanto eu coletei. Agora esta é uma caixa vertical, então ela vai colocar as coisas verticalmente como esta. Mas nos perguntamos estrela aqui e queremos o texto ao lado dele. Então, o que precisamos fazer primeiro, precisamos adicionar uma caixa horizontal. Espero que não esteja ficando muito confuso porque você tem que pensar e tempo extra antes de entender. Então você tem esta caixa vertical, nós temos este texto. E dentro desta caixa de vesículas, agora adiciono esta caixa horizontal. Agora eu quero adicionar minha imagem dentro da caixa horizontal e meu texto. Então agora eles estão horizontalmente ao lado um do outro. Então, clicando nesta caixa horizontal, eu quero clicar neste alinhamento horizontal. Então está no meio. E vamos escrever 23 aqui. Não importa o que o texto aqui diz porque nós
vamos apenas adicionar código a ele e mudá-lo dinamicamente. Mas este aqui, o ícone da estrela. Vamos clicar nisso aqui na imagem do pincel. Procure uma estrela e clique em nosso ícone de estrela. Vamos torná-lo do tamanho para 45. 45, e como antes. E então este é o ícone da estrela e eu quero centralizar isso agora é um pouco para o topo, então eu quero centralizá-lo. Estamos olhando para o alinhamento horizontal e vertical. E quero afastar isso um pouco. O texto está muito perto da ferramenta estrela clicando no texto aqui no preenchimento, Eu queria movê-lo para o da esquerda. É assim que você tem que pensar sobre isso. Você tem que movê-lo da esquerda. Então empurrá-lo para longe da esquerda. Então, por exemplo, eu posso escrever cinco ou 10. Você pode ver que está sendo empurrado para longe da esquerda. E se eu clicar neste contorno tracejado só para ver como ele se
parece, é um pouco longe demais. Então deixe-me escrever cinco em vez disso. E eu quero empurrá-lo do topo, talvez para gostar disso. Agora parece bom, está no centro. E talvez eu precise aumentar o tamanho do meu texto. Então, clicando nisso, posso aumentar o tamanho para 40. E vamos também aumentar o tamanho para prever também aqui. E a estrela, Vamos aumentar o tamanho para 7070. Sim, este está bem. E você pode ver aqui você pode agora aumentar a caixa vertical e fazer com que pareça como quiser. Eu só vou fazer isso assim. E também podemos clicar nos bugs Vertical e empurrá-lo para longe do topo e do preenchimento. Então empurrando por cinco ou dez. Agora estamos empurrando um pouco para longe do texto que você coletou. Então agora para centrar perfeitamente neste ponto de pivô, podemos ver aqui que temos uma posição x e posição y. Então, escrevendo 000, você pode ver que vai para este canto superior. Mas eu queria estar no meio. E é aqui que o alinhamento entra. Porque mil, tudo bem. Queremos que ele seja centrado, mas queremos realmente alinhá-lo a este ponto e não a este ponto. Então aqui, este é o X. Você verá que este é o alinhamento no x, e este é o alinhamento no eixo y. O eixo y é perfeito. Nós só queremos alinhados e dx. Então aqui se você arrastá-lo, você pode ver que agora está no meio. Então 0,5 é o meio. Se você escreveu 1, ele se alinhará a este ponto aqui. Executar um irá alinhá-lo a este ponto, 0, 1 e 2. Este 0.5 irá alinhá-lo a este ponto. Então agora está correto. Agora eu só quero empurrá-lo para longe do y porque é,
ele está sob a borda da tela. Então eu vou posicioná-lo no y assim. Você coletou e há um texto no meio. Por enquanto, queremos que este texto funcione como fizemos com o outro. Sorte com o cardápio que fizemos. Então, clicando neste 23, eu vou clicar em vincular aqui no texto, clicando em Criar vinculação. Eu vou renomear minha função, clicando em F2 e escrevendo recebe estrelas e montar ou obter quantidade de estrela, isso é com você. E aqui queremos acessar a quantidade de estrela ou a variável estrela, que temos em nosso modo de jogo. E queremos acessar essa variável estelar. Então, a escrita surge e começa. Agora, qual modo de jogo você deseja obter? Obtém ele ou gráfico. Esta é a função de interface foram feitas. E a partir daqui podemos acessar as variáveis de modo de jogo. Então agora podemos dizer estrelas, estrelas variáveis. E agora podemos conectá-lo. E ele vai converter o número, que é o inteiro para um texto antes que ele possa imprimi-lo. Então, assim, e eu acho que terminamos com nossa interface lá. A próxima coisa que você pode fazer, ou se você quiser, você sempre pode mudar as cores. Se você quiser. Podemos mudar para algo alaranjado. E contém esta cor e todas estas coisas. Mas acho que está tudo bem por enquanto. Então vamos compilar e salvar, e passar para a próxima lição.
36. Exibindo a interface do tela Win: Agora é hora de exibir lá quando você i que criamos na lição anterior. E lembre-se que fizemos a interface dentro do controle do jogador. Então o primeiro que fizemos foi essa interface principal ou que fizemos. E nós fazemos isso da mesma maneira, mas aqui, não
queremos exibi-lo desde o início quando você joga o jogo, queremos exibi-lo sempre que o jogador, é o Portal Final e interessa a essa área. Então, no início, precisamos criar um evento personalizado para mostrar isso, essa interface do usuário. Então, primeiro, nós temos que, vamos criar uma Interface de Blueprint, clicando com o botão direito do mouse, criando uma Interface de Blueprint. E vamos chamá-lo de controlador de jogador int. Agora vamos clicar duas vezes neste. Vamos criar um chamado Display. Quando UI. Ele vai exibi-los e isso é apenas um, apenas um, um evento. Então, indo aqui no controle do jogador, lembre-se de adicionar sua interface. Eu vou ver você vai, não vai estar funcionando. Então, clicando em Configurações de classe, indo para adicionar e escrever controlador de jogador int. Agora você pode ver este evento de interface que aparece. E aqui podemos escrever exibição. Exiba quando seu olho e você pode ver. Agora este não é o correto porque esta é uma função. E isso é porque temos que nos lembrar de compilar e salvar. Agora podemos escrever exibição quando seu olho e você pode ver que aparece este evento. Agora temos este evento e este evento podemos agora dizer criar widgets. E o que queremos criar é esta tela vencedora. E agora você pode adicioná-lo ao, seus pensamentos. Agora isso irá adicionar a tela vencedora. E agora nós temos, em algum momento nós temos que chamar este evento, e nós podemos chamar isso sempre que você ganhar. Então, quando você, quando você entrar neste último portal. Então vamos voltar para este portal, portal BP. E aqui nós fizemos essa lógica aqui. Deixe-me apagar todos esses eventos. Fizemos esta lógica onde você entra alguns entrar no terceiro ponto de verificação. Ele vai definir a visão da câmera. Mas aqui vamos também exibir a interface vencedora. Então aqui queremos obter a referência ao controlador do jogador. E a maneira de fazê-lo, Vamos voltar para a nossa função de interface ou uma Interface Blueprint, e clique em Adicionar. Vamos fazer uma nova função chamada recebe controlador de layout ref. E aqui podemos adicionar uma saída e podemos escrever,
podemos escrever a variável sobre o que este controlador de fluxo é que você está tentando se referir. E estamos tentando nos referir à bola de velocidade do PC, meta de velocidade do KPC. E mostre a camada e escolha a referência do objeto, e vamos chamá-lo de controlador do jogador. Compilar e salvar. E dentro deste controlador de fluxo, agora
podemos clicar duas vezes nesta função. E agora ele está perguntando o que, o que você quer dizer com controlador de jogador? Quero dizer “auto”. Isso significa que a referência é este controlador de jogador em que estamos atualmente. Isto é o que significa “eu”. Então agora dentro do portal BP, ele agora pode dizer obter o controlador Blair. Podemos usar este. E agora podemos dizer que o controlador do jogador que estou falando é este como o meu próprio chamado ISI Speed Ball. Mas lembre-se que fizemos essa função chamada recebe sua referência Controller. E esta é uma mensagem porque é uma função de interface. E vamos conectá-lo. Deixe-me clicar duas vezes para fazer um nó redirecionado como este. E como este controlador de fluxo, queremos chamar este evento que acabamos de fazer a mesma exibição quando UI. Então dizendo quando exibir, quando você está aqui, esta é uma mensagem como esta, e agora ele vai exibi-los quando UI. Então, se eu voltar, clicar no play e eu entrar, ele vai exibir isso quando você identificar, maximizar a tela, você pode vê-lo assim. Mas o problema é que ele também está exibindo o menu que você pode ver até o canto superior esquerdo. E queremos remover isso. Então vamos voltar para dentro do controle. E precisamos remover este da janela de exibição. E a maneira como fazemos isso, precisamos fazer isso é exatamente como criamos referências. Qual o modo de jogo e a bola BP. Anteriormente. Podemos clicar com o botão direito sobre este e dizer remoto para variável. E vamos chamar isso de ser principal. E vamos conectá-lo. E vamos ligar este aqui em vez disso. Então agora deixe-me segurar Alt e desconectado, e vamos conectar isso em vez disso, assim. E agora temos, temos uma variável que podemos usar agora para este menu principal. E o que queremos fazer é tirar essa variável e dizer “Remover dos pais”. E é assim que você remove as coisas das viewports. E agora podemos conectar isso. E agora ele vai removê-lo da janela de exibição e, em seguida, exibir. E então exiba nossa interface do usuário. Então você pode ver, você sabe, a interface principal não está mais exibindo. E você pode realmente editar este texto branco. Não é muito visível se quiser, mas não quero me incomodar agora. Isto está parecendo bem.
37. Fade: Certo, estamos quase terminando o jogo. E com isso, vamos adicionar um pouco de alimentação da câmera. E eu vou clicar neste início jogador que eu movi anteriormente apenas para testar o jogo. E eu movê-lo de volta para o nível um que eu fiz aqui desde o início. E eu quero clicar em Meu maior medo ou perder a esfera. Mais uma vez que eu me movi e eu vou movê-lo para cima. Nós só vamos movê-lo para cima para que ele cubra este terreno um pouco assim. Vou cobrir todo o mapa. Então, agora, quando jogamos o jogo e caímos, você pode vê-lo instantaneamente responder a nós, mas eu quero que alguma câmera de desvanecimento faz para que fique bem. E para fazer isso, vamos passar por cima do Plano de Nível onde temos nossa lógica de perda e criação estão clicando em Plano de Nível aberto. E dentro daqui você pode ver isso é o que acontece quando nós,
quando interagimos com esse gatilho solto. E aqui nós queremos fazer um pouco de desvanecimento da câmera. E para fazer isso, vamos mover essas funções e nós para cá. E vamos apenas conectá-lo segurando Alt e clicando. Então aqui queremos dizer alimentação de câmera escura. Então temos algo chamado “começa câmera”, a identificação. E se você remover seu contexto sensível, você pode ver, nós podemos encontrá-lo aqui. Certo, então temos a câmera de partida desvanecer e precisamos de uma câmera. E aqui diz que o alvo é o jogador, um gerente de câmera. Então, se você arrastar para fora e dizer gerenciador de câmera do jogador, e se você subir ou descer, deixe-me encontrá-lo aqui. Obter jogador, gerente de câmera, isso é o que você precisa. E agora você precisa definir os Alphas. Então agora ele diz para o Alpha no qual começar a desaparecer, o intervalo onde 0 é totalmente transparente. Então agora é totalmente transparente e um é totalmente opaco. Agora, se você, se você escrever um aqui, ele vai. A tela ficará totalmente preta. Com esta cor, você pode mudar a cor, mas vamos torná-la preta. Isto é bom. Então vai desaparecer. Quando acertarmos o gatilho perdedor. Vai desaparecer de transparente para uma cor sólida completa, assim como esta. E temos que escrever quanto é a duração que ele quer desaparecer. E aqui, e vamos apenas escrever um segundo. Certo, agora estamos avaliando a câmera. Então, se clicarmos em jogar e vamos experimentá-lo. Vai desvanecer a câmera. E você pode ver que está voltando novamente. E isso é porque deixe-me abri-lo. E isso é porque temos que clicar neste porão, um acabado. Então ele vai segurar nesta cor escura. Quando desvanecermos. Agora podemos conectar isso novamente, mas você tem que estar ciente disso. Quando, quando essa câmera for reproduzida, não
queremos alterar a localização instantaneamente. Podemos adicionar um nó de atraso. Então, estamos esperando o desvanecimento para entrar antes de fazermos qualquer coisa. Então vamos atrasar por 1 segundo porque a duração deste como 1 segundo. Então vai atrasar ou não vai desvanecer a câmera e, em seguida, atrasar ao mesmo tempo. Então estamos esperando um segundo. Então é totalmente deletar, totalmente desbotada. E antes de passar por cima e executar este código, porque eu quero teleportar o jogador sempre que a tela estiver realmente preta ou escura. E depois disso, podemos começar a desvanecer-se da câmera. E, na verdade, vamos pegar essa câmera e gerente e pegar nosso gerente de câmera. E vamos fazer a câmera Dot desaparecer assim, e vamos conectá-la. E aqui, depois de termos teletransportado o jogador, queremos passar de ser totalmente preto aqui para nenhuma cor. E a duração também é de 1 segundo. Agora, eu posso te mostrar uma coisa aqui. E em vez de escrever um número estático aqui, número
codificado, imagine se tivéssemos muitos destes em nosso jogo. E você decidiu um dia que você quer mudá-lo para dois segundos em vez de um. Agora você tem que entrar e mudá-lo para segundos em todos os lugares. E pode levar muito tempo se você tiver um monte deles. E isso não é ótimo, queremos algo que seja muito fácil de trabalhar. E este é o porquê. Escrevendo 1 segundo novamente, é por
isso que você pode clicar com o botão direito sobre esta duração e clicar em promover a variável. E este eu vou chamar duração de desvanecimento. Você vai ver isso. Fez uma variável flutuante. E este, agora eu posso me conectar ao atraso também agora e todos estão conectados aqui com a outra câmera. Este está se alimentando de volta de preto para branco para transparente. E agora eu só tenho que entrar e mudar a duração do desvanecimento dentro desta variável. E ele irá mudá-lo para todos estes porque todos estes estão usando esta variável. Então isso é muito fácil e eu só tenho que mudá-lo em um ponto. Agora vamos jogar o jogo e ver o que acontece. Então, se descermos agora, ele vai desaparecer e nós vamos voltar. E se formos de novo, vamos desaparecer e voltar. Então agora está funcionando perfeitamente como queremos. Na próxima lição, vamos corrigir o bug que tínhamos anteriormente,
onde tínhamos a esfera perdedora também cobrindo esta parte do mapa. E não conseguimos completar o jogo. E vamos em frente e distribuir as estrelas ao longo dos níveis, coisas assim. Então vamos em frente e finalizar o jogo.
38. Finalização do jogo: Olá e bem-vindo de volta. Então nesta lição nós vamos corrigir o bug onde a área perdedora está realmente cobrindo a parte final do nível dois. Então eu vou movê-lo para cá. E você pode ver quando eu clicar em Jogar e a parte perdida
é, está falhando comigo porque ele está cobrindo esta área e eu não quero que ele. Vou mover meu jogador para começar de volta. E aqui está funcionando corretamente. O que aqui o mapa vai para baixo e, portanto, está sendo coberto ainda mais. E assim, vamos em frente e consertá-lo. Então, clicando neste gatilho perdedor que tínhamos antes, eu vou torná-lo menor e vamos torná-lo menor por aqui. Então eu só quero cobrir um pouco menos. Quero criar uma nova para esta outra parte do mapa. Então cobrindo isso e deixe-me ver o quanto está cobrindo. Está cobrindo aqui. E eu acho que isso deve cobrir um pouco mais. Então cobrindo em algum lugar como aqui e só um pouco mais. Então está cobrindo isso. Então acho que está tudo bem. Agora, uma hora cobrindo isso e isso parece bom. E o que você quer fazer é ir em frente e selecionar, Criar e criar outro gatilho de caixa. E este gatilho de caixa nós queremos mover para baixo e vamos torná-lo maior. E este vai cobrir a área de acabamento aqui no, neste mapa. Vamos, vamos cobrir este buraco aqui. Então, a altura disto, vou descer um pouco em algum lugar aqui. E eu vou cobrir tudo isso assim. Ok, então agora isso deve funcionar perfeitamente e precisamos acrescentar, precisamos mudar o nome. Então vamos mudá-lo para perder o gatilho 0, 2. E vamos seguir em frente nas plantas, abrir o Plano de Nível. E agora vamos clicar com o botão direito. E temos de nos lembrar de clicar neste gatilho perdedor. E aqui podemos clicar com o botão direito do mouse e clicar no contexto sensível. Agora podemos clicar em Adicionar evento para caixa de gatilho e, em seguida, colisão e começar a sobreposição. Então, o que acontece quando nos sobrepomos a isto? E o que você quer fazer é exatamente a mesma coisa que fizemos com o primeiro, porque já codificamos a lógica. E em vez de copiar colar, lembre-se, quando você copiar colar em código ou um blueprint ou qualquer outra coisa. Só para perguntar a si mesmo, por que você está copiando? Pode fazer isso de uma forma mais eficiente? Por que você está copiando colando o mesmo código e apenas colando aqui e fazendo e tornando-o tão longo e confuso. Há uma maneira legal de fazer isso e podemos fazê-lo pairando sobre tudo aqui. Então deixe-me ver se o que faz sentido, os Ls, vamos tomar tudo isso aqui. E vamos clicar com o botão direito. E você pode realmente dizer colapso para função ou Colapso para macro. E isso vai torná-lo em uma função que você pode reutilizar em qualquer lugar que você quiser dentro daqui. Então, apenas algo que você tem que estar ciente. Temos essa função de atraso, e é chamada de função cronometrada. Manipula o tempo, é por isso que tem este relógio aqui. E funções de tempo não podem ser recolhidas em funções. Então, colando-lo em função, ele vai dizer colapso para função falhou. E então temos que torná-lo em uma macro em vez disso. Então, clique com o botão direito do mouse e recolhendo para macro. Macro é como uma função. Mas a diferença é que podemos ter essas funções cronometradas dentro dela. Então você pode ver agora que ele tem este relógio, que
significa que ele tem um tempo para funcionar dentro dele. Então agora vamos renomeá-lo e vamos chamá-lo de responder bola. Ok, então agora nós temos esta macro vendo responder bowl. E se você clicar duas vezes sobre ele e você pode ver que esta é a macro que nós criamos. Esta é a entrada. E agora também temos uma saída, mas não temos nada ligado a ela. E tudo bem, porque não temos nada que precisamos conectar depois. Mas só por precaução, apenas para, para fins de aprendizagem. Se você quiser adicionar mais algumas coisas aqui, olhando para esta saída, você pode adicionar. Aqui na saída, podemos adicionar uma variável. E aqui você pode adicionar um pino de execução. E se você conectado e apenas chamá-lo de x execute ou, ou exec
ou o que quer que seja. E este também é chamado de executivo. Então me diga que eu não sei se eu posso chamá-lo de mesmo nome se ele me permite executar, não. Vamos chamar suas saídas. E vamos compilar. E você pode ver aqui. Agora você pode adicionar um pouco mais de código se quiser, mas tudo bem. Deixe, que seja assim. E agora temos essa macro. Então agora esta macro podemos reutilizar aqui em baixo. Então deixe-me copiar este código. Coisa ator tem etiquetas. Então, só para ter certeza de que há um jogador atingindo essa esfera de consideração. E então podemos arrastar essa macro e colocá-la aqui e podemos reutilizar. Portanto, esta é uma maneira muito mais eficiente. Em seguida, copie colando todo esse código para fazer isso funcionar. E o problema é que se você copiar tudo isso colado, se você mudar algo dentro dele, você tem que mudá-lo em todos os lugares. Você tem essa cópia de código colada. Mas se você tiver uma macro, basta editá-la uma vez que eu estiver dentro da macro, irá editá-la para todas as vezes que você usou esta macro. E podemos fazer assim. E agora isso está consertado. Então, a próxima coisa que queremos fazer, queremos distribuir essas estrelas. Então eu vou em frente rapidamente e distribuí-los. Ok, então agora eu distribuí todas as estrelas, então eu adicionei algumas aqui no final. Eu adicionei muitos deles aqui dentro deste túnel. Vai ser divertido eu acho que carregar tudo aqui. E adicionei alguns no caminho. E podemos adicionar talvez um em cada um desses enchimentos apenas como um finalizador vai se divertir de ter eu acho. E adicionando um aqui. Você só precisa movê-lo um pouco para cima porque isso era financeiro. Pensei que fosse iluminação, algo assim. Ok, então agora temos esta estrela é distribuída. E a última coisa que queremos fazer é realmente adicionar alguns efeitos sonoros, porque o jogo é um pouco chato, sem quaisquer efeitos sonoros. Então vamos em frente e começar o áudio. Nós importamos os sons e eu os enviei para o site. Se você ainda não fez o
upload, os carregou no mecanismo, basta arrastá-los aqui e lá será carregado. Agora temos este som de estrela, esta areia de garrafa. E depois temos um pouco de música. Então agora esses, vamos clicar com o botão direito do mouse na estrela primeiro
e clicar em Criar q. e aqui podemos chamar este é C para sinal de som,
e vamos chamá-lo de estrela. Vamos fazer isso pelos outros também. Assim, o portal criar fila, garrafa e o da música também. Assim como este. E o que você pode fazer com este sinal de som, podemos usá-los dentro das plantas e você pode clicar duas vezes na estrela. E você pode ver, podemos clicar na saída e você pode alterar o volume se estiver muito alto ou muito baixo. Eu acho que isso é bom. E o que você pode fazer aqui, você pode arrastar para fora e existem algumas funções que queremos usar, a chamada modulador, este modulador. E vamos conectá-lo. Então agora este modulador pode mudar o tom
do som para que ele não soe o mesmo o tempo todo ou reproduzi-lo. Então isso é fingir o som. Parece que estamos usando muito mais efeitos sonoros. Então talvez fazendo seu tom máximo para 1,2 e o mínimo para 0,8. E você pode clicar em reproduzi-lo e ouvir que o som não é o mesmo o tempo todo. Então isso vai ser um pouco mais interessante. E nós temos a música que é bom, e o portal. Talvez eu possa reduzir o som deste só um pouquinho, 0,6. E isso é bom. Então agora vamos adicionar esses efeitos sonoros rapidamente. Então vá em frente e termine as plantas e clique duas vezes na estrela da BP. E aqui, quando você olha para a estrela, você quer tocar o efeito sonoro. Então você está adicionando a estrela. A estrela está ficando carregada. E vamos nos arrastar para fora daqui. E, a propósito, este é o que nos sobrepomos com a estrela e carregamos. Então, aqui podemos dizer leigos som 2D. Temos algo chamado tocar som 2D. E vamos jogar. E aqui vamos procurar por SC. E vamos pegar a estrela, Compilar e salvar. Agora vamos fazer o mesmo com o Portal. Vamos clicar duas vezes no portal. E aqui quando interagimos com o Portal, vamos em frente e vamos ver onde é melhor colocá-lo. Vamos, vamos colocá-lo depois ou pouco antes de contar sobre o jogador. Então, na verdade, vamos colocá-lo aqui. E digamos tocar som 2D. E vamos tocar o som chamado “Deixe-me ir aqui”. Vamos tocar este som chamado portal. Assim como este. E a última coisa que queremos fazer é que também queremos tocar a música. Vamos salvar tudo e testá-lo. Só tentei antes de tocarmos a música, só para podermos ouvir o som da moeda. Por enquanto, vamos trabalhar. O quadro-negro. O som também está funcionando. E o desvanecimento também está funcionando. Ok, incrível. Então, a última coisa, vamos tocar a música. E para fazer isso, vamos jogar direito neste mapa. Vamos clicar em Blueprints, abrir Diagramas de Nível. E você pode fazer isso dentro daqui. Então você pode fazer isso aqui ou você pode fazê-lo no Modo de Jogo. E eu quero fazer isso aqui, vamos fazer aqui. Então estamos definindo o modo de jogo e nós podemos realmente apenas tocar a música aqui. Podemos até adicionar um novo nó de sequência e dizer isso, conectar todos eles, e começar tocando a música. Então, toque som 2D. E então podemos dizer como música. Agora vamos tocar a música como a primeira coisa que vamos definir o Modo de Jogo. Então vamos adicionar esses pontos de controle. E então vamos definir um local para a bola. Assim como este. Vamos compilar, clicar, Salvar e começar, e ver o que acontece. Incrível. Agora está funcionando e eu só vou abaixar o som um pouco. Só para o tutorial, é um pouco talvez seja um pouco alto no seu final. Eu sou um ávido com medo que seja muito alto para encontrar a música. By the way, se você quiser procurar algo, você pode clicar na lupa. Assim, rapidamente encontrá-lo no navegador e você pode clicar duas vezes e talvez baixar 2.660. - Tudo bem. Certo, havia tudo. Então agora terminamos o jogo. E na próxima lição, eu realmente quero ensiná-los a tornar seu código mais estruturado e comentar tudo e assim por diante, o que é muito, muito importante. Então vamos para a próxima lição.
39. Limpar o código: Olá e bem-vindo de volta. Então agora terminamos o jogo e vamos lá limpar o código. E isso é muito importante porque imagine que
se você fizer uma pausa e você voltar um mês depois, você não vai se lembrar do que você fez a menos que você realmente comentou o que você fez. E especialmente se você também um dia contratar um novo programador para o seu jogo. E ele ou ela tem que programar o jogo para você ou ajudá-lo. Será muito difícil para essa pessoa saber o que você fez se você
realmente não fez nenhum comentário ou qualquer coisa ou o que você fez. Ok, então vamos rever o código rapidamente. Então aqui sob os planos de nível, vamos dar uma olhada. Temos esse começo florescente. E aqui podemos, por exemplo, selecionar isso e pressionar C. Você pode ver que agora podemos comentar algo. Então aqui podemos dizer começar a música do jogo. Então comece de novo a música. E você sempre pode mudar a cor se quiser. Você também pode, se você mais longe, você pode dizer mostrar bolha aqui quando você está longe dele. Ok, Então agora você tem este som de início e aqui você pode dizer definir variável Modo de Jogo. Bem, esta é a segunda coisa que você está fazendo. E aqui está você. Você está definindo ou você está adicionando os pontos de verificação. Então, vamos realmente pairar tudo isso. E eu passei por estes sem, sem este. Então aqui eu vou clicar com o botão direito do mouse e clicar em uncollapsed para funcionar. E eu vou nomeá-lo definir pontos de controle. Então agora estamos definindo os pontos de controle. Esta é a função. Você pode clicar duas vezes nele e você pode ver que ele entrou em colapso para uma função. Então esta função está definindo os pontos de verificação. Mas isto está muito mais limpo agora. E agora podemos arrastar isto um pouco mais perto nisto. E o que eu gosto de fazer é fazer condensado. Então eu faço isso. Gosto de fazer isso. E nós podemos realmente, nós podemos movê-lo um pouco mais longe para que não seja muito compacto, assim como este. E aqui você pode comentar e dizer variáveis de ponto de partida. Ok, então agora você tem essa configuração de variáveis de pontos de verificação. E a última coisa que temos aqui é desovar a bola no posto de controle. Então eu vou mover isso um pouco mais perto. E eu vou manchar isso e dizer ligação tudo nos primeiros postos de controle. Ok, então deixe-me remover. Na verdade, tudo bem. Então agora temos esses domínios, nós apenas removemos. Basta movê-lo um pouco mais para baixo. Assim como este. Está bem? E este, movendo-o assim. Por isso, agora temos estes comentários. E este aqui, estes são a sobreposição, então eu vou agrupá-los aqui. E já fizemos essa macro para que pareça limpa. E vamos entrar e dizer camada de telefone do
Ray quando cair no mapa. Vamos chamá-lo assim e colocá-lo aqui. E podemos sempre fazer isso de outra cor só para sabermos isso, sabemos que este é o jogador começa. Ou, na verdade, podemos pairar todos estes clicando em C. e eu vou chamar de “começar a jogar”. Eu gosto de ter, como saber se começar a jogar está nas minhas plantas. Então isso é o que eu costumo fazer. E você sempre pode fazer esta e outra cor só para que você saiba. Esta é a jogada inicial. E você pode mostrar a bolha onde podemos ver que esta é a jogada inicial. Eu não sei se eu quero mostrar isso realmente estes, Vamos esconder as bolhas assim, então não é confuso. Bem, aqui temos a jogada inicial. Vamos compilar e salvar. E aqui temos eles respondendo à lógica. Então isso está olhando limpo agora e a função, nós colaboramos isso para uma função e está olhando bom. Ok, então vamos seguir em frente. Vamos clicar, fechá-lo, entrar na bola BP. E aqui não temos nada. Todos nós temos essa função. E isso parece bom. Então vamos fechar a bola BP. Vamos abrir o portal. Aqui. Dentro do portal temos um pouco acontecendo. E aqui eu quero passar daqui até aqui, eu acho que
esta é a lógica de resposta. Então, aqui estamos definindo o reembolso desse ponto de controle e estamos definindo a bola gerada neste ponto de controle. Então eu vou clicar com o botão direito do mouse e recolhê-lo para uma função. E eu vou chamá-lo. Responder bola em pontos de verificação ou não responder realmente apenas bola de geração nesse ponto porque você está passando pelo portal. Ok, então respondendo a bola no ponto de controle, então clique duas vezes e vamos mover isso um pouco para baixo. É mais limpo. E este pode mover isso um pouco para baixo e clicar duas vezes para fazer um nó ferroviário. Passando o mouse sobre este clique em Fila. Isto é bom. Assim como este. E agora isso também está limpo. E aqui estamos nós desovando bola no posto de controle. E este que estamos dizendo se o nome é igual ao terceiro ponto de verificação, estamos indo para o alvo View e assim por diante. Então, isto é, isto é bom. Isto está a parecer bom. E o que queremos fazer aqui é que podemos realmente apenas gostar disso e comentar. E aqui podemos escrever sobre camada de verificação vincula ao entrar no portal. Algo como isto. Ok, então agora isso está bom. Vamos compilar e salvar. E, a propósito, para as variáveis, você também pode limpar isso e você pode clicar na variável. E aqui na categoria, você pode alterar a categoria aqui. E já que não temos nada aqui, eu não me importo de apenas fazer um padrão, mas se você mudar o nome, nós daremos outra categoria aqui, assim como os componentes. Então, para isso, vamos deixar que seja assim. Não temos mais do que isso. Então, tudo bem entrar na estrela. Vamos ver o que fizemos na peça inicial. Estamos jogando isso aqui. Podemos dizer que jogue o movimento inicial das estrelas. E isso é o que ele está fazendo. E aqui em baixo, podemos dizer adicionar 12 estrelas variável. E estes são comentários muito ruins agora. Quero dizer, eu só estou fazendo isso rápido como eu, assim como eles vêm na minha cabeça. E então esse vídeo não está ficando muito longo. E aqui na estrela aludida, vamos ver se podemos mudar alguma coisa. E isso é definir a rotação. Eu acho que isso é bom. E com isso, você pode comentar e dizer jogar, jogar estrela, animação estrela. Ok, escute e não tem que adicionar loci colocado estrela em loop animação. Então, quando você perder, ele vai tocar uma animação. Então aqui temos este código compilar e salvar, e vamos fechar isso, abrir o modo de jogo e o modo de jogo. Não temos mais nada além disso. E este podemos dizer adicionar um a essa variável de estrela quando carregado. Este aqui. E agora eu posso mostrar essa categoria padrão porque agora temos várias variáveis. E aqui podemos, por exemplo, chamá-lo aqui na categoria que podemos chamá-lo de pontos de controle. E este também eu posso chamar postos de controle ou você pode selecioná-lo a partir daqui agora. E aqui estão as estrelas, eu posso chamá-lo de categoria vai ser chamado de moeda. E agora você pode ver, agora isso é muito mais limpo porque temos duas categorias, uma moeda e um checkpoints. Mas isso também está limpo agora. E então vamos compilar e salvar. Vamos voltar para o controlador do laboratório. Agora este é o último. Aqui vamos dizer display, exibir interface principal. Ao iniciar o jogo. E aqui em baixo nós vamos dizer, Sim, este vai dizer movimento de bola. Vamos chamar de movimento de bola. Isso é bom. E aqui, o último é exibido. Quando você mente, quando todos aqueles exibir ou nova AI, isso é bom também. Então agora temos este e este está parecendo bom e tudo parece bom. Vamos compilar e salvar. E é assim que você limpa seu código. É muito importante para colapsar duas funções onde quer que faça sentido, Basta ter cuidado para não colapsar muito porque também pode ficar confuso. Se você está desmoronando isso e dentro disso, você está desmoronando isso e assim por diante. Vai, pode ser mais prejudicial do que útil. E ele apenas, apenas fazê-lo onde quer que faça sentido. Então vamos fechar isso e isso foi o fim para o jogo. Vamos em frente na próxima lição e na verdade apenas, apenas disse o teste, o jogo e apenas jogá-lo.
40. Empacotar o jogo: Ok, então agora terminamos o jogo. Parabéns, Isso tem sido muito divertido de fazer, e eu espero que você já se divertiu bem e aprendeu muito. Então, agora antes de jogarmos o jogo, vamos empacotá-lo para que você possa enviá-lo para amigos e familiares ou alguém, você sabe, se eles quiserem jogar. E o que queremos fazer aqui dentro das plataformas aqui em cima,
você pode clicar aqui e ir para configurações de empacotamento. Em seguida, aqui, você pode alterar esta configuração Build do desenvolvimento para o envio. E então você pode verificar isso totalmente reconstruído. Então ele vai reconstruir o jogo quando ele está enviando. E também é para distribuição. E o que você faz com isso é agora todas as coisas que você escreveu dentro de seu jogo que são apenas para desenvolvimento não serão incluídas no jogo. E por isso, quero dizer, por exemplo, a função de string de impressão. E não temos mais uma cadeia de impressão. Mas se você tivesse uma função de string de impressão dentro do jogo, essa função de string de impressão não será incluída, o que é uma coisa boa. E eu também fui em frente e deletei a pasta Super Grid Blueprints. Ele estava me dando um monte de problemas quando eu empacotar que o jogo mais cedo. Então aqui na super grade, não
é realmente nossa culpa, mas algo está errado com esse pacote que está nos dando eras. Dentro deste nível de tutorial, excluí a pasta chamada blueprints. E também nas partículas, apaguei todas as partículas, exceto a estrela p que estamos usando. E dentro do utilitário, eu não apaguei nada. Na instância material, eu também não fiz nada. Então eu excluí a pasta do blueprint e eu só tenho esses três dentro do nível do tutorial. Agora, eu também excluí o mapa de visão geral e o mapa de tutorial. Então aqui eu apaguei todos os mapas. Eu acho que havia um mapa aqui e o pacote inicial, eu não toquei em nada. E aqui eu apaguei esse mapa de visão geral aqui. E eu também renomeei
o pacote para super grade também. Então eu apenas clique que fazer renomeado, é apenas colocá-lo para trás. Estava me dando muitos erros. E quando você renomear algo, às vezes a pasta não desaparece. Basta clicar com o botão direito do mouse aqui no conteúdo, um navegador e clicar em diretores de leitura fixos na pasta. Às vezes, há arquivos invisíveis que farão os mais velhos e os nossos desaparecerem. E se você tem uma pasta que não está desaparecendo, basta ir em frente e clicar na pasta, certifique-se se há alguma coisa ou se ela está vazia. E se as pastas antigas totalmente vazias, tentou clicar em Excluir nele e excluí-lo. Mas este aqui, este é o correto. Eu só mudei o nome. E se o outro vazio, às vezes Unreal Engine, as pastas vazias não podem ser excluídas mesmo que estejam vazias. E acho que é um inseto. Então o que você tem que fazer é que você tem que ir dentro dos arquivos do projeto, dentro das janelas aqui no Explorador de Arquivos. E então você tem que encontrar seu projeto. Então bola de velocidade e dentro do conteúdo e na grade super também. Então este é o que estou usando agora. Mas se você tem uma super grade, que é a pasta antiga, você pode ir em frente e clicar em Excluir. Ok? Mas estas são as pastas que estamos usando agora. Então isso está correto. E às vezes pode ser complicado cozinhar um projeto. Às vezes ele vai dizer um monte de erros, alguns aleatórios e você tem que ir e corrigi-los. Mas vamos tentar com isso. Agora eu renomeei. E não deveríamos ter nenhum eros porque não fizemos. Acho que não fizemos nada de errado. Então vamos em frente e ver o que o pacote está dizendo. Não, agora fizemos todas as configurações e vá em frente e clique no Windows. Queremos empacotar para Windows e escolher o projeto do pacote. E aqui você tem que escolher onde deseja empacotar seu projeto. Então eu fiz uma pasta aqui chamada Nova Pasta 2. E dentro desta pasta, se eu clicar duas vezes nela aqui, eu posso selecionar pasta. Aqui é onde eu quero empacotar e não importa onde você empacotar, isso depende de você selecioná-lo e clicar neste log de saída show. Agora como sua embalagem. E a coisa mais importante aqui é ver. Você pode ver e ver se ele está continuando. Mas você também pode remover as mensagens e ver as eras e os avisos. Então, neste momento, estes são avisos. Estes estão bem. Alguns avisos não importam. E alguns avisos que você deve corrigir. E os eros que você deve ter 0 de então você não deve ter nenhum eros. E eles estarão em texto vermelho se você tiver alguma época. Então eu vou deixá-lo empacotar aqui e esperar por ele, e aqui está completo. Então, agora vamos ver as setas. Está falando de RV, então realidade virtual. E isso não importa para nós. Agora dizendo que falta recurso do estilo Core, isso não importa. Recurso ausente do estilo editor NEA gara. E este é o estilo do sistema de partículas. Portanto, não importa para nós incapazes de encontrar informações de plataforma para lentes ocas. Ok, então isso realmente não importa. É o que for. Então agora temos empacotado o projeto e se eu ir em frente dentro da minha área de trabalho, se eu apenas puxá-lo para cima aqui rapidamente. E algumas das janelas, agora
temos essa bola de velocidade. E se clicar duas vezes, temos este jogo aberto no meu segundo monitor. Você pode ver aqui e realmente fugiu novamente agora. Tudo bem, incrível. Então agora podemos jogar o jogo, e este jogo é embalado e você pode realmente enviá-lo para sua família e amigos. Então a maneira como você faz isso é apenas enviar este arquivo ou você pode enviar-lhes isso. Então, basta selecionar todos eles e adicioná-los a um arquivo zip e fazer assim e chamá-lo de qualquer forma. E apenas transformá-lo em um arquivo zip e apenas enviá-lo para seus amigos e família. E é assim que se faz. E isso é o que fazemos com a mesa de fazenda e lançamos no Steam. Nós apenas empacotamos assim e o compactamos em um arquivo e enviamos isso para o Steam. Então isso tem sido muito divertido trabalhar neste primeiro jogo com você. E espero que tenha aprendido muito. E se você tiver alguma dúvida, por favor, por favor, escreva para mim. Ficarei mais do que feliz em responder-lhe. Você pode escrever aqui nos comentários estão dentro de nossas mídias sociais ou uma polícia comentários para a discórdia, mesmo se você só quer conversar e podemos conversar com você ou ajudá-lo com este curso. Então eu espero que você se divertiu e muito Londres e você pode usar suas novas habilidades para desenvolver seu próprio jogo de bola. E na próxima seção vamos desenvolver um jogo. O que você tem? A, você pode dizer um personagem real com braços e pernas. E eu vou te mostrar como configurar esse personagem. Vamos fazer um jogo de tiro. E eu vou, isso é um pouco diferente, um pouco diferente configuração, mas ainda quase o mesmo código, mas ainda vamos aprender um monte de coisas novas. Então vamos em frente e na próxima seção.
41. Introdução à jogos - CloneStrike: Olá e bem-vindo a esta parte do curso. Então aqui vamos criar um jogo chamado ataque de clones. E o que basicamente vamos criá-lo como um atirador de cima para baixo. Aqui você vai aprender a criar GUI mais avançada. Por exemplo, uma barra de saúde no contador inimigo. E você também vai criar uma mecânica bastante avançada,
por exemplo, disparando e recarregando e contando munições. Você também vai aprender como configurar um personagem correndo por aí e como adicionar armas a esse personagem. Também vamos trabalhar com NPCs. Então AI correndo por aí e realmente perseguindo o jogador e tentando matar o jogador. E nós vamos fazer este jogo todo como desde o início onde você começa com o menu principal e você joga o jogo, você entra em ondas. O jogo fica mais difícil à medida que você progride através do jogo. E no final, quando ficar muito difícil, matam-te. E você aprenderá a fazer a animação da morte e o jogo na tela.
42. Criando o projeto: Olá e bem-vindo a esta seção. Então agora vamos criar o nosso jogo de tiro de cima para baixo. E vamos aprender muito porque vamos fazer o personagem. E desta vez estamos usando um personagem real, que é um pouco diferente da tigela que usamos no jogo anterior. Embora. Vamos em frente e criar o projeto. Então primeiro, entre na biblioteca e inicie o Unreal Engine. Em seguida, vamos entrar nos jogos. E aqui estamos escolhendo um projeto em branco usando blueprints e é desktop. Estamos desmarcando o conteúdo inicial. E vamos chamá-lo de clone. Greve. E com isso, vamos criar o projeto. Agora que estou dentro do projeto, antes de fazer qualquer outra coisa, eu quero clicar em Atualizar aqui, clicando em atualizar, e eu quero gerenciar os plugins. E você também pode acessar os plugins indo aqui em Editar e depois plug-ins, isso é a mesma coisa. Veio aqui no meu segundo monitor e não o ouvi plugins. Eu quero ir para a realidade virtual, assim como fizemos no projeto anterior. E eu estou marcando o Oculus VR e vapor VR. Assim, ele não começa como um jogo de RV quando lançamos o jogo. Então, clicando em OnRestart e aguarde até que ele abra novamente. Então isso foi tudo para que agora o projeto esteja pronto. E vamos em frente na próxima lição e importar alguns recursos.
43. Como importar ativos: Vamos agora importar alguns ativos que podemos usar para o projeto. Então agora eu estou dentro do lançador Epic Games e dentro do mercado. E aqui eu quero encontrar bens reais. Então, indo aqui para Bree e clicando em, Vamos clicar em coleção permanentemente livre. E dentro daqui você vê algo chamado manequins
estilo militar olhando para aquele. E então vá em frente e baixe-o. Eu já baixei. E quando terminar de baixá-lo, você pode adicioná-lo ao projeto. Então, clicando em Adicionar ao projeto. E então você tem que adicionar ao projeto. Você tem o 0.5. Mas não está mostrando porque você pode ver aqui que
não é suportado agora, mas não importa. Ele vai funcionar ou clicar em Adicionar ao projeto e, em seguida, levar o show todos os projetos. Agora você pode ver os 500. E aqui vou eu encontrar o meu ataque de clones lá. Este é o meu projeto. E então você tem que selecionar a versão que é suportada para assim 4.26, a mais recente. E clicando em Adicionar ao Projeto. Simplesmente assim. E ele vai adicioná-lo ao meu projeto e
já está feito que você pode ver aqui dentro do meu projeto, eu já tenho isso adicionado agora. Então, voltando ao lançador da Epic Games, eu vou voltar e eu acho que na final a página final, sim, esta aqui, nós precisamos da super grade do último jogo que adicionamos. Então olhando para aquele super ativo da grade aqui como ele de volta, nós pegamos aquele e então baixamos ele. E você provavelmente já baixou se você seguiu o último jogo. E então vá em frente e crie o projeto. Este você não pode adicionar diretamente ao seu, ao seu jogo. Você tem que criar um projeto separado. Então crie um projeto e chame-o de qualquer forma e crie-o. E uma vez que você o criou, eu já o criei. Então, entrando na biblioteca, você pode encontrar o projeto que você criou aqui chamado super bom pacote inicial. Então eu vou clicar duas vezes e abri-lo. Agora que o projeto está aberto, agora
posso ir aqui e clicar com o botão direito nessa pasta super grade. E aqui eu posso ir em frente e clicar no botão Migrar. Ok. E então vá em frente e encontre a pasta ou você a terá. Então o meu está dentro dos Documentos, Projetos Irreais. Esta é a pasta padrão. E indo, indo em frente e clicando em Clone strike. Então este é o projeto que criamos. E clicando no conteúdo, é muito importante que você esteja dentro da pasta de conteúdo. Se você está aqui fora tentando
salvá-lo, não vai funcionar. E se você estiver especificamente em uma outra pasta dentro do conteúdo, ele também não funcionará. Você tem que ser, você tem que selecionar a pasta de conteúdo especificamente, não outro lugar. Então, bem aqui dentro da pasta de conteúdo, selecione essa pasta e ela vai copiar as pastas. Mas então ele vai copiá-lo com sucesso. E não importa que algum conteúdo não possa ser copiado com sucesso. Está tudo bem. E eu vou em frente e fechar este projeto. Então eu tenho a super grade. E a última coisa antes de terminarmos isso, quero abrir o lançador da Epic Games. Fechou por alguma razão. E voltando para o mercado, aqui você tem que ir para um conteúdo livre e, em seguida, Epic Games. E dentro daqui e na última página, há algo chamado pacote inicial de animação. Então, clicando neste saco para que possamos ter algumas animações para o personagem 0, clicando nele, e clicando em Adicionar ao Projeto. Agora vamos clicar novamente, mostrar todos os projetos e clicar em Clone strike e escolher a versão mais recente para a qual é compatível. E, em seguida, clicando em Adicionar ao projeto. Agora, agora ele adicionou ao projeto. E vocês podem ver aqui nós temos agora importantes os conjuntos de animação, o manequim, que é o personagem que vamos usar. E veja este é o personagem. E também importamos a super grade que usamos no jogo anterior. Ok, então a próxima coisa que devemos acrescentar são as armas, são as armas. Então aqui dentro do mercado você pode procurar armas. E quando você procura por armas, você pode clicar no filtro Livre aqui para que você possa ver os ativos livres. E aqui você vai querer baixar a arma FPS empacotada. Você pode ver que há outras armas que você pode usar para se divertir se você é um confiante. Mas vamos em frente para este tutorial e usar o pacote de armas FPS. Então, clicando nisso, e eu já baixei para que você possa baixá-lo. E clicando no projeto Agile um é baixado. Indo para mostrar todos os projetos olhando para Clone strike e selecionando a versão mais recente. Então, clicando no projeto Agile. Ok, então a última coisa que podemos adicionar por agora são os inimigos porque precisamos de um pouco de IA. E aqui você pode ir para conteúdo gratuito e Epic Games. E aqui em baixo acho que está na página cinco. Então vamos verificar. H6. E ouvindo a página seis, temos algo chamado adversários da Lâmina Infinita. Então, vamos clicar nesse. E aqui vocês podem ver que temos muitos inimigos diferentes que podemos usar para o projeto. Então, clicando em Adicionar ao projeto. Eu já baixei, então você precisa baixá-lo primeiro. Então, clicando nele e mostrar todos os projetos. Ir para clone strike mata o projeto mais recente e em dois projetos. Então agora isso vai ser adicionado ao projeto. Você pode ver que agora temos todos esses cinco ativos. E se precisarmos de mais ISS mais tarde, vamos importá-los. Se precisarmos de alguma música ou efeitos sonoros, vou dar uma olhada mais tarde e baixei. Mas, por enquanto, isso seria uma multa e vamos passar para a próxima lição.
44. Criando o nível: Vamos agora ir em frente e projetar o nível. E o nível que eu quero fazer muito simples. Então vamos em frente e começar. Primeiro, temos que clicar com o botão direito do mouse em criar uma nova pasta e vamos chamá-la de mapas. E dentro daqui vamos clicar com o botão direito do mouse e clicar no nível. Então vamos chamar este mapa, e vamos chamar, chamá-lo, vamos chamá-lo de principal. Este é o mapa principal, então clique duas vezes nele. Obviamente temos que adicionar alguma iluminação. Isto está muito escuro agora. Vamos criar luzes e luzes direcionais e sair. Então eu tive que criar luzes e criar uma clarabóia. E a última coisa que queremos fazer é aqui nas configurações. Aqui podemos mostrar o conteúdo do motor. E dentro do conteúdo do motor aqui, a pasta aparecerá quando você clicar nela aqui, vazando sobre ela e procurando céu. E importando este céu. Você pode ver que temos um céu. E se você ver no painel Detalhes para esta esfera do céu que nós adicionamos, você também pode mudar as alturas filho e você pode ver que você pode mudar o dia e a noite assim. Certo, então agora temos isso. Vamos em frente e criar o nível. Então remova esta palavra de pesquisa para que possamos ver o pacote aqui. E dentro daqui podemos ir para o pacote de inicialização e as malhas de origem. E aqui temos diferentes ferramentas que podemos usar. Então vamos arrastar neste super plano grade, foi deixado cair no subsolo. E eu vou clicar nosso negrito aqui na caixa branca e redimensioná-lo, Will o chão será criado. E agora está muito escuro porque o sol é muito estranho e você pode ver que a luz está mudando lentamente e nós não queremos isso. Então vamos em frente e criar efeitos visuais e pós-processo. E este volume pós-processo, vamos remover a exposição. Está indo, é um pouco irritante quando estamos fazendo jogos. Mas é, eu acho que é uma coisa boa se você está fazendo como vistas cinematográficas, mas quando você está fazendo jogos, esta exposição é muito irritante. Então, clicando no brilho mínimo e máximo dentro da exposição e o pós-processo e definindo esses valores para um. E para afetar todo o mapa, você tem que descer e clicar nesta extensão infinita, assim como esta. Então agora a exposição é como deveria ser. E a razão pela qual parece isso é porque o sol está saindo de uma direção errada. Então, clicando no World Outliner, você pode clicar na luz direcional. E aqui está. Então está debaixo do solo agora. Você pode tentar girá-lo e ver qual direção o sol deve ser. E uma referência muito boa aqui. Podemos dizer o nosso manequim. Então, no manequim ODS, o manequim aqui, malha de personagem. E podemos dizer que esta malha e colocá-lo no nível só para que eu possa ver o sol. Ou clicando na luz direcional. Agora posso girá-lo ao meu gosto. Dependendo do personagem. Eu acho que algo, algo assim seria bom. E agora o sol é muito, muito forte. Então vamos subir aqui, insensíveis e definir para três. Agora vamos fazer a iluminação em outra lição. Então não se preocupe por enquanto. Agora, eu só quero fazer um pouco de iluminação decente só para que possamos trabalhar um pouco. E aqui para a esfera do céu, você pode aumentar a intensidade. E eu vou aumentar para dois por enquanto. E para este eu quero reduzir as partes brilhantes. Então, clicando nesta exibição aqui, clicando na lupa para a grade m super e clicando duas vezes nisso. E aqui podemos definir o, você pode ver se eu minimizar isso um pouco, temos algo chamado rugosidade máxima e rugosidade mínima. Então, quanto maior você aumentar, menos brilho será. Então, se eu colocá-lo em um, você pode ver que esses quadrados se tornam menos brilhantes e discursivos também. Então, para isso, eu acho que estou fazendo 0,75 ou a rugosidade máxima e o mínimo. Vamos tentar 0,5 e eu acho que é muito dopamina 75 e 0,8 possível ou zero ponto nove. Acho que está tudo bem para nós. Agora vamos fechar e salvar tudo. Ok, então agora que temos um pouco de uma iluminação ok, agora
podemos tentar trabalhar com o nível. Então vamos em frente e criá-lo. E eu quero torná-lo muito simples nível clicando duas vezes sobre este. Quero definir a localização dos zeros 0000. E apenas o personagem também. Vamos definir o caractere 0, 0, 0. E aqui podemos movê-los um pouco para o meio. Então este plano que queremos redimensionar dependendo do tamanho que queremos. E não importa o quão específico seja, honestamente, só queremos espaço para trabalhar. E o crédito menos 30 realmente aqui você pode clicar no bloqueio para que ele muda todos os valores de uma só vez. Clicando em uma escrita 30 e ele vai criar isso. Então agora temos isso e vamos, vamos adicionar algumas paredes. Agora, vou voltar para me deixar encontrá-lo, a super grade aqui para super grade e começar um PECC fontes malhas e aqui na caixa, e eu estou clicando nesta caixa, colocando-o. E eu vou movê-lo aqui para o canto assim. E então você pode escalá-lo junto com o, com a parede aqui está o chão aqui. E você pode torná-lo maior para a parede. Algo como isto. E você pode girá-lo. E, a propósito, você pode segurar Alt e girar, isso vai duplicar. Você pode arrastar isso. E vamos fazer um nível muito simples. Então deixe-me realmente, eu vou fazer este um pouco maior, então ele cobre aqui. E eu vou arrastar isso. Eu vou fazer o encaixe um pouco mais para 100 e clicar e arrastar para duplicar aqui, vai fazer isso menor para que eles não colidam aqui. E eu também vou segurar Alt e arrastá-lo e o buquê por aqui. Agora, agora temos um nível pequeno e eu acho que isso é bom. Vamos apenas adicionar para se divertir a caixa censurada aqui. Vamos adicionar alguns obstáculos. E talvez algo assim. Então podemos adicionar alguns obstáculos só para termos algo no mapa que está bloqueando. Então eu posso adicionar um aqui. E adicione um aqui. Podemos adicionar quatro aleatórios. Também pode fazê-los em diferentes formas. Isso está tudo bem. Eu gosto disso. E apenas fazendo assim em vez disso. Sim, acho que está tudo bem. Então este é o nosso nível muito simples com o qual podemos trabalhar. E o que podemos fazer é ter o jogo de tiro aqui e você pode gerar inimigos e assim por diante. E se você quiser que o nível pareça um pouco diferente, você sempre pode clicar em um deles, olhando para esta lupa no material. E você pode ver como materiais diferentes que você pode escolher entre o que ele quiser. Você também tem alguns materiais dentro da pasta de super grupo e nível de tutorial. E, em seguida, as instâncias materiais que você pode ver você tem diferentes motivos que você pode selecionar se você deseja escolher outra coisa. Temos até mesmo cores de inundação, estas são muito brilhantes assim, e você pode usá-las também. Então, mas por enquanto eu vou para este padrão.
45. Iluminação do ambiente: Ok, então antes de começarmos a programação, vamos a última coisa. Faça a iluminação rapidamente para que não queiramos fazer algo realmente brilhante, mas vamos, vamos torná-lo um pouco melhor aqui. Então vamos lá e girar o sol. Então, clicando na luz de direção, tentou girá-lo ao seu gosto. Veja o que você acha que parece bom. E talvez eu queira algo assim, cobrindo um pouco de sombras aqui e algo assim. Então eu gosto disso aqui. As sombras temendo. E eu vou mudar a intensidade dependendo do dia. E eu acho que 3.1. Tudo bem para mim. Vou torná-lo maior aqui pressionando FL1, maximizando a viewport. Só estou tentando dar uma olhada e ver se isso está parecendo a luz do dia ou não. Porque às vezes você pode baixá-lo muito e parece que é noite. E acho que 3.133 está bem. Você pode usar o yuan de temperatura
, tornando o sol mais frio ou mais quente. Mas, por enquanto, vou deixar que seja como está. E isso é bom para a luz do sol. Então vamos para a clarabóia. A clarabóia, o que você pode fazer aqui é que você pode mudar a intensidade dependendo da sombra. Então este está afetando a sombra. Então, se você ver as sombras sendo muito escuras, você pode entrar na clarabóia e mudar a escala de intensidade. E você pode ver aqui, quanto mais alto você fizer, menos escuridão terá a sombra. E outra coisa legal está aqui dentro da clarabóia, você pode clicar nesta pequena seta. E este é o hemisfério inferior. Este está afetando esta parte inferior da malha. E agora está muito escuro. Então, para torná-lo mais realista, temos que provar esta cor aqui. Então, porque esta cor não é pato, então esta cor pode mudar. E o que podemos fazer aqui, para escolher a cor certa. Você não pode, você não pode simplesmente escolher uma cor como esta porque isso vai ser errado. O que você tem que fazer é absorver o, na
verdade, antes de clicar, ir,
ir para o nódulo linfático. Dentro da visualização de buffer, você pode escolher a cor base. Então aqui agora você pode ver amostra da verdadeira cor base. Então, clicando nas clarabóias, agora você pode descer. Aqui está a cor correta agora. Então, vamos escolher essa cor. Agora esta é a cor de coleta, a cor correta. Então, clicando em Ok, volte para a clarabóia. E agora você pode clicar em recaptura porque recapturar significa voltar ao modo labial aqui. Recapturar significa também que ele realmente captura a esfera do céu aqui. Agora é hora do dia. Se você mudar esta noite, você tem que recapturar novamente para Alice recapturar. E vai ser correto, e a cor está correta também. E está usando o hemisfério inferior e assim por diante. Então agora é muito mais correto. Então agora vamos passar por cima e aumentar a escala de intensidade vai fazer as sombras um pouco mais boas de olhar. Acho que vou diminuir um pouco a luz solar. Auxílios de dois pontos. Talvez dois fiquem bem, vamos ver dois. Sim, acho que porque é muito forte e esta exibição aqui. Vamos tentar isso. Vamos tentar dois. E para as sombras, vamos voltar para as clarabóias. A menos que os três, vamos fazer quatro. Então agora isso está ótimo. Ok, então o que podemos fazer a seguir é adicionar um pouco de nevoeiro. Então, clicando em Criar e dentro dos efeitos visuais, podemos ir em frente e clicar em nevoeiro altura exponencial. E você pode ver agora que está adicionando um pouco de nevoeiro. Então, se aumentarmos a densidade do nevoeiro, você pode ver que ele aumenta aqui também. E podemos adicionar um pouco de nevoeiro leve. Não tem que ser insano. Mas esta é a queda é bom, padrão. E também pode mudar a cor dele. Eu só quero ver. Isto é bom. E a densidade. Bem, vamos ao World Outliner. Ei, ele entra e sai para ver. E acho que está tudo bem por enquanto. Então deixe-o ser assim e podemos sempre ajustá-lo. Então vamos passar para ou nós realmente já criamos um volume pós-processo nas últimas lições. Então, clicando no volume pós-processo. Agora, o volume pós-processo, podemos alterar a aparência da imagem apenas como no Photoshop ou editar a aparência do jogo ou da imagem. Aqui você pode editar a aparência do jogo seria pós-processo. E com o pós-processo, por exemplo, aqui temos florescer. Você pode aumentar ou diminuir a floração. E para florescer, eu acho 0,4. Então, um pouco abaixo. Pouco abaixo do padrão, porque o padrão é 0,6. E exposição nos
sentamos, agora podemos adicionar efeitos de imagem agora, ponto zero para esta é a vinheta. Então você pode ver se eu aumentá-lo, torna-se
uma borda preta ao redor das bordas. E acho que vou colocar em 0.2. Agora o balanço de brancos podemos ajustar. Então, por exemplo, a temperatura pode ser um pouco fria. Você pode vê-lo. É quente se eu aumentá-lo e é chamado se eu diminuí-lo. Então este é o padrão e então podemos diminuí-lo um pouco, talvez 5.800. E clicando em entender eu posso aumentá-lo para torná-lo um pouco mais vermelho e talvez torná-lo menos frio. Então cinco mil novecentos e zero ponto zero nove. Só uma pequena diferença aqui. Ok, então este é o nosso nível agora. E o que podemos fazer no mundo, podemos mudar tudo isso. Você pode mudar o ganho se estiver muito escuro e sempre mudá-lo. Mas agora acho que está tudo bem. E não precisamos disso. Você pode jogar com a oclusão ambiente e desfoque de movimento e assim por diante. Então, acho que está tudo bem por enquanto. E deixe-me ver se ele está no subsolo. Ele está olhando para o trabalho. Isto está parecendo bem. Certo, então isso é o que temos até agora. Isso está ótimo. E podemos trabalhar com isso. E deixe-me verificar o nevoeiro e ver se precisamos dele ou se é muito forte ou não antes de continuarmos. Vamos apenas pequenos zeros, apenas um pequeno efeito. Urina no VAB. E agora temos este nível com esta iluminação até agora. Então eu acho que antes de
continuarmos, podemos adicionar ou aumentar a saturação um pouco antes de continuarmos. Vamos ver o que parece. Saturação e ver se eu aumentar um pouco. Então 1 para um ou 1,05. E diminuindo um pouco o nevoeiro, o ponto zero. O ponto zero um é assim. Ok, então agora temos a iluminação feita para o nosso jogo. E antes de terminarmos o vídeo, vamos em frente e adicionar um volume de importância de massa leve. Então aqui e isso cria dentro de volumes, você tem algo chamado massa leve importância de volume. E isso apenas define o que é importante para a iluminação renderizar. E só queremos que isso cubra todo o nosso nível. Então, clicando neste e você pode alterar as configurações do pincel. Então, aumentando o tamanho apenas para que ele se encaixe em todo o mapa. E não precisa ser específico. Então só precisa encobri-los. Vou torná-lo um pouco maior, algo assim. Então agora a massa leve vai renderizar aqui. E construir a iluminação para torná-la correta e construí-la e mais limpa. Você pode ir em frente e clicar em construir e construir todos os níveis agora eu só tenho um nível embora, clicando sobre isso e ele vai começar a construir, ok, Agora que o edifício está completo, e esta é a aparência final do nível. E se precisarmos ajustar algo mais tarde, por exemplo, não gostamos tanto da saturação. Nós estamos? Queremos torná-lo mais quente ou qualquer outra coisa? Vamos fazer isso no futuro. Mas, por enquanto, acho que isto é bom. E vamos passar para a próxima lição.
46. Configurar o personagem: Agora é hora de configurar o personagem. Então este é o personagem que temos, nós importamos nas últimas lições. Então este chamado manequim ODS. Vamos usar este personagem e vamos configurá-lo para que ele esteja pronto para o nosso jogo. Então vamos em frente e lado da pasta de conteúdo e clique com o botão direito do mouse nela, fazer uma nova pasta chamada blueprints. E, a propósito, você pode mover todas essas pastas do mercado dentro de um marketplace. Eu só vou fazer uma nova pasta chamada mercado. E deixe-me selecionar todas
essas pastas do mercado e colocá-las dentro do mercado. Eu provavelmente vou tomar um pouco de tempo. Então, olhando em movimento para cá. Ok, Agora ele foi movido para todas as pastas, para a pasta do mercado. E você pode ver essas pastas não se excluíram porque eu também posso vê-los dentro da pasta do marketplace. Então este é um livro às vezes com Unreal Engine e você tem que clicar em Excluir. E se ele não excluí-lo, Vamos ver se ele dilui. Antes de clicar em Excluir Londres, na verdade clique com o botão direito do mouse nesta pasta de conteúdo e clique em diretores de leitura fixos. E vai consertar diretores de resumo. E deixe-me selecioná-los novamente fora da pasta do marketplace e clique em Excluir. E agora eles se removem. Então, às vezes, você tem que consertar, ler diretores. Eles são pastas ou arquivos que você não pode ver. E assim este também. E este eu não posso deletar. Então eu teria que reiniciar o mecanismo e você, se ele nunca excluir aqui, você também pode excluí-lo do seu navegador e navegador de arquivos fora do mecanismo. Mas por enquanto, que seja assim, está tudo bem. Vamos remover essas pastas de conteúdo do mecanismo
clicando aqui e clicando em Mostrar conteúdo do mecanismo. E agora eles desaparecem. Eu não vou me preocupar com isso por enquanto. Então, agora dentro dos blueprints, Vamos clicar com o botão direito do mouse e clique em Blueprint Class. E para criar nosso personagem, temos que criar o personagem aqui. Antes no jogo anterior, usamos Po1. E isso é porque nosso personagem era apenas uma bola que rolou ao redor. Mas agora temos um personagem real, como dois braços, dois gostam de andar por aí. E para isso precisamos de um personagem real, não sobre, não podemos fazê-lo com sobre. Então, criando um personagem e vamos chamá-lo de BP. BP, base de caracteres BP. Então agora esta é a classe base do personagem. E eu vou te mostrar uma coisa. Aqui. Você pode clicar com o botão direito e clicar em Criar classe de blueprint filho. Agora, a partir desta classe principal de Blueprint, que é a base de personagens, vamos fazer dois projetos infantis, um chamado BP, base de jogadores. E clique com o botão direito do mouse novamente sob base de caracteres e faça a classe Create Child Blueprint e chame-a de base inimiga BP. E agora você está se perguntando o que isso vai fazer. Por que não clicamos com o botão direito do mouse e criamos uma nova classe de projeto e
criamos um personagem e chamamos de base inimiga ou inimigo e criamos um novo personagem chamado jogador. A razão pela qual fazemos isso assim, como clicar com o botão direito do mouse e criar uma criança é porque às vezes você quer editar algo para todos. Por exemplo, aqui, se o inimigo, ele precisa de algumas edições e a base de jogadores precisa de algumas edições. E ambos precisam da mesma edição. Você tem que entrar aqui, editar algo, e então você tem que entrar na base de jogadores e editar algo. E em vez de fazer a mesma coisa várias vezes, você pode simplesmente entrar na base de caracteres e editar algo. E quando você editá-lo aqui, ele irá editá-lo em todas as crianças. Então, agora esses dois, se você segurar o mouse sobre ele, você pode ver a classe pai como a base de caracteres para ambos. Então, se eu adicionei algo aqui nas configurações, por exemplo, se eu desmarcar
isso, ele irá desmarcá-lo para ambos. Você pode ver aqui agora que eles têm uma estrela. Significa que algo mudou. Então isso é uma coisa muito legal. Se precisarmos mudar algo para tudo, podemos simplesmente entrar na classe base. Se precisarmos mudar algo especificamente para o jogador, podemos adicioná-lo dentro da base de jogadores. E a base inimiga não será afetada. Porque a base inimiga é o filho do personagem baseado, não a base do jogador. Ok, então agora temos uma base de personagens em qualquer rebase, uma base de jogadores. Então, a partir da base de jogadores, clique com o botão direito do mouse e criar crianças classe Blueprint a partir deste. E este que vamos chamar de máquina BP. Então nosso personagem é chamado de máquina, assim como Exterminador. Imagine se for encerrado ou brincadeira. E você pode clicar com o botão direito do mouse aqui e criar uma nova pasta. Vou chamar este de inimigos, e vou fazer uma nova pasta chamada jogadores são apenas Blair. E você pode ir em frente e mover a base do jogador e a máquina dentro
do jogador e mover a base inimiga dentro dos inimigos. E nos concentraremos nos inimigos mais tarde. E vou deixar que o personagem esteja aqui fora. Então agora, em vez do jogador, agora temos a base de jogadores e temos o personagem. Você poderia ter chamado de jogador BP. Por exemplo. Eu só queria ligar para minha máquina de personagem como se fosse terminador ou terminador BP. Mas se você editar algo dentro da base do jogador agora, ele também será editado dentro da máquina porque máquina é um filho da base do jogador. Então isso é uma coisa muito legal. Se precisarmos editar algo para tudo, podemos simplesmente voltar e editar algo
na base de personagens e isso afetará tanto os inimigos quanto os jogadores. E por exemplo, quando fazemos algo que é, bem, os jogadores, por exemplo, se eu fizer algo aqui dentro da base de jogadores e eu tenho um monte de personagens. Digamos que eu criei muitas crianças aqui. Eu tenho um monte de personagens diferentes. Imagine que se você está jogando Fortnite e você tem um monte de skins, isso, e basicamente você tem um monte de habilidades. Você tem três peles aqui. Mas eu quero fazer algo que é semelhante para todos eles. Por exemplo, se você entrar nesta parede, você vai morrer. Então você não vai programar este código dentro daqui. Porque eu quero fazer isso acontecer para todas essas três aulas de plantas que eu fiz, todas essas peles, peles de quinze dias. E a maneira como você faz isso como apenas codificá-lo na base de jogadores, porque todos esses são filhos disso. E se você fizer código em sólida, boa base de jogadores, ele fará a lógica ou afetará todos esses três outros, que são os filhos desta base de jogadores. Certo, então vamos deletar. E, na verdade, eu não queria deixar aquela máquina BP. Então, só assim. E agora vou entrar na base de jogadores. E, na verdade, deixe-me ir dentro do loop corre agora na base de caracteres, eu vou remover o início com tick habilitado. E isso é só para o desempenho. Então, apenas compilando salvando, isso é tudo na base de caracteres. Dentro da base de jogadores aqui na malha. Eu realmente quero adicionar uma câmera porque precisamos ver o personagem de uma
visão de cima para baixo. Então, clicando nesta malha aqui. Este é o personagem, a propósito. E aqui você pode ver que é quase como o ator. Podemos adicionar componentes a ele. E assim como a pornografia que fizemos, o ponto, nós adicionamos uma esfera. E aqui no personagem, você pode ver que você está realmente recebendo algo chamado malha. E esta malha é na verdade o personagem. Assim, você pode adicionar o personagem que você está usando. Então você pode adicionar este personagem aqui. E você também tem movimento de personagem. E aqui você pode editar o movimento geral. Por exemplo, a aceleração, a gravidade. Você pode editar a caminhada, você pode editar o salto e queda. Você também pode editar algo com multiplayer aqui, com natação, como você está, quão rápido você está nadando e assim por diante. Então você tem um monte de opções de movimento dentro deste personagem. E quando você faz um jogo, você tem que entrar aqui e equilibrar todas essas coisas. Então você tem que fazer seu personagem único com este componente de movimento. E aqui dentro da malha adicionamos o personagem e também podemos atribuir um blueprint de animação para animar o personagem, que também faremos na lição posterior. E você tem um componente de seta. Ele mostra o que, O que é a frente deste visor. Então o personagem deve estar virado para este lado. Isto é o que está a dizer. E então temos uma cápsula e esta é igual à caixa de gatilho que fizemos antes. Podemos fazer eventos a partir deste ON começar sobrepor apenas nós, assim como o que fizemos no jogo anterior. E na base de jogadores, você pode editar muitas configurações. Você tem configurações de classe e padrão. E aqui em baixo, vocês já sabem o que podem criar. Variáveis e macros, funções e assim por diante. Ok, então vamos começar aqui. Em vez de clicar na malha, Vamos em frente e adicionar uma mola. Assim como o que fizemos com a esfera com uma bola que fizemos anteriormente. Então isso é como o microfone que você vê nos noticiários e na televisão. E então você adiciona a câmera. Então este braço, braço de lança ou um braço de mola está segurando a câmera. E agora você pode clicar na mola em. E você pode clicar e girá-lo. E acho que vou girá-lo até 70 graus. E agora você pode escolher a distância que a câmera deve estar desse comprimento alvo. Vamos tentar 600 e vamos apenas mudá-lo. Se nós, se acharmos que é muito perto. Vamos compilar e salvar. Ok, e vamos realmente voltar aqui e fechar isso. Eu vou para o jogador e aqui. E então esta é a base de jogadores. Na verdade, só vou ver se editei o errado agora. Isto estava correcto. - Sim. Isto estava no jogador Bassanio para a câmera. Pensei que o tinha feito no personagem. E a razão pela qual você não quer adicionar a câmera
na base de caracteres é porque se você
adicioná-la dentro daqui, ela também estará disponível para a classe inimiga. E por que precisaria de uma câmera para os inimigos? Você não vai controlar os inimigos. Então é por isso que fazemos isso na base de jogadores. Então, em vez de uma máquina, se eu entrar aqui. Lembre-se, máquina é um filho desta classe de blueprint. Então, se eu entrar aqui, clique em Abrir editor de blueprint completo. Você pode ver as câmeras já aqui. E isso é porque este é um projeto filho da base de jogadores. Então tudo o que você criar na base de jogadores, mesmo que sejam variáveis, você será capaz de acessá-los na máquina BP porque é uma criança. Ok, então aqui na malha, precisamos adicionar o personagem. Então vamos em frente e encontrar o personagem dentro do mercado. Manequim Ods, malha de personagem de manequim. E os personagens aqui. Desça um pouco aqui e encontre esta malha esquelética aqui. E aqui você pode arrastar o personagem. Então vamos maximizá-lo e visualizá-lo. Então este é o personagem. Vamos clicar na ferramenta de arte ou um clique E2 para a ferramenta girar. Gire para que seja fases para esta seta. É na frente e agora entre,
na vista esquerda ou na vista frontal, isso é com você. Vou para a esquerda. E então aqui você pode arrastar para baixo o personagem, então ele está realmente no chão aqui. Vou desativar o estalo. Posso movê-lo suavemente e movê-lo o melhor que puder aqui. Então é este é o chão movendo-o para baixo. Assim como este. Vou voltar ao modo de perspectiva. Então agora o personagem está no meio. E não se preocupe com isso por enquanto. Vamos compilar e salvar. E a última coisa que queremos fazer é clicar nesta máquina, o padrão da classe. E dentro daqui, vamos ver se o movimento está correto. Eles rotação do controlador de usuário, seu LEA pode desmarcar este. E todos esses arremesso, guinada e rolar. Estes são os X, Y e Z. É
assim que se chamam. Você pode ver que a rotação, o excesso de rolo frio, o dado é chamado pitch e DZ é chamado guinada. E isto é o que ele vai herdar do controlador. Então, quando você pressiona o teclado e se move ao redor, ele vai herdar o movimento desses passos guinada e rolar. Mas não queremos herdar nenhum movimento. Quando nos movemos no jogo de visão superior, só
queremos mover o personagem sem mover a câmera. Então isso está parecendo correto, e eu só vou me certificar de que tudo rolando aqui está. E vamos nessa malha para ver se algo precisa mudar. Está tudo bem. Então, dentro do braço da mola, você pode removê-los, fazer testes de colisão. E o que teste de sexo de colisão é como se você estivesse olhando aqui para baixo sobre o personagem e o personagem ou algo fica no caminho, a câmera realmente será empurrada para baixo por causa deste item que a empurra para longe. Mas queremos remover isso para que a câmera não seja afetada por nada no mundo. E vamos remover as configurações da câmera, herdar o tom, guinar e rolar porque não queremos movê-la. Então deve ser assim o tempo todo. Sim, está parecendo bem. E dentro da câmera, provavelmente não precisamos mudar nada. Dentro do movimento do personagem. No entanto, vamos ouvir nas configurações de rotação, você pode pegar este, orientar a rotação ao movimento. Então, quando você se move ao redor do personagem,
nós vamos girar dependendo de onde você clicou. Pressionar D fará com que ele vire para a direita. E isto é o que queremos do jogo de cima para baixo. Certo, então agora temos esse movimento. E se você quiser girar mais rápido,
então, quando você anda por aí, você pode aumentar esse número. Então vamos colocá-lo em 600 por agora só para fazê-lo girar mais rápido. E tudo o resto parece correto. Então vamos salvar tudo, compilar, salvar. E lembre-se que você sempre pode clicar nesses três botões. Vá para salvar somente em compilação e sucesso. E isso vai fazer isso se você compilar e ele diz sucesso como este, você não precisa salvar porque ele salva automaticamente. Então ele salva você quer clique. Ok, então agora vamos fechar este aqui. E agora temos, se voltarmos às plantas e ao lado do jogador, agora temos essa base de jogadores. Podemos fazer algum código em que afetará todos os jogadores se tivermos muitos. E então temos algo específico. Por exemplo, esta máquina. E imagine que posso ter outro personagem. Posso ter um personagem que é outra máquina, apenas um humanóide normal. E eu posso entrar neste personagem humano, capturar e adicionar minha malha. Porque agora nós adicionamos esta malha dentro desta criança azul, Blueprint Class. E, portanto, se pudermos criar uma criança agora aqui, também, se quisermos adicionar mais jogadores, podemos ir em frente e clicar na malha e adicionar uma nova malha se quisermos. Certo, então vamos deletar esse, e deletar nosso personagem falso que usamos antes. Então agora você pode ver, agora você realmente tem a câmera. Você pode clicar com o botão direito e clicar em piloto. E ele pode ver o que parece se você pressionar F 11 para maximizar a janela de exibição e clicar em g para remover tudo isso, você pode ver o quão perto a câmera está e está bem perto. Mas sem sair da câmera, vou clicar duas vezes aqui e clicar em. Deixe-me fazer isso da base de jogadores. Não quero alterar as configurações daqui. Eu quero mudar, porque se eu mudá-lo aqui, isso só afetará este projeto. Se tivéssemos vários jogadores, eles ainda estariam assim. Então eu quero fazê-lo na base do jogador, clicando no braço da mola e torná-lo 900 e ver o que parece. Sim, isto parece muito melhor. Então 900 e o comprimento do braço alvo para o braço da mola. Vamos salvar tudo. E tudo parece correto. Vamos fechá-lo. Salve tudo. E isso é tudo o que precisávamos fazer para o personagem. Então, agora na próxima lição, vamos em frente e fazer o Demode e o controle do jogador antes de fazer qualquer movimento.
47. Modos e jogadores para jogos: Vamos criar o Modo de Jogo e sob controle do jogador. Então vamos voltar para as plantas. Vamos rapidamente clicar com o botão direito do mouse e clique em classe Blueprint. Vá em frente e crie um controle de jogador. E este vai ser chamado de PC. Posso chamar o controle não-polar. Na verdade, eu costumava chamar-lhe o nome do jogo. Então este é chamado de ataque de clones. Um PC é para o controlador do jogador. E deixe-me clicar com o botão direito do mouse novamente e criar um modo de jogo chamado ataque clone GM. E quatro. Para o modo de jogo, você pode realmente criar o modo de jogo múltiplo. Então, se você tem um modo de jogo, digamos que você está fazendo um jogo de tabuleiro. Então você está fazendo damas ou xadrez, ou cobras e escadas ou ainda ver, ou algo assim. Você tem que criar vários modos de jogo para esses. Então, se você tem um modo de jogo para xadrez, você tem um modo de jogo para damas. Você terá um modo de jogo para Snakes and Ladders. Você terá um modo de jogo para quando você desenhar, eu não sei, quaisquer jogos que você tem, você terá vários modos de jogo. Então agora só temos um jogo e só temos um modo de jogo. E também pode ter vários controladores. Ok, então agora temos isso e a próxima coisa que
queremos fazer é realmente configurá-lo. Então, indo em frente e editar dentro das configurações do projeto. E aqui você tem algo chamado mapas e modos. Então, clicando em mapas e modos, você pode, você pode alterar esse modo de jogo padrão. Então o seu Modo de Jogo Personalizado aqui. E dentro daqui, você também pode alterar os padrões aqui. Então, na classe de fonte padrão ou uma Alice muda para máquina BP. Esta é a camada que realmente queremos gerar. E ou o controlador, vamos alterá-lo para o ataque de clone do PC. E para os mapas aqui, os mapas padrão, fizemos o mapa chamado principal. Então eu vou mudar o editor Startup Map 2 significa. E novamente, mapa padrão para mim. Então, agora, quando você abre o editor, você não vai começar nesse nível vazio o tempo todo. Agora você realmente vai começar aqui. Então vamos salvar tudo. E para ter certeza de que está funcionando, eu quero entrar no modo de jogo. E aqui à direita nos padrões da classe. Eu quero verificar se o meu controlador é PC clone strike e um jogador é BP máquina. E isso está correto, e não queremos fazer nada aqui. Isto é bom. Dentro do controle da bexiga maior verificando tudo. E isso também parece bom. Não precisamos fazer nada dentro daqui. E, em seguida, a última coisa aqui, dentro das configurações do mundo. Aqui você também tem algo chamado Game Mode substituir e você tem, você tem que se lembrar de mudar isso mais, que o modo de jogo não vai funcionar dentro deste nível. Então, clicando sobre ele e alterando-o para GM clone strike, clicando nessas setas apenas para certificar-se de que os controladores de fluxo PC clone strike, eo Peão Padrão que irá gerar é a máquina BP. E, a propósito, a coisa que criamos um botão direito puro e criamos uma classe blueprint. Você pode ver aqui nós criamos um personagem. Então, por que se chama aqui? Por que é chamado de lagoa? Porque o ponto é o que usamos no último jogo, no último jogo que criamos. Mas agora estou imprimindo um personagem e há uma vantagem aqui. Um personagem é um tipo de pornografia. Então isso é realmente também sobre, então este é um tipo de vínculo. Este é o fio. Por que é chamado aqui. E o personagem vai trabalhar aqui porque o personagem é na verdade um tipo de cone. Ok, então isso é o que tivemos a ver com o Modo de Jogo e o controle do jogador por enquanto. Tão básico. E vamos para a próxima lição.
48. Adição de movimentos de jogadores: Agora podemos fazer o movimento para o personagem. Então, para fazer o movimento, primeiro, precisamos de algumas entradas. E assim como fizemos com o primeiro jogo, indo em frente dentro da edição e ir dentro das configurações do projeto. E dentro da entrada, você pode ouvir criar mapeamentos de acesso. Então eu vou criar um ou dois, na verdade um chamado seguir em frente. Então, é quando nos movemos para frente e para trás. Então isso é y, isso é o que eu chamo. Então, na verdade, é apenas mover-se para frente e para trás. E isso é mover direitos e sexualmente mover para a direita e para a esquerda. Então vamos ver essas vantagens. E você pode clicar neste botão, clicar no W no seu teclado, ou você pode encontrá-lo aqui. Isso depende de você escrevendo a chave S,
por exemplo, ou S. Não pode encontrar a chave, então clique em S e encontrá-la. E aqui, a maneira mais fácil, basta clicar neste clique no botão D
no teclado e clicar no botão aqui. Então vamos fazer este um menos1. Então, indo para frente é um indo para trás, menos 1 indo para a direita como um indo para a esquerda é menos1. Pode imaginá-lo como em um gráfico, mais e menos. Assim, mapeamentos de acesso são usados para o movimento aqui. Estes são os mapeamentos de acesso e o mapeamento de ação que vamos usar mais tarde. Isto é, por exemplo, se você clicar em um botão, então se você clicar em E para abrir portas, se você clicar com o botão esquerdo do mouse para atirar sua arma e assim por diante. Então estes são seus cliques de botão, alguns, um espaço para saltar. Isso também é um mapeamento de ação. Então agora criamos isso para frente e para a direita, e vamos criar outros movimentos mais tarde. Gosto de criar coisas quando preciso delas. Então, eu não vou em frente e criar 10 mapeamentos de ação diferentes. E talvez eu não esteja usando metade deles mais tarde, então eu só os crio quando preciso deles. Por enquanto, nós os criamos e eu gosto de fazer o movimento dentro do controlador do laboratório. Então, clicando no controlador do jogador aqui, clicando em abrir o editor completo de blueprint completo. Vamos apagar tudo isso por enquanto. Então aqui podemos clicar com o botão direito do mouse e podemos fazer o avanço que chamamos. E aqui este é o evento que precisamos. Então é isso que acontece quando clicamos em W para avançar ou estimar mover para trás. E o outro chamava-se MOOC, certo? Ok, então agora nós seguimos para a frente e para a direita, e a coisa que precisamos mudar para cá. Lembre-se no jogo anterior que usamos torque é torque, que é um tipo de força que movemos nossa bola ao redor. Mas aqui vamos realmente dizer
adicionar entradas de movimento e remover o contexto sensível. E você pode ver aqui é algo chamado uma função chamada adicionar entradas de movimento. E isso é o que vamos fazer é clicar com o botão direito do mouse aqui e clicar no contexto novamente antes de chegarmos. Então vamos copiar este também e fazê-lo aqui. Vamos agora conectar os valores do eixo dentro do valor da escala. Embora, quando ligamos w, Este será 11 com ácido fólico, este será menos um, mas este irá controlar o movimento. Certo, então agora precisamos do alvo. E o alvo é, claro, o jogador. Queremos adicionar movimento ao jogador. E é também por isso que às vezes você faz isso e diretamente nas entradas de movimento e você não vê nada. E isso é porque você tem que tirá-lo do alvo. Por exemplo, se tivéssemos o personagem e arrastamos e escrevemos na entrada do movimento, ele realmente aparecerá. Mas se você fizer isso assim sem o alvo, será apenas uma busca geral. E você está procurando por um contexto sensível. Então algo que se relaciona com este evento e nada está sendo mostrado como o porquê de eu removê-lo e adicioná-lo. Mas se você for arrastado para fora do alvo e procurar adicionar entrada de movimento, ele irá conectá-lo automaticamente a isso e encontrá-lo. Ok, então eu preciso do alvo, que é o personagem aqui. Então o alvo é o personagem. E é, na verdade, deixe-me salvar. E esta é a base de jogadores que precisamos. Precisamos da base de jogadores. E não há como jogador, todos estes são filhos eternos da base de jogadores. Então, se pegarmos este, todos eles têm a mesma entrada. Precisamos de uma referência a esta base de jogadores. E a maneira como fazemos isso, lembre-se no jogo anterior, temos que nos comunicar entre blueprints usando Blueprint Interface. Então esta é a mesma coisa aqui. E vamos passar por cima e criar uma Interface de Blueprint. Então clique com o botão E vamos fazer uma nova pasta chamada interfaces. Dentro daqui vamos clicar com o botão direito do mouse em fazer blueprints, Blueprint Interface. E este eu vou chamar de base de jogadores int. Porque isso é específico para a base de jogadores. Vou clicar duas vezes e fazer uma função aqui chamada recebe camada base rep. Ou também pode chamá-lo. Vou chamá-lo de “Get Player”, “Player Reference”. Só para não demorar muito. E aqui eu vou fazer uma saída. E a saída vai ser a peça ou BP. Opa, base de jogadores da BP. Você tem que se referir à coisa para a qual você quer ter a referência. E, neste caso, é a base do jogador da BP. Eu só vou chamá-lo de jogador variável. Então compile e salve. E agora temos que abrir a base de jogadores para editar. Clique na base de jogadores. Vamos apagar tudo isso por enquanto. Dentro da base de jogadores, você tem que ir para as configurações de classe. E lembre-se que você tem que adicionar a interface antes que ela funcione. Então, procurando por base de camada int e adicionando-o, você pode ver as interfaces realmente aparecem aqui. Então compile e salve. Vamos clicar duas vezes nesta direita infinita, arrastar para fora e escrever auto. Agora ele está perguntando o que é essa referência, esta referência de linha em si, estamos dentro da base de nuvem. E, portanto, agora ele sabe que o jogador que você está se referindo é na verdade base de jogadores. Isto é o que significa “eu”. Está se referindo a resolver. Então, o que podemos fazer agora dentro daqui, lembre-se que a base de jogadores é um tipo de personagem. Então você pode ver ou a base de caracteres da classe pai. E se entrarmos na base de caracteres, a classe pai é personagem. Então o que precisamos fazer dentro daqui, dentro do controle do jogador. Vamos fazer uma sexualmente fazê-lo no início da peça. Mas o que podemos fazer aqui é dizer que recebe caráter ou recebe bom personagem jogador. E isso é o que podemos fazer porque a peça, o personagem Bayes é o tipo de personagem como as classes pai o personagem. Então pegue o personagem do jogador. E agora temos que fazer referência a esse jogador específico que queremos chegar, e queremos chegar à base de jogadores. Isto é o que somos treinados para nos referir. E lembre-se que fizemos essa função que podemos nos referir. Então, indo aqui e dizendo recebe gráfico de
camada e é uma mensagem porque é uma Interface Blueprint. Vamos fazer isso. Comece o evento de jogo aqui. Então, quando começarmos a jogar o jogo, isso será chamado. E o jogador aqui é agora isso porque lembre-se que nós escrevemos auto aqui. É por isso que ele sabe que este bom jogador árbitro é realmente este. Aqui podemos acessar todas as coisas dentro do jogador. Agora aqui temos o caractere, temos a camada REF,
e vamos criar, clique com o botão direito do mouse nisso e dizer Promover para variável. E vamos chamar este jogador. Então agora temos uma referência ao ponto do jogador, que é este. E antes de fazermos isso, vamos realmente fazer um nó válido. Então dizendo obter personagem jogador,
em seguida, dizer é válido. Então ele vai perguntar, vamos conectar isso assim. Então agora ele vai perguntar, obter o personagem jogador. Este personagem de jogador é válido? Se for, então vá em frente e faça essa referência. Se não for válido, adie 0,2 segundos. E depois tentou disparar isto outra vez e ver se é válido. Então podemos movê-lo para cá. E isso é feito porque às vezes o personagem ainda não é gerado. Por exemplo, refiro-me muito ao Counter-Strike. Imagine em greve de gabinete. Você acabou de entrar no servidor e você deveria escolher uma equipe, um contra-terrorista ou um terrorista. E se você ainda não selecionou um personagem, você não está realmente dentro do jogo, então você não tem um personagem de jogador, você ainda está no modo de espectáculo e você está selecionando um personagem. Portanto, isso não será válido, então esperará por você. Ele vai em frente e adiado por 0,2 segundos. E quando estiver completo, quando completar esse atraso, vamos tentar disparar novamente e ver se você é válido. E se você ainda não selecionou um personagem, ele vai voltar e atrasar na terra estava Ontário. Você seleciona um personagem e ele vai em frente e cria uma referência para o seu personagem. Ok, então agora este personagem que temos, podemos agora dizer arrastar para fora desta caneta. E aqui você pode ver recebe rotação de controle. Então estamos recebendo a rotação do controle. Então, quando você clica em w, ele sabe que sua rotação é assim. Se você clicar em D no teclado, ele o conhece. O controle é por aqui e assim por diante. Então você está recebendo a rotação deste controle. E aqui dizemos para avançar vetor. Isto é porque queremos seguir em frente. Esta é a direção que estamos enfrentando, pegue o vetor de frente. E o outro é ir direto para o vetor. E agora podemos ligá-lo aqui. E é assim que fazemos. Então, se compilarmos e agora ele precisa de um alvo, é
claro que sou eu para conseguir. Então o alvo é apenas exibir ou você pode realmente apenas ir em frente e conectá-lo assim, mas parece um pouco confuso, então eu quero criar algo novo. Mas antes de fazermos isto, vamos arrastar isto até aqui. Apanha o ponto de novo. Você pode clicar com o botão direito do mouse e clicar em Converter para obter validado. E assim como este, ele vai verificar se o personagem é válido porque você não é, você não quer fazer o movimento se seu personagem não tiver gerado, não faz sentido. Então ele vai verificar se o personagem é válido? Se for, vá em frente e faça a entrada do movimento. O alvo é apenas um quadrado. Então isso é o mesmo que conectar este aqui. Então isso é o mesmo conectando-o aqui. E eu vou fazer o mesmo aqui vai verificar se o personagem é válido antes que ele faça alguma coisa aqui. Senão, ele vai lhe dar um erro e dizer, Ei, seu personagem não é válido. Como é que eu vou fazer este movimento? Então é isso que evitamos, evitamos alguns erros. E deixe-me clicar duas vezes para adicionar nosso nó de redirecionamento apenas para torná-lo um pouco mais limpo e movê-los para cá. Então agora vamos compilar. E eu esqueci, desculpe, eu sempre esqueço o alvo aqui. Vamos salvar tudo e clicar em Reproduzir. E agora ele vai dizer erro. E deixe-me, Há BP personagem em primeira pessoa por algum motivo, cancelá-lo pode realmente ver o que é. Vamos em frente e clique em Procurar. Na verdade, eu queria ver o que é isso. E isso está dentro do nível de tutorial, o que não faz sentido porque nós realmente não precisamos dele. Mas deixe-me clicar em exclusões aqui. E, na verdade, vou apagar toda essa pasta em primeira pessoa. Vamos deletar. Nós realmente não precisamos dele. Vamos salvar tudo e clicar em jogar. E caímos pelo chão. E isso não deveria acontecer. Isso é porque não estamos, não adicionamos um jogador começa circuito sólido novamente e clique em Criar. Clique no início do jogador. Isto é o que precisamos de L, por isso vamos cair aqui desde o início. Então este vai dizer tamanho ruim se você o tem debaixo do chão assim. Então, movendo-o um pouco para cima. Algo como isto. E quando você aperta Play, você pode ver você, estamos agora se movendo. Então isso é incrível. Eu clico f 11 para tela cheia para que você possa ver que você está se movendo. E isso é bom. Então a próxima coisa é que podemos adicionar alguma animação para ele, então ele está realmente correndo por aí. E por enquanto, só quero mostrar um erro. Nós fizemos e eu fiz. Na verdade, não tem nada a ver com você. Então, clicando na máquina BP, você pode ver aqui nós realmente adicionamos a mudança essas configurações usando a rotação do controlador. Você está dentro da máquina BP, mas nós devemos fazê-lo dentro da base de jogadores porque ele precisa ser aplicado a todos os personagens que criam e não apenas este. Então eu vou ouvir no padrão da classe, pegue este de novo. Fora da malha. Não há nada dentro do braço da mola. Vou levar todos estes três de novo. E dentro do movimento do personagem, eu vou descer para as configurações de rotação. E eu estou pegando isso de novo e fazendo este 360 exatamente como era antes. Isso. Vamos realmente fazê-lo através da base de jogadores. Então este é o correto. Esse é o meu erro. Eles vão remover isso dentro dos padrões da classe, o, o seu interior do braço mola removeu os testes de colisão e estes herdados. E no movimento da planta, vamos descer e fazer a rotação, que é aqui. Clique sobre isso e faça este 600. Embora seja apenas um pequeno erro. O jogo do Alasca e certifique-se de que funciona e funciona. E vamos para a próxima lição.
49. Redirecionando animações: Ok, então vamos em frente e ver como redirecionamos as animações. E antes disso, eu realmente fiz uma pasta dentro de ativos, pasta metacaracteres. E para dentro daqui eu arrastei esta malha para cá. Então aqui estava dentro do manequim ODS e manequim, caráter e malha. E estes, eu realmente arrastado para dentro de meus próprios recursos Character Pasta e chamou-os de máquina SK, ou este é o Skeletal Mesh. E o ativo físico é a máquina k e o esqueleto da máquina para o esqueleto. Então eu tenho isso aqui só para que seja mais organizado. Ok, então agora vamos redirecionar animações. E lembre-se que importamos animações
do mercado e importamos esse pacote inicial de animação. Então, clicando nele, você pode ver um monte de animações. E todas essas animações, precisamos adicioná-lo ao nosso próprio personagem porque este é
apenas o personagem padrão Unreal Engine. Do jeito que fazemos isso, temos que redirecionar a animação. Então primeiro temos que ver quais nossas animações vamos usar? Então o que precisamos para o nosso propósito é o quadril ocioso do rifle. E você também pode procurar por S4-lo aqui. Então é um rifle de beisebol. Terás mais hipóteses de o encontrar. E aqui você pode encontrar o quadril do rifle aldol. Então, clique com o botão direito do mouse nele e o recurso de animação redirecionado e duplicado. Mas eu só quero explicar para você rapidamente o que isso significa. Então todas essas animações, elas estão ligadas a um esqueleto. Assim como aqui no personagem, temos um esqueleto para o nosso personagem. Todas as animações estão ligadas a esqueletos. Então aqui no manequim ODS, nossa pasta de manequim, também temos animações que vieram com ele. E, na verdade, indo para duplicá-los só vão realmente ver, engraçado. Acho que não preciso deles. Mas você pode clicar duas vezes nele e você pode ver como ele se parece. E estes são para o nosso personagem. Então essas animações estão ligadas para o nosso personagem, para o nosso esqueleto. Eles estão usando o esqueleto. No entanto, esta inicialização de animação X, eles não estão usando nosso esqueleto. Eles estão usando este esqueleto dentro de uma malha de manequim uniforme e tem este esqueleto que está usando esta malha padrão. Bem, então é assim que você, por que você precisa alcançar o alvo, porque precisamos usar nosso próprio personagem. E do jeito que você faz isso, vá em frente e vamos procurar a animação que precisamos. E vamos começar com este rifle ídolo. Então, o rifle ocioso, clique com o botão direito nele. Redirecione o ativo de animação e os ativos de animação duplicados e redirecione. Embora clicando sobre isso, este espectador aparecerá. E este é o visualizador onde você seleciona qual esqueleto você deseja segmentar dois. E agora você pode ver que nada está aparecendo. Isso é porque você tem que às vezes um desmarque este dizendo mostrar apenas esqueletos compatíveis. E agora você pode ver todos os esqueletos em seu jogo. E estas são, por exemplo, armas. Eles também têm esqueletos. Temos os inimigos. Seja o que for que baixamos, isso é algo para Ele ou o que for. Então temos muitos esqueletos para coisas aleatórias, mas queremos redirecionar para essas máquinas SK, então nossos próprios personagens esqueleto. E então você pode apenas clicar em alvos RE. E agora ele redirecionou a animação. Então, se você passar para a pasta de conteúdo aqui e para a pasta de conteúdo base, você pode ver sua animação aqui ele redirecionou, e agora esta está em nosso personagem. Ok, então vamos fazer isso para o resto. Por isso, também precisamos de um passo em frente. Então, à procura de uma espingarda, e eu vou dar um salto para a frente. Então, se você clicar duas vezes nele, você pode ver que está correndo para a frente. Isto é o que precisamos. Também preciso de uma animação de morte. Então, se eu remover este rifle, então agora eu tenho o jarro para a frente selecionado. E se eu segurar Controle e também pode clicar sobre isso, que três. Então agora eu tenho ambos selecionados e posso clicar com o botão direito do
mouse, clique com o botão direito e ler destinos Remova a pesquisa de compatibilidade para o computador SK. Vamos sentar e ler alvos. Agora, se eu voltar ao conteúdo, você pode ver que temos um monte de animações agora que podemos usar para o nosso personagem. E temos aqui um ocioso, temos um salto em frente, mas também precisamos de fogo e recarga. Então vamos para o pacote de animação inicial, rifle de direita. E vamos procurá-lo aqui e recarregar o quadril do rifle. Este, e o outro está atirando. Então este rifle de disparo. Então estes dois aqui, clique com o botão direito, lêem alvos. Remova isso, procure o esqueleto. E vá em frente e redirecione. Ok, então agora você pode ver que eu estou vendo tudo. Isso é porque eu estou procurando aqui, ele está procurando em pastas antigas. Então removendo-o, você pode ver que agora temos todas essas animações que podemos usar para o personagem. E eu vou para aqui na pasta de ativos e os personagens clicar com
o botão direito do mouse fazer uma nova pasta chamada animações. E dentro daqui eu vou arrastar todas essas animações dentro desta pasta Animações. E isso é mais organizado. E o que você pode fazer se quiser torná-lo mais organizado aqui na pasta Blueprints, você pode definir uma cor e você pode alterar qualquer cor, talvez azul para blueprints. Assim como este. E você pode ver agora que temos um azul, um azul. Então, se você está olhando por aqui, você pode facilmente detectá-lo. E pode até fazer todos eles, todos eles azuis assim, se você quiser. Certo, então agora temos as animações. Temos as animações prontas e redirecionadas. E foi isso. E se precisarmos de mais animações, podemos sempre ir em frente e redirecionar um pouco mais. Então, é isso por enquanto. E vamos em frente na próxima lição.
50. Criando um espaço de mistura: Agora que temos a animação está pronta, vamos em frente e criar um espaço de mistura. E o espaço de chamas e mesclagem é simplesmente colocar as animações juntas para que possamos usá-lo em um blueprint de animação, que criaremos mais tarde. Então vamos em frente dentro das plantas e dentro do player, e vamos imprimir aqui porque é específico do jogador. Clique com o botão direito do mouse aqui, animação e escolha o ou o espaço de mesclagem 1D. Ou clicando nele, temos que selecionar o esqueleto que queremos usar, e queremos usar nosso próprio esqueleto chamado máquina SK. Então, clicando nesse, e vamos chamá-lo de BS para o espaço de mistura. E eu vou chamá-lo de correr porque este é apenas o trabalho iria derivar queda. Assim, podemos ter espaços de mistura do personagem correndo o personagem andando é outro espaço de mistura. O personagem, deixe-me pensar. Sprinting é outro espaço de mistura. Então temos um espaço de mistura para cada movimento. E, por exemplo, para correr. Realisticamente, isso deve ser chamado de rifle de jarro, porque temos um rifle correndo. E você também pode ter uma corrida BS sem um rifle. Então, é só uma piada. Mas agora estamos segurando uma espingarda, então chamando-o de fuzil jogs. Clicando neste espaço de mesclagem, você pode ver que você tem este novo visualizador. E fazendo isso um pouco maior, você pode ver que temos um eixo horizontal e esta é a velocidade de movimento. Então, chamando-o de velocidade de movimento. E esta velocidade de movimento, o valor mínimo é 0. Isto é bom. Podemos, temos a velocidade de 0 e ficamos parados. E a velocidade máxima, vamos colocar 600 e podemos sempre mudá-la mais tarde se quisermos aumentá-la. Tudo o resto está bem. Então aqui, aqui em baixo você pode ver que temos um gráfico e é aqui que você coloca suas animações. E se você colocar as animações, você pode ver seu personagem se movendo. E à direita você tem todas essas animações. Então agora o que queremos usar é o quadril ocioso que redirecionamos. Você também pode encontrá-lo dentro de animações aqui onde você colocá-lo, você pode arrastá-lo ou rasgar e um pouco mais fácil de encontrá-lo. E aqui na velocidade de movimento, você pode ver aqui embaixo neste eixo é a velocidade de movimento de 0 a 600. Então agora em 0 precisamos do ocioso porque não estamos nos movendo. Então vamos arrastar este ídolo e colocá-lo em cima daqui. Agora você pode ver os treinadores em marcha lenta na velocidade 0. Então isso faz sentido. Na velocidade de 600, queremos que o sangue esteja funcionando. Então aqui, Jacques, em frente, vamos colocá-lo aqui. Então, agora, quando você segura Shift, você pode mover isso e você pode ver, você pode realmente visualizar a animação se você segurar shift e mover este, este ponteiro, isso é como o personagem vai se parecer. Ok, então isso é legal. Isto é tudo o que precisamos fazer. Muito simples. Clique em Salvar e clique em Fechar. Então agora dentro do jogador do Brooklyn,
um jogador, temos o espaço de mistura chamado fuzil de piada.
51. Blueprint de animação: Agora temos o espaço de mistura pronto. Então agora estamos prontos para criar o blueprint de animação. Então vamos em frente. Dentro da pasta do jogador, já
estamos aqui, dentro do jogador. Vamos clicar com o botão direito. Vá para animação e faça o blueprint de animação 0. Clicando nesse, temos que selecionar que tipo de esqueleto queremos usar e queremos usar nossa própria máquina chamada Escape. Então, selecionando esse esqueleto, clicando em Ok, e aqui podemos chamá-lo e MVP para blueprint de animação. E podemos chamar este para o jogador. Então isto é para o nosso jogador. Então, clicando duas vezes neste blueprint de animação, você pode ver que entramos em um gráfico e isso parece complexo, mas na verdade é muito fácil. Você pode ver aqui à esquerda, assim como a classe blueprint, temos as macros, variáveis, funções e tudo isso. Então esta área é para ver isso. Agora, temos esta pré-visualização e aqui podemos ver como o personagem está se movendo. E dentro daqui temos o gráfico de eventos ou gráfico de animação. Desculpe. Temos um gráfico de eventos onde vamos codificar exatamente como fazemos no nas classes blueprint. Temos o gráfico de eventos e também temos o gráfico de animação. Então este é um novo gráfico do que as animações. E à direita você pode ver diferentes animações, assim como quando criamos o espaço de mesclagem. Ok, então estas são as pré-visualizações da animação. E isto está tudo bem por enquanto. Ok, então isso é tudo que você precisa saber por enquanto. E então para criar nossa primeira animação, temos que criar uma máquina de estado. Então clique com o botão direito do mouse escrevendo computador E vocês podem ver aqui que podemos adicionar uma nova máquina de estado. Esta máquina estatal, vou chamar-lhe movimento local, olá movimento. E podemos recolher este ligado, não recolher este. Podemos ligar este. E podemos clicar duas vezes nessa máquina de estado que criamos. E dentro daqui vamos fazer o movimento. Então, simplesmente o que queremos fazer é fazer a corrida. Então aqui, vá em frente e arraste para fora e você pode adicionar um conduíte e um estado pode fazê-lo é apenas como um conector que você pode fazer para limpar o código. Eles vão em frente e adicionar um estado. E o estado que queremos acrescentar é jogs. Então vamos, vamos escrever piadas. Vamos clicar duas vezes nesse estado. E aqui você tem que inserir a animação. Voltando para que saibas o que se passa. E o mesmo aviso porque não fizemos nada aqui, assim. Vamos compilar e salvar. Então criamos uma máquina de estado, eu a conectei a essa pose. Este é o resultado. E vamos clicar duas vezes nessa máquina de estado e adicionamos o estado. E dentro do estado, o estado que precisamos adicionar a animação de drogas. Embora aqui nós fizemos um espaço de mistura. Nós não vamos adicionar esta corrida, ou faria, nós poderíamos fazer isso e o jogador iria saltar para a frente. O que queremos adicionar este jargão espaço de mistura porque não queremos correr quando temos este talão de 0. Então vamos puxar isso para cima e estava conectado. E vocês podem ver que temos algo chamado velocidade de movimento. E se eu clicar duas vezes no espaço de mistura, lembre-se, velocidade de movimento é essa. Então, seja lá o
que você chamou, ele será exibido aqui nesta variável. Então esta é a velocidade de movimento que temos que adicionar. Com a velocidade de movimento é 0. O jogador vai ficar parado. A velocidade de movimento de 600 ou máxima, vai estar se movendo. E precisamos ligar a velocidade de movimento até que o jogador velho ou animação tilda que a velocidade de movimento é atualmente. Ok, então agora nós o conectamos. A velocidade de movimento é 0. E você pode ver se eu escrever 600 e eu compilar vai correr. Mas queremos calcular isso dinamicamente dependendo de quão rápido você está executando. Então, para fazer isso, você tem que ir no gráfico de eventos e fazer um pouco de código. E esta é simples. Aqui, você tem que escrever inicializar. E você tem um evento chamado Blueprint initialize animação. E isso é exatamente como a peça inicial em seus atores planos. E esta é simplesmente uma peça de início. Quando a animação começa a ser reproduzida, o que você quer fazer? Assim como um jogo começar em todas as Classes autor Blueprint. Vamos pegar este, tentar “Obter o dono do penhor”. Vamos tratar disso aqui em cima. E aqui podemos dizer que é válido. Então este peão é válido aqui? Assim como, como este é válido, se o ponto é válido. Então, se você criou seu personagem e o personagem realmente existe no nível,
Vamos clicar com o botão direito do mouse remoto para uma variável e chamá-lo camada sobre. Isto é, se for válido. Então, vamos clicar duas vezes para fazer um nó redirecionado e torná-lo. Torná-lo estruturado. Então, se a camada estiver realmente dentro do nível, então se for, o caractere aqui é válido. Se ele gerou dentro do nível, vá em frente e crie uma variável deste vínculo. Se não for válido, vamos atrasar 0,2 segundos. E quando estiver concluído, vamos reconectá-lo aqui e ali é válido. E o que isso faz é que se o personagem ainda não foi criado, ele vai avançar e atrasar em 0,2 segundos. E quando estiver completo, ele vai executar isso como válido novamente e novamente e novamente e
novamente até que seu personagem é realmente válido e ele irá criar a variável. Ok, então agora temos uma variável, agora temos este Jogador Peão foi arrastá-lo para fora. E aqui temos que escrever velocidade porque queremos obter a velocidade de movimento. Lembre-se, temos que obter a velocidade de movimento do personagem que estamos recebendo a velocidade. E lembre-se na velocidade de movimento, se voltarmos para o estado de atleta aqui, precisamos dele em uma variável flutuante. Então este é um flutuador, a variável verde aqui para criar um novo, whoops, não uma função com um líder lá novamente, criar uma nova variável aqui. Lembre-se que os verdes são os carros alegóricos. Então, um carro alegórico é simplesmente um número. Uma compilação aqui é simplesmente um número com decimais. Agora vou apagar este e deixar-me voltar ao gráfico da carrinha. Então este é um vetor agora. E para chegar à velocidade para um flutuador, só
temos que escrever o comprimento. Então estamos recebendo o comprimento, comprimento deste vetor. Então, conseguindo o comprimento. Agora isto é um flutuador e esta é a velocidade de movimento. Então, vamos clicar com o botão direito do mouse em promover a variável e dizer velocidades de movimento. Agora vamos conectá-lo. E agora vai calcular a velocidade de movimento deles. Agora nós não queremos, nós não queremos executar este código
porque este código vai ser executado untick e rodando no tick, que
significa que ele vai executar todos os quadros. E não queremos executá-lo em todos os quadros se o personagem ainda não tiver sido gerado. Mas porque, por que nós, isso seria um desperdício de memória. Então vamos em frente e derrubar um peão de jogador aqui. Vamos clicar com o botão direito do mouse e dizer Converter para obter validado. Leve-o aqui para baixo. Então agora nós conectamos quando a exibição de pornografia do jogador aqui é válida. Então vá em frente e calcule a velocidade de movimento. Isso significa que se o jogador tiver gerado, vá em frente e faça isso. Se não, não faça nada, e não precisamos conectar nada. Por isso, pára aqui. Ele verifica se isso é válido. Se for, então ele vai em frente e fazê-lo. Ok, então Compilar e salvar. E agora vamos em frente e lado do estado do jarro, e agora temos a velocidade de movimento deles. Então vamos arrastar para fora esta variável e vamos apenas colocá-lo dentro daqui. E você pode ver que a velocidade de movimento está agora conectada. Vamos compilar e salvar. E agora deve estar funcionando. Mas agora temos que conectar este projeto de animação ao player. Então vamos fechar tudo. Vamos clicar no jogador. Então, a base da camada, porque queremos afetar todos esses jogadores. Imagine se tivéssemos muitos jogadores, muitos personagens, desculpe, se tivéssemos muitos personagens, queremos a mesma animação em execução para eles. Vou clicar na base do jogador e vamos realmente adicioná-lo dentro da base do jogador. Então, dentro da base de jogadores, você pode clicar em Mesh. E dentro da malha, você pode olhar aqui no modo de animação. E ao clicar nisso, use o blueprint de animação. Isto está correcto. E usar quais nuvens de animação você deseja usar? Queremos usar os jogadores da NBPA que acabamos de fazer. Vamos compilar e salvar, e isso deve funcionar. Então, se você entrar na máquina BP,
a janela de exibição agora pode ver que seu player está realmente se movendo. E isso é chamado agora, agora o jogador está se movendo. E isto é muito fixe. Então vamos em frente e clique em Jogar e ver o que acontece se tivermos algum bug. Então, clicando nos movimentos. Você pode ver que o planeta está se movendo e todas as animações estão sendo reproduzidas. Se ficarmos quietos, não faremos nada. Se nos movermos, estamos nos movendo. E quando clicamos em Escape ou não recebendo quaisquer erros. Então isso é muito legal. Agora, se você quiser girar mais rápido ou mais lento, você pode ir em frente dentro
da base da camada e você pode ir para dentro do movimento do personagem. E aqui na rotação que mudamos anteriormente, se você diminuí-la, você girará mais devagar. E se você o fizer mais alto, sua visão girará mais rápido. E também dentro do blueprint de animação ou dentro do espaço de mesclagem. Aqui você pode alterar esse tempo de interpolação. Esse tempo de interpolação é o quão rápido ele está indo do estado ocioso para o estado em execução. Então você pode ver se eu aumentá-lo insanamente alto, Eu clico em Jogar. Quando eu corro, você pode ver que está deslizando e está indo para o estado de corrida. Quando eu toco e corro, é bom. Porque você quer parar, ele vai voltar lentamente para o estado ocioso. Se eu correr, ele vai para o palco de corrida. Se eu parar, ele vai lentamente voltar para o estado ocioso. Então você pode brincar com este aqui. Às vezes, seu personagem está deslizando e você pode ir em frente e adicionar apenas alguns valores. Você pode ajustar a velocidade, ajustando a interpolação. E agora eu acho que 0 é bom. Então você está parecendo bem, então tudo bem. Certo, então esse é o nosso personagem se mexendo. E a próxima coisa que podemos fazer, temos todo tipo de coisas que temos que fazer. Temos de prender a arma, temos de disparar a arma, temos de matar os inimigos e assim por diante. Então vamos seguir em frente.
52. Anexe a arma: Olá a todos e bem-vindos de volta. Então agora nós configuramos nosso personagem e agora podemos nos mover. E você pode ver aqui e se mover e isso parece bom, mas eu só quero fazer um pequeno ajuste. Então eu quero rodar um pouco Foster antes de irmos para o próximo assunto. Então, vamos clicar na camada de blueprints. E na base de jogadores, Vamos descer no movimento do personagem e descer para a rotação, e deixe-me fazê-lo 700 em vez de 600. E a próxima coisa, eu acho que o personagem está deslizando um pouco ao caminhar. Então aqui na animação de caminhada, se clicarmos na corrida, você pode ver aqui esta é a caminhada que fizemos antes. Aqui para a animação de corrida, se você clicar para baixo este chamado piada para frente, você pode aumentar a escala e você pode ver que ele está correndo mais rápido. Se você aumentar a escala dele. Opa, não o, não o ocioso, desculpe, o, este, a animação em execução. Então eu quero aumentar retinóides um. E eu quero torná-lo 1.1.2 apenas um pouco mais rápido do que era inicialmente. Então é assim que você faz animações mais rápidas apenas no caso de seu personagem estar deslizando ou seu personagem é um personagem pequeno e precisa correr
mais rápido é um personagem pequeno e precisa correr
mais rápidodo que um personagem normal para torná-lo mais natural. Então agora a velocidade das normais como esta, e podemos torná-la um pouco mais rápida. Simplesmente assim. Vamos tentar antes de continuarmos. Sim, eu acho que só olhando um pouco melhor e nós também podemos girar mais rápido. Certo, isso é muito melhor. Então vamos em frente e anexar a arma deles agora que temos o personagem. E a maneira como fazemos isso é você entrar na malha. Então vamos pelo caminho mais fácil. Você pode realmente ir aqui no personagem. E vamos abrir esta malha aqui,
a malha de caracteres que nós, nós adicionamos aqui. E aqui você pode entrar na Árvore Esqueleto. Certo, então com essa árvore esqueleto, queremos prender a arma. E antes de fazermos isso, vamos realmente visualizar uma animação. E queremos pré-visualizar, vamos pré-visualizar o quadril do rifle ocioso. Então ele está de pé assim e podemos adicionar a arma. Vamos parar esta linha do tempo para não querermos que seja animada. E queremos prender a arma ao, à direita aqui. Então você pode ver aqui quando você clica em um sobre ele, você está, você está escolhendo alguns ossos. Então, estes são ossos. E este é o seu esqueleto. Então você pode ver aqui quando você pega a ferramenta de rotação, você pode girar o esqueleto. E às vezes você pode realmente fazer isso para modificar animações apenas no caso de sua animação estar parecendo errado. Você pode ver aqui agora é ingerida animação DIBL. Mas agora vamos clicar em Control Z. E o que queremos fazer é clicar neste osso ou selecioná-lo aqui,
a mão aqui que queremos clicar com o botão direito do mouse e queremos adicionar um soquete. Então, um soquete é apenas um, um suporte que podemos usar. Então, apenas um suporte vazio. E este soquete, vamos pressionar F2 para renomeá-lo e chamá-lo de S para soquete. E vou chamar-lhe arma. Então este será o único segurando a arma. E eu vou clicar com o botão direito do mouse neste e você pode adicionar um recurso de visualização. E o que vamos pré-visualizar chama-se K. E este, K, 74. Você. E não faço ideia do porquê. Chama-se KA. Tenho certeza que se chama AK 70 para você e não K por alguma razão. Vamos clicar neste. E você pode ver agora que eu vou diminuir as câmeras. Tão rápido. Você pode ver agora que adicionamos a arma. Então, clicando neste soquete, você tem o soquete selecionado. Eu vou girar isso de uma forma, então 90 graus por aqui. E eu vou movê-lo de uma forma que ele realmente está segurando a arma. É assim e tentou fazer o melhor que puder para fazer parecer credível. Então esta arma não é feita para este personagem. E o que você quer fazer quando você está criando seu próprio jogo. Você quer que o artista de
armas você maravilha se encaixe na dobra em seu personagem que você tem. Tão feito sob medida. Então estamos tentando fazer nosso melhor ano. E provavelmente não é visível de cima para baixo, então é obstetra. Eu vou ser bom para algo assim. E ele está segurando um pouco para a esquerda, talvez. Algo como isto. Eu acho que isso é um, isso é perto o suficiente. Então, isto é, isto é bom. É o melhor que podemos fazer. Então agora a arma está presa e a mão dele está no gatilho e parece bom. Então. cima para baixo, você não vai ver de qualquer maneira. Você vai ver isso assim. Está bem. Então agora nós adicionamos esta arma de soquetes. Você pode ir em frente e realmente clique com o botão direito e fazer irá remover todos os ativos anexados. Assim como este. Lembre-se que o que você adicionou é apenas uma pré-visualização. Então não é a arma. Você apenas visualizou para que possamos mover este soquete para que ele esteja conectado corretamente. Então, não estão conectados corretamente, mas está no lugar certo. Quando é que a usamos? Então agora esta é a arma. Podemos ir em frente e fechar este esqueleto ou nesta malha. E agora o que podemos fazer é entrar na nossa pasta de blueprint e dentro daqui, indo dentro do player e clicando na base da camada. Ok, então dentro da base de jogadores precisamos adicionar a arma. Então precisamos de um componente aqui, assim como temos isso, medir o personagem, vamos ter a arma. Então, clicando em Adicionar e procurando malha esquelética. Portanto, existem dois tipos de medidas. Há uma malha estática e há uma malha esquelética. E o que é uma malha esquelética,
é tudo o que tem uma animação. Então você pode, você pode imaginar se você tem uma equipe em um, o jogo de RPG, a equipe, se não é um imediato ou qualquer outra coisa, é apenas um bastão que você está segurando em sua mão e você está lançando feitiços. Esta será uma malha estática. No entanto, se você tem uma arma e você deveria ter obtido, por exemplo, um AK-47, o back-end dele vai se mover e assim por diante. Então, se partes das armas estão se movendo animadas, será Skeletal Mesh, assim como o personagem aqui está, é animado. O personagem está andando por aí e, portanto, é uma malha esquelética e não uma malha estática. Certo, então vamos fazer uma malha esquelética porque a arma é animada. Então aqui vamos chamá-lo de arma. E este está dentro da malha. Então você pode ver aqui se eu clicar lá ou ele vai desaparecer porque é um filho de malha. E a razão é, a razão pela qual precisávamos dentro daqui é porque aqui à direita, podemos selecionar o soquete que precisamos anexá-lo. Se este estivesse aqui fora. E se não estava preso dentro da malha, não
conseguimos encontrar nenhum soquete e isso não funcionará. Portanto, a arma precisa estar dentro do ano de malha para que funcione para que possamos encontrar o soquete. Por isso, neste momento não conseguimos encontrar nenhum soquete porque não temos um personagem aqui. Mas vamos adicionar um caractere para pré-visualização. Clicando nesta malha e procurando por nosso VP e máquina ou máquina de escape. Agora vamos adicionar esta malha apenas para revisão e vamos girá-la rapidamente, 90 graus para que ela esteja voltada para a frente. Vou para dentro da vista esquerda. E este não importa muito. Só quero ver a minha arma aqui. Por isso, estou a fazê-lo funcionar assim. E aqui, clicando na arma agora, agora temos a malha, e esta é uma criança da malha aqui. E, portanto, podemos clicar no soquete e podemos encontrar este circuito aqui. Então agora está ligado à arma S. Certo, digamos que isso era tudo o que tínhamos que fazer aqui. Então agora deixe-me voltar e fechar isso. E você pode ver aqui, se eu clicar duas vezes na máquina BP e eu abrir o editor de blueprint completo. Você pode ver agora que eu tenho essa criança chamada arma. E a razão pela qual fizemos isso dentro da base de jogadores é porque se fizermos mais personagens, como antes com o exemplo que usei antes, se você tiver vários personagens, por exemplo, peles de
quinze dias, você tem talvez dez deles aqui. Todos eles agora terão esta criança chamada de arma. Então, se você fez especificamente dentro daqui, ele não aparecerá para todos os outros personagens que serão parecidos. E, portanto, você teria que codificar o mesmo código uma e outra vez dez vezes, e nós não precisamos disso. Portanto, é por isso que criamos filhos de classes de blueprint. Então, entrando na máquina BP, clicando na arma, agora podemos anexar uma arma a esta, a esta malha aqui. Então, se eu procurar k 47 novo, e eu acho que usamos este, o y. Então, clicando nele. E você pode ver aqui agora que as armas anexadas ao nosso personagem estão segurando-o. E também é animado e
está ligado ao personagem. Antes de eu dizer, era uma malha esquelética. Você pode imaginar, às vezes, quando você atira uma arma, este gatilho aqui para o lado, nós vamos retroceder assim para fazer um problema. E, portanto, isto é Animado. Também quando você recarregar a arma. Então, quando você remover este clipe e colocar um novo, isso também é uma animação. E, portanto, quando é uma arma animada, precisa ser uma malha esquelética. Certo, então agora temos essa arma anexada, e vamos clicar na arma antes de jogarmos o jogo. Deixe-me realmente fazer isso na base de jogadores. Por isso, actualiza para tudo. Clique na arma e ir para baixo e encontrar foi encontrar colisão. Apenas certifique-se de que não tem colisão mais. Irá colidir com o nosso carácter e causar problemas. E também, vamos desativar a gravidade. Não precisamos de gravidade para esta arma. Ok, então agora eu posso ir em frente e clicar em Jogar. E aqui quando eu clico em Reproduzir, eu em tela cheia, agora
você pode ver que eu tenho uma arma e eu posso me mover e ele está ligado ao meu personagem. Tudo bem, então foi isso por anexar a arma ao personagem. E também precisamos disparar as armas. Então, antes de fazermos isso, vamos em frente e montar um inimigo, que podemos filmar com a teia mais tarde.
53. Configurando o inimigo: Tudo bem. Antes de continuarmos com a arma deles, vamos em frente e montar uma classe inimiga. Então, aqui nos planos dentro de inimigos, lembre-se que criamos e pasta Inimigos, e criamos anteriormente e classe base inimiga. Então este é um filho de um filho de base de caráter. Então criamos um personagem baseado, clicamos com o botão direito do mouse e criamos o filho dele. E aqui está uma base de amina, assim como fizemos para a base de jogadores. Então, com a base inimiga, imagine se você tem muitos inimigos e talvez muitos deles tenham o mesmo código. Você realmente não quer fazer o mesmo código para todos eles, mas você quer codificá-lo dentro da base inimiga. Então é como se estivesse codificado para todos eles. Funciona para todos eles. Certo, então temos isso em uma base e o MPC que queremos fazer ou o inimigo que queremos fazer. Baixamos alguns inimigos dentro do mercado. Então, indo para dentro da pasta do mercado, nós baixamos este Infinity Blade adversários do motor ou do mercado, desculpe ,
e dentro do inimigo, há muitos inimigos, mas o Um que eu quero usar é chamado de mim, ver se eu posso encontrá-lo este aqui. Bolsas de mestre. Então eu quero usar este mestre grunhido como inimigo. Parece intimidante e assustador e precisamos deles. Então, clicando de volta na pasta inimigos, vou clicar com o botão direito do mouse aqui e criar um filho desta classe. Vou chamar-lhe bolsas de BP. Deixe-me entrar na base inimiga, abrir o editor completo de plantas. Temos uma malha esquelética aqui. E só para ver se temos que editar algumas coisas básicas aqui. E por enquanto, não, nós realmente não precisamos de algo, então vamos fechá-lo. Vamos entrar em Grant e armar o inimigo. Então, clicando na malha, vamos encontrar o grunhido. Então, à procura do Grunt. E é este chamado Mestre Grant é k Mestre Grant. Então, clicando neles. Agora vamos girá-lo para que ele esteja virado para a frente assim. Você sempre pode olhar para esta seta para ver o que está para a frente. E vamos movê-lo para baixo, como fizemos antes. Da vista esquerda, podemos fazer isso ou vista direita, isso depende de você. E sabíamos que esta cápsula se encaixa neste personagem porque esta cápsula é o que vamos atirar e vai detectar que você o fechou. Então eu vou aumentar um pouco os destaques. Então, movendo-se para baixo e tentou fazê-lo caber aqui. Só mais um pouco. E este é apenas um jogo de teste, então ele não precisa ser cem por cento específico. E se você está se perguntando sim, você pode fazer a detecção na própria malha como quando você filma a malha especificamente, ele vai detectá-la e não esta cápsula. Mas isso é apenas um começo ou apenas um projeto simples. Não queremos ser muito complexos. Mas realisticamente quando se faz atiradores em primeira pessoa. Então isso não é, isso não é muito crítico para se shooter top-down, mas se você fizer um atirador em primeira pessoa como Counter-Strike e você tem que atirar neste inimigo. Não quero atirar aqui e acertar o inimigo. Então esta cápsula, se quiserem ouvir, vocês tinham o inimigo deles. Mas então um atirador em primeira pessoa, você não quer atirar aqui além do jogador e o pleural ser atingido. Você quer ser muito específico e até mesmo bater quando você bater aqui e não bater quando você bater aqui ao lado dele. Então você pode detectar as balas através da própria malha. Mas vai demorar muito mais configuração. E isso não é muito crítico para o topo para baixo. Claro, então vamos usar a cápsula. E, no futuro, farei um sistema cada vez mais complexo. Então vamos trabalhar com isso por enquanto. E a altura, não quero ajustar a altura. Você já tem uma boa altura. Então vou ajustar a cápsula ou o raio apenas um pouco. Acho que está tudo bem, algo assim. Então, quando atirarmos a bala, ela atingirá esta área, esta área da cápsula. Ok, então vamos compilar e salvar. E isso é tudo o que precisávamos fazer para configurar o personagem. Então, na próxima lição, vamos em frente e fazer o Blueprint de Animação.
54. Design de animação inimiga: Ok, agora que temos o caráter de configuração, vamos em frente e fazer alguma animação para este grunhido. Clicando com o botão direito do mouse, assim como o personagem vai para a animação e criando um blueprint de animação. Então, clicando nisso, e nós temos que selecionar o esqueleto. Então, vou procurar subsídios. E eu vou selecionar esse esqueleto chamado Grunts Masdar clicando em OK. E eu vou chamar o Blueprint de Animação e grunhidos MVP. Ok, então agora temos esse grunhido. E a propósito, se você está se perguntando o que é um esqueleto, caso eu só queira ter certeza. O esqueleto é este e cada personagem tem um esqueleto. Então, cada personagem que você importa dentro do Unreal Engine tem um esqueleto. E você pode ver aqui se eu clicar ao redor, se eu posso bater em algo, eu não posso, a menos que eu os torne visíveis. Mas você pode ver aqui agora que temos esses esqueletos. Então isto é um esqueleto. Cada caractere importado tem um esqueleto. Então temos que usar, ele pede que você use um esqueleto específico quando você faz um blueprint de animação. E vamos esconder isso novamente dentro dos ossos do personagem e selecionado apenas. Você também pode selecionar os ossos aqui. Então é isso que um esqueleto é. Cada personagem tem um esqueleto que, que, que precisa estar lá para o personagem se mover e assim por diante. Então é isso que o animador faz, e o animador irá regular personagem e animar o personagem para você. E vamos voltar para os inimigos. Este aqui, o esquema de animação que criamos. Vou clicar duas vezes. E aqui, assim como o personagem, vamos fazer uma máquina de estado. E eu vou clicar em F2 e chamá-lo de movimento local, que simplesmente significa movimento. E eu vou conectá-lo compilar. Ok, então dentro daqui, agora vendo aviso porque não há nada, eu vou clicar nele e precisamos fazer um novo estado. Este podemos chamar de jog, mas realisticamente está ocioso. Jog ocioso ou andar ou o que quiser chamar. Então, isso é com você. Então, clicando nele, precisamos, agora precisamos de alguma animação. Precisamos conectar uma animação, e nós realmente precisamos criar um espaço de mistura porque eles garantem que o personagem vai do modo ocioso para o modo de caminhada. Você sempre pode arrastar algo aqui. Por exemplo, este modo ocioso aqui e, e conectá-lo e compilar porque ele agora o personagem está ocioso. Mas o problema com isso, se você não criar um espaço de mesclagem, você não pode realmente ter mais de uma animação. Você só pode colocar uma animação. E então, se quisermos que o personagem fique ocioso quando ele estiver parado assim e se movendo quando ele te ver. Temos, então isso significa que precisamos duas animações diferentes com o qual, em seguida, significa que precisamos de um espaço de mistura. Então vamos em frente e clique com o botão direito do mouse e animação. Espaço de mistura 1D. E deixe-o, vamos selecionar a escala. Eu só vou procurar por subsídios, SK Master Grants, esqueleto, este aqui. E vamos chamá-lo de BS para espaço de mistura. E vamos chamá-lo de grunhidos são na verdade, vamos chamá-lo, vamos chamá-lo de George. Ele está correndo ou andando. Então aqui no eixo horizontal, esta é a velocidade. Então, velocidade de movimento, eu vou chamá-lo. E o valor mínimo é 0 quando ele está parado, eu sei quando ele está se movendo. Vamos tentar 200. Temos que testar isso. Isto é o quão rápido ele vai, ele vai andar. Ok, então é isso. E foi isso, na verdade. Então aqui e velocidade de 0, este é o movimento mais rápido aqui em baixo, velocidade de 0. Queremos arrastar esta animação ociosa e puxá-la até aqui. Então agora a velocidade de 0, ele estará ocioso e na velocidade de 200, ele correrá em sua direção. Então aqui o músculo ganho extra, grunhido andar para a frente. Então ele vai caminhar para a frente aqui. Então, se eu segurar Shift e mover meu mouse, você pode ver que é assim que eles fazem a transição. Então ele vai se mudar e você vai parar. E ele vai se mover se correr atrás de você. Ok, então eu quero fazer essa animação um pouco mais rápida. Então aqui na animação do monstro grunhido para a frente, eu vou aumentar a escala de taxa em 1,2. Quem vai andar um pouco mais rápido. Então a emissão é um pouco mais rápida. Ok, então vamos salvar isso e vamos em frente e usar este espaço de mistura. Então vamos fechá-lo. E aqui podemos agora tomar este espaço de mistura. Você pode assumir a partir daqui ou pode assumir a partir daqui. Então, pegando esse espaço de mistura e conectando-o e compilando, agora
precisamos de uma velocidade de movimento. Então vamos dizer quais movimentos,
mas é, e isso é 100% como o personagem. Então vamos voltar ao gráfico então caso você não se lembre. Vamos escrever, inicializar. E, a propósito, sinta-se livre para fazer você mesmo e depois assistir isso se você quiser desafiar a si mesmo. Mas se, se você não se lembra muito bem, porque esta é a primeira vez que estamos tentando fazer sem preocupações. Programação. Afinal, às vezes você só precisa fazer isso de novo e de novo e de novo. E no final você só se lembra que pode fazê-lo enquanto dorme. Então aqui vamos usar o evento Blueprint inicializar animação. Isto é novamente como o início do jogo nas classes de blueprint normais. Então, quando você iniciar a animação, pegue isso, tente, pegue o proprietário do peão. Este é o Pons, este é o inimigo Po1. E pegue isso e diga que é válido. Então é o inimigo, este grunhido dentro do nível como ele é válido? Ele está aí? Se está, faz alguma coisa? Se, se não, chegaremos a isso mais tarde. Então clique com o botão direito do mouse nisso, tente obter Pewn Owner e promovido a uma variável e chamá-lo de pod NME. Então, se o inimigo é válido, se ele está dentro do mapa, vá em frente e crie-o em uma variável chamada inimigo sobre. Se ele não for válido, o V não está dentro do mapa,
certo, para atrasar este esquema de animação e executá-lo. Tentou executá-lo novamente e ver se ele é válido. Então ele vai entrar neste loop até que o inimigo esteja dentro do nível. E então ele vai criar uma variável quando ele está dentro do nível. Certo, agora temos esse peão. Agora aqui embaixo podemos arrastar esse vínculo. E então nós pornografia. E aqui podemos dizer, podemos clicar com o botão direito do mouse e converter para um validado get conectado aqui. Então agora estamos dizendo, essa pornografia inimiga
é válida? Ele está aí? Ele é. Ele criou. Se estiver, vá em frente e faça esse código. Se ele não estiver, não faça nada porque nós realmente não queremos fazer este código. Isso está sendo executado no tick, o que significa que ele é executado muitas vezes por segundo ou por quadro, desculpe. Assim, por exemplo, 60 quadros por segundo. Isto vai correr muitas vezes. E, portanto, nós realmente não queremos executar este código a
menos que os inimigos realmente dentro do nível, porque não faz sentido continuar rodando sem o jogador ser nível insolúvel ou o inimigo, desculpe, não o jogador. Ok, então este peão é válido? Se estiver, vá em frente e faça alguma coisa. O que queremos fazer? O que nós, nós simplesmente queremos fazer é que estamos tentando lembrar obter a velocidade de movimento. Então eu vou arrastar para fora e dizer obter velocidade. Então agora temos a velocidade do sem importância. E para obtê-lo para ser uma variável flutuante, temos que fazer exatamente como o comprimento do vetor de caracteres 0. Tomando o comprimento do vetor irá torná-lo em uma variável flutuante, que é simplesmente apenas o número de casas decimais. E este podemos clicar com o botão direito do mouse e promover para uma variável e dizer velocidade de movimento. Agora podemos chamar, conectá-lo como válido. E agora temos a velocidade de movimento. Então vamos compilar e tudo ficará bem. Vamos voltar para o estado ocioso aqui, e vamos adicionar a velocidade de movimento. Assim como este. Bem, vamos compilar e se você quiser testá-lo, você sempre pode clicar na variável de velocidade de movimento e você pode definir o valor padrão para outra coisa. Então, por exemplo, você pode configurá-lo como 200, que é o nosso valor máximo. E você pode ver que ele está andando agora. Se sua velocidade de movimento for 0 não está funcionando mais. Então agora esse plano de animação está funcionando e ele pode andar e nós temos a velocidade de movimento. E mais tarde vamos adicionar mais algumas coisas a ele. Então, por exemplo, se o jogador morre ou se os dados inimigos, precisamos de uma animação moribunda. Mas, por enquanto, isso é bom. Vamos juntá-la quando fizermos a arma e o dano e assim por diante. Então, tudo bem, então vamos voltar aqui. E aqui queremos agora aplicar nosso Blueprint de Animação. Então, clique duas vezes no subsídio da BP. Aqui, podemos clicar em Mesh. E dentro desta malha podemos ir em frente e na classe de animação e animação, podemos atribuir o nosso Blueprint de Animação, Blueprint grunhido que fizemos. E se voltarmos para a janela de exibição e Compilar e Salvar, você pode ver aqui que nosso personagem agora está se movendo usando o blueprint de animação que acabamos de criar. Ok, então isso está ótimo e isso é tudo que tínhamos que fazer. Podemos arrastar esse personagem e você pode ver como ele se parece. Se eu clicar em Jogar, nós andamos por aí e você pode ver que este é o nosso personagem que está se movendo. Ok, então este foi, este foi o fim para esta palestra ou lição. E vamos seguir em frente.
55. Arrumar: Bem-vindos de volta a esta lição. Então agora vamos em frente e fazer a lógica de disparo. Então, quando você dispara uma arma, algo acontece. E para fazer isso, vamos lá e clicar no jogador. Um outro jogador, as plantas e clicando no controlador do jogador. Lembre-se que todos nós temos todas as nossas entradas ou o movimento dentro do controle do jogador. E eu quero fazer todo o movimento aqui. Então, quando você clicar com o mouse um botão, você vai disparar sua arma. Então isso também vai estar aqui, exatamente como o que fizemos aqui com o movimento para a frente e seguir para a direita? Você se lembra que nós os fizemos dentro das configurações do projeto. E vamos clicar em W para avançar e assim por diante. Precisamos fazer um para disparar a arma. No entanto, minimizando isso, vou voltar para Editar configurações do projeto. Dentro da entrada. Vou criar um mapeamento de ação. E a diferença entre eixos e ação é eixo é o, você pode imaginar que há o movimento que é contínuo. A ação é, por exemplo, disparar sua arma, se você pular, se você interagir com coisas como saquear armas ou carregar itens e assim por diante. Então, basta clicar em um botão. Ok, então para isso, vamos chamá-lo de disparar uma arma. E para disparar sua arma, você pode simplesmente clicar sobre isso e clicar novamente no botão esquerdo do mouse se você quiser atribuí-lo. E foi isso, na verdade. Então, se precisarmos de mais coisas, podemos ir em frente e entrar aqui. Provavelmente precisamos de recarregar, mas vamos fazer isso mais tarde. Então aqui dentro do controle do jogador, agora
podemos escrever comprador o que bin, e você pode ver o seu evento que você acabou de criar. E aqui queremos disparar a arma deles. Então o que eu quero fazer é quando eu clicar, eu queria disparar a arma deles. E eu quero fazer o código dentro da base de jogadores, porque isso será, isso estará disponível para todos os jogadores que eu tenho. Então, se eu fizer dez jogadores, todos eles precisam ser capazes de disparar uma arma, e portanto, eu não faço isso dentro da máquina BP. Eu quero fazer isso em uma espécie de base de jogadores. Então todos os jogadores têm este código. Então eu quero fazer um evento chamado arma de fogo aqui, que eu posso chamar aqui quando eu pressionar o mouse, botão esquerdo do mouse. Então eu quero ir em frente e fazer eventos personalizados. E para fazer isso, vamos passar por cima e fazê-lo dentro da interface, Blueprint Interface. Então nós já fizemos um aqui chamado base de jogadores. A interface Nós usamos para obter a referência a este jogador, e nós usá-lo dentro do controlador jogador aqui. Em uma lição anterior, criamos o controle do jogador e pegamos o jogador e fizemos uma referência a ele. E isto é o que estamos usando aqui. Então já temos essa interface. Vamos em frente e clique em Adicionar e função. Então, aqui, adicionando a função, agora
podemos chamar essa função de terra húmida de fogo. E não tem que coincidir com o nome deste. Eu só chamo de qualquer coisa. Você pode até chamá-lo de arma de fogo ou firewalls são apenas fogo o que quer que seja. Então vamos compilar e salvar. E isso vai ser um evento. Lembre-se, se você estiver dentro de uma Interface de Blueprint, se você não tiver nenhuma saída, este será um evento. No entanto, se você tiver uma saída, então se eu clicar duas vezes sobre este, se eu tiver uma saída, não será um evento, será uma função. Então podemos ver aqui esta é uma função agora porque tem uma saída. Este, este não tem uma saída e, portanto, é um evento que é amarelo. Ok, então agora eu posso usar isso como um evento. Então vou escrever para disparar uma arma. E você pode escolher este chamado evento disparar uma arma. E você pode ver aqui esta é uma função Blueprint Interface devido a este ícone. Então agora eu quero ligar, eu quero fazer o código aqui quando você disparar a arma deles dentro da base de jogadores. Então aqui dentro do controle do jogador, eu quero chamar este evento. Eu quero executar este código quando eu pressionar o botão esquerdo do mouse. Então o que eu vou fazer, a coisa que você quer fazer, como se comunicar com plantas. Esta é a base de jogadores. Você só olha para cá. Este é o transporte da base de caracteres. Então, a classe pai base de caracteres aqui. Se eu procurar por ele, se eu clicar na lupa e clicar duas vezes nela. Lembre-se que a base do jogador é um filho da base do personagem. Assim, dentro da base de caracteres você pode ver que a classe pai é um personagem. E, portanto, dentro daqui, o que você faz é obter o personagem do jogador, você começa o jogo sobre e assim por diante. Mas já fizemos isso. Então, obter o personagem do jogador, obter a referência, e também obter o Peão do Jogador. Então isso é muito fácil para nós porque agora o jogador aponta realmente este. É muito fácil chamar este evento agora. Então é por isso que você faz isso assim no início da peça. E você não faz isso o tempo todo. Você só faz isso aqui em cima e o Begin Play. E então você pode usar este como fizemos aqui, em todos os lugares. Então, arrastando para fora deste jogo, ele agora pode dizer arma de fogo. E eu posso chamar este chamado mensagem porque esta é uma função Blueprint Interface. Então agora eu vou chamar este código sempre que eu estou indo para clicar arma de fogo. E você pode ver isso se eu voltar para a base de jogadores e eu
digo apenas para imprimir corda e dizer olá. Você pode ver aqui se eu clicar em jogar no jogo, Eu clicar no mouse um. Você pode ver para a esquerda, superior esquerdo, diz baixo. Então está funcionando. Está bem. Agora vamos fazer a lógica de disparo dentro da base. Então, o que é o disparo? Então o que é um disparo de arma tinha simplesmente alinhado. Então, se arrastarmos até aqui e escrevermos um traço de linha por canal. Então isso é o que é usado para criar isso. Então disparar é apenas, apenas uma linha. Você dispara uma linha de seu personagem e fora ao ar livre na sua frente. Quanto tempo quer disparar? Então, só para explicar melhor, eu quero apenas explicar esta função aqui. Então você precisa de um ponto de partida. Então, onde essa linha começa? E a linha começa se eu clicar em Reproduzir e clicar se oitos. E então eu posso sair daqui, embora a linha comece com a arma aqui. Então esta é a localização inicial deste rastro, e a localização final deste traço está em algum lugar aberto aqui na frente. Então pode imaginar se você atirar uma bala e atirá-la aqui na frente. Este é o local final aqui. Então é isso que queremos fazer. Queremos uma linha que se você clicar no botão, ele vai ler uma linha na frente de você ao longo de uma. Ok, então vamos em frente e fazer isso. Então deixe-me parar o jogo e deixe-me pegar esses alvos são qual é o local de partida? Eu realmente quero fazer um componente aqui. Você pode apenas ouvir, basicamente você pode apenas tentar obter a localização exata. E então a partir deste local real pode dizer que este é o começo. Mas só para ser um pouco mais específico, podemos clicar nesta malha. Você pode até mesmo clicar na arma, na verdade, vamos clicar na arma. E dentro daqui, vamos em frente e clicar. Vamos clicar em um anúncio e fazer uma cena. Então o que é visto é, é apenas um componente vazio que apenas tem uma tradução como esta. Então este, vou chamá-lo de gerador de bala. Então o que eu vi é ver componente é apenas um componente vazio. Você não pode fazer muito com isso. Você pode ver que você não pode fazer muito, mas você pode usá-lo dentro do código e você pode usá-lo para tradução. E isso é realmente o que eu vou fazer. Então essas balas Bono que você criou, vamos voltar para o visor. Vamos movê-lo um pouco para que fique na frente da arma. Então, movendo-o um pouco para a frente, assim. E se eu for para a vista frontal, vou movê-la para a frente da arma. Imagino que a arma não precisa ser específica. Assim como este. Algo como isto. E podemos sempre ajustá-lo se algo estiver errado. Então vamos voltar para a visão em perspectiva. Agora temos este gerador de balas. Vamos compilar e salvar. E com este, podemos agora ir em frente e dizer, agora
podemos tirar essas balas Warner. E podemos dizer “Obter a localização do mundo”. Agora temos a localização das balas Bonner. Este é o começo. Então, a linha começa a partir daqui, a
partir das balas guano da cena do crime. Aqui começa com uma linha. E quando dispararmos a arma deles, podemos dizer que temos de encontrar o fim. E a maneira como você faz isso é tomar a rotação disso. Então, escrevendo rotação, você pode ver algo chamado Get rotação mundial. Então, pegando a rotação e levando o vetor para a frente. Então, vetor para a frente, vetor para frente. Então agora nós temos, nós temos a rotação e nós temos o espaço para a frente. E a partir de agora, temos que dizer multiplicar. E podemos multiplicar esse número. Vamos clicar com o botão direito do mouse aqui neste vetor aqui nós só queremos um número. Então clique com o botão direito do mouse e diga Converter pin para flutuar. E podemos multiplicar esse vetor avançado. Então vamos enviá-lo para o espaço como na nossa frente, digamos 5000. Esta é uma longa distância. E agora podemos dizer que o fim é o ponto de partida. Então, o fim deste é o ponto de partida onde você começou a partir das balas estrangeiras aqui. E você termina, você diz mais este número. Então você começa a partir daqui, mais este número. Este é o fim. Então é assim que é feito e eu posso realmente mostrar para você ver o que eu quero dizer. Então, clicando. Neste tipo Draw Debug para que você possa ver o forro
no jogo e clicando em persistente, clique em compilar. E vamos clicar em Reproduzir e ver se funciona. Então, clicando com o mouse você pode ver que ele desenha uma linha para fora no aberto. Mas agora é, ele está realmente disparando para o lado quando eu clicar. E isso é porque a orientação do, bem, ele está ligado aqui é errado. Então eu posso clicar em E para girá-lo, e eu vou girá-lo 90 graus assim. E está 90 graus. Vamos compilar e clicar em Reproduzir. E se eu atirar, agora, você pode ver que estou disparando uma bala do gerador de balas. E, no entanto, por muito que o tenhamos multiplicado por. Então ele vai disparar uma linha direta e acabar em algum lugar aqui no, no final aqui. Ok, então isso é o que estamos tentando fazer com um traço de linha por canal. Simplesmente desenhando uma linha. E vamos em frente e organizar isso. Então, vou clicar duas vezes aqui. Há assim nós, para que não pareça muito confuso. E o que podemos fazer em vez de codificar números foi, eu não gosto muito disso. Então eu posso clicar com o botão direito do mouse neste e promovido a uma variável. E ele também apenas chamá-lo de distância de bala, ou disparando este tempo, por exemplo. Assim, cada arma pode ter uma distância de disparo diferente. Então, só assim. E agora temos isto a disparar uma arma. Ok, então vamos adicionar um pouco de som a ele. E eu percebi, quando olhei para as armas, que na verdade não havia som lá dentro. Deixe-me ver aqui. E assim o pacote de armas FPS que baixamos e algumas das armas não há sons ou efeitos. Então deixe-me voltar aqui para o controle deslizante Epic Game. E dentro do mercado há uma chamada “Armas Militares Escuras”. Então, se você entrar no mercado e procurar por armas. E aqui, deixe-me voltar e eu posso realmente mostrar-lhe apenas por precaução. Então aqui dentro da arma ou dentro do mercado do motor você pode, você pode escrever arma e, em seguida, clique no hit livre aqui. E você vai encontrar algo chamado o escuro armas militares. Então, clicando neste e realmente baixado e adicionado ao projeto. Portanto, lembre-se de clicar em Mostrar todos os projetos e, em seguida, selecionar seu projeto. E lembre-se apenas de selecionar a versão mais recente aqui e clicar em Adicionar ao Projeto. Então eu já, na verdade, eu não, sim, deletei novamente. Só para te mostrar. Então, clicando nele, vou em frente e selecionar a versão mais recente. Clique em Adicionar ao projeto, e ele irá adicioná-lo ao meu projeto. E este aqui realmente tem alguns efeitos para ele. Aqui está a arma militar baixada, Doug. E se eu clicar nele, você pode ver que temos efeitos, então alguns efeitos visuais, e você também tem som. Então deixe-me entrar no som e mostrar-lhe como adicionar alguns sons à arma. Então, clicando em rifled, este é o melhor que podemos usar. E este chamado de estrifado ser fogo q. e deixe-me, na verdade, antes de tocar o som, eu acho que isso vai ser muito grande para você. Vou clicar duas vezes. E dentro daqui, vou clicar nesta saída e baixar o volume aqui. Então, permitindo que você aponte zero, eu acho que o ponto zero três foi um bom. Veja, nós temos algum som. Na verdade, quero remover este crossfade. Então, se eu segurar Alt e apenas clicar sobre isso e segurar Alt, eu vou apenas remover este. E eu só vou usar este ouvido pelo jogador. Vou arrastar isto e para dentro do modulador e o que é o modulador. Então, se você arrastar para fora daqui, assim como plantas, arrastando para fora daqui e escrevendo modulador. E você pode fazer este. E o que isso faz é apenas mudar o tom do som um pouco para que pareça diferente cada vez que você deveria. Olhe aqui. Não é o mesmo som o tempo todo. Então, e você pode ouvir muito se eu fizer muito mais alto ou mais baixo. Mas agora parece bobagem. Então eu vou para o Controle Z e ficar com isso. Então agora este é o som. E queremos usar isso. Então, se eu voltar para as minhas plantas dentro do jogador e da base de jogadores. Então é aqui que disparamos a arma deles. E quero fazê-lo antes deste traço. Nós estamos indo aqui e dizendo, whoops, vamos arrastar isso um pouco para trás. Eu posso usá-lo. Eu vou dizer tocar som. Então você pode fazer tocar som 2D, que apenas irá tocar o som e você pode ouvir tudo isso. Ou ele pode tocar som no local, o que é um pouco mais ou muito mais correto nesta situação. Porque imagine se você tiver um jogador afastado de você. Não quero o som para ele fazer. Parece que você está de pé ao lado dele quando você está a 10 mil quilômetros de distância, então você só quer tocá-lo neste local
onde sua arma está, onde seu personagem está, o som no local e ele pergunta Em que local você quer reproduzir o som? E apenas tocá-lo onde o ator está. Então, onde é que este jogador está parado? Então, obtenha uma localização precisa. E o alvo é “eu”. E auto significa que esta base de jogadores e apenas ligá-lo aqui e agora temos que adicionar alguns sons. Então indo, eu vou minimizá-lo e voltar para rifle de som de arma
militar e arrastando este rifle, disparar q e agora nós vamos disparar um som sempre que você dispará-lo. Então, se eu clicar em Reproduzir, e agora quando eu me mover desclique, eu vou tocar um som. Ok, então a próxima coisa que queremos fazer, antes de terminarmos, deixe-me voltar ao projeto e abrir a base de jogadores. Agora temos esta linha de árvores e as linhas levantam disparando uma linha. Se Brian do início ao fim local. E o que queremos fazer com esta linha? Então há algo chamado, bateu, ok? Há algo chamado “OUT it”. E se você diz quebrar, quebrar resultados de sucesso. Então agora temos os resultados do SCID. E se você clicar nesta seta, você pode ver todas as coisas que você pode fazer com esta linha. Então o que queremos fazer é aqui no ator principal porque queremos acertar o inimigo. Então aqui podemos dizer que o ator marcou. E este que usamos no jogo anterior e o jogo de bola, dissemos jogador. Mas aqui, neste caso, se o ator tem tag inimigo, se isso é verdade, então nós queremos fazer algo. Vou clicar de volta nesta seta para torná-la menor. E nós temos que dar a este inimigo o inimigo tag porque nós não demos nenhuma etiqueta ainda. Então deixe-me minimizá-lo. Volte para o inimigo na base inimiga porque queremos que todos os inimigos tenham essa etiqueta. Então, clicando na base inimiga, abra o editor de blueprint completo. E aqui nos padrões da classe, você pode procurar por tag. E você pode ver o nosso clique de uma tag no Plus. E dado a este uma etiqueta e isso é chamado de inimigo. Então agora na base de jogadores, se o ator de sucesso, então o ator que tem um inimigo tag, você pode então fazer algo com isso. E você pode ver aqui, se eu ir em frente e clicar em Imprimir String ou escrever string de impressão, e agora eu posso ir em frente e clicar em Reproduzir, mas nada vai acontecer e eu vou totalmente por um tempo. Agora, se eu ir em frente e ir para o inimigo aqui, eu apenas dei a ele o inimigo tag. Nós vamos filmar. Mas você pode ver que a linha ainda é vermelha. É suposto ser verde assim como este. Eu devia ter algo que foi atingido. Mas se não acertar em algo, ainda vai ser lido. Por acertos alguma coisa. Vai ser verde, mas não vai deixar de ser verde. E o inimigo detector. E isso é porque esse traço de linha, se voltarmos para a base de jogadores, esse traço de linha está atingindo o canal de Visibilidade. E o que isso significa é que se eu voltar para a base inimiga e eu clicar nesta cápsula, eu removi esta etiqueta para que eu possa ver tudo. E eu não sei se você pode expandir tudo aqui, expandir todas as categorias, assim como este. E eu posso descer e aqui na colisão, sem clicar sublinhar isso e lembre-se que você tem que clicar na cápsula primeiro. Então isto é porque esta cápsula é o que queremos atingir. Então, clicando na cápsula indo para colisão, e aqui você pode minimizá-lo. E essa predefinição de colisão, você pode ver que há algo chamado visibilidade e é agora que ele está ignorando a visibilidade, mas isso é o que estamos usando para atingir o jogador ou o inimigo. Portanto, queremos bloquear esta miscibilidade ou sobrepô-la. Então, nesta predefinição de colisão lagoa, podemos ir em frente e clicar em Personalizar e, em seguida, clicar no bloco para visibilidade. Então agora vamos compilar e clicar em Reproduzir. E se eu for até o inimigo, você pode dizer que agora diz olá. E as linhas também verdes porque eu acabei de acertar este NME. Ok, então agora isso está funcionando, voltando para o jogador, base de jogadores. Vamos tocar um som quando tiver o inimigo. Então eu vou dizer tocar som no local. Então, qual é o local que você quer tocar o som e eu simplesmente quero tocar o som ou os inimigos atingirem. Então aqui, indo para baixo, clicando para baixo na seta, há algo chamado localização e é aqui que ele atinge isso. É aqui que a linha bate. Então o loci, o local onde a linha bate, eu quero tocar um som. E lembre-se que só vai acertar o inimigo. Então, e que nada mais vai em frente. Clicando em compilar e reproduzir pode ver aqui, oops, Eu nem sequer adicionei um som. Eu sou muito rápido. Então vamos em frente e adicionar o som. E o que eu posso fazer é que podemos voltar para o rifle e há alguém chamado, eu acho que este aqui, tenha cuidado, talvez seja muito alto. Este aqui, sim, este está soando bem. E eu vou clicar duas vezes nele e apenas minimizar o som para 0,3, então não é muito alto para você. E eu vou voltar aqui e atribuir o som. Então eu vou arrastar este aqui para dentro. E agora eu posso experimentá-lo. Então, clicando no jogo. Você pode ouvir esses sons tocando. E não é tocar quando eu disse outra coisa. Mas é culpa quando eu bati em mim. Incrível. Então agora estamos atingindo o inimigo, mas agora não estamos causando nenhum dano. Ainda não estabelecemos essa lógica. E como a última coisa antes de terminarmos, vamos realmente adicionar algum efeito também, para que pareça um pouco melhor. Então aqui na base inimiga ou a declarar uma base, desculpe, se eu clicar aqui após o som, Eu quero fazer um, um efeito. Então o que eu posso fazer aqui é dizer emissor Lay são realmente gerados que reproduzem emissor ligado. Então geram emissor ligado e conectando isso. Então o emissor é apenas um efeito visual que podemos gerar. Então aqui o que podemos gerar, agora
está dizendo, o que, o que você quer responder? Qual é o efeito? Então o efeito é que se voltarmos para a arma militar escura dentro de seu rifle estão realmente aqui em cima e os efeitos, podemos adicionar este, o flash do focinho. Então, se você arrastá-lo para dentro daqui e anexar dois componentes, então a que você quer anexá-lo? Podemos simplesmente ligá-lo ao gerador de balas. Então eu vou arrastar isso para fora e colocá-lo em cima aqui. E anexe o nome do ponto. Isso não importa agora. Qual é a localização? Então, a localização é exatamente a mesma que esta aqui. E já que temos que usar este código
mais vezes, mais de uma vez, então este vai ser copiado aqui e eu vou colocá-lo aqui. Mas em vez de copiar, vamos realmente fazer uma função para que ele possa aprender sobre funções também. Então, se eu passar o mouse sobre esses dois e eu clicar com o botão direito e dizer colapsou para funcionar. Vou desmoroná-lo para uma função e vou chamá-lo de balas. Podemos dizer que leva bala. Olá, ladrão ou localização e rotação. Não há nada como isto. Este é o melhor que eu poderia inventar rapidamente. E podemos clicar duas vezes, clicar neste e movê-lo para baixo. É assim. Então esta é a função, e em vez de chamá-los valor de retorno, podemos dizer localização e rotação. Então este é um nome mais limpo, mais limpo. Ok, então agora nós temos isso, mas nós realmente não queremos conectá-lo. Só queremos obter a informação. Mas clicando nele, podemos clicar neste. E aqui podemos ver puro. Então, clicando em puro, clicando em composto Salvar, você pode ver aqui fora isso se tornou exatamente como a função verde aqui. E isso é porque nós realmente não queremos conectá-lo aqui em cima. Não faz sentido. Só queremos saber a localização e a rotação. Não quero passar pelo código. Então agora isto é fixe. O que eu posso fazer, isso é apenas usar isso de novo e de novo se eu encontrá-lo para. Então este é o mesmo código agora. E o que eu posso fazer aqui é que eu posso arrastar essa função e realmente usá-lo assim. Então isso é muito legal. Em vez de ter que escrever tudo, você pode usá-lo assim. E agora a escala deste emissor é apenas 1, 1, 1 e localização, talvez precisemos mudá-lo, manter a posição giratória. Então, mantenham a posição. E aqui ele só vai dizer que eu vou alterar destruir a mim mesmo quando eu terminar o, o emissor e isso é bom e saída ativa. Ok, então agora isso é o que temos. E se clicarmos em Jogar, você pode ver que agora temos um efeito. E se você não gosta da localização, se você não gosta da localização dos efeitos, você pode ir em frente e dentro da base de jogadores e você pode mover este gerador de bala porque é aqui que ele aparece para que você possa mova um pouco para a frente, se quiser. Sim, acho que está tudo bem. Então isso parece bom. E isso está olhando, ok, então agora eu tenho um efeito, nós temos um som. Eu sei que este vídeo está ficando um pouco longo, mas espero que seja emocionante ir, o som funcionando e o efeito. É um pouco chato sem nada. Mas agora que temos a lógica de disparo para a arma acabada, podemos ir em frente e fazer o dano para o inimigo.
56. Damião e morte: Olá, e nós vamos voltar embora agora vamos fazer o estrago no inimigo. Então, para fazer isso, vamos em frente e entrar na base inimiga. Porque queremos causar o dano dentro da base inimiga. Porque nós não queremos fazer isso em uma espécie de grunhido BP. E a razão é que queremos que todos os inimigos que fizermos recebam dano. Então é por isso que fazemos isso aqui na, na classe pai desses inimigos. Então, dentro daqui, vamos apagar tudo isso por enquanto, esses eventos, salvar compostos. E vamos também abrir a palestra, o jogador e a base de jogadores. E vamos clicar no gráfico de eventos aqui em cima. Então agora e a última lição criamos o fogo da arma e fizemos o som e também o efeito. E fizemos este traço de linha, e estamos atirando em linhas. E aqui nós atingimos o inimigo. Ok, então aqui o que queremos fazer é antes, não importa, na verdade Butler faz isso. Então faz sentido antes de tocarmos o som, digamos danos aplicados. Então é assim que você danifica as classes de plantas. Assim, os inimigos neste caso. Então temos o ator danificado. Então, o que é o ator danificado? Ele danificou o ator é só este ator aqui no Hit Actor. Então este é o inimigo que estamos dirigindo. Então eu vou arrastá-lo e conectado aqui. Então, qual é o dano que você quer fazer? Então o dano que você deseja fazer é, por exemplo, 25, embora o instigador de eventos seja apenas uma referência ao controlador. Então o controlador que controla o que quer que feche a arma, e o que está atirando a arma é o jogador. Então precisamos do controlador para o jogador. Eu só vou dizer getline controlador e é isso. Isso é o suficiente. Deixe-me movê-lo um pouco aqui. Então vá controlador de nuvem e os danos causados, modo que o ator que realmente causou o dano. E aqui eu vou dizer eu mesmo, o jogador causou o dano, assim como este. E então você não precisa fazer mais. Agora, vamos clicar em Salvar compilação. Então ele sabe que o exterior danificado é o inimigo. Porque conectamos esse ator de sucesso e
ele só passa por esse ramo se o alvo tiver o ator ou o inimigo tag. Ok, então agora estamos aplicando danos. E a próxima coisa dentro da base inimiga. Agora, aqui na base inimiga, podemos dizer qualquer dano e temos um evento chamado qualquer dano. E você pode ver aqui se eu imprimir uma corda, ele vai dizer olá se for atingido por isso. Então, clique em Jogar. Eu vou bater nele. E diz olá para o canto superior esquerdo. Ok, então está funcionando. Então agora estamos causando danos. Então a coisa que queremos fazer é aqui nas variáveis. Queremos dizer ajuda. Então queremos fazer uma variável de saúde. E este tipo vai ser um float porque queríamos ser um, um valor numérico com decimais. Então, clicando em Compilar e Salvar. E você pode ver agora que podemos entrar na ajuda. Então vamos definir o valor de saúde padrão para 100 mais clump, compilar e salvá-los. Então o que é legal sobre isso é que agora você está dentro da base inimiga, então você está dentro da classe pai para esses inimigos. Então, se eu for para a base inimiga é a classe dos pais ou este grunhido. E quando você faz variáveis dentro da classe pai, e eles também serão utilizáveis pela criança. Então essa variável de saúde que eu fiz
na base íntima estará disponível aqui para grunhidos da PA. Se eu abri o editor de blueprint completo, você pode ver aqui à direita, eu realmente tenho saúde. Então aqui à direita eu tenho a variável Saúde, que é a que acabamos de fazer. Ok, então isso é muito legal. Cada variável que você fizer aqui aparecerá aqui. E isso é legal porque imagine se temos vários inimigos. Agora podemos editar a saúde desses inimigos para que eles possam ter uma saúde diferente. Então isso é muito legal e é assim que você pode editá-los. Talvez tenhamos um gigante e o Gigante tenha 200 de saúde e disse 100. Certo, então é assim que se faz. Isto é muito fixe. Então, cada variável que você fizer aparecerá para eles, cada filho que você fizer para isso a partir desta classe blueprint. Muito bem, tão útil, só tem 100 por enquanto. E vamos tirar essa saúde. E com isso, o que queremos fazer é dizer menos, então subtrair. Então, esta saúde menos o dano. Então, por exemplo. Vida é 100 e o dano de uma bala é 25 atualmente. Então vai dizer 100 menos 25, vai ser 75. Então vamos pegar esse inferno, e vamos montá-lo. Este é o novo valor para a ajuda. Então agora são 75. Se você atirar uma vez, você deve 2 vezes 2 será 50 e assim por diante. Então eu vou conectar esses dois. E, em seguida, apenas para testá-lo, digamos imprimir string. E com essa string de impressão, vamos conectar esse valor dentro
da string para que possamos imprimir o valor para a tela. E vamos colocar o jogo e deve o inimigo e ver o que acontece. Você pode ver o inferno caindo e agora é 0. Está bem? E digamos que esta base inimiga. Então agora precisamos fazer uma condição para o que acontece quando isso se torna 0. Então, agora a saúde está contando corretamente. O que eu quero fazer é tirar isso e dizer, se for menor ou igual a 0, então faça algo. E o que queremos fazer é dizer ao motor ou ao jogo. Queremos dizer a ele que este inimigo é aquilo. Então vamos fazer um evento personalizado aqui em baixo. E vamos chamá-lo assim. E eu não poderia ter feito este evento personalizado. Eu poderia ter feito isso apenas entrando e fazendo uma nova Interface Blueprint. Mas acho que não vamos precisar de mais do que este. Então eu não quero entrar e perder tempo criando uma nova interface de blueprint para a base inimiga e assim por diante. Mas se precisarmos, vamos fazer isso mais tarde. Mas agora, o que você pode fazer é apenas escrever personalizado e fazer um evento personalizado e você pode nomeá-lo qualquer coisa aqui. Então agora podemos chamá-lo aqui. Então vamos chamá-lo e dizer Morte, chamado esta função. Agora, quando a saúde for igual ou inferior a 0, chamará
isso de morte, esse evento. E agora precisamos codificar algo aqui. Então, o que acontece quando o inimigo morre? Vou criar uma nova variável aqui e chamar-lhe “B está morto”. Então B de Booleano e está morto. E eu vou mudá-lo para o tipo de booleano. Então o que o booleano é apenas algo que é verdadeiro ou falso, assim como aqui. Este também é um booleano. Então é algo que é verdadeiro ou falso. Então eu vou tirar isso. Vou segurar o Alt e largar para que ele se ajuste. E eu vou conectá-lo e eu vou levá-lo para que seja verdade. Então, inicialmente, esse valor, se compilarmos e salvarmos, esse valor é inicialmente falso. Os inimigos vivos. O que, quando você matá-lo,
ele vai colocá-lo para isso. E podemos fazer algo com isso. E a próxima coisa que queremos fazer é reproduzir uma animação que queremos reproduzir essa animação. Então vamos dizer que este personagem ou esta malha aqui um segundo para baixo. E digamos que a animação Lay. E nós o temos aqui, como nele. E agora você tem que selecionar uma animação. Então vamos em frente e ver que animações temos. Então aqui dentro de uma falta de seu mercado, adversários de lâmina
infinita dentro do inimigo. Nós temos nossos grunhidos mestres, e então nós temos as animações master grunhidas. E dentro daqui temos um jogo
extra, morte da glândula mestre. Então esta é a animação da morte. Este é o que queremos jogar nos dados do NMI. Embora eu vou minimizar isso um pouco. Eu só vou arrastar este aqui ou você pode procurar por ele. Isso é com você. Então, vou deixar cair aqui. E não vai fazer loop. Só queríamos jogar de uma vez. Bem, vamos apenas, uma semente de ilha para nos divertirmos. Agora vai tocar esta animação. Legal. Agora temos o nosso problema. Você ainda pode atirar nele. Você pode vê-lo, seu lugar novamente. Ou você também pode ver aqui ele bloqueia, você precisa de um plano para passar por ele. Então vamos consertar isso. Mas a primeira coisa que queremos consertar é que está te bloqueando. Então a coisa que está te bloqueando é porque vamos pegar essa malha. E, na verdade, podemos usar isso mede a mesma variável. Aqui podemos dizer colisão. Porque lembre-se que a colisão está bloqueando uma colisão. E você pode ver algo aqui chamado, Eu vou ver onde ele está Set Colision habilitado. Então este é o mesmo que este. Então, se você clicar em Mesh, você vai até aqui, você pode ver esta colisão. Esta é a predefinição de colisão que você tem atualmente. Este é o único. E não queremos colisão porque
não queremos mais colidir com ele. Então nenhuma colisão é colocada. - Não. Está bem. Bem, vamos criar um aqui para que pareça melhor. E a próxima coisa, lembre-se que também temos a cápsula, e a cápsula é aquela em que somos, estamos atirando. Este. Também queremos remover a colisão porque a colisão está ligada inicialmente. Então, tirar esta cápsula e também definir fará login ativado. Clicando nisso e definindo-o para nenhuma colisão. Então, se eu compilar e jogar e eu devo ser o inimigo, você pode ver que eu não posso atirar mais nele. Isto é por causa da colisão está desativada. Ok, então isso é muito legal. E só para ter certeza. Então é, às vezes é desnecessário era apenas para ter certeza que eu gostaria de pegar este Componente de Movimento de Personagem e desativar os movimentos lá para que ele não funcionasse. Especialmente isso é feito com personagens. Então os jogadores que se você tiver um multiplicador novamente, por exemplo, ou seu jogador, aquele com quem você está jogando, vai ter o movimento desativado apenas para ter certeza de que você não pode se mover enquanto eles estavam naquele pagamento. Então, a última coisa, lembre-se lá dentro, deixe-me voltar para a pasta Blueprints e inimigos. E aqui o blueprint de animação, tipo de gráfico de eventos. Fizemos essa velocidade de movimento. E se o inimigo for válido, vamos calcular o movimento. Isto é o que fizemos anteriormente. E o que eu quero fazer é realmente também acrescentar que se o inimigo não é isso, você pode ir em frente e calcular. Porque aqui, agora temos os mortos que podemos usar. E podemos dizer, se o inimigo não está morto, vá em frente e calcule essa velocidade de movimento. E agora eu preciso, eu preciso fazer referência a essa base inimiga porque agora a variável está dentro daqui. Para qualquer um eu poderia apenas tomar esta pornografia inimiga porque já temos uma variável e dizer pediu para tarefa 2, base inimiga. E fazendo isso, podemos acessar porque agora ele está tomando os pontos gerais. Então este é chamado de tentar Obter Peão Proprietário. Então vai pegar a pornografia inimiga geral e sabe quem é o dono deste vínculo. Agora estamos, queremos,
queremos acessar os eventos personalizados dentro daqui, dentro desta base inimiga especificamente. Então é por isso que pegamos isso e dizemos custos para, whoops, eu criei isso por engano. É por isso que estamos dizendo custos, e você está lançando para este NMI baseado especificamente. E daqui você pode dizer que, por exemplo, aqui você pode pegar essa variável. Podemos fazê-lo assim, ou podemos fazê-lo através de uma Interface de Blueprint. E isso, o problema com isso é que ele está criando referências
Hart e é ruim para o desempenho. Também pode aumentar o tempo de carregamento. Então eu vou excluí-lo e vamos realmente fazê-lo através da interface para que você possa praticar nisso também. Então esta é a última coisa que vamos fazer. Então, entrando nas interfaces, clique com o botão direito do mouse, crie uma nova interface de blueprint e chame-a int qualquer base. E dentro desta, vamos fazer uma nova função chamada recebe inimigo árbitro. Tão boa a referência do inimigo. E vamos clicar em Criar e saídas e encontrar a base NME VP. Então, esta é a base inimiga da BP. E vamos chamá-lo, vamos chamá-lo de inimigo. Vamos compilar e salvar. Então dentro da base inimiga, dentro daqui, vamos clicar em Configurações de Classe e, em seguida, adicionar e procurar ints, base
inimiga, composto, salvar. E vocês podem ver que temos agora essa função que
adicionamos dentro de nossos planos em pesquisas. Então, clicando nele clicando duas vezes. E aqui está perguntando o quê, quem é o inimigo? E o inimigo é eu mesmo? Então o inimigo é esta base inimiga. Ok, então agora nós temos isso e agora dentro do projeto de animação aqui nós podemos realmente agora dizer em S2 esta pornografia inimiga e dizer obtém-se ME árbitro. E daqui, vamos empurrar isso para longe. Na verdade, podemos fazer isso por aqui. Então, deixe-me afastá-lo. Então agora está dizendo, o inimigo
está no nível? O inimigo é válido para nós e para o inimigo? O inimigo existe no nível? Sim, ele faz. Então, depois disso, você está, queremos perguntar, o inimigo
está morto? E para fazer isso, podemos desenhar isso como eu fiz antes, mas na verdade podemos fazer isso por aqui. Este é o mesmo e muito mais limpo eu acho que fica inimigo, meu abet, obter inimigo áspero. E conecte isso. E a partir daqui, podemos dizer “fica”. E podemos ver aqui, aqui embaixo no fundo estão sempre as variáveis e a que queremos pegar está morta. Está morto. Esta é a variável que temos aqui na base inimiga, é essa. Então, é este. E aqui podemos dizer, o inimigo
está morto. Então, se este for verdade, não faça nada, mas se os inimigos estiverem vivos. Então, se o inimigo não está morto, então vá em frente e calcule. Mas só para torná-lo mais legível, isso é um pouco confuso. Vou dizer para arrastares isto e dizeres que não. Então, se o inimigo não é, então ir em frente e calcular a velocidade de movimento. Isto é um pouco melhor na leitura. Então, não é muito confuso. Vou montá-lo primeiro, assim como este. Então, se o inimigo, o inimigo existe e o nível é o inimigo existe, o inimigo
está morto? Ou aqui está perguntando, se o inimigo não está morto, então vá em frente e calcule a velocidade de movimento. Então isso é o que temos para o dano que criamos, o dano aplicado. Então estamos aplicando danos e agora estamos aplicando 25. E isso está bom por enquanto. E também na concessão temos alguma saúde
que estamos subtraindo de qualquer evento de dano. E quando você estiver morto, você vai jogar uma animação e remover a colisão. Ok, então foi isso para esta lição. E se você quer que o inimigo desapareça quando os inimigos morrerem, isso é com você. Eu realmente não quero fazer isso, mas eu posso te mostrar como fazer isso,
só para o caso de você querer apagar o inimigo. Então aqui podemos dizer atraso. Por exemplo, queremos excluir o inimigo após cinco segundos. Então vamos dizer atraso com cinco segundos e depois destruí-lo. Então agora você vai destruir o ator. E o que é, quem é o ator? Qual é o alvo? O alvo em si, o inimigo. Então, clicando em Jogar, você pode ver até cinco segundos. Ele vai excluir o inimigo ou destruído ou apenas assim,
Isso depende de você se você quiser o seu jogo assim. Para este, vamos deixar assim que possamos ver os inimigos se acumulando. Por enquanto, está tudo bem. Ok, então era isso. Obrigado por assistir e vamos para a próxima lição.
57. Spawning inimigas: Ok, então agora temos a morte feita na última lição. Então agora vamos nos concentrar em desovar o inimigo. Em vez de arrastar o inimigo assim, queremos gastar o inimigo dinamicamente. Então vamos deletar este, e eu vou deletar este para que todo o nível esteja vazio e somos só nós correndo por aí e podemos filmar. Ok, então agora nós queremos gerar o inimigo. E eu acho que eu quero fazer a desova dentro
do modo de jogo para que possamos fazer esta ligação dentro daqui. Então, clique duas vezes no modo de jogo aqui. Ainda não fizemos nada. E se você tem eventos aqui, você pode ir em frente e excluí-los por enquanto. Então, para fazer essa ligação, Vamos em frente e fazer um evento personalizado. Mas antes de fazer isso, vamos fazer uma interface para o modo de jogo. Então, dentro das interfaces na pasta Blueprints, clique com o botão direito do mouse. Vá para blueprints e Blueprint Interface e vamos chamá-lo de End Game Mode. Vamos clicar duas vezes nele e obter gráfico Modo de Jogo. Esta é a nossa função que começamos, por isso faz dela uma referência ao modo de jogo. E aqui, digamos que chamamos isso de alongamento de clone GM. E vamos chamá-lo de modo de jogo. Ok, então agora temos essa função, e já fizemos isso muitas vezes agora. Então, entrando no Modo de Jogo, vou entrar nas configurações da minha classe. Estou adicionando minha Interface de Blueprint. E aqui clique duas vezes na interface e escreva a si mesmo. Então agora temos uma referência ao modo de jogo se precisarmos dele. Ok, e aqui nós também podemos fazer eventos
personalizados porque agora temos o jogo ou a interface. Então aqui na Interface Blueprint, Vamos fazer uma nova função e chamá-la no inimigo. E este, inimigo é apenas um evento. Então vamos compilar e salvar. E vamos voltar aqui no Modo de Jogo e menos certo? Gere uma amina e você pode ver o evento chamado inimigo de geração. Certo, então agora temos esse evento. O que queremos fazer é usar um temporizador. Agora posso te ensinar sobre temporizadores. Então, se você arrastá-lo para fora e escrever timer, você pode ver algo chamado set timer por evento. Então, clicando nele. Este é apenas um temporizador que será executado. Então precisamos de um evento aqui. Então, arrastando a partir deste vermelho chamado evento, precisamos fazer um evento personalizado e escrever personalizado e clique neste evento add custom. E vamos chamar isso de inimigos de fauna. O que é chamado de Gerador Inimigo. E deixe-me imprimir uma string para que você possa ver o que ela faz. Então, imprima uma string, esta é a frequência com que o temporizador será executado. Então, se eu escrever um, isso será executado a cada segundo. Vou colocar looping, então ele faz um loop neste temporizador. Então, se eu tocar jogar agora ele vai dizer que ele LOW a cada 1 segundo. E antes que possa fazer isso, temos que chamar este evento. Senão, não vai fazer isso. Então aqui eu só quero chamá-lo no início da peça. Quando começarmos a jogar o jogo, vá em frente e faça essa ação para este evento. Então, vamos criar inimigo. Então é este, é a chamada de interface. Certo, agora estamos respondendo ao inimigo. Se eu clicar em Jogar agora, ele vai dizer olá para o canto superior esquerdo e ele desaparece. Você não pode realmente vê-lo, mas ele diz que ele realmente faz isso a cada segundo. Então, se eu voltar para o meu modo de jogo aqui e eu colocar 0.2, ele vai dizer Olá a cada 0.2 segundos. Então ele vai dizer olá cinco vezes por segundo. Você pode ver aqui à esquerda, diz em baixo. Ok, então é assim que um temporizador funciona e está em loop. E temos que parar em algum momento se não quisermos mais fazer o loop. Ok, então nós queremos fazer aqui com este tempo limite. Queremos criar o inimigo. Então aqui você pode arrastá-lo para fora e dizer desovar precisa da classe. Então queremos criar um ator. E o ator que queremos este telefone é nosso inimigo. Então, se eu procurar por grunhidos da BP, este é o cara que queremos criar. E agora está perguntando, onde você desova? Onde você quer desovar esse cara? E primeiro, antes que possamos fazer isso, vamos minimizar aqui. E temos que dizer ao jogo onde o inimigo pode andar, porque o inimigo não deve estar andando em cima
desta caixa ou dentro das paredes ou qualquer outra coisa. Então aqui podemos ir em frente e criar e criar em volumes. Temos um pouco de brilho, algo chamado Nav mesh bounce volume. Então, alguma navegação para o inimigo ou MPC ou o que você tem em seu jogo. Então vamos acabar com isso. Então é subterrâneo. E se você clicar em P, Você pode ver esta caixa verde, verde. Então lembre-se de clicar em P no seu teclado. Então agora temos esta caixa e este é um inimigo digno pode andar. Então eu vou descer aqui e torná-lo maior aqui na forma de caixa,
nossa forma de pincel, você pode escolher o tipo de forma que você quer. A caixa é perfeita para este exemplo. Então eu vou torná-lo maior e eu vou cobrir toda esta área. Assim como este. Então agora o inimigo pode surgir dentro desta área verde. Então o inimigo não pode aparecer aqui. Se você queria que o inimigo aparecesse aqui, você só tinha que fazer isso maior. Então você pode ver que esta caixa é grande agora e você pode ver que eles podem surgir em cima daqui. E isso está exagerando um pouco. Posso ver se consigo ver esta caixa assim. Se quisesses desovar aqui, podias
fazer os livros deles maiores. Mas para nós, vamos fazer 50 e tudo bem. Então agora podemos dizer ao jogo que o MPC pode surgir em qualquer lugar ou o inimigo pode surgir mais nesta área verde. Então vamos voltar aos nossos planos e ao modo de jogo. E aqui podemos usar uma função que é chamada se você, se você escrever navegável, você verá algo chamado ponto getrandom em raio navegável. Então ele vai obter um ponto aleatório nesta área navegável, que é a área verde. Então ele está recebendo um ponto aleatório e você pode gerar neste ponto aleatório e a origem. Agora, onde você, onde está a origem? Então, onde, por onde a palavra que você quer começar? E de lá você vai procurar pontos. Só queremos começar no meio do mapa, então queremos procurar a partir daqui. E para obter esta área específica, deixe-me realmente mover este jogador começar que temos resposta digna. Deixe-me movê-lo para o meio da área assim. E eu vou entrar aqui e dizer que é ator de classe. E eu quero começar o jogador. Eles vão pegar o ator da classe vai ter qualquer ator deste um, o jogador começar dentro do mapa. E nós só temos este, só
temos este jogador começar. Então ele vai fazer este jogador começar no mapa. E com esta parte de plástico, o que podemos fazer, vamos conectá-la aqui. O que podemos fazer é dizer obter a localização do ator. Então este é o local que queremos, esta é a origem que queremos procurar. E quanto você quer procurar? Qual é o raio que você quer procurar? Então deixe-me escrever cem, quinhentos. Então é um grande raio, ele vai procurar para que o inimigo possa surgir em qualquer lugar dentro daqui. Se você o tornasse muito pequeno, o inimigo só apareceria em torno desta área de desova. Então vamos torná-lo grande. Eles podem aparecer em torno de todo o mapa. E agora precisamos conectá-lo, mas isso precisa ser uma transformação. Então podemos dizer isso ou podemos dizer transformar. E há algo chamado fazer transformação. Prefiro fazer isso e depois conectá-lo na transformação. Então podemos controlar
a rotação e a escala. Ok, então isso parece bom por enquanto, vamos compilar e salvar. E aqui no controle de colisão, queremos dizer adeus para ajustar a localização. Não desovem. Se ainda colidir. Há para responder, digamos San inimigos. Se um deles vai colidir com outro, não
queremos criar um inimigo em cima de um inimigo. Isto voltará a ser os dois. Portanto, não desovem se o inimigo estiver em cima do outro inimigo. Então, não desovem se colidir. Você pode mostrá-lo. Vamos tentar isto. Vamos tentar este modo de colisão e você pode ver como ele se parece. Portanto, tente ajustar a localização, mas sempre geram mesmo que estejam colidindo. Então, vamos tentar isto. E isso agora vai gerar a cada 0.2. E vamos tocar Play e ver se acertamos tudo. Então agora estamos respondendo isso, veja, agora estamos respondendo inimigos. E agora você pode ver aqui este inimigo esbarrado está encontrando, ganhando o chão, correndo em cima um do outro. E nós não queremos isso. Então vamos em frente e dizer que tentou ajustar a localização, não gerar se ainda colidindo. Por isso, se estiveres dentro da parede ou se estiveres debaixo do solo, ou se um inimigo estiver em cima de outro inimigo, não desoves. Então, vamos clicar em Reproduzir e ver como ele se parece. E eles não estão colidindo um com o outro. Ok, então o sistema de desova está funcionando agora. E vamos em frente na próxima lição e trabalhar na animação para quando o inimigo desovar.
58. Animação de inimigo: Vamos agora trabalhar na animação para a desova inimiga 1D. Então, em vez de apenas desovar assim do nada, eu queria que eles saltassem do mapa. Então vamos em frente e lado dos inimigos. E dentro deste projeto de animação que fizemos antes, vazando naquele. E dentro daqui, se formos para o movimento local aqui, então se eu voltar para que você possa vê-lo. Então este é o nosso
gráfico de eventos ou animação clicando no movimento local que você fez anteriormente. E antes disso, queremos fazer outro estado. Então clique no palco e eu vou chamá-lo de desova. E depois disso, vamos para o globo ocular e correr. Então, queremos fazer a desova e clicar duas vezes e a desova. Encontrei uma boa. Alguém caiu, este caiu. Se conseguires tirar este e ligar. E você pode ver como ele se parece. Ele está caindo do céu. Então, se você não pode encontrá-lo, então aqui você pode ir e montar um mercado e você pode encontrá-lo em adversários de sangue infinito, o inimigo, a concessão Mestre, e emissões. E dentro daqui você tem esse chamado “dropdown”. Então este é, este é o único. Ok, então agora temos essa animação de desova e queremos ir
para este ocioso depois que você desovar, não
queremos que ele salte o tempo todo. E a maneira como fazemos isso é que temos uma transição aqui. Isso é chamado de transição. Então, se você clicar duas vezes nisso, ele pergunta, o que eu sou, como eu vou transitar, transição de desova para ocioso? Então, deste estado para este estado, e eu vou clicar duas vezes sobre isso e escrever o tempo restante. E você pode ver essa chamada proporção de tempo restante e clicar duas vezes nisso. Então vai levar a proporção de tempo restante desta animação, a inovação suspensa. E ele vai encontrar automaticamente essa animação porque nós já nos conectamos. Então ele vai procurar o que você conectou aqui. Então ele sabe que é essa animação. Então, se seu tempo restante é menor que, vamos tentar 0.5 e vamos compilar e salvar. Então, se o tempo restante deste, se a proporção, tempo restante proporção é inferior a 0,5 para esta animação, vá em frente e mude para ocioso e jog. Então, se clicarmos em Reproduzir e ver o que ele parece, ele está fazendo a transição um pouco rápido demais. Então, se eu voltar para o meu blueprint de animação e um 0.2 à direita em vez disso. Então você tem que testar um valor e ver como ele se parece. Sim, então agora está parecendo muito melhor. Então agora você pode ver que a animação desova estava parecendo muito melhor e eles esfregando, esfregando do céu.
59. Spawn: Tudo bem, então agora vamos criar algumas ondas. Agora a animação está funcionando e eles estão respondendo. Mas vamos criar algumas ondas e elas podem surgir em ondas. Por exemplo, você tem nível um, nível dois, nível três, e mais e mais inimigos aparecerão cada vez que você derrotá-los. Então, para fazer isso, vamos em frente e entrar no modo de jogo. Então esta palestra vai ser um pouco mais complexa, mas espero poder explicar o melhor que puder. Ok, então aqui, vamos realmente clicar com o botão direito do mouse neste temporizador que fizemos anteriormente, e vamos promovê-lo para uma variável e vamos chamá-lo de tempo gerado. Ok. Então podemos usá-lo mais tarde para parar o temporizador. Então temos, temos uma variável que podemos nos referir se quisermos pará-la. Então aqui, o que geramos este inimigo? Aqui no Modo Jogo, nós geramos o inimigo em um ponto aleatório no raio navegável. Vou clicar com o botão direito do mouse neste inimigo e chamá-lo de ponto NME O. Agora temos uma referência a este NME gerado, e quero adicioná-lo a um array. Então, o que é uma matriz, deixe-me criar uma variável aqui. Então eu vou criar uma variável. E esta variável, eu vou mudar aqui o tipo dela. Vou procurar um ator. E você pode escolher este ator e a referência do objeto. Ok, e este aqui, eu vou chamar os inimigos. Então S, temos várias lagoas. E eu vou clicar neste ator aqui, neste ícone. E eu vou mudá-lo para um array. E você pode ver que ele se torna, se eu arrastá-lo para fora, ele se torna essas caixas em vez de um círculo comum. E o que um array é, é apenas um contêiner. E pode conter muitos itens. Então, se responderem, digamos 10 inimigos. Podemos adicionar todos os 10 inimigos dentro desta matriz. Então é só, pode imaginar que é como uma caixa. Enquanto isso, esta variável normal só pode conter 11 referência. Este é como uma caixa e contém, por exemplo, 10 destes dentro daqui. Então é como uma caixa e você coloca todos os inimigos dentro desta caixa e você tem uma referência a eles. Uma vez que você precisa deles, às vezes você pode tentar fazer algo com todos esses 10 inimigos dentro desta caixa. Certo, então, um array é como um contêiner, como uma caixa. E pode ser qualquer coisa. Então, por exemplo aqui, eu poderia tê-lo mudado para
um, um inteiro e um inteiro array. E você pode compilar e salvar. E você pode ver aqui, eu posso ter um monte de números aqui. Então é como uma caixa. Um inteiro ou uma matriz é como uma caixa com muitos itens. Então, por exemplo, se é um inteiro que é uma variável numérica, ele pode conter, por exemplo, 10 números. Cabe a você pode adicionar até 100 números, isso depende de você. Então isso é o que uma matriz. Array é. É um recipiente de itens. E neste caso, queremos salvar todos esses pontos gerados dentro desta matriz. E posso mostrar-lhe mais tarde, como podemos usar isso. Então, para adicionar algo dentro desta matriz, podemos ir em frente e dizer, você pode, claro, clicar nele e clicar
no mais e você pode selecionar algo, mas deixe-me excluí-lo. Nós vamos adicionar esses. Então, indo aqui e escrevendo AD. E você também pode ver se você arrastar para baixo e ir para baixo para a matriz de
utilitários pode ver todas essas funções que você pode fazer para matrizes. Você pode adicionar, você pode limpar a matriz para que você esvaziá-la apenas no caso de você ter um monte de itens dentro dela. Você pode ver se ele contém um item específico. Você pode encontrar um item. Você pode ver se há algo idêntico com o que você vai adicionar. Você pode ver o comprimento dele, o que nós vamos fazer e assim por diante. Portanto, há um monte de funções para arrays que você pode usar. E aqui vamos clicar em Adicionar, porque queremos adicionar algo a esta caixa, a esta matriz. Então a coisa que vamos acrescentar é este telefone inimigo. Então você pode clicar aqui e conectado. E agora vai adicionar esta pornografia inimiga à matriz. E você pode imaginar aqui, agora ele vai fazer um loop neste temporizador. Então ele vai gerar um inimigo a cada 0,2 segundos. Então ele vai gerar cinco inimigos como segundo. E todos esses inimigos, cada vez que ele faz loops, ele vai adicionar, adicionar, adicionar. Então, a cada 0,2 segundos vamos adicionar um inimigo a esta matriz. Então, por 1 segundo, temos cinco inimigos dentro daqui. Ok, então este é o contêiner para o qual estamos adicionando os inimigos. E vamos fazer uma variável chamada onda porque queremos fazer ondas, por exemplo, onda 1, onda 2. Assim, mais e mais inimigos irão gerar cada, cada onda. Vamos transformá-lo em um inteiro porque uma onda é apenas um número, assim como o nível um, nível dois. E vamos, vamos voltar para a variável inteira comum. E você pode ver que agora podemos adicionar um número, por exemplo, onda 23 ou nível transitório ou o que você quiser chamá-lo. E vamos mudar o número agora é 0 como padrão. Deixe-me mudar para um. Então começamos com a Onda 1. E eu vou eliminar esta onda segurando o Controle e caindo. E eu vou dizer comprimento aqui. Então aqui vou eu verificar o comprimento. E aqui eu quero dizer, o comprimento
é maior ou igual? Opa, maior ou igual. Eu soquei as chaves. Então, se o comprimento desta matriz é maior ou igual que esta onda, então se o número de inimigos que acabamos de gerar é maior ou igual a onda, o número da onda que é um atualmente. Se isso for verdade, então vá em frente e pare o temporizador. Certo, então o temporizador, lembre-se que fizemos essa variável que podemos usar. E eu vou arrastá-lo para fora e dizer claro,
claro, e invalidar cronômetro por punho. É assim que se pára o temporizador. Então eu vou iniciar o temporizador. E então, se a onda é uma, então agora a onda é uma. Se os inimigos gerados forem maiores ou iguais a este, então pare o temporizador. Então agora ele vai gerar apenas um inimigo. Então, se eu clicar em Jogar e eu testei, e eu procurei por este inimigo, então nós podemos encontrar qualquer lugar. Então eu só tenho um inimigo e eu não tenho mais. E se eu definir este para cinco, agora eu vou ter cinco inimigos. Então eles estão respondendo 1, 2, e 4 ou 5. Então agora eu tenho cinco inimigos. Então isso está funcionando. Então, se você é quantidade de inimigos dentro desta matriz que você acabou de fazer. Se estiver acima deste número de onda, pare o temporizador. Então é assim que podemos controlar quantos monstros são inimigos que podemos gerar. E, por exemplo, se você estiver na onda 50 ou no nível 50, você gerará 50 inimigos. Então agora vamos mudar de volta para um. Agora está funcionando. E para ter certeza que esse número de onda está aumentando cada vez aqui, vamos em frente e fazer um novo, eu sabia o que é chamado evento aqui. E para fazer um novo evento, Vamos passar por cima e, e as interfaces e a interface do modo de jogo. E aqui podemos fazer um novo evento. Então crie aqui, clique em função, gerar, ou apenas contador de onda, compilar e salvar, voltar ao modo de jogo e escrever contador de onda. E este evento chamado contador de ondas. E então eu vou pegar essa onda e dizer mais, mais. E o mais, mais é que adiciona um ao valor especificado e, em seguida, configurá-lo. Então isso é o mesmo que escrever assim. Então, se você pegar um e dizer plus1, então a onda mais 1, e então você defini-lo. Então este é o novo valor. Então esta é a mesma coisa se você, se você fez assim e você se conectou, isso é a mesma coisa. Então, em vez de fazer tudo isso, você pode apenas dizer
mais, mais se você quiser adicionar um especificamente. Certo, agora vamos adicionar um à onda. Então, toda vez que você parar o temporizador, eu quero adicionar um a esta onda para que eu possa usá-lo mais tarde. Porque então serão dois em vez de um. E da próxima vez que eu disparar este evento, a onda é duas em vez de uma. Então aqui vou eu dizer contador de ondas. E é essa interface chamada, ok, então ele vai dizer mais 1 e a onda será dois. Então, da próxima vez que eu chamar este evento, vai ser dois. Mas neste momento não convocamos este evento novamente. Então, mesmo que eu jogue, nada acontecerá, mesmo que eu mate o único inimigo que ainda gosta. Porque nós realmente não dissemos ao jogo para executar este código. Novamente. Não dissemos para rodar este código novamente. Então a próxima coisa que queremos fazer é realmente executar este código novamente. Depois que o inimigo, todos os inimigos e o nível foi, foram mortos. Então a coisa que precisamos fazer para verificar se todos os inimigos foram mortos é realmente passar por esta matriz e ter certeza de que todos eles estão mortos. E a maneira como podemos fazer isso é em diferentes métodos. Mas o que quero mostrar é que toda vez que matamos um inimigo, queremos remover este inimigo desta matriz. E uma vez que esta matriz está vazia porque removemos ou matamos todos os inimigos, o código será executado novamente. E da próxima vez a onda será duas. Porque nos encontramos aqui, da última vez que respondemos à onda. Então da próxima vez que ele vai executar o código, ele vai ser dois, e a próxima vez vai ser três e assim por diante. Ok, então a maneira de fazer isso é voltar para LeBron em seus inimigos, e vamos para dentro da base inimiga. E dentro da base inimiga, queremos criar um novo evento. E este evento que queremos chamar remover lagoa. Então deixe-me ir em frente e eu acho que nós fizemos na interface para isso, então nós somos base inimiga. Vamos entrar daqui. Vamos em frente e adicionar uma função. E este evento vamos chamar remover palma. Então vamos removê-lo da matriz. Então indo para dentro da base inimiga, chamando o evento chamado removido. E este aqui. E para ter acesso à matriz, lembre-se que está dentro do modo de jogo, os laços inimigos. Então precisamos de uma referência ao modo esquema. Então, no modo de jogo de referências internas, e já fizemos isso obter referência Modo de Jogo. Então, voltando para a base inimiga, e aqui eu quero dizer que é Modo de Jogo. E, em seguida, obtém gráfico Modo de Jogo. Parece com isto. Então agora temos o modo de jogo e estamos nos referindo especificamente ao nosso próprio modo de jogo. E a maneira como fazemos isso é que fizemos essa função, e lembre-se que escrevemos “eu”. Então lembre-se de fazer isso que não vai funcionar. E aqui dentro deste modo de jogo, queremos acessar a matriz Ponts inimiga. Então, pons inimigos, bom que um. E aqui queremos remover, então arrastando para fora e dizendo Remover. Queremos remover um item. E o que queremos remover? Queremos remover o inimigo que acabou
de ser atingido e morto. Então, queremos remover o inimigo morto. E a maneira como podemos fazer isso é apenas ir em frente e secar a si mesmo. Porque lembre-se que já estamos dentro da base inimiga. Então, embora o inimigo que você acertou está dentro daqui e você pode apenas dizer eu, porque você vai remover o inimigo que acabou de ser atingido. Tão auto. E então nós, depois disso, queremos verificar se este comprimento. Vá em frente e escrever comprimento. Então, queremos verificar se esta matriz está vazia depois de ter removido isso. Então, indo para isso e dizendo igual o é o comprimento igual a 0. Se for. Então, clique na ramificação. Se for 0. Em seguida, vá em frente e execute este código novamente dentro do jogo. Então, queremos executar este código novamente. E preciso rodar esse código de novo. E em vez de executá-lo o tempo todo, eu realmente quero fazer uma jogada inicial. Então comece a jogar. Aqui. Vou pegar essa referência Demode, obtendo aderência a isso. E vou clicar com o botão direito do mouse e promover nossa variável chamada Modo de Jogo. E eu tenho uma variável para, ou eu tenho uma referência ao modo de jogo. E eu posso usar isso para me conectar a eles. Em vez de chamar tudo isso de novo e de novo. Agora eu tenho uma referência a ele. E esta referência eu posso então usar aqui para executar este código novamente dentro da colagem modo de jogo, certo? Então eu posso agora executar este código chamado inimigo jurado. Vamos voltar para a base inimiga e escrever “Sain”, NME. E é uma mensagem porque é uma função de interface. Ok, então agora ele vai gerar o inimigo uma vez que esta matriz está vazia porque você está removendo isso morto em cima. E depois que você remover, ele vai verificar, este array
é agora 0, isso está vazio? Se estiver vazio, vá em frente e execute a próxima onda. Por isso, neste momento não, ainda não
convocámos este evento, tão afastado. Não o temos em nenhum lugar no código. Então queríamos aqui 1D jogador ou os inimigos 1D mortos. E deixe-me realmente transformar isso em um evento de interface em vez apenas para torná-lo mais limpo. Então deixe-me voltar para o modo de jogo e morte seca, Compilar e salvar. E aqui eu posso escrever profundidade e pegar isso. Na verdade, deixe-me, oh, eu acho que eu fiz isso no caminho errado. Sim, isso estava no modo de jogo. Deixe-me ir em frente na base inimiga e fazer a morte. E deixa-me apagar este. E bem ali e dizendo este evento de interface em vez disso, apenas para torná-lo mais limpo, eu gosto de limpeza mecânica e remover este e chamar o cólon interface de morte em vez disso. Então agora temos este, aquele evento. E aqui na profundidade, uma vez que o inimigo cortar, eu quero remover este inimigo. Então o inimigo morre. E então você vai ligar para remover. E é uma chamada de interface porque é um evento de interface. Então, depois que o inimigo morre, você está indo para remover o inimigo deste array, Compilar e salvar. E então ele vai verificar se a matriz é 0. E eu não sei se você perdeu alguma coisa, vamos realmente jogar e ver se ele diz erro ou algo assim. Então eu vou chamar este e uma vez vínculo para responder. E deixe-me ver se a mamãe diz. Agora só temos dois e se eu chamar isso ou se o som é muito alto. Agora 2s ligação aqui. E três. Então agora está funcionando. Agora estamos respondendo aos inimigos. E eu realmente quero girar os inimigos para que eles estejam voltados para a câmera. Acho que vai parecer muito melhor. Então, clicando no modo de jogo e a rotação aqui, lembre-se responder os inimigos aqui. Eu quero fazer a rotação para o z 21 AD. Então, agora lá vai olhar para a câmera. Então agora o inimigo está de frente para a câmera. Ok, então isso foi tudo por esses laços. E antes de terminarmos isso, eu também quero me divertir. Explosões quando morrem. Porque não? Adoramos explosões. Aqui. Vamos em frente e gerar um emissor. Então, antes de removermos, digamos, gerar um espelho no local e respondente no espelho. E a coisa que queremos gerar, eu só quero gerar uma explosão porque, por que não? Faz muito sentido. Entrando na arma militar escura dentro dos efeitos. Há algo chamado explosão de granadas. Então este é o que eu quero desovar. Então, se eu voltar para a minha base inimiga, então dentro da minha base inimiga, eu posso minimizar isso um pouco e arrastar esta explosão. Então agora vamos explorar a hora em que eles morrem. E o local em que queremos gerar esse efeito é apenas a localização do inimigo agora. Tão boa localização de ator. E a rotação e a escala estão bem para destruir, e tudo está bem. Eu também quero tocar um som e o som que eu quero tocar. Vamos, vamos apenas escrever som de reprodução local. Vamos tocar um som e vamos encontrar o som rapidamente. Então, dentro das armas aqui, não
temos um som melhor, então eu só quero improvisar um pouco. Então vamos para dentro do som e vamos para dentro do lançador de granadas. E quero usar esta explosão, mas antes de pressioná-la, acho que está muito alto. Então deixe-me colocar para 0,2 e espero que eu não estoure seus ouvidos. Vamos ter medo que seja muito alto para você. Quando você vê este vídeo, amarelo, deixe-me fazê-lo 0.1 de você pode torná-lo mais alto em seu computador. Então deixe-me voltar para a base inimiga. Vou arrastar este som até aqui. E um local em que queremos tocá-lo é novamente, apenas obter a localização real. Podemos copiar e colar. Ou você poderia apenas ter se conectado assim e você pode fazer com que pareça um pouco melhor com o tempo. Escrevemos notas, então é com você que quer fazer. Vamos fazer assim por enquanto. Então agora, cada vez que os chamarmos, eles vão explodir. Isto está parecendo muito mais interessante. Então você pode ver quantos efeitos e som para o jogo. Mas isso é um pouco bug e agora esse trabalho podemos corrigir
projetando o Merlot um pouco melhor para que não tenhamos esse problema. E foi isso. E, na verdade, antes de terminar o vídeo, deixe-me ir em frente e abaixar o volume do tiroteio. E acho que conseguimos entrar no jogador, base de jogadores. E esta é a espingarda. Se eu clicar no navegador. E este é o impacto, este é o disparo. Vou fazer a carenagem e a mais baixa. Acho que está muito alto para você. Isto é bom. Certo, então agora temos tudo funcionando. E então ele explode e eles estão desovando, e nós temos ondas e assim por diante. Então a próxima coisa que queremos fazer é realmente fazer a interface do usuário e ele diz que você se prepare para a onda 1 ou se prepare para a onda 2 e assim por diante.
60. Criando interface user: Agora que temos a geração de trabalho,
Vamos em frente, na verdade, e criar alguma interface do usuário para ele. Então, para fazer isso, vamos em frente e criar uma pasta primeiro. Vamos clicar com o botão direito do mouse aqui e sua pasta, e vamos chamá-lo de UI. Dentro desta pasta, Vamos clicar com o botão direito do mouse e fazer uma interface de usuário e Widget Blueprint. Então é assim que você cria a interface do usuário. Este é um blueprint de interface de usuário. Então, clique nisso. E aqui você pode escrever WB exatamente como fizemos com o jogo de bola. E aqui podemos chamá-lo de onda, número de
onda ou onda. Sim, vamos chamar de kits de onda e duplo clique. E aqui nós só queremos adicionar um texto dizendo que este é o lugar onde você tem dois, três ou quatro. Então, indo em frente e arrastando este texto para fora e soltá-lo aqui, eu vou chamar este reparo ou reparo para pesar um. E este vai mudar dinamicamente para que você não precise mudar esse texto. Eu só quero alterá-lo para visualizá-lo porque nós vamos fazê-lo codificar em vez disso. Mas eu só quero pré-visualizar aqui. E o que eu quero fazer é escrevê-lo no meio embora para fazê-lo no meio aqui na justificativa você pode ver que você pode mudar o local e eu quero fazê-lo no meio aqui. E o ponto de ancoragem eu queria estar no meio da tela. Então eu vou mudar este ponto de ancoragem para o meio aqui. E se você escrever essa posição 0, 0, você pode ver que está ancorando para esta aparência ponto. Então o que você precisa fazer é jogar com o alinhamento. Então, ponto zero, cinco anos. Então agora ele está no meio e então você pode movê-lo para baixo com o Z ou o valor y. Assim como este. E eu quero fazer a fonte um pouco maior. Então, entrando no fundo, fazendo 36, talvez, posição como esta. Vou mudar a cor assim. Preparar para a onda 1. E este nós podemos realmente, vamos repassar e o gráfico. E o que queremos fazer é que este precisa mostrar cada vez que matamos todos os inimigos, ele diz, por exemplo, uma maneira poderosa de dois. Então aqui dentro do código, deixe-me excluir tudo isso e o gráfico aqui. E deixe-me fazer um evento personalizado. E este vai ser chamado de onda. Onda de texto de onda de exibição. Poderíamos exibir onde detectar o texto da onda de exibição. Sim, vamos fazer um teste de ondas de exibição. E este, vamos dizer agora que precisamos,
precisamos da variável de texto. Porque vamos voltar para o designer. E se eu clicar em jogar aqui, ainda não
editamos para a janela de exibição. Mas se eu clicar em jogar aqui, ele vai dizer preparar para sua videira o tempo todo. E eu não quero fazer isso no começo. Eu quero ocultar este texto, então eu quero mudar a visibilidade para oculto. E antes de fazer isso, eu realmente quero te mostrar, mostrar isso. Então, se voltarmos para o arquivo, eu clico em meus planos, o controlador do player. Então lembre-se que controlamos o, a interface do usuário através do controle do jogador no último jogo. É assim que eu costumo fazer. Eu gosto de fazer a interface acaba dentro do controlador jogador. Então, vamos realmente fazer isso dentro daqui. Então, aqui no início da jogada, eu quero criar essa interface de usuário. Vou arrastar até aqui e dizer criar widgets. E o que você quer criar? Você quer criar esta onda. Acabamos de criar a onda WB. E os jogadores proprietários apenas declarar controlador. E já estamos dentro do controle do jogador, então você não precisa fazer nada aqui. E eu quero clicar com o botão direito do mouse, eu estou promovendo isso para uma variável então eu tenho uma referência dela, e eu quero chamá-lo WB wave. Então agora eu tenho uma referência a essa interface de usuário. Então, vou clicar em Salvar. E aqui, em vez de apenas fazer Adicionar ao Viewport, que você
possa ver se eu adicioná-lo a uma viewport, então não basta apenas criá-lo. Você tem que adicioná-lo ao, para a janela de exibição para vê-lo. E se eu clicar em Reproduzir, você pode ver que diz preparar para um botão. Mas ele vai dizer quando o
tempo todo e não fazer mais nada e isso não é interessante. Então o que queremos fazer é que queremos remover isso em dois viewport. Então nós apenas criamos este, este Widget Blueprint, e nós temos uma referência a ele e nós não adicioná-lo à viewport. E lembre-se, se você não adicioná-lo à janela de exibição, você não a verá. Então só temos uma referência para isso. E depois disso, vou entrar no modo de jogo. E agora quero exibi-lo toda vez que começo uma nova onda. E você pode fazer isso aqui antes deste temporizador, porque você vai executar esse código toda vez que você executar uma nova onda. Então aqui eu preciso de uma referência para o controlador do jogador, e eu não me lembro se ele fez uma interface para ele. Agora não temos. Então clique com o botão direito aqui, faça uma Interface Blueprint e chame-o termina controlador jogador. E clique duas vezes nele e diga que fica controlador áspero. E clique e saídas. Procure o controlador do jogador e eu acho que nós chamamos de PC colônia strike lá está. Referência de objeto. E vamos chamar esse controlador de camada variável. Ok, então agora temos este controlador de fluxo. Vamos lá e lembre-se de entrar no controle do jogador nas Configurações de classe. E aqui, adicione-o, adicione o controlador do jogador. E lembre-se de clicar duas vezes no intestino como controlar nossa função ref e escrever auto. Então agora podemos fazer uma referência a este controlador de jogador. Então vamos voltar ao modo de jogo. Na verdade, deixe-me fechar tudo
isso agora é muito aberto e eu acho que é muito confuso para alguns. Então vamos abrir este modo de jogo. E este modo de jogo aqui, queremos obter uma referência para o controlador do jogador. Então escrevendo bom controlador jogador. E queríamos usar especificamente nosso próprio controle de jogador. Então dizendo recebe jogador controlador F. Então lembre-se que não é este, Não é obter Lera se é bom jogador controlador ref. Então, queremos obter uma referência a ele. E aqui no controlador do jogador, queremos usar, se eu voltar para o controlador do jogador, queremos obter essa variável porque queremos
exibi-la cada onda que somos cada vez que executamos esse código. Então aqui eu vou dizer WB principal porque isso é o que chamamos de variável. E clique nele. E eu vou, vou clicar mouse e converter para um get validado apenas para garantir que ele existe. Então aqui, é válido? Se for, vá em frente e adicione-o aos viewports. Em dois viewports, eu vou adicioná-lo à viewport toda vez que eu gerar uma nova onda. Ok, então agora você pode ver aqui se eu jogar o jogo e essencialmente cair fora, porque eu não vejo o texto no topo e o inimigo também não apareceu. E isso é porque voltamos ao modo de jogo. Isso ocorre porque este widget de grade está sendo executado ao mesmo tempo que este modo de jogo sendo, sendo executado. Portanto, ele não registra que isso realmente existe
e, portanto, não será válido. O que não queremos, que queremos que seja válido. Então eu vou atrasar o desovamento, o atraso na escrita. Quero atrasar a espinha em 0,2 segundos. E vamos em frente, compilar e salvar e clicar em Reproduzir novamente para ver se ele funciona. Eu posso ver agora que diz “preparar para um”. E se eu ligar para o inimigo, ele vai dizer a mesma coisa porque nós realmente não mudamos o texto dinamicamente. Vai dizer, prepara-te para o teu. E nós não queremos isso. E também recebemos um aviso dizendo que nosso viewport já existe. Então, porque ele tentou adicioná-lo à janela de exibição novamente quando gerou uma nova onda. E você também tem que consertar isso. Então, adicionando ao viewport,
e, em seguida, ele cria este temporizador. E aqui nós realmente queremos exibir o texto. Então vamos em frente e dentro do projeto fizemos a interface do usuário. E dentro desta interface do usuário queremos alterar isso dinamicamente. Então, voltando para o gráfico e
no evento de texto de exibição aqui nós queremos realmente entrar designer, eu esqueci de fazer isso. Clique no texto e vá para baixo e mude a visibilidade para um oculto porque queremos, queremos que ele seja escondido em primeiro lugar. E então no gráfico podemos pegar esse texto porque o que você pode ver aqui, não
temos o texto como uma variável. Então, voltando ao designer, clicando neste texto, aqui em
cima, você pode clicar nesta variável. Podemos compilar e salvar. E se você for para o gráfico, você pode ver que você pode usar este texto como uma variável agora. E vamos mudar o nome para sabermos o que é. E eu vou chamá-lo de texto. Wave irá compilar e salvar. E agora no gráfico, podemos pegar essa onda de texto e definir a visibilidade para visível. Então, quando exibimos o novo texto ou a nova maneira, queremos tornar isso visível. E depois disso queremos dizer Formatar texto. Porque queremos tornar o texto, queremos tornar este texto dinâmico. E a maneira como fazemos isso é mudar o texto para algo aqui. E depois disso vamos pegar essa variável e dizer definir texto e fazê-lo assim. E então vamos definir esse texto. Você pode fazê-lo de duas maneiras. Então você pode fazer isso assim. Ou assim como no jogo anterior, o jogo de bola, talvez você esteja se perguntando
por que não, por que você simplesmente não clicar no link aqui e no texto aqui, clicar no link e criar uma ligação e apenas mudar o texto e conecte-o aqui e ele está funcionando. E deixe-me deletar de novo. A razão é se você criar uma ligação, então eu removerei esta ligação agora. Se você criar uma vinculação, uma vinculação significa que ela executa todos os quadros. Então isso é o que é uma ligação. Ele executa todos os quadros. Ele verifica se o texto é realmente alterado ou não. E nós realmente não queremos isso. Quando estamos jogando o jogo, nós só queremos verificar se a onda mudou uma vez que começamos uma nova onda. Então isso não é bom para o desempenho. Se você vincular tudo, se você vincular isso, você liga isso e então você tem dez grupos diferentes. Controle Z, se você tem dez textos diferentes aqui, você liga todos eles e para verificar se o, eu não sei, sua resistência está acabando ou o que quer que você queira vincular esta sombra ou a cor do texto. Toda vez que você vincular ele irá verificar cada quadro. E isso não é bom para o desempenho. Então, é melhor apenas definir o texto. Este é um desempenho muito melhor e não vai fazer isso todos os quadros. Então é por isso que eu faço assim. Isso é muito melhor para o desempenho. Então vamos definir o texto como visível, e então vamos formatar o texto e dizer preparar para onda. E, em seguida, vamos escrever este colchetes e um 0 no final colchetes. E se você clicar em Enter, você pode ver que temos um número aqui. Podemos ligar. E você pode ligar o número da onda aqui porque esta é a única coisa que está mudando. Está dizendo para preparar a onda. E então ele vai nos dar o número da onda. E já temos várias outras maneiras. Lembre-se Modo de Jogo Indie, fizemos essa variável chamada onda. Então, queremos usar isso. Portanto, vamos precisar ter acesso ao Modo de Jogo. Então eu vou escrever fica modo de jogo. E então esse é o gráfico do Modo de Jogo. Então vamos dizer onda como precisamos da variável onda. E vou ligar este número aqui dentro. Então eu vou organizar isso um pouco. E agora definimos o texto para este, este número. Então ele vai dizer “prepare-se para a onda “, e ele vai lhe dizer este número. E eu quero esconder este texto depois de algum tempo porque eu não quero que ele fique na tela o tempo todo. Então, vou atrasá-lo por alguns segundos. Deixe-me carregar por três segundos. E depois disso eu vou remover os textos. Então, pegando este texto e eu posso realmente apenas arrastar para fora deste e dizer definir a visibilidade e dito divisibilidade para escondido novamente. Então, clique duas vezes para fazer um nó redirecionado e torná-lo um pouco melhor. Assim como este. Vamos compilar e salvar, e salvar aqui também. Então aqui quando você gerar o inimigo, você vai exibir este texto para a janela de exibição. E vou atrasar isto. Então eu vou exibir o texto. Então eu vou adiar por cinco segundos antes de eu gerar uma nova onda. Então, aqui estão atrasados por cinco segundos e, em seguida, remover este texto ou este widget do, da janela de exibição. Então eu vou arrastar para fora disso e dizer remover parafina se removido dos pais. É assim que o removemos da janela de exibição. E agora eu posso clicar duas vezes para fazer o nó reescrito chegou. Então não parece estranho assim. E talvez nós precisemos realmente me deixar clicar duas vezes isso para fazer redirecionar, para ser organizado caso contrário você pode
vê-lo, ele fica confuso muito rapidamente. Agora vamos compilar e salvar, e vamos realmente testar o código. Então, se eu clicar em jogar, e isso é apenas eu sendo estúpido, eu esqueci de realmente executar este evento chamado display wave textos porque nós nunca exibi-lo aqui. Então eu adicionei à janela de exibição. E daqui, deixe-me mover todo esse código. Vamos arranjar espaço. Então eu vou também para baixo, assim como este. E aqui nós vamos realmente mover isso um pouco. E vamos chamar isso de eventos. Então já temos uma referência a esta onda WB, este Widget Blueprint. Então podemos chamar este evento daqui. E aqui podemos dizer texto de onda exibido. Então exiba com texto. E agora temos este evento. E deixe-me criar um novo nó de redirecionamento aqui. Quero dizer, basta clicar duas vezes e deixar-me desligado, ligado aqui. Simplesmente assim. Então agora vamos jogar este evento. Tão bom. Clique no jogo para seus diz preparar para um. Eu vou remover e depois de dois segundos ele vai aparecer. O inimigo está algures no mapa. Não sei de onde ele gosta. Eu estou indo para ir. Os inimigos devem dizer preparar-se para isso. Agora diz Prepare-se para a onda 2 e 2 inimigos irão surgir. Portanto, se três, ok, então agora está funcionando. E vamos realmente remover isso são balas e linhas de bala porque já sabemos que está funcionando agora. Então, em Plantas,
jogador, base de jogadores, e está vindo do traço de linha. Então aqui a linha traçada por canal, o modo de depuração, Vamos torná-lo nenhum de compilação e menos reprodução. E você pode ver que agora não temos nenhum alinhamento para olhar.
61. Como importar fontes personalizado: Agora que terminamos nossa interface simples,
então fizemos essa interface do usuário do Wave. E a única coisa que fizemos por isso foi este texto. E agora isso é a única coisa que precisamos para a interface do usuário do Wave. Mas o que podemos fazer é realmente estilizá-lo com fundos de
clientes e você pode fazer isso com qualquer interface de usuário que você tem dentro de seu jogo. No entanto, você geralmente deseja obter UI personalizada ou fundos personalizados apenas para tornar seu jogo mais exclusivo. Aqui você pode ver que eu tenho refutação, mas na verdade não é Roboto. Eu não tenho nada. Isto é do meu jogo anterior que eu criei. Então vamos em frente e baixar um fundo personalizado que podemos usar aqui. E o que você pode fazer é que eu já o abri dentro do Google, tentei procurar fundos do Google, e aqui podemos encontrar três fundos. Então, sob os fundos do Google, clicando sobre isso. E dentro do URI pode baixar qualquer fonte que você deseja para seus jogos ou todas essas obras. E o que costumo fazer aqui em categorias é remover estes. Eu gosto dos estilos san-serif e serif e da espessura. Eu queria que ele fosse muito grosso para que ele pudesse ser visto dentro do jogo. E talvez eu possa usar, vamos usar este cigarro de um mês. Ou talvez o Tick 0 seja legal ou o Open Sans. Você pode escolher o que quiser. Só vou usar este. E você pode clicar em Baixar família. E quando você fizer isso, ele vai baixar essa fonte para que você possa olhar, então este é o que eu baixei. Vou extraí-lo aqui na minha área de trabalho. E eu vou usar este negrito e preto. Acho que não vou para os outros. Só estou extraindo aqueles dois. E este aqui, se você abrir o motor novamente e você minimizá-lo um pouco. E aqui vamos realmente dentro da pasta UI, deixe-me realmente fazer uma nova pasta aqui. Então deixe-me fazer um, ou, na verdade, em vez da interface do usuário, podemos apenas importante fora da pasta de interface do usuário. Mas se você quiser, você pode criar uma nova pasta chamada textos e você pode empregar lá. Mas vou arrastá-los para dentro daqui agora. E então ele vai dizer, você
gostaria de criar um novo fundo de ativos usando estes? E eu só vou clicar em Sim Tudo, em seguida, vai criar alguns ativos do fundo para mim automaticamente vai clicar em Salvar tudo. E isso é muito fácil, foi isso. Então agora podemos entrar nesta onda, clicar neste fundo, e agora você pode selecionar o que quiser usar. Então este ousado, por exemplo, você pode ver como ele se parece. E este é o preto que é mais, mais ticker aqui. Então eu vou usar este preto e vamos realmente aumentar o tamanho para talvez 60, ou talvez seja demais para 50. E é assim que vai parecer. Então, se eu compilar e clicar em Reproduzir, agora, é aqui que vamos parecer. Agora ainda não parece bom porque não é muito visível. Então o que eu posso fazer aqui, então clique neste texto. E a propósito, você pode fazer isso maior só para que não pareça muito estranho. E disse que a posição do x para 0, por isso está no meio novamente. E o que você pode fazer por este aqui é, na verdade, você pode adicionar algumas sombras. Então aqui dentro da cor da sombra, você pode colocar o Alpha. Então é assim que a opacidade. Então, clicando, definindo-o para um, então você está realmente tem um vaivém. Se for 0, você não tem sombra. Então, clicando em um ou escrevendo um. E então o deslocamento de sombra, podemos ajustá-lo para 55. Você pode ver aqui que temos uma sombra por trás desse sexo. Talvez 66, e não quero que seja tão visível. Ou talvez 0,5 aqui embaixo são 0.3 está funcionando também. Então agora eu posso compilar e clicar em Reproduzir. E você pode ver que está mais visível agora. E talvez 66 a mais. Posso clicar no texto e direitos para quatro. E isto deve ficar bem. Se você quiser, você sempre pode ir em frente e adicionar um contorno aqui para que você tenha algumas configurações de contorno e você pode ver que você pode adicionar um contorno para seus textos. Então, se você quiser um esboço aqui, você pode ir em frente e aplicar isso. Mas vamos sem um esboço. E isso realmente não importa. Eu não estou muito preocupado com o design da interface do usuário. Você pode projetá-lo como quiser. Mas lá eu sei que temos uma interface básica dentro do jogo. E você pode ver que aparece toda vez que temos uma nova onda.
62. Fazendo o jogador: Agora estamos prontos para fazer o inimigo perseguir o jogador. Por isso, neste momento o nosso inimigo está parado e não está a fazer nada. Então agora eu quero que o inimigo persiga o jogador. Então, o que queremos fazer é dentro da pasta blueprint, podemos clicar com o botão direito do mouse e criar uma classe blueprint. Chegou agora vamos criar um,
um controlador de IA para que a IA possa realmente sentir o jogador e, em seguida, passar para o que o jogador. Agora, você não pode fazer um controlador AI dentro daqui, você só pode torná-lo controlador preto para o jogador, mas você pode clicar em todas as classes. E dentro daqui você pode procurar pelo controlador AI. E vocês podem ver aqui que temos um controlador de IA. Você vai selecionar este. Desvio multidão AI controlador está em curso para adultos clique sobre ele sobre este flex a perna. Vamos chamá-lo de AIC para controlador de IA e, em seguida, clone strike. Estou tentando manter a mesma convenção de nomes que esta aqui. O que você quer fazer a seguir é lembrar, nós realmente atribuir controlador de exibição dentro das configurações do mundo. Então adicionamos este comando preto ao nosso jogador ou ao personagem que estamos usando. Então temos que fazer o mesmo para o inimigo que vai dentro da pasta
do ano inimigos e da base inimiga. E dentro da base inimiga temos algo chamado classe de controlador PI. E o que vamos selecionar são nossos próprios ataques de clones AIC. Então este é o nosso controlador AI que será usado. Então era só isso que tínhamos que fazer. Então agora podemos fechar isso e vamos entrar no nosso controlador de IA que criamos. Vamos entrar no gráfico de eventos e vamos excluir isso por enquanto. Então, em vez de adicionar alguns dos componentes, temos que adicionar algo chamado sensoriamento da palma da mão. Aqui em sentir este. Então este é, este é o que vai sentir o nosso caráter, vai encontrar o nosso personagem. Ele, quando ele encontrar o personagem, ele vai se mover em direção ao personagem. Então só chamá-lo de pontos e pontos e cantar, tudo bem. E aqui dentro das configurações para os pontos sentindo todos esses padrões estão bem. Não precisamos mudar nada, exceto este. Então, o ângulo de visão periférica. Então aqui podemos escrever 180 e isso basicamente significa que vai olhar 360, 360 graus para ver se há um jogador dentro do mapa. E isso é tudo o que tivemos que fazer para esta detecção de lagoa. Então, compilando, clique em Salvar. E aqui dentro dos pontos sentindo, você pode ver aqui que temos alguns eventos que podemos fazer. E o que queremos fazer é que é muito legal. Você também pode fazer aqui ruído, então ele ouve um ruído. Mas a coisa que queremos fazer é invisível. Então, quando este AI, quando o, quando o grunhido temos dentro do mapa, quando ele vê nossas lagoas. Então é caráter CSR. O que queremos fazer? Ok, então o que queremos fazer é primeiro, queremos verificar se
este paan que o Grunt está vendo se é um personagem, assim como os jogadores, desculpe. Então poderíamos ter muitos pontos. Então poderíamos ter muitos pontos em nossa, em nossa cena. Poderíamos ter MPC, poderíamos ter qualquer coisa. A única coisa que estamos interessados em mudar é o jogador. Então, novamente, temos que dizer ator tem tag e dizer player. Então se, se é o jogador que você está vendo nós
podemos em um ramo e nós temos que fazer outra coisa. Então eu vou criar uma nova variável, e eu vou chamá-la de peão jogador. E o que eu quero fazer é que eu só quero por causa deste lago sentindo toda vez que ele olha para o seu jogador, então ele olha para o personagem aqui, o jogador. Vai criar esta variável o tempo todo. Mas eu não quero definir essa variável o tempo todo porque imagine que você tem a IA e você tem o jogador. E a IA olha para o jogador e os sensores. Então a IA vai definir esse personagem o tempo todo. E nós não queremos configurá-lo o tempo todo porque uma vez o personagem foi definido ou o jogador foi visto uma vez, ele vai armazená-lo em uma variável para que você não tenha que definir isso o tempo todo. Isso não é bom para o desempenho e também má prática de programação. Então, criando esta variável Jogador Peão. E vamos mudar este tipo para peão. E indo para selecionar este peão aqui, uma referência de objeto. Então agora temos esta jogada e podemos tirá-la daqui. Clique em Obter. E vamos clicar com o botão direito e clicar em promove uma variável ou desculpe, converter para intestino validado. Então agora podemos conectar isso e ele vai ver se o jogador nesta variável não é válido. Então vá em frente e vamos definir essa variável. Então o que eu vou fazer é segurar Alt e arrastar isso para fora. E o que podemos fazer agora é tirar isso e conectá-lo dentro desta variável. E agora, se for verdade, conecte isso também. E agora eu posso fazer um nó de rocha real só para parecer menos confuso. Para que eu possa colocá-lo aqui. Ok, então o que ele está dizendo é apenas para explicar isso rapidamente para que não seja muito confuso. Estamos dizendo que se você tem essa variável porque acabamos de chegar aqui, é uma variável aleatória. Se esta variável não for válida, se não estiver definida para nada. Então agora está vazio para começar, quando a IA não viu o jogador. Se não for válido, se estiver vazio, se isso for verdade, vá em frente e defina essa variável para qualquer jogador que você já viu agora. Então este é um que o inimigo te vê pela primeira vez. Ele sabe que você é o jogador porque você tem a tag e ele vai colocá-lo dentro desta variável. Então da próxima vez, o zoológico da AIC, não vai fazer tudo isso porque já está definido, então vai ser válido. E agora, na verdade, não vai disparar todo esse código o tempo todo. Ok, então a próxima coisa que queremos fazer é realmente mudar o jogador. Então agora você viu o jogador. Nós colocamos dentro de uma variável, e agora queremos perseguir o jogador. Então agora temos que fazer outro, outro evento. E este temos que fazer dentro da base inimiga. Então, se eu minimizar isso e entrar nos inimigos e em qualquer nova base, eu quero fazer um evento aqui chamado Chase Player. Então vamos em frente e torná-lo dentro da nossa interface. A base inimiga interfase. E eu vou clicar em Adicionar e função, vai chamá-lo de camada de perseguição. E vamos compilar e salvar. E vamos voltar aqui e à base inimiga. Vamos fazer com que esta camada eventos. Então, selecionando eventos. E agora estamos perseguindo o jogador. Temos algo chamado AI mudado para. Então, se eu arrastar isso e escrever ai movimento, então nós temos este ai movido para. Então aqui temos que selecionar a lagoa. Então o que está se movendo? É o inimigo. Então, esta base inimiga. Então, basicamente, descrevendo eu mesmo aqui. E o destino para o qual ele vai, não
temos que escrever nada aqui. O ator alvo é o jogador. Mas como trazemos o jogador aqui? Porque agora estamos dentro do inimigo. E a maneira como fazemos isso, eu acho que na verdade é a primeira vez que adicionamos, adicionamos variáveis aos eventos. Então, voltando para a interface, a interface base inimiga e este evento de jogador de xadrez, podemos realmente adicionar uma variável agora dentro da entrada. E aqui podemos procurar em e, em seguida, selecionando referência objeto peão. E eu vou chamar isso de alvos. Este é o jogador, este é o alvo. Então agora muito legal dentro da base inimiga. Agora, este evento que fizemos, vocês podem ver vocês, nós realmente temos esta, esta variável aqui dentro do evento. E eu acho que é a primeira vez que nós realmente adicionamos uma variável ao evento. E isso é muito legal porque agora você pode realmente mover informações através deste evento. Porque agora você pode realmente conectar este alvo dentro deste alvo. Mas agora temos que especificar o alvo. E lembre-se dentro do controlador de escada AI ou controlador AI aqui, nós temos que chamar este evento chamado jogador de Xadrez, porque agora ele definiu a variável para o jogador. Agora queremos mudar o jogador, mas agora precisamos,
precisamos de uma referência a esse inimigo obeso. Então o que podemos fazer aqui é que temos algo chamado evento em possuir, embora eventos em possuir. E o evento na posse é basicamente a jogada inicial. Então é basicamente a jogada inicial, mas isso é para a IA, é
assim que eles fazem. Então evento em possuições basicamente começar lugar. Então, quando isso, quando esta IA está dentro do mapa, vamos fazer, vamos realmente apenas fazer casting aqui. Então, lancem para a base inimiga da BP. E agora podemos clicar com o botão direito do mouse aqui e promover isso a uma variável e chamá-lo de inimigo. Agora que temos, temos uma referência a esta base inimiga. E basicamente agora podemos chamar, agora
podemos chamar este evento aqui. Então deixe-me descer aqui e arrastar essa variável inimiga. E agora você pode dizer “mudar esplendor”. E é uma mensagem porque é uma função interfase. Vamos conectá-lo aqui. E agora você pode ver que temos algo chamado alvo agora. Então isto é, na verdade, talvez seja um pouco confuso porque esse também é chamado de alvo. Mas este é o que fizemos e agora podemos realmente conectar isso. Então o alvo é o jogador que definimos, para que o inimigo o veja. Ele, ele coloca você dentro desta variável e agora você é o alvo. Então temos que ligar isso aqui. E esta informação, o alvo aqui, está a ser enviada para este evento e, em seguida, movendo-se para este alvo. Então, agora temos uma conexão. Agora ele sabe qual é o alvo. E isto é muito fixe. É uma maneira muito legal de fazer isso. Assim, você pode adicionar entradas para eventos e você pode mover informações de 11 classe Blueprint para outro. Então agora temos um chamado jogador de xadrez. E agora você tem que definir alguns radianos de aceitação. O raio e o raio de aceitação são o quão longe você está antes que ele o veja. Então, se é muito baixo, o jogador tem que chegar muito perto do, para a IA para ser visto. Mas talvez vamos tentar o nosso direito a um 100 e ver como ele se parece. Então acho que não estamos perdendo nada a menos
que tenhamos um bug e é sempre bom testar. Então, vamos clicar em Jogar e ele deve persegui-lo para baixo. Se não, temos um bug e agora temos um bug. E acho que sei porquê. Então, se sairmos, eu provavelmente esqueci. Então, clicando sobre os inimigos. E dentro da base interna. Dentro daqui podemos clicar nos padrões da classe. E padrões de aula auditiva, nós realmente temos que mudar este aqui para possuir IA. Então o controlador de ar não está funcionando. E porque aqui, o evento na posse nunca está sendo jogado, porque está definido para um lugar no mundo e nós não estamos colocando-o no mundo. Então eu vou selecionar colocado e mundo ou gerado e nós estamos realmente gerando. Eu vou apenas clicar sobre isso, clique em, Compilar e Salvar. E agora deve funcionar. Ok, então agora quando eu clico em Jogar e eu corro por aí, ele realmente não está funcionando. Você pode ver aqui que o ar não está
nos perseguindo e na verdade não quer remover isso do vídeo. Eu realmente quero mostrar a vocês como você pode depurar essas coisas. Então agora temos esse erro e de onde ele vem? Então agora realmente quero mostrar-lhe como, como você encontrar esses erros, porque é muito importante, você vai entrar naqueles com bastante frequência. Então, voltando para o controlador de IA aqui, e dentro daqui temos que encontrar o bug. Então podemos começar aqui, um evento na posse. Para que possamos escrever impressos. E agora vai imprimir uma corda. Então, se ele realmente possui corretamente, ele vai imprimir esta string aqui. Clicando no jogo. E string de impressão é tão importante para usar quando você depurar para ver onde o erro está. Então lembre-se de usar a cadeia de impressão. E você pode ver aqui no canto superior esquerdo que realmente disse olá, então ele está possuindo corretamente. Ok, então esta parte do código está funcionando corretamente, possui corretamente. Agora, eu nunca começo desde o início do código porque às vezes é uma perda de tempo. Então você pode realmente começar do fim do código e ver se ele está realmente funcionando no final porque você vai perder seu tempo se você começar do início. Então, agora vamos ver se ele realmente vai nos enviar. Então, se eu chegar perto, não
é realmente sentir o jogador. Então, algo está errado com este código. Então, se eu voltar, algo está errado dentro deste código aqui. Então você sempre pode tentar imprimir string e ver se ele realmente censurar aqui desde o início. Agora, agora que sabemos que não está funcionando. E vamos esperar pelo, pelo inimigo. E quando é fonte você pode ver que diz Olá
algumas vezes e na verdade está nos sentindo. Por isso, está a funcionar aqui. Então, algo está errado dentro deste código. E nós sempre podemos tentar fazer uma string de impressão aqui depois que o jogador tem tag e ele vai dizer verdade. Então, clicando no jogo e esperando o inimigo para desovar. E deve dizer olá se estiver funcionando. E você pode ver. Ele nunca disse “olá”. Então, algo está realmente errado aqui dentro da rede de código. Então, este aqui, nada está errado com isso, mas algo está errado com este ano. Então esta parte do código, porque na verdade está nos sentindo. Então, nada está errado aqui. E podemos ter esquecido de adicionar o jogador de tag ao jogador. Então ele nunca reconhece o jogador. E talvez eu tenha esquecido. Deixe-me realmente ver. Então, se eu minimizar isso e eu entrar dentro do jogador e o jogador baseá-lo no padrão classe se eu procurar por tag. Sim, na verdade eu não tenho uma etiqueta chamada jogador e talvez eu tenha esquecido que eu não fiz este curso por um a dois meses, então eu realmente não me lembro é agora. Mas talvez eu tenha deletado por engano, talvez eu não tenha feito isso. Então, procurando por tag dentro da base de jogadores, dentro dos padrões da classe. Aqui nas tags de ator, você pode clicar no plus e escrever player. Assim como no último jogo, e agora temos a camada de tag. Então agora ele deve realmente reconhecer o jogador. E vamos tentar clicar em Salvar e clicar em Jogar e ver o que acontece. Então, esperando o inimigo. E agora deve funcionar. Deve mover-se para o jogador. E você pode ver aqui ele está realmente se movendo para o jogador. Então este inimigo mudou-se para mim de modo que ele está realmente funcionando agora. E a coisa que temos que fazer, você pode ver quando o inimigo atinge o jogador, ele fica parado. E aqui é onde temos que atacar, então estamos prontos para atacar. Você pode ver o NMI está correndo atrás do jogador e quando ele atinge o jogador está parado e ele é suposto atacar. E depois que ele ataca, ele precisa sentir novamente e mover para o jogador novamente. Então eu acho que ele está correndo um pouco rápido demais agora. Então o que podemos fazer é reduzir o inimigo, movendo a velocidade um pouco. E a maneira como fazemos isso dentro de inimigos, podemos, podemos fazer isso acima de tudo pelos inimigos. Mas neste momento este movimento, eu não acho que seja, é eu acho que é específico para o solo. Não acho que seja um movimento global. Imagine que você tem inimigos diferentes. Só precisamos que este movimento discriminante seja mais lento. Então, entrando no grunhido da BP, dentro do movimento do personagem. E aqui podemos reduzir a velocidade máxima de caminhada. E talvez queiramos fazer isso também. Vamos tentar 400 e ver como é. Não queremos torná-lo muito lento e não muito rápido porque talvez esteja ficando muito fácil ou muito difícil. Então agora o inimigo desova e ele deve mudar o jogador. E agora você pode ver que está perseguindo. E eu acho que esta velocidade é boa. É, talvez seja um pouco rápido demais ainda, mas sim, eu acho que isso é legal. Você realmente reduz a velocidade um pouco porque é suposto ser fácil de começar e então fica mais difícil. Então talvez você esteja reduzindo para 300 e é isso. Lembre-se de compilar e salvar e fazê-lo em todos os outros. E agora estamos prontos para atacar.
63. Atacar inimigas: Certo, então agora temos o MPC perseguindo o jogador, e é hora de atacar o MPC. E nós temos muito o que fazer, então vamos andando. Então, para começar com o logotipo dentro da BP, base inimiga. Dentro daqui fizemos um evento chamado jogador de xadrez. Então o MPC ou a IA está perseguindo o jogador e quando ele atinge o jogador, nós temos que atacar. Agora queremos outro evento chamado ataque. E lembre-se que fizemos e as interfaces que fizemos a base inimiga. Então vamos entrar aqui, clique em Adicionar e adicionar uma nova função. Vamos chamá-lo de jogador de ataque e Compilar e salvar. Então aqui, digamos no jogador SAC e clique neste evento. Então agora podemos fazer aquele jogador de saco. Vamos chamar o evento aqui. Então, quando o NPC se move para o PS, a IA
não se move para o jogador? Então, aqui no sucesso quando você chegar ao jogador. Então, digamos jogador de ataque. E é uma chamada de interface porque é da Interface Blueprint. Certo, agora temos esse jogador de ataque. E aqui no jogador de ataque temos que fazer alguma codificação. E o que queremos fazer é tocar uma animação. Porque quando você está atacando a IA, a IA está atacando e ele está tocando uma animação. Então vou te mostrar algo que ainda não aprendemos. E é chamado de montagem de animação. E se você arrastá-lo até aqui e escrever montagem, você pode ver este chamado Les Montage. E é isso que queremos jogar. E parece bastante complexo, mas na verdade é muito, muito simples. Eu só tenho que explicar para você e você está pronto para ir aqui. Entäo, nos componentes de malha esquelética,
entäo é isso que estâ tocando este mês, e isto é, este é o Inimigo que estâ fazendo isso. E por isso precisamos desta malha esquelética. E lembre-se que uma malha estática é apenas uma malha. Por exemplo, se eu minimizar isso, esta caixa aqui é uma malha estática. Então é apenas, uma malha é simplesmente o modelo. Isto é que malhas. Malha estática. Apenas uma malha que é estática, não se movendo em tudo. E depois temos a nossa malha esquelética. E a malha esquelética é simplesmente uma malha, então um modelo que é animado e este é o nosso personagem. Então, se você segurar o mouse sobre o personagem, você pode ver que ele é chamado de componentes de malha esquelética. Então é uma malha esquelética. É uma malha que é animada. É por isso que se chama malha esquelética. Então ele precisa saber Skeletal Mesh e é apenas esta malha aqui para que você possa clicar e arrastar e aqui, como soltá-lo em cima daqui. Ou você pode clicar com o botão direito do mouse e dizer malha. E você pode ver aqui obter malha. Então esta é a nossa malha. Em seguida, você tem que jogar uma certa montagem, e nós temos que fazer uma montagem de animação. E deixa-me mostrar-te como se faz um. Então, dentro do mercado em, Vamos ver aqui em infinito,
infinito adversários lâmina, inimigo foi ir
para baixo para mestre concessões e inhere nas animações. Então o que eu quero escolher, este, o primeiro, o MLA ataca Malaya aqui. Então, eu vou clicar duas vezes sobre este. E vocês podem ver que esta é a animação de ataque que queremos. Então queremos transformar isso em uma montagem de animação. E posso clicar com o botão direito aqui. E aqui no topo você pode ver Criar. E então você pode criar um anime um toque. E você deseja ver que tem uma montagem aqui. E o que geralmente são chamados é um M para montagem de animação. E eu vou chamá-lo no SAC, assim mesmo. Agora temos uma montagem de animação e você pode clicar duas vezes nela. E aqui na montagem de animação, você pode ver que temos algum tipo de gráfico. Aqui. Nós podemos realmente codificar ou apenas notificar a animação quando você causar danos e quando você não faz. Então, por exemplo, você pode ver que esta é a animação e eu quero fazer danos sempre que a animação é neste estado aqui. Então, quando ele acertar o jogador aqui, então aqui à esquerda você pode ver que temos uma montagem e temos grupos diferentes. E aqui em notifies, é aqui que queremos estar. Você pode ver que você pode clicar sobre isso e adicionar, inserir notificar faixas. Você pode adicionar mais faixas se precisar disso. Mas agora vou removê-los. Só preciso deste número um. E dentro desta faixa de notificação número um, você pode clicar com o botão direito do mouse e dentro de adicionar notificar estado. Você pode selecionar esta chamada janela de notificação de montagem. Então estamos criando aquela janela de ataque. E você pode ver que você tem, você tem algum tipo de janela que você pode arrastar aqui. Então esta é a animação quando janela de montagem. E vamos para o lugar onde você quer fazer o estrago. Então eu quero causar danos aqui mesmo quando ele atacar. Então eu vou mover este aqui. Então este é o começo aqui. E o fim quando terminar o ataque é algures por aqui. Então eu vou arrastar este aqui e colocá-lo aqui. Então esta é a janela do saco e ele ataca aqui. Ele causa danos e acaba com o ataque aqui. Ok, então agora nós criamos isso e isso é tudo o que precisamos. Então, podemos clicar em Salvar. E podemos dar-lhe um nome aqui e notas para encontrar o nome. Podemos chamar de ataque, se quisermos. E podemos dar uma cor, se quisermos, isso é com você. Podemos ver que muda de cor. E vamos deixar este para que eu vou clicar no X para fechá-lo. E eu vou voltar e tipo de plantas de base inimiga, inimiga, inimiga. E aqui nas notas da Phi. Então aqui queremos adicionar a nossa montagem. Então, se você clicar nisso, você pode ver que você não tem muito para escolher, porque esta é a única montagem de animação que você tem, e esta é a que nós criamos. Então você pode clicar neste ataque de montagem de animação. E então você tem que escolher o dramaturgo. E este é um que está bem. E 0 aqui e começando seção e zeros. Isso está tudo bem. Então eu quero transformar isso em uma variável e eu vou te dizer o porquê. Então você pode clicar com o botão direito do mouse e promover a variável e apenas chamá-lo de ataque a ele. Só estou chamando de animação de ataque. Então esta variável é muito, muito importante que você faça essas em variáveis porque agora você tem essa montagem de ataque. E se eu minimizá-lo, e eu abrir migrante. E se eu clicar em Abrir editor de blueprint completo. Agora você pode ver que esta é uma variável. Lembre-se, todas as variáveis que você faz dentro
da classe pai também serão herdadas na classe filhos. Lembre-se que o subsídio da BP é um filho da base inimiga. Então esta variável também estará disponível aqui, assim como é que o, é que booleano e a saúde está disponível aqui também. Então agora, quando você tem inimigos diferentes aqui, então imagine que você tem a concessão, você tem uma aranha, você tem um golem, você tem um esqueleto. Cada um deles você pode realmente atribuir uma animação de ataque diferente. Então lembre-se de transformá-los em variáveis, porque se você não transformá-lo em uma variável, você não pode liberar animações de ataque de diferença definida aqui. Mas se você tê-los em variáveis, você pode definir, se você tem dez inimigos diferentes, você pode definir uma animação de ataque aleatório para cada um desses diferentes inimigos. Tão importante transformá-los em uma variável. Então você pode realmente editá-lo e torná-lo diferente em cada inimigo. Certo, agora estamos atacando. E agora o que queremos fazer é começar a notificar. Isto é se eu realmente ir em frente e eu ir para a pasta do mercado. E agora nós podemos realmente, em vez de entrar aqui, nós podemos apenas procurar e montá-lo. Então, qualquer segunda-feira como chamá-lo e ver, isso é muito legal para escrever prefixos para que possamos pesquisar rapidamente e eu posso entrar aqui. Então esta é a janela de notificação. É aqui que começa. Então este é o início notificado. E aqui queremos fazer alguma coisa. Então o que queremos fazer é algo chamado de atores de sobreposição de esfera. Então nós, estamos nos sobrepondo com atores. É assim que nós, como detectamos que estamos atingindo algo. Temos uma esfera que se sobrepõe ao nosso personagem. Quando a esfera se sobrepõe, temos atingido o personagem. E só para mostrar o processo mais visualmente, posso escrever Draw, Debug sphere. E agora esta esfera está desenhando como medo. E posso mostrar-te quando atacarmos. Então, se eu escolher uma esfera no local aqui, e o local que temos que fazer, temos que fazer algo aqui. Então, clicando em Adicionar e clicando em, deixe-me escrever esfera. Precisamos que os gatilhos temam a esfera de colisão aqui. Vamos selecionar a esfera de colisão, e vamos chamá-la de esfera. E aqui você pode realmente tentar movê-lo na frente. Como onde os favorecidos estão atacando? Então você tem que escolher onde ele está atacando. Talvez em algum lugar por aqui. E agora podemos pegar essa esfera e dizer que fica a localização do mundo. E você só tem que encontrar o local para que você possa colocá-lo aqui para que ele saiba onde ele está atacando. É aqui que a esfera estará. Então aqui você pode dizer em vez de, se você não sabe como é chamado, é chamado Get World Location. Mas se você não sabe como é chamado, apenas o local certo porque você está tentando encontrar um local. Foi assim que comecei quando comecei a fazer plantas, só reescrevi a localização. E você pode ver isso, esta é a única opção que você tem. Obter World Location ele aqui e adicioná-lo aqui. E vamos também fazê-lo aqui na esfera de depuração. E a esfera de depuração. Você pode ver aqui que é apenas desenvolvimento. Então isso só está aqui para nos ajudar. Nós vamos apagar isso em um segundo, mas eu só queria mostrar a vocês porque desenha uma esfera para que vocês possam ver onde essa esfera está atacando. Então o raio é 100, isso é bom. São múltiplos vão fazer o raio 100 aqui. E com o que vai se sobrepor? Isto é o que os tipos de objeto significam. Então você pode arrastar a partir daqui e escrever matriz de microfone. Lembre-se quando é um quadrado como este e não um círculo, isso significa que este é um array e não uma variável normal. Então eu vou fazer array e vamos escolher pornografia. Porque lembre-se do nosso personagem, o personagem jogador que temos é um tipo de lagoa. Então, quando ele interage com peão, é
isso que queremos fazer. E isso é bom. Você não tem que fazer nada aqui e acessar para ignorar, nós realmente não temos nada. Então agora vamos definir a duração desta esfera Draw Debug para que a esfera não desapareça instantaneamente. Então vamos, vamos configurá-lo para cinco segundos por agora, a espessura que também podemos definir. Então vamos, podemos definir para cinco e ver como isso é grosso. Então, clicando em compilar e clicando em Salvar. Agora isto está definido. E se você clicar em Reproduzir agora e tentar ver a animação, provavelmente não verá nada. E eu explico porquê. Então o GRAV-D vem aqui. Você pode ver que ele realmente ataca porque ele desenha a esfera. O que você não pode ver a animação e por que é isso? E isso provavelmente está dentro do nosso projeto de animação porque eu não me lembro que nós criamos essa coisa específica que precisamos. Então, clicando neste blueprint de animação para a concessão. E aqui dentro do gráfico de animação. Então, se você clicar no gráfico de animação aqui, e lembrar se você está dentro de algo específico, você sempre pode clicar novamente aqui. Então aqui na primeira, primeira janela, temos que adicionar algo entre a locomoção e entre a saída, pose de saída. Então, arrastando aqui e escrevendo padrão, ou realmente assim como você pode escrever slot. E você pode escolher este slot, slot padrão. E este é necessário para reproduzir montagens de animação. Então, se você não tem,
se você não está entendendo por que suas montagens de animação não estão sendo reproduzidas, mesmo que o, parece que eles estão funcionando. É porque você não tem esse slot padrão de slide ativado. Então lembre-se de colocar isso mais, você não será capaz de ver suas montagens de animação. Então, se eu clicar em Jogar agora e eu esperar o inimigo. Agora, aqui está um ataque deve funcionar. Não sei onde está lá? Você pode ver que isso é hackear e agora ele está incomodando um pouco. Então você pode ver que ele fez Ed pular e nós podemos consertar isso. Mas ele está trabalhando. Então a montagem de animação está funcionando. Então, se voltarmos para dentro das plantas, aminas e base inimiga aqui, dentro daqui, eu quero que você entre dentro da parte de vista. E você sempre pode tentar ajustar este, este aqui em comparação com o local onde ele realmente está atacando. E o que eu quero fazer em vez de clicar no jogo
e, e esperar o tempo todo, eu realmente quero remover isso. Então, se eu ir e selecionar o blueprint, e se eu entrar e o modo de jogo, e vamos apenas removê-lo temporariamente. Então eu quero ver onde eu criei essa lógica. E, na verdade, está aqui dentro dos inimigos gerados. E atrasei cinco segundos. Eu só vou removê-lo aqui apenas por agora e conectado. E o que você quer fazer é que
às vezes você tem medo de esquecer de conectá-lo novamente. Você sempre pode selecioná-lo e clicar em C para adicionar um comentário. E às vezes faço isto e faço um vermelho. Então eu me lembro. Há algo aqui que eu deveria me lembrar. Você pode até escrever um comentário que deve ser reconectado. Reclamações oculares, ligações são como instantaneamente, então eu posso realmente apenas mais rápido e ele está atacando e a esfera está bem na frente deles. E eu acho que para nós, se voltarmos para os inimigos e qualquer base, eu acho que 100 é bom, mas eu só quero ir um pouco mais longe, porque eu acho que é um pouco perto demais. Então talvez assim. E vamos clicar em Play ancestral pela última vez. Então isso está bem no centro de nosso personagem, e isso é realmente perfeito se você quiser a localização aqui, isso é o que é, mas você pode tentar se mover e ver onde ele se encaixa melhor. Então, agora que sabemos que o ataque está correto, podemos realmente ir em frente e remover essa esfera que está atraindo para o nível porque nós realmente não queremos vê-lo. E também podemos tocar um som quando ele está atacando. Então eu posso mover isso um pouco. E eu posso dizer som tardio no local. Para que possamos selecionar o som. Vou arrastá-los um pouco para baixo. E qual é o local em que queremos jogar? Vamos apenas escolher a localização desta esfera também. Então conectando-o aqui e fazendo um nó de redirecionamento que irá clicar assim e o som que queremos escolher agora, não
temos muitos sons e isso não é realmente um,
um curso de som ou qualquer coisa, mas eu apenas quer mostrar-lhe que você pode, você pode ir no YouTube e encontrar seus sons. Mas lembre-se quando eu estou fazendo porque é copyright tudo e eu realmente não posso dá-lo a você. Então vá para o YouTube se quiser encontrar um som de sucesso. Mas, no fim das contas, vamos usar o som da faca aqui. Há um chamado Faca Q. E se você pudesse tocar, você pode ouvir o som. Vou abaixar a cama. Talvez seja muito alto. Peoria, não quero que pareça irritante neste curso. E eu vou voltar para a base inimiga. Aqui, vamos selecionar a noite. Acho que se chama mais baixo, este, faca mais baixa. Q. Então já fez um som enorme como bom para nós. E agora, quando você clica em Jogar, agora está nos deixando legal. Outra coisa que eu quero fazer
é, eu realmente quero fazer a animação de ataque um pouco mais rápido porque eu acho que é muito lento. Indo dentro dos detalhes de ativos aqui na montagem, você pode realmente alterar a escala de taxa. Este é o quão rápido a animação está sendo reproduzida. Então esta é a taxa normal. E se eu escrever três, você pode ver que está tocando muito rápido. E eu só quero escrever para, eu acho que dois é um bom número. Vamos clicar em Reproduzir novamente e ver como ele lugar. Sim, então agora está um pouco, um pouco melhor então ele está atacando, mas temos um dólar, saltando e temos que consertar isso. Então o problema que estamos vendo o que o salto quando ele, depois que ele está atacando é basicamente se voltarmos para os inimigos e o projeto aqui dentro do movimento local, nós fizemos essa desova. Então, desovar é basicamente onde ele está pulando aqui, pulando do céu. E o que está acontecendo é quando ele ataca, na
verdade está reproduzindo esse plano de animação. Então estamos meio que desovando ele de novo. Então, reproduzindo essa animação novamente. E isto pode não funcionar neste caso. Então talvez tenhamos que excluir essa desova. Então você pode clicar em Excluir, você pode excluir este apontando um e apenas conectando o ídolo. E o que queremos fazer agora em vez de ter a reprodução de geração aqui no blueprint de animação, podemos apenas reproduzi-lo como uma animação separada dentro do, a classe blueprint. Então, se voltarmos para a base inimiga, e aqui, vamos fazer uma jogada inicial. Na verdade, já temos um. Então, aqui nos eventos começar a jogar. Vamos, na verdade, adicionar esta animação. Então, se nós apenas pegar esta malha ou ele pode apenas escrever Play Animation e ele cria a malha automaticamente para você. Então, se você escrever Play Animation e você pode selecionar este, você pode ver que ele cria esta variável de malha de malha para você. Então, tomando esta animação de reprodução e você tem que selecionar qual animação você deseja jogar. E eu acredito que é chamado de algo com drop-down. Então, por Serif para a lista suspensa, é uma chamada Exogamia que o Mestre Grant caiu. Então, clicando nesse e agora você pode compilar e ver o que está acontecendo. Então, se eu clicar no jogo e você sabe, o que eu quero fazer na verdade é dentro do modo de jogo, eu vou aumentar o, o número da onda. Então clique na onda, então nós geramos muitos deles para que possamos ver o que está acontecendo. Quando eu tentei desenvolver, eu faço assim para que eu não tenha que
esperar o tempo todo e perder tempo. Então clique em Jogar. Você pode ver o que está acontecendo. A fricção do céu. Mas eles estão se movendo instantaneamente. E agora você pode ver que há animações grampeadas. E isso é porque se voltarmos para os inimigos aqui, a base inimiga, se voltarmos para a base inimiga, agora está fazendo essa animação de lançamento, mas não queremos que ele se mova imediatamente. Então vamos adicionar um atraso. E eu descobri, eu descobri que 1.3 segundos é um bom número aqui. Você sempre pode testar e ver o que é um bom número. E depois de reproduzirmos a animação, lembre-se que essa malha está sendo executada em um blueprint de animação. Então, se eu for para o grunhido e na malha você pode ver que ele está sendo executado neste blueprint de animação de uso. Esta é a planta que estamos a executar. Então você tem que se lembrar de atribuir isso novamente. Então agora só está jogando em animação. E então você tem que sair daqui e dizer Definir modo de animação. Assim. Porque se você voltar para a medida, este é chamado de modo de animação. Então, queremos definir este modo de animação para usar blueprint de animação. Isto é o que queremos em última análise. E agora deve funcionar. Mas de novo, temos que gostar agora que ele está perseguindo o jogador imediatamente e não queremos isso. Então você pode ver que está caindo bem. E então ele está andando é correto. Mas eles estão caindo e então eles estão enfrentando aquele jogador imediatamente. Mas nós queremos, nós queremos que eles caiam primeiro para que eles não estejam deslizando no chão. Então lembre-se que criamos o jogador de gosto dentro do controlador de IA. Então, clique nesse. Você pode ver este chamado jogador de xadrez. Então isso é o que fizemos aqui com a detecção da lagoa. E não queremos mudar o jogador imediatamente. Vamos atrasar um pouco. Então, atrasando em 1.3 novamente, você vai colocar 1,3 segundos, assim. E agora deve funcionar. Então, se clicarmos em Jogar, e agora eles estão se movendo. Então você pode ver a queda primeiro antes que eles realmente, antes que eles realmente se movam para nós e atacam. Então agora temos um pequeno inseto. Você pode ver que eles estão agitando como quando estávamos girando. Uma tonelada de geração de distância. E outro bug é que quando eles estão atacando, eles não estão mais se movendo. Então eles estão parados. Então vamos corrigir primeiro que eles não estão atacando novamente. Então, clicando na base inimiga do inimigo, nós fizemos o ataque aqui em baixo. Então, a montagem do jogo. Temos que fazer algo quando a montagem estiver completa. Então temos que perseguir o jogador de novo. Então, arrastando até aqui e dizendo “Chase jogador”. Então é este aqui. E vamos selecionar o jogador de xadrez. Ouça como a chamada da interface aqui. Então vamos perseguir o jogador novamente após a animação terminar. E lembre-se de selecionar qual jogador perseguir novamente isso será muito confuso porque da próxima vez que ele vai atacar. Se você deixar isso em paz, se você não tem nada aqui conectado, ele não vai saber o que atacar. Então lembre-se de conectar isso novamente. Então ele pode realmente quebrar a partir daqui. E você pode conectá-lo aqui em baixo. Ou outra coisa se você quiser torná-lo mais limpo, este jogador de ataque, você pode realmente adicionar uma entrada de peão aqui. Então, se você voltar para a interface, se eu tiver aberto, eu não vou. Então, se eu for para as interfaces de blueprint e base EMI, e eu clicar no jogador de ataque aqui eu posso fazer uma variável clicando aqui na entrada, na verdade não na saída. E a entrada, eu posso fazer um pon, referência de objeto variável. E eu posso chamá-lo de alvos, Compilar e Salvar. E na Embase você pode ver agora que temos este alvo e deixe-nos conectar este alvo aqui. Então agora está um pouco mais limpo. E eu posso clicar duas vezes nele para torná-lo um pouco mais limpo aqui, assim como este. Então não é tão confuso assim. E agora posso arrastar este alvo até aqui. Então eu posso clicar duas vezes e colocá-lo aqui. Assim como este. Então isso é, você pode fazer isso assim ou pode realmente arrastar isso até aqui, isso depende de você, mas isso pode ser um pouco mais limpo de fazer. Então agora, os inimigos realmente vão atacar novamente depois que
ele, nos atacou pela primeira vez. Você pode ver que eles estão atacando e ele está realmente indo atrás de nós novamente. Ok, então agora está funcionando. Mas você pode ver quando eles estão se movendo, eles estão nervosos, eles estão tremendo. O inimigo está tremendo e não é porque tem medo, é porque temos um inseto. Você pode ver aqui, eles estão meio que fugindo quando estão se movendo. E temos que consertar isso. Está dentro dos inimigos e da base inimiga. E então, se aqui nos padrões da classe, temos este chamado use controller rotation você é. E o que está acontecendo é que na verdade está sendo movido ou controlado por duas coisas diferentes. Está sendo controlado pelo seu e ele se foi sendo controlado pelo que a rotação do inimigo é. Então, se você desativar esta rotação, seu, se você desativá-lo, e você compilar e salvar. E vamos voltar ao movimento dos personagens. E dentro do movimento, vamos descer. E aqui, se eu puder encontrá-lo. Este chamado “Orient Rotation to Moviment”. Então, selecionando isso, e isso deve resolver o problema. Então, se clicarmos em Jogar agora, e agora, vamos cair para baixo ou andar por aí. Agora você pode ver que eles não estão nervosos, eles não estão mais com medo, e eles estão se movendo corretamente. E como deveria ser.
64. Aplicando danos ao jogador: Ok, então agora, a animação de ataque está feita e a NBC ou a IA está atacando. Agora ele pode causar algum dano no jogador. Voltando para a base inimiga
, abre na minha segunda Manchúria. Então, se eu trazê-lo aqui, esta é a interface. E fizemos isso como um jogador de tag. Então, agora queremos aplicar algum dano. E você já fez isso antes. Então, se você quiser tentar a si mesmo, você pode fazê-lo. E aqui nós queremos fazer isso juntos. Então aqui na esfera se sobrepõem atores. Então nós fizemos este. Lembre-se que nós, nós sobrepomos o Po1 e quando o ponto se sobrepõe a esta esfera, isso significa que o on foi atingido pelo inimigo. Então aqui, o valor de retorno, se você segurar o mouse sobre ele, ele diz através de se houve uma sobreposição que passou os filtros, falso caso contrário. Então, vai ser verdade se o NMI ou a IA está atingindo o jogador. Então eu posso realmente arrastar para fora deste e clicar em B para branch. Então agora podemos dizer se o, se há uma sobreposição com pornografia, então se a camada foi atingida, podemos fazer algo com isso. Então podemos aplicar essa vantagem. Então, toda vez que o jogador for atingido, podemos aplicar dano. Não queremos fazer assim. Então, se eu remover isso assim, nós não queremos fazê-lo assim porque desta forma nós estamos sempre indo para danificar o jogador mesmo que o jogador não é atingido. E é por isso que estamos adicionando esse booleano para verificá-lo. Se houver realmente uma sobreposição e se houver uma sobreposição com a lagoa. E diz que houve uma sobreposição que passou pelos filtros. E agora o filtro é este lago. Então, quando o jogador é atingido, nós aplicamos dano. E o ator danificado é o jogador. E temos uma referência ao jogador aqui. Lembra-te que fizemos este alvo aqui. Então eu posso realmente arrastar a partir disso e colocá-lo dentro de um ator danificado. E para torná-lo mais limpo, Eu posso clicar duas vezes nele aqui e fazer cuidado redirecionar nó. E nós temos, precisamos fazer um maior aqui. Simplesmente assim. Talvez possamos arrastar isto mais para trás assim. Então é mais limpo. E aqui no dano base, quanto dano você quer fazer? E este aqui, você pode definir um dano aqui, um número estático. Mas uma coisa melhor a fazer, podemos realmente transformá-lo em uma variável. Porque lembre-se, se temos muitos inimigos, se temos inimigos diferentes, queremos causar danos diferentes para cada inimigo. Então não queremos que a aranha,
a concessão, o esqueleto, e assim por diante todos causem 25 de dano. Talvez o esqueleto deles seja muito fraco e só cause 5 danos. Então podemos clicar com o botão direito do mouse aqui e promover isso para uma variável e chamá-lo. Podemos chamar o dano inimigo ou o dano. Só vou chamar de dano. E posso arrastá-lo até aqui. Então, agora essa variável de dano, uma vez que está na classe pai, as classes filho também herdarão a esta variável. Então, se você entrar no padrão da classe, nós podemos realmente escolher quanto dano este grunhido causa agora. Então, talvez queiramos que a marca tenha a ver com 25 danos. E se fizermos um novo inimigo, podemos mudar isso para o novo inimigo. Então agora os favorecidos estão causando 25 de dano. E, e lembre-se disso, lembre-se de alterar este L Sue, você terá 0 danificado por padrão. Então, mudá-lo para 25. Você também pode escolher a saúde do subsídio, se quiser. E agora temos esse dano aplicado. Então, o que isso aplicar danos feitos? Ele pode reproduzir um som que quando o jogador é atingido. Então, toque som no local. E o local em que queremos tocar o som é basicamente a localização da esfera aqui. Então vamos arrastar a partir deste nó re-wrap e eu vou conectá-lo a uma deslocação aqui. E eu vou mover isso um pouco para baixo. Além disso, este e este. Então é um pouco mais limpo. Posso clicar duas vezes aqui e fazer assim. E deixe-me colocar isso para baixo assim. Então agora vamos tocar um som e o que está embaixo, queremos tocá-lo. Agora, estou improvisando um pouco sobre os sons porque não temos muitos. Então eu vou entrar no EPS e nas armas, e não este na verdade. Dentro da arma militar, escuro e dentro de sons. Eu vou em uma espécie de espingarda. E dentro daqui, vou escolher um chamado corpo de impacto da espingarda. E eu vou reduzir o som só para este curso. Então não é irritante para você. Talvez 0,25. E então este som que eu realmente vou usar. Então, se eu voltar e abrir o meu, eu acho que eu fechar como minha base. Então, indo aqui, abrindo a base NMI NMI. Assim, vou procurar por ele. Impactos da arma de tiro. Este aqui, impacto da espingarda, corpo. Q Eu acredito que foi este aqui, sim. Está bem. Então estamos tocando um som agora quando o jogador é atingido, e eu também quero gerar alguns efeitos. Então é um pouco mais interessante. Assim, efeitos de geração jogar emissor ou não, Laplace gerar no metro, em vez no local. Então, gerando um VFX, então efeito visual em um local. E agora podemos definir a localização para esta esfera. Então o, o, o,
o VFX , os efeitos visuais aparecerão neste local desta esfera aqui. Mas às vezes o jogador pode estar um pouco longe da esfera e parece um pouco barato demais. E é melhor encontrar a localização do jogador e realmente jogar os efeitos do jogador. Então, para fazer isso, não temos uma variável para o jogador. Então, nós vamos dizer recebe personagem jogador assim. E já fizemos uma função de interface. Uma função de interface. Lembre-se que dissemos Get Player ref. Este é o que fizemos. E podemos conectar isso. E como o jogador, podemos dizer obter a localização do ator. E agora temos a localização do jogador muito facilmente. E agora podemos conectá-lo. E agora temos que fazer um efeito. Agora, o efeito que eu quero fazer é algum efeito Granada, e é apenas um pouco de fumaça. Então, se eu voltar aqui e encontrar dentro da arma militar escuro em efeitos, e eu quero usar, vamos tentar este flash de granada. Então eu posso arrastar este flash de granada, e eu posso arrastá-lo para dentro daqui. Você pode procurá-lo aqui. Na verdade, é por aqui. É muito fácil de encontrar, ou você pode arrastá-lo e soltá-lo em cima disso. Então, agora está lá. E eu para fazer a escala dele um pouco, um pouco maior. Então, para, para efeito de tonalidade é o dobro do tamanho médio e tudo o resto está bem. Agora vamos clicar em Jogar e ver o que, como ele se parece. Então, respondendo, sim, então agora está fazendo um som atingindo o sinalizador. A última coisa que queremos fazer é aplicar esse dano na camada superior. Então, queremos entrar nas plantas, dentro do jogador e na base de jogadores. Agora precisamos fazer um novo evento chamado qualquer dano. Evento, qualquer dano, porque agora estamos aplicando o dano. Aqui. Estamos aplicando danos. E agora, quando aplicarmos o dano, ele vai disparar este evento aqui. Então eu posso escrever a cadeia de impressão para que você possa vê-lo. Vamos fazer isso na próxima lição. Mas agora você pode ver que ele está dizendo olá toda vez que eu estou realmente recebendo o dele. Tudo bem, então agora temos isso feito, e agora vamos acabar e fazer a saúde para o jogador.
65. Saúde de jogadores: Vamos agora adicionar um pouco de saúde para o jogador. Agora podemos entrar na base de jogadores. E aqui nós realmente fizemos isso e em caso de danos. Então, agora vamos fazer um pouco de saúde. Então, criando uma variável aqui, olhando para o Plus, chamando-o de saúde. E podemos alterar o tipo para flutuar porque é um valor numérico que queremos. E esta saúde, podemos definir a saúde padrão para o jogador é 100. E agora podemos arrastá-lo até aqui e pedir ajuda. E podemos dizer menos. E podemos menos a saúde que é 100, seria, seria o dano do grunhido? E lembra-se dos danos causados pelo grunhido? Se eu voltar aqui e os inimigos gemerem, o dano para o chão é de 25. Então se, se o jogador for atingido pelo grunhido, ele vai dizer 100 menos 25. E então temos que configurá-lo. Então segurando Alt e arrastando. E agora podemos configurá-lo, então a nova saúde será 75 porque 100 menos 25 equivale a 75. E se o jogador é atingido para esta segunda vez, agora o, a saúde é 75 menos 25, então ele vai ser 50. Então é assim, como se faz. Então você tem a variável de saúde u menos o dano dele, e então você defini-la novamente para este novo valor. Certo, então agora temos a saúde pronta. E se você quiser vê-lo funcionando corretamente, nós podemos realmente apenas escrever e string e
podemos imprimir o valor desta ajuda para que possamos ver o valor caindo. E você pode clicar no jogo. E se estamos chegando aqui, você pode ver que está indo para baixo e sendo 0. Agora o ajudante vai, Ele vai para números negativos e talvez você não queira isso. Às vezes, pode ficar grampeado se fizer isso. E é por isso que podemos usar um nó chamado Clam. Então, se eu clicar com o botão direito aqui e drived grampo, e você tem que selecionar o para o flutuador. E isso ocorre porque nossa variável de saúde é do tipo float, então não é um inteiro. Então, faria muito sentido selecionar este com o flutuador. E eu posso desconectar isso e movê-lo um pouco aqui. Então agora a Saúde que é 100 menos 25 será 75. E esse valor pode realmente aqui. E o valor mínimo para isso aqui, para esse valor, valor de saúde, o mínimo é 0. Não queremos deixar a saúde abaixo de 0. E o máximo que você escolher que talvez o seu jogo você é, você é jogador pode ter 200 e saúde são apenas 100. Talvez você possa ter 500, isso é com você. Mas agora, nosso jogador só tem 100 no máximo, então podemos colocá-lo em 100. E agora podemos definir esse valor aqui. Então o que vai acontecer aqui é que o jogador está ficando danificado e está sendo danificado por 25 ao longo do tempo. E quando o jogador tem 0 pontos de vida e está ficando danificado, novamente, nunca mais vai abaixo de 0. Então vai ser 0 o tempo todo. Então agora eu posso compilar, clique, Salvar e clique em jogar. E na verdade eu tenho que imprimir o valor que eu esqueci. Então, imprimindo assim. E agora podemos imprimir esse valor e ver o que acontece. Então, clicando no jogo. E eu estou ficando danificado. E você pode ver que está dizendo 0 o tempo todo. Então agora eu não posso cair abaixo, abaixo de 0 na saúde. Ok, então foi isso para a saúde. O próximo que podemos fazer é trabalhar na morte do jogador.
66. Morte de jogadores: Ok, então agora podemos criar o jogador na morte. Então agora o que nós queremos entrar na base de jogadores e jogadores, e aqui com isso, qualquer dano e nós fizemos o inferno. E agora vamos dizer aqui 1D saúde é 0. Então, se for igual, agora eu posso selecionar esse igual. Se for igual a 0, você pode clicar em B para criar uma ramificação. E se isso for igual a 0, queremos que o jogador morra. Então queremos fazer um novo evento chamado morte. E vamos para a Interface de Blueprint para a base de jogadores. E aqui queremos fazer uma nova função chamada camada que vamos compilar e salvar. E aqui vamos chamar camada e morte. E é uma chamada de interface aqui. E agora vamos realmente fazer o evento aqui. Então, a morte do jogador. Agora vamos fazer o evento. Então, quando o, quando a saúde de 0, ele vai lançar neste evento. Então nós vamos, na verdade, codificar a funcionalidade
morte, morte dentro daqui. Então, primeiro, eu quero torná-lo booleano e fazer este booleano chamado B está morto. Assim como fizemos aqui na base inimiga, se eu voltar para inimigos e base inimiga, lembre-se que fizemos esse booleano estar morto. E é sempre bom ter um booleano como este. Então isso é para o jogador e nós podemos arrastá-lo para fora e conectado e configurá-lo para verdadeiro. Então, inicialmente, é falso por padrão porque o jogador está vivo e quando o jogador morre, podemos configurá-lo como verdadeiro. É isso. Por isso, neste momento não estamos a usá-lo para nada, mas vamos fazê-lo daqui a pouco. Mas isso é sempre bom de ter e você pode controlar as coisas quando o jogador é que. Ok, então a partir daqui, quando o jogador é que nós realmente queremos tocar uma animação. Então eu vou dizer arrastar aqui e dizer Play Animation e escolher este para a malha. Agora posso arrastar isto para baixo e agora podemos reproduzir uma animação. E lembre-se, se eu voltar para a pasta Ativos que tenho e as animações de personagens, temos essas animações redirecionadas que
realmente redirecionamos no início deste curso. E temos uma chamada morte. Então nós podemos realmente usar este aqui. E se eu voltar ao meu projeto, posso minimizar isso um pouco e você pode realmente procurá-lo. Mas você também pode pegar isso e soltar isso em cima dele e ele será aplicado. Então agora estamos tocando uma animação de morte. E lembre-se de desligar a colisão porque quando você está morto, você não precisa colidir com nada. Você quer desativar esta colisão. Então, arrastando para fora desta malha e dizendo colisão Set. Então este conjunto de colisão habilitado, eu quero configurá-lo para nenhuma colisão, tomando este componente cápsula. E também queremos desativar esta colisão para esta. Então agora desativamos todas as colisões. E em seguida eu quero tomar o movimento do personagem e eu quero desativar o movimento para que o jogador não pode, ou o, o, o jogador pode carregar, pressione a, W, D, e S e mover ao redor. Por isso, estamos a desactivar todo o movimento. E eu vou clicar duas vezes aqui para fazer um nó redirecionado. Então agora temos essa funcionalidade para baixo e vamos clicar em Jogar e ver o que acontece. Então eu minimizo aqui e você está sendo atingido. Então agora você está morrendo. Ainda está te esmagando, até mesmo seu pai, e você está morrendo várias vezes porque eles estão cansados de ver. Sim, tenho atirado neles durante todo o curso. E agora eles vão te matar várias vezes. Ok, então agora isso é, isso terminou e vamos consertar o,
o inimigo matando você várias vezes. E isso é porque não dissemos ao inimigo que você quer parar de atacar. E agora podemos usar esse booleano morto que fizemos. Então, dentro da base inimiga. Lembre-se que fizemos um chamado jogador de xadrez. E a IA deles vai se mover para você e quando eles estão perto de você, eles vão atacá-lo. Então aqui nós realmente queremos dizer ao,
a IA que ele só deve atacar se o jogador estiver vivo. Você pode usar isso. Podemos usar esse booleano para isso. Então nós, nós realmente não temos uma variável para o personagem. Nós não temos uma referência, mas eu posso dizer personagem git jogador. E nós fizemos uma interface, recebe a ira do jogador para este, nós fizemos uma função de interface. E aqui podemos dizer que é isso. Então agora podemos realmente usar este booleano aqui. E agora apenas para legibilidade, eu gosto de escrever nozes. E, em seguida, fazer este galho aqui. Assim como este. Então agora ele está dizendo que se o jogador não está morto, em seguida, ataque. Mas se o jogador é que não faz nada. Isso é o que está dizendo agora. Se eu organizar isso um pouco, e agora deve funcionar. Se dissermos, em seguida, clique em Jogar. Você pode ver quando eles estão atacando você agora. Agora eles estão atacando você e vão parar quando você estiver morto.
67. Reloading de armas: Tudo bem. Agora é hora de fazer um carregamento real para a arma que temos. Agora podemos atirar munição
ilimitada e não queremos atirar tempo ilimitado, então vamos recarregar. Então isso é muito simples porque você já fez a maioria das coisas. Então, se voltarmos às plantas dentro do jogador e da base de jogadores. E aqui, na base de jogadores, fizemos este evento de armas de fogo. E aqui encontramos a arma. Fizemos isso no início do curso. E para este, nós realmente queremos verificar se o jogador tem munição suficiente para disparar a arma. Então você pode tentar fazer você mesmo, se quiser. Eu acho que você pode fazer isso com o que aprendemos até agora. E se não, vamos fazer isso juntos agora. Então, para começar com a munição e recarregar, temos que fazer uma nova variável chamada munição. E desta vez ele tem que ser um inteiro porque MO é um valor numérico e nós realmente não precisamos de casas decimais, então inteiros, o caminho certo. E agora podemos pegar essa variável de munição e podemos dizer menos. Então menos menos, ele diz Um do valor especificado, em seguida, defina-o. Então, toda vez que convidamos a arma, na verdade vai dizer menos 1 nesta variável. Então vamos subtrair uma bala de cada vez. E podemos clicar nesta variável de munição, compilar e salvar. E digamos menos do que o valor padrão para 15. Então a arma tem 15 balas por padrão quando começamos o jogo. Então agora podemos fazer uma string de impressão, para que você possa ver como ela se parece. Pode Salvar String de impressão e conectar este valor aqui para que possamos imprimi-lo para a tela. E é sempre bom fazer uma string de impressão para que você possa realmente ver o que você está fazendo durante o desenvolvimento. Então eu posso clicar no jogo. E toda vez que
atiro, caio em balas. Mas agora você pode ver que você pode realmente ir em números de menos. E nós não queremos ir e menos números. Então temos que consertar isso. E a maneira como fazemos isso, como antes, temos que usar um grampo para que ele possa arrastar sobre isso e procurar laboratório e este. E você pode definir o valor máximo para 15 porque temos um máximo de 15 balas. E você pode definir o mínimo como 0 para que ele nunca vá abaixo de 0. Agora temos que verificar se o jogador tem balas suficientes para atirar. Então podemos dizer, se essa quantidade aqui é, se for maior que 0, então vá em frente e atire assim. Então você tem que conectá-lo aqui. Então, se o jogador tem mais balas do que 1000, o jogador pode atirar. Mas se você tem 0 ou menos, você não pode fazer nada. Então eu posso tentar tocar aqui e eu posso mostrar 15 vezes. E agora você pode ver que eu estou clicando, mas eu não posso atirar neles. E isso está funcionando. Ok, então isso está funcionando agora e nós temos que fazer o recarregamento agora. E para fazer o recarregamento, você pode ir em frente e escrever a hierarquia. Mas isso é uma prática ruim. Mais uma vez, lembras-te do que eu disse desde o início do curso? É se você codificar valores como este a partir do teclado, o jogador não será capaz de alterar este valor no menu Configurações durante o jogo. Assim como se você fizer a tecla W para correr para a frente, o jogador não pode mudar essa tecla W para outra coisa e para o menu Configurações. Então, é uma má prática codificar as teclas do teclado como esta. É melhor fazê-lo através das configurações do projeto, assim como o que fizemos com o movimento. Então eu vou editar e clicar nas configurações do projeto. Dentro daqui temos essa entrada e nós realmente fizemos esse movimento aqui também a arma de fogo aqui. Então vamos fazer um novo e digamos uma recarga. Clicando neste botão e clicando na tecla R no teclado, vamos atribuí-lo automaticamente. E agora podemos voltar para a base de jogadores. E podemos dizer recarregar e Osíris chaves de evento de ação que apenas faria. E esta é a recarga. Então agora queremos recarregar e recarregar. Queremos acertar a munição 215 ruim. Então isso é muito fácil. Você apenas arrastando isso para fora e definindo isso para 15. Assim como este. Então isso é realmente tudo o que está fazendo. E também quer jogar uma animação. Vai parecer estúpido se não tocarmos nada. Então precisamos tocar uma montagem de animação. Então eu posso tirar esta malha e dizer, e montagem M e tocar esta montagem aqui. E eu posso colocá-la aqui e conectada. Então agora temos que tocar uma montagem de animação. E, na verdade, quero tocá-lo quando estiver completo. Então, quando você terminar de colocar o pente dentro da arma, ele vai ajustar o animal para 15, exatamente assim. Certo, então temos que tocar uma montagem de animação, então temos que fazer uma para a recarga. E se eu voltar para as animações, para os ativos, animações de personagens, temos um chamado Recarregar rifle hip. Então eu posso clicar com o botão direito do mouse neste e dizer Criar, criar qualquer montagem. Assim e podemos chamá-lo de recarga de daemon. Agora, eu posso voltar ao meu projeto aqui e posso procurá-lo. E não temos que procurar muito porque não temos muitos. Então, este aqui, qualquer recarga de montagem. E eu posso clicar em Salvar aqui. E lembre-se, assim como para o
grunhido, a montagem de animação não vai aparecer. Agora estou clicando em R e estou realmente recarregando. Mas não acontece nada. E lembre-se que isso é porque nós temos que ir dentro do, o jogador aqui e dentro dos planos de animação. E dentro daqui vá para dentro do gráfico de animação. E no gráfico de animação, temos que colocar este slot aqui. Inundações slot padrão. E se você não tiver isso, você não verá suas montagens de animação. Então você tem que conectar isso. E se clicar em Reproduzir agora, poderá ver que está a recarregar. O problema agora é que se eu andar por aí e recarregar, ele vai deslizar. Então, queremos misturar a animação em execução e a animação de filmagem juntos. E a maneira como fazemos isso, é muito simples. Então aqui na montagem de animação ou Índia e o Blueprint de Animação, desculpe. Mas o jogador, queremos usar algo chamado de mistura pura direita. Você vê algo chamado mistura em camadas por osso. Então, clicando nesse, você pode misturar duas poses juntas. Então, se eu desconectar isso aqui, eu quero misturar esta pose base. Então esta é a nossa animação de corrida. Este é o movimento local padrão que temos. E deixe-me conectá-lo aqui. E a segunda coisa que queremos aprender a misturar é se eu copiar isto e colá-lo aqui e conectá-lo aqui. Então eu quero, eu quero misturar
a animação em execução junto com esta animação de execução e recarga. Então, a maneira como fazemos isso é que se mistura por osso. Então você tem que escolher aqui. Se eu arrastá-lo aqui na configuração da camada, você clica nesta seta aqui, e você clica neste índice. E agora você pode clicar sobre isso mais. E aqui você tem que selecionar um nome de osso. Então, de onde você quer se misturar? E talvez você esteja perguntando como eu sei o nome do robô? Como é que eu sei disso? E a maneira como você sabe disso é se você entrar dentro
dos caracteres ativos e você clicar em sua máquina de isquio. Então esta é a máquina que temos dentro daqui. Você pode realmente ver esses ossos. Então, se você clicar neles, você pode ver onde você está. E na verdade é aqui em cima. Se isso não aparecer para você,
você tem um painel de detalhes de ativos aqui em cima e um esqueleto três. E nesta Árvore Esqueleto que você sobe, talvez eu não queira esse esqueleto aqui. Você também será capaz de vê-lo. Então, clicando nesses ossos, você pode ver os ossos do personagem. E você quer escolher um osso onde você quer misturar esta animação. E você quer misturá-lo. Você pode ver aqui esta se chama espinha um, e esta é chamada espinha dois. E este é realmente o que queremos misturá-lo. Então você pode, você pode escolher sua própria coluna vertebral que você deseja misturá-lo de onde quer que pareça bom. Mas basicamente a parte superior do corpo é onde a recarga está acontecendo e a parte superior do corpo é daqui. Então isso é talvez muito alto. Então, indo com despeito, ele vai recarregar o fim. Parece que vai parecer o melhor aqui, eu acredito. Então. Podemos sempre experimentá-lo e ver se parece bom ou não. Então temos que selecionar este osso chamado espinha 0, 2. Agora, se eu voltar para o Blueprint de Animação e clicar neste. Agora podemos no nome do bot escrever osso, nossas cirurgias de coluna comprando 0, 2, e a profundidade de mistura que queremos definir como um. E a rotação do espaço da malha se mistura. Então, a rotação, queremos misturar isso também. E esse verso na verdade é, então vamos, vamos experimentá-lo olhando no Play. E agora, quando eu escolher, eu posso clicar em Recarregar. E você pode ver está recarregando enquanto eu estou correndo e ele está realmente olhando bastante decente. Ok, então agora isso está funcionando e a última coisa que podemos fazer é realmente adicionar um efeito sonoro. Agora, se eu voltar para o jogador, base de jogadores, agora podemos adicionar um som com bactérias para o recarregamento e para o efeito solar em vez de fazer a cada ano. Então você sempre pode vir aqui e dizer tocar som naquele local, e você pode fazer o som de recarga, mas você também pode torná-lo mais específico e você pode fazer isso através da montagem de animação. Então, se eu voltar aqui e clicar em ativos, personagens, animações, e clicando nesta montagem de animação. Assim como a animação de ataque para a concessão, podemos realmente fazer o som de recarga daqui em vez de tocar o som daqui. Então, se fizéssemos isso através de código, o som, o que tocaria daqui? E nós não queremos isso. Queremos que a revista seja ouvida. Quando ele está puxando para cá. E o que podemos fazer aqui é sempre fazer uma janela de notificação. Então podemos dizer em 9, 25 começar, você pode tocar o som. O que também podemos fazer outra coisa. Então podemos clicar com o botão direito do mouse aqui, fazer uma notificação
adicional, e então podemos dizer tocar som. Então agora eu posso realmente clicar sobre isso e tocar o som que queremos. E se voltarmos para minimizar isso, e voltarmos para armas militares sombrias e sons. Temos a espingarda que usamos, e aqui podemos usar a soma. Então o que podemos fazer aqui é esta recarga. Então eu vou clicar nele e minimizar ou diminuir o volume. Há assim. E eu vou usar isso recarregado, bem recarregar, Inserir. E eu estou mínimo ou diminuindo o volume novamente. Assim como este. Então eu vou usar esses dois e tocar o som realmente amarelos. Vamos usar os dois. Então deixe-me abrir minha montagem de animação. Então, se eu clicar no som aqui e eu apenas
minimizá-lo um pouco para que eu possa ver como o som de chegada foi chamado. Então, se eu voltar para o rifle, eu posso usar este cubo de recarga para
removê-lo do removido do carregador da arma. Então eu posso arrastar isso e colocá-lo dentro do som aqui. Agora pode ouvir é na verdade, você pode realmente ouvi-lo. E agora queremos tocar outro som, um que ele está colocando esta revista dentro da arma
aqui para que eu possa clicar com o botão direito do mouse aqui e clicar em Adicionar notas ou arquivo tocar som. E clicando nisso novamente, agora eu posso realmente arrastar isso, recarregar Inserir aqui. Então, agora vamos ouvi-lo. Ok, então outro realmente o melhor som que temos, mas está funcionando. E talvez queiramos fazer aqui, na verdade, talvez seja muito cedo, assim. Simplesmente assim. Então é assim que você pode fazer isso e você pode realmente fazer andar. Inimigos estão andando, soa como quando você bater no chão, quando o jogador está andando. Você também pode fazer isso adicionando sons. Então, quando ele está em seus passos estão batendo no chão, você pode adicionar uma nota e notificar e somar tocar um som para que ele está batendo no chão. Então podemos fazer isso assim também. Mas eu não acho que vamos adicionar som ou colocar passos para este jogo porque estamos sempre adicionando um pouco de música e ele não vai ser ouvido. Então é assim que você faz o recarregamento. E podemos tentar clicar no X aqui e salvar tudo. E agora podemos tentar clicar em Play. Se estou ouvindo. E eu não tenho mais balas e eu posso clicar no nosso OK, então tudo está funcionando agora e eu posso atirar novamente. E eu não posso mais fazer isso. Eu posso clicar em R. Ok, então isso está funcionando. E isso era tudo o que tínhamos que fazer para recarregar.
68. Crie a interface principal: Ok, então basicamente terminamos o jogo. E mais tarde vamos tentar limpar o código e talvez adicionar algo para o jogo que estamos faltando. Então, por exemplo, música no jogo. Mas por enquanto estamos basicamente terminados com o básico do jogo. E agora vamos fazer algumas UI. Então, a primeira interface do usuário que vamos fazer é a interface principal. Então, para a saúde do jogador da munição e assim por diante. Então você pode vê-lo na tela, porque agora só temos uma string de impressão. E uma corda de impressão. Você não pode realmente ver como para o jogador quando você lançar o jogo, o jogador, a cadeia de impressão é apenas para o desenvolvimento para que o jogador não pode vê-lo. Então agora vamos adicionar algumas UI para que você possa realmente ver que você está preso, você pode ver sua munição e assim por diante. Ok, e para fazer isso, vamos voltar para a pasta de interface do usuário que fizemos. E aqui, Vamos clicar com o botão direito
do mouse e entrar na interface do usuário e criar um blueprint widget. E vamos chamá-lo de WB feito. Então esta é a interface principal que teremos. Então agora vamos projetá-lo. Clique duas vezes sobre ele, e aqui no designer, você pode. Agora o que queremos fazer primeiro é precisamos de uma fronteira ou do jogador, então um retrato. E então precisamos da barra de saúde, e precisamos do nome do jogador. Agora eu já fiz upload de alguns ativos para você no e sob
o site para que você possa realmente baixar esses ativos. E o que queremos fazer é minimizar este Widget Blueprint. E deixe-me abrir minha pasta e vamos importar tudo. Então clique sobre isso e todo o caminho até aqui. Eu acho que a estrela que temos a estrela é do jogo anterior, então nós realmente não precisamos dela. E vamos apenas fazer uma nova pasta aqui chamada ativos. Vamos deixar tudo dentro daqui. Então eu vou arrastá-los e deixá-los cair na salada aqui. Assim como este. Então, o que queremos fazer dentro do Widget Blueprint que temos aberto. Queremos usar esta imagem como retrato ou esta para os robôs. Então o que queremos fazer é usar uma imagem aqui. Então usando uma imagem e esta podemos mudar. Mas lembre-se que você tem que pensar na interface do usuário, como o que, o que você está tentando criar? Então estamos tentando criar essa fronteira. Estamos tentando criar o nome do personagem. E abaixo está a barra de saúde. E se você precisa desses ativos juntos, você não pode realmente vir aqui e colocar a imagem e então você tem o texto como o nome. Há agora que eles vão ser elementos separados. E imagine mais tarde se você quiser alterar sua interface do usuário, você vai mudar o posicionamento deles. Então você não quer mudar o posicionamento disso e então você tem que
mudar o posicionamento é e, em seguida, o posicionamento da barra de saúde, vai levar um longo tempo. Vai perder muito tempo. É por isso que podemos realmente colocá-lo dentro de caixas horizontais e caixas verticais. Então, se eu tentar com a caixa horizontal, então se eu colocá-lo dentro daqui. Então agora temos esta caixa horizontal que podemos colocar elementos dentro de. Então podemos começar com a imagem. Então, se eu procurar por imagem e eu colocá-la aqui
na caixa horizontal e ver agora nós temos a imagem. E então eu posso colocar, agora, você pode, por exemplo, colocar texto e você pode ver como ele se parece. Agora ele está realmente colocando o texto, por exemplo, o nome do robô, este lado do nome do jogador aqui ao lado do retrato. Então agora você é realmente só tem que mover esta caixa horizontal para mover tudo juntos em vez de mover cada elemento quando você está tentando ajustar as coisas. Agora, precisamos de um nome e uma barra de saúde um abaixo do outro. E em vez de apenas colocar uma textura, temos que colocar uma caixa vertical em primeiro lugar. Então colocando um bugs verticais em cima da caixa horizontal. Então agora você pode ver que esta é a caixa vertical realmente dentro da caixa horizontal. E agora podemos colocar um nome em cima e a barra de saúde na parte inferior. Então, adicionando um texto a esta vertical, bugs como este, podemos procurar progresso e adicionar esta barra de progresso. E nós podemos jogá-lo em cima dos insetos verticais aqui também. Então agora você pode ver que temos esses elementos, mas não parece bom porque nós realmente não os projetamos. Então, se você clicar nesta caixa vertical aqui, você pode realmente clicar em Preencher. Então agora ele vai preencher toda a caixa vertical aqui. Então este é o tamanho dele. Então, se você clicar em Auto, ele só vai preencher isso aqui para clicar em Phil vai
colocar aqui o mesmo que você pode realmente fazer com a imagem. Então você pode clicar nele e clicar em Preencher se você quiser saber que eles
vão dividir esta caixa horizontal em metade. Então metade da imagem e metade é esta caixa vertical. E você pode tentar. Isso, isso é muito difícil como quando você, quando você não está acostumado a trabalhar com a interface do usuário. É muito difícil às vezes perceber que você tem que usar auto aqui ou clicar em Preencher. Ou a imagem só deve ser também e não preencher e assim por diante. Mas vamos tentar inserir para as imagens e podemos realmente obter, ele vai ficar mais fácil. Depois, estes quarteirões aqui. Então, clicando nesta imagem primeiro, eu vou clicar neste pincel. E aqui podemos realmente adicionar a imagem. Então, se eu clicar nisso, sim, nós temos muitas coisas, então é melhor apenas arrastá-lo. Então eu vou arrastar esta imagem de robô para cima aqui, assim como este. E agora temos isto. Agora você pode ver que este é o tamanho da imagem e não, e eu edito o tamanho. Não está mudando nada. E isso é porque estávamos usando filme. Se eu auto juventude, você pode ver como ele se parece agora. E agora você pode realmente mudar o tamanho. Então vamos usar auto para este. Então, em última análise, você pode apenas ajustar esta imagem aqui e você pode ver aqui a partir do efeito como na caixa horizontal. E se eu escalá-lo agora, vai escalar com isso, com este ano. Então vai escalar a imagem. E isso é porque você tem alinhamento vertical. Se eu clicar em cima aqui e eu realmente reduzir o tamanho, você pode ver que ele está realmente reduzindo o tamanho. Mas se você tem este alinhamento vertical no preenchimento aqui verticalmente, realmente não
importa o tamanho que você muda aqui. Lembrem-se, estes são muito importantes. O tamanho, se estiver preenchido ou não, ou se estiver alinhado verticalmente ou horizontalmente. Então é muito importante brincar com isso. E acho que está tudo bem para mim me alinhar verticalmente aqui. Então, se eu redefinir isso e eu apenas reduzir isso para algo, e deixe-me apenas reduzir o tamanho desta caixa horizontal. Então eu vou empurrá-lo aqui e apenas finalmente tentei jogar com o quão grande isso vai ser. Então, talvez algo assim. E, consequentemente, eu posso realmente clicar na imagem aqui e reduzir o tamanho x. E eu só quero fazer com que pareça bom para que não seja elástico ou algo assim. Então, só assim. Ok, então agora temos que jogar com o texto aqui e vamos chamá-lo de Sr. robô. Não sei, nome muito criativo. E nós podemos realmente mudar esta fonte aqui para este Montserrat que usamos antes. Então, aqui, Mr. Robô. E o que podemos fazer com isso agora é que você pode ver que é, é,
é, é muito próximo desta imagem, então nós queremos empurrar o texto um pouco para longe. Então, clicando neste inseto vesícula, você tem algo chamado acolchoamento aqui. E este estofamento, você pode pensar, de onde você quer empurrá-lo? Então eu quero empurrá-lo, empurrá-lo da esquerda. Então eu estou indo aqui para a esquerda e escrevendo dez, por exemplo, podemos ver que foi lavado. E às vezes gosto de ver coisas sem estas linhas tracejadas para poder vê-las melhor. Então eu vou clicar sobre isso aqui. Isso habilita ou desabilita as linhas tracejadas. Então você pode vê-lo assim. E acho que vou empurrá-lo mais longe. Então talvez seja um macacão. 20 é melhor para mim assim. E eu posso clicar nesta barra de progresso. Agora temos que definir essa barra de progresso para algo. E, na verdade, para este caso,
vamos adicionar uma sombra. Talvez não seja visível dentro do jogo. Então eu vou ouvir na sombra chateada. Podemos realmente, antes de fazer isso, vamos aplicar a sombra. Então aqui na cor da sombra, nós temos esse Alpha, e isso é o quão visível e invisível ele é. Então 0 é invisível. E se você escrever um, as sombras visíveis. E você pode ver que é muito, muito leve. E nós podemos realmente fazer o, torná-lo maior, alterando o deslocamento de sombra para 33, por exemplo, você pode ver agora que temos sombra. Então agora eu tenho o Sr. robô e você sempre pode adicionar um alinhamento, então um esboço. Então, essas configurações de contorno aqui, você pode alterar o tamanho para um, por exemplo. Agora temos este texto e, em seguida, você pode clicar nesta barra de progresso. E vamos fazer algo com isso. Primeiro, temos que clicar no estilo aqui, e vamos adicionar uma imagem e uma imagem de fundo. E a imagem de fundo, eu quero que seja esta cor escura. Então eu vou arrastar isso para dentro do, este aqui. E agora está correto. Agora pode ver que a cor está errada mesmo que você tenha configurado corretamente. E se você descer aqui e a barra de progresso, então se você rolar para baixo, você tem este preenchimento, cor e opacidade. E eu vou apenas clicar nesta seta, então ele vai realmente ser branco novamente, eu não quero que ele seja Eu não quero que ele seja azul. Então, por que está bem para mim? Porque se você colorir com cores diferentes, vai parecer errado aqui. Então, tendo a cor branca padrão aqui. E agora podemos definir a imagem de preenchimento e a imagem de letreiro. Então isto, estes são os carregamentos na barra de progresso. E basicamente a saúde para mim é vermelha. Então eu vou arrastar isso para dentro desta imagem
de preenchimento aqui e dentro da imagem da marca de seleção, assim como esta. E agora você pode ver se eu voltar ao que encontramos aqui, o percentual, se eu aumentá-lo, você pode ver que está realmente aumentando e diminuindo a saúde. Agora isto é muito fixe. Temos uma barra de carregamento agora são a nossa barra de progresso em vez. Agora você pode ver que a cor ainda está um pouco errada. Então isso é muito sombrio. Esta não é a mesma cor que esta. Então nós temos que mudar isso e esta é basicamente a cor novamente. Então, clicando neste tom, você pode ver que esta é a imagem de fundo que
temos e as propostas preto e nós não queremos isso, nós queremos que ele seja branco padrão. Então eu vou aumentar este ano e torná-lo branco. E eu posso ver que agora temos a cor correta, na verdade. Então isso está parecendo um pouco grande demais. Não queremos que seja tão grande aqui. Então eu vou clicar neste alinhamento aqui para que você
possa ver se você alterar o alinhamento, ele vai mudar. E basicamente também tem que mudar o tamanho da imagem. Então aqui no Y, talvez se você está com 50 e você também tem que fazer isso para baixo para estes. E você pode ver que diminui. Nossos 50 são 2, você ainda, então talvez eu queira, se eu voltar aqui, talvez voltemos para 25. 25 seria bom. Então eu vou mudar tudo para 25 anos, assim. E quando eu quero fazer agora é fazer este um pouco maior porque este é muito pequeno. Então, clicando nesta barra de progresso, eu posso clicar neste alinhamento horizontal. Eu posso preenchê-lo para toda esta área assim. E podemos movê-lo para baixo se você quiser. Você também pode movê-lo na parte inferior aqui, se você quiser. Mas lembre-se se você estiver movendo para o fundo, você pode ver que nada está acontecendo. Isso ocorre porque você tem que clicar em Preencher. Tão importante brincar com o tamanho aqui, o preenchimento e esses alinhamentos. Vamos colocar a coisa toda no meio. Então, clicando na caixa vertical, em vez de clicar neste alinhamento vertical, eu vou clicar no meio aqui, então tudo está no meio. E podemos sempre afastar esses dois um do outro para que eu possa clicar no texto. E aqui no estofamento no fundo. Então eu queria desejá-lo longe do fundo. Vou escrever 20 ou 10, 15. Sim, isto parece muito melhor. Então vamos usar este ano. E agora você pode ver as porcentagens funcionando e isso está parecendo bom. Tudo bem, então esta era a imagem dos personagens principais aqui, e talvez seja muito grande. Temos que testá-lo no jogo, mas está tudo bem por enquanto. Então, em seguida, temos que fazer a interface do usuário para o inimigo. Então, novamente, você pode usar uma caixa horizontal, e isso é muito simples. Não precisamos de uma barra de saúde. Vamos usar esta caixa horizontal. E, a propósito, se você quiser mudar os nomes aqui, então é mais visível ou mais organizado para você. Você pode clicar nesta caixa horizontal e você pode mudar o nome aqui em cima, talvez HB para bugs horizontais, e você pode simplesmente chamá-lo de jogador. Então agora você pode ver o que é. E para este, você pode chamá-lo de inimigo HB. E para esta caixa horizontal de inimigos, eu quero colocá-lo aqui do outro lado da tela aqui. E, novamente, queremos adicionar uma imagem para os retratos. E queremos adicionar algum texto. Assim como este. Na verdade, quero trocá-los. Alterne aqui para que a imagem fique à direita e o texto fique à esquerda. E novamente, queremos clicar neste pincel e adicionar esta imagem aqui, a imagem 4k. E o próximo, este, este texto está indo, isso vai ser dinâmico. Então isso vai dizer quantos inimigos você tem no mapa. Então digamos 15 por quatro. Agora, isso vai mudar dinamicamente. Então agora eu só escrevo um número para visualizar o que parece agora. Ok, então isso está parecendo um pouco, um pouco estranho. Então, vamos realmente clicar em preencher aqui. Então clique em Preencher e podemos clicar na caixa horizontal e realmente brincar com ele. Então, algo assim. E eu posso ajustar a imagem aqui assim. E você sempre pode colocá-lo ao lado das camadas na idade e você pode realmente tentar torná-las do mesmo tamanho aqui. Então, se eu aumentar assim, e é assim, tudo bem, isso está bem. Então nós só queremos fazer algo muito, muito simples. Então, algo assim. E eu quero fazer o texto. Então este texto aqui está bom. É 2004 e o tamanho deste é 24 também. Podemos colocá-lo no meio aqui e o alinhamento central verticalmente. E podemos mudar o texto para Montserrat negrito. Podemos adicionar um pouco de sombra. Então 33, como antes de colocar o Alfa em um. E aqui podemos um esboço. Então o esboço pode ser um aqui. E agora temos esse texto. Agora podemos mudar, podemos empurrá-lo aqui para que eu possa clicar no texto. E no estofamento à direita, queremos afastá-lo dos direitos. Para que eu possa escrever 20. Assim como este. Você pode ver que afasta esta imagem, está tudo bem. Na verdade, eu também vou querer mudar o tamanho dele. Acho que é muito pequeno. Talvez 40, assim. E podemos tentar que devemos fugir assim novamente, apenas redimensionar a caixa horizontal novamente. Então, algo assim. Agora temos o número e a imagem. Ok, então isso é bom por enquanto. Lembre-se que vamos adicionar a funcionalidade na próxima lição. Agora só estamos projetando. E a última coisa que queremos fazer é realmente a munição e recarga. Então aqui em baixo, quero que a munição exiba. E o que eu basicamente quero uma imagem de fundo. E eu quero o ícone da bala, e eu quero a quantidade de balas. Quero procurar por uma sobreposição. E é assim que você lida com imagens de fundo. Você coloca uma sobreposição como esta. Eu vou arrastar esta sobreposição daqui e arrastá-la para
baixo aqui para que eu possa vê-lo assim. Você coloca uma sobreposição e depois coloca uma imagem em cima dela. E então sobreposição é basicamente, você pode. Lei, imagens lei e itens em cima uns dos outros. Isso é exatamente o que significa. E esta imagem, eu quero preencher toda a sobreposição. Então eu vou clicar neste alinhamento horizontal e alinhamento vertical. Agora está preenchendo toda a sobreposição. Posso mudar esta imagem aqui, a imagem de fundo para esta cor preta ou este botão escuro. Mas na coisa de olhar. Então, mudando aqui, colocando a imagem em cima daqui. Agora você pode ver que este é o pano de fundo para isso. E o que eu posso fazer com isso é se eu apenas redimensioná-lo e fazê-lo parecer um pouco melhor. Agora, o que eu posso fazer é colocar o ícone em cima daqui. Queremos o ícone da bala e a quantidade de balas. Então, queremos uma caixa horizontal. Então, procurando por uma horizontal, soltando-a em cima da sobreposição. Agora podemos procurar por imagem, soltando-a em cima da caixa horizontal. E também queremos o texto na parte superior da caixa horizontal, assim como este. E novamente, para a caixa horizontal, nós realmente podemos fazer o alinhamento vertical e horizontal assim. Agora podemos fazer, podemos clicar na imagem e inserir o ícone aqui. Os marcadores de ícone no topo desta imagem aqui. E para este texto, podemos mudá-lo novamente. Dois meses chegaram em negrito. Assim como este, pode realmente mudar este texto para dizer, por exemplo, oito de 15. E mudaremos isso dinamicamente mais tarde. Agora eu só quero escrever para que eu possa vê-lo visualmente. E esta é a quantidade de balas que você tem e a quantidade de balas que está em sua revista no total, como o que você começou com. E este ícone. Agora, agora está enchendo horizontal e verticalmente, e eu não quero isso. Então eu vou clicar sobre estes dois aqui. E agora podemos ajustar esses tamanhos aqui. Assim, você pode ajustar o tamanho e ver o que está bom para você. E eu não quero algo muito grande. Então, algo assim aqui. E este também. Você pode colocá-lo no meio e você pode adicionar um pouco de preenchimento para a esquerda. Então, dizendo 15, por exemplo. Então não está muito perto do ícone aqui. E agora você pode clicar nesta caixa horizontal. E, na verdade, em vez de preencher horizontalmente e verticalmente, você pode colocá-lo agora no meio deste ano. Então estamos colocando isso no meio dessa sobreposição. Agora posso redimensionar essa sobreposição e tentar fazer com que pareça boa. Agora vamos adicionar um pouco de sombra aqui. Acho que vai parecer um pouco melhor. Então, na cor da sombra correndo um aqui, e eu posso escrever 22, então apenas uma pequena cor. E também uma sobreposição ou um contorno. Escrevendo um aqui. Então, algo assim. E você pode ver que o ícone está olhando um pouco fora aqui. Então é isso que você tem que fazer no Photoshop. Você tem que adicionar sombras e assim por diante. Mas isso é bom para nós agora. E se você quiser estilizar sua interface do usuário, por exemplo, eu posso apenas mostrar-lhe um exemplo. Se você quiser estilizá-lo um pouco, talvez ele esteja parecendo um pouco chato no fundo. E esta sobreposição, lembre-se que você pode colocar coisas em cima um do outro para que eu possa adicionar outra imagem aqui na sobreposição. E em vez de colocá-lo aqui no fundo, eu posso realmente colocá-lo aqui em cima, logo abaixo ou logo acima da caixa horizontal. E eu posso preenchê-lo horizontalmente e realmente alinhá-lo na parte inferior aqui. E eu posso adicionar este quadrado vermelho a ele. E agora eu posso reduzir o tamanho no y, para que eu possa reduzi-lo. E a ação, na verdade, apenas fazer uma pequena linha aqui. Então isso é apenas uma coisa pequena, legal e estilizada. Posso tê-lo como minha interface assim. E eu posso mover essa sobreposição e realmente tentar redimensioná-la. E como você gosta, assim. Acho que isso está bem agora. Então este é o menu que temos. Temos o jogador e o inferno, temos a quantidade de inimigos que estão dentro do nível. E nós temos a quantidade de balas para quando você atirar.
69. Funcionalidade principal de UI: Tudo bem, então agora que terminamos com a interface principal, vamos em frente e codificar a funcionalidade dentro dela. Então, o que queremos fazer, Vamos voltar para a interface do usuário e como ativos precisos ea interface do usuário vai clicar no WB principal. Então esta é a interface principal que projetamos. E dentro daqui. E vamos começar com a barra de saúde. Então vamos codificar essa barra de saúde, e na verdade eu quero mudar o nome dela para sabermos o que é. Então eu vou para eu normalmente chamá-lo de Praga ou barras de progresso, mas esta é apenas a minha convenção de nomes. Você pode fazer como quiser. Praga e eu vou chamá-lo de saúde ou saúde do jogador é assim. E eu vou entrar no gráfico. Então, no gráfico, este é o lugar onde nós realmente codificar a funcionalidade. Então isso é conhecido por você. Isso é exatamente como o jogador controlar nosso modo de
jogo ou qualquer classe Blueprint que temos. É aqui que codificamos a funcionalidade. Então eu vou passar o mouse sobre todos estes, selecioná-los e clique em Excluir apenas para removê-los. E você pode ver que você tem algumas variáveis para os itens que você criou. E basicamente essas imagens, nós realmente não queremos elas como variáveis porque nós não vamos usá-las. Então, se você quiser limpar o seu código ou limpar, limpar o seu projeto, você pode clicar nessas imagens e você pode ver no topo ele diz que é variável e estes nunca vão mudar no jogo. Então eu vou remover isso é variável e este fundo aqui. Então você tem algum trabalho de limpeza quando você está fazendo o projeto, eu vou clicar neste ícone também. E um composto de salvamento. E você pode voltar e é um pouco mais limpo de olhar. Então o que você basicamente quer fazer é se você tirar essa barra de progresso e colocá-la aqui, a variável. A coisa que você quer fazer, se você clicar na barra de progresso, você basicamente quer mudar isso por cento. Portanto, queremos mudar esse percentual dependendo de quanta ajuda o jogador tem. Então agora eu vou defini-la para 0 ou realmente para 100. Por padrão, embora este seja o guarda-sol 1 e este é o percentual. Então, se eu for aqui e disser que se eu arrastar para fora disso e dizer por cento, você pode dizer que diz Set percentual, isso é o que basicamente queremos fazer. E quero fazer um novo evento aqui. Eu não poderia fazer um novo Blueprint Interface apenas para o menu principal, mas eu não quero, ele vai ser muitas Interfaces Blueprint e realmente nunca torná-los para os menus. Então aqui eu posso apenas fazer um evento personalizado e podemos chamá-lo de conjuntos. saúde do jogador é assim. E podemos conectá-lo. E nós basicamente queremos uma entrada aqui. Se eu clicar nele, eu quero adicionar uma entrada. E vamos chamar isso de ajuda. E eu quero ser, quero que seja um carro alegórico aqui. E posso conectá-lo aqui na Saúde. Então ele vai mostrar a ajuda. E o que basicamente queremos fazer agora é definir
a saúde PLOS onde quer que o jogador esteja sendo danificado. Então, se eu minimizar isso e eu posso realmente clicar sobre o jogador e a base do jogador. Lembre-se, no espaço pleural,
na verdade, vamos anotar isso. Isto parece um pouco confuso e precisamos de uma lição,
na verdade, apenas limpeza demais. Então fizemos este chamado qualquer dano. E aqui os jogadores recebendo acertos e danificados. Então este é o novo valor de saúde que definimos e realmente deseja exibir essa saúde sobre o valor no menu. Mas primeiro vamos adicionar o menu para a tela, então a interface principal, principal. Então eu gosto de adicionar meus menus através do controle do jogador aqui. Então, clicando no controlador do jogador, e dentro do gráfico de eventos, temos este jogo de início, e estamos todos realmente adicionar essa interface do usuário do Wave. Então eu realmente também quero adicionar a interface principal. Então aqui dizendo cria widgets. E dentro daqui podemos selecionar o WB principal. E eu posso clicar com o botão direito do mouse e promover a uma variável, chamá-lo WB main. E posso adicioná-lo à porta de visão imediatamente. Então eu posso ver e arrastar a partir disso e dizer para viewport. Visor assim. E se eu compilar e salvar e clicar em Jogar, agora pode vê-lo. Temos a interface principal dentro da tela, e agora temos alguns bugs. Você pode ver que ele não está alinhando corretamente e isso é sempre bom adicioná-lo à tela para que possamos ver como ele se parece. E podemos resolver isso bem rápido. Então, se eu voltar para a pasta de interface do usuário aqui, clicando na interface principal, e eu voltar para o designer. Eu posso realmente clicar nesta caixa inimiga e horizontal. E temos que mudar essa âncora. Então isso é o que eu esqueci. Tenho de mudar esta âncora para este lado da tela. Agora, eu posso realmente mostrar a vocês como essas âncoras são importantes. Porque é aqui que a interface do usuário deve estar, como quando você minimiza a tela e altera o tamanho. E para esta, a âncora deve estar aqui em baixo. Assim como este, eu posso compilar e clicar em Reproduzir e você pode realmente ver agora eles estão se alinhando corretamente. Tão importante para definir as âncoras corretamente. Agora a interface do usuário está sendo exibida e tudo parece bem. Os tamanhos. Ok? Agora o que queremos fazer é voltar para o jogador aqui, base de jogadores. Agora queremos definir a porcentagem aqui no gráfico. Queremos definir essa porcentagem, então defina a saúde do jogador dentro do WB principal. Agora temos uma referência a isso. Agora dentro do controle do jogador, acabamos de criar isso. Então o que eu preciso fazer dentro da base de jogadores aqui, eu quero fazer uma jogada inicial se nós não temos um já e nós não queremos salvar o início do jogo. E aqui podemos dizer que recebe o controlador do jogador. E com este, podemos dizer fica jogador controlador href. Já fizemos essa Interface de Blueprint algumas lições atrás. E podemos conectar isso. E a partir daqui podemos realmente ter acesso a este WB principal. Então aqui eu posso apenas clicar com o botão direito nesta lei de controle de placa e promover isso para uma variável. E eu posso chamá-lo de controlador de jogador, assim como este. E agora temos uma referência a este controlador. Então isso agora é muito fácil. Podemos descer aqui, pegar este controlador de fluxo, e agora podemos usar o WB principal, obter este WB principal. E a partir daqui podemos realmente chamar este evento de um euro colonizador saúde. Então podemos dizer define a saúde do jogador assim. E deixe-me remover ou não removido, mas traga isso para cá. E temos que conectar isso primeiro através do código. E podemos conectar esse valor de saúde dentro daqui também. Então, algo assim. E eu posso colocá-lo aqui para fazer parecer melhor e tentar organizá-lo da melhor forma possível. Então, algo assim. Então agora estamos realmente definindo esse valor de saúde. Agora lembre-se se você voltar para o WB principal aqui, e você descer para a barra de progresso aqui. E você desce para o percentual. Lembre-se que o percentual está indo de 0 para um, Não está indo de 0 para 100. Então isso é algo que você tem que pensar porque agora sua saúde é 100. E isso significa que é um aqui no, no bar. Então nós precisamos dividir o número que este manteve por 100 porque quando você tem 100, saúde é na verdade 1 e não 100. Então aqui, vamos voltar ao gráfico aqui. E na saúde, eu quero dividi-lo por 100 antes de realmente colocá-lo dentro da porcentagem aqui, assim. E agora se eu salvar aqui e clique no jogo e eu vejo o que está acontecendo. Você pode ver quando fomos atingidos, agora estamos perdendo 25 de saúde, perdendo de novo. E agora estou morto. Então agora ele está realmente funcionando como deveria. Em seguida, queremos contar a quantidade de inimigos no nível. E lembre-se, eu posso realmente ir dentro das plantas e dentro do modo de jogo. Dentro daqui nós fizemos essa variável chamada poetas NME, e na verdade está adicionando todos os inimigos. Fizemos isso há algum tempo. Pode se referir de volta se não se lembrar. Mas basicamente fizemos uma matriz que reúne toda a quantidade de inimigos que temos no nível. Então, basicamente, precisamos do comprimento desta variável. Então, se eu voltar para minha interface de usuário e interface principal aqui, eu posso clicar neste número. E este você pode realmente chamá-lo de TXT, quantidades NME. E lembre-se de tomar isso é variável porque não é uma variável como padrão. Então clique neste componente Salvar, e aqui no gráfico e agora vê-lo como uma variável. Vamos fazer um novo evento e evento personalizado. Vamos chamá-lo de definir valores NME. E aqui queremos usar esta variável de texto que pode tirar aqui. E se você escrever texto, você pode ver algumas coisas que você pode fazer. E basicamente queremos definir o texto, então SetText como este e conectado. E nós basicamente queremos ajustá-lo para a quantidade de inimigos. O que podemos fazer aqui é basicamente adicionar uma nova entrada, assim como o que fizemos aqui. Outra coisa legal que você pode fazer é você pode realmente arrastar isso e colocá-lo em cima do evento. E você pode realmente vê-lo. Ultimate cria automaticamente uma variável para você. E vamos chamar as quantidades inimigas. Se eu puder soletrar assim. E queremos chamar este evento através da base inimiga. Então, se eu voltar para o inimigo e qualquer base aqui, nós temos este chamado removido, porque toda vez que você matar o número de inimigos aqui, ele vai diminuir em um e nós queremos colocá-lo dentro do botão Remover. Então, dentro daqui, precisamos de uma referência para o controle do jogador. Então eu só vou adicionar isso aqui, na verdade, logo depois, depois dos modos de jogo, eu vou mover isso um pouco. E em vez de aqui dizendo recebe controlador de camada
e, em seguida, recebe camada. Controlador de árbitros, assim. E aqui queremos clicar com o botão direito do mouse promove uma variável, chamá-lo de laboratório em polar. E agora temos uma referência ao controlador do jogador. E posso aproximar isto um pouco mais. E o que podemos fazer agora que temos uma referência ao que posso fazer agora é descer ao vínculo Remover. E aqui eu posso pegar o controlador do jogador e eu posso pegar a referência para a interface principal. E a partir daqui, eu posso agora chamar o evento chamado set it ME quantidade. Então aqui, eu vou dizer set in ME quantidade. Na verdade, vou mover tudo para baixo para termos mais espaço para trabalhar. Assim, movendo tudo para baixo. E posso mover isto para cá. E agora temos mais espaço para trabalhar. E eu posso empurrar isso, mas mais longe. E agora podemos definir a quantidade inimiga e o que é então a quantidade? É basicamente o comprimento desta variável aqui, esta matriz. Então eu posso pegar este comprimento e realmente colocá-lo dentro daqui. E ele vai converter automaticamente o inteiro um texto e colocá-lo através desta informação. Agora, eu posso tentar clicar em Play e ver o que acontece. Para que possamos jogar. Agora, estou basicamente a dizer 15. E eu acho que Tololwa. Agora está dizendo 14. 13 e em dívida porque eles me esmagaram. E eu acredito que é um pouco inseto desde o início. Modifique, altere o número aqui. Então, se eu for para o principal e eu mudar esse número aqui, eu mudo para, digamos, 12. Ok, veja agora dizendo 12. E se eu deveria socializar 14 agora, e isso não está correto, porque lembre-se desde o início que nós realmente
não estamos definindo a quantidade de pons aqui, os lagos inimigos, porque nós só estamos definindo quando matamos um. Então temos que fazer isso desde o início também. Então, dentro do modo de jogo, quando nós
geramos esses inimigos, nós realmente queremos, nós queremos adicioná-lo aqui onde nós adicionamos os inimigos. Então lembre-se de fazer isso aqui também. Então eu posso subir aqui e começar a jogar e fazer a mesma coisa, obter o controle do jogador. Então você pode ver que estamos fazendo a mesma coisa de novo e de novo. E temos que fazer isso para definir o código. Mas uma vez configurado, podemos usá-lo muito mais rápido do que antes. Então dizendo jogador controlador aqui, tendo esta variável, agora podemos usar esta variável aqui em baixo, tomando este controlador preto, tendo uma referência para a interface principal. E a partir daqui podemos dizer a quantidade inimiga definida. Assim, define valores NME. Posso arrastar isto até aqui e posso pô-lo aqui. Posso mover isso um pouco mais longe. Assim assim, e novamente, usamos o comprimento dele e podemos arrastar este comprimento e colocá-lo dentro desta quantidade. E temos que mover isso um pouco mais longe para que não fique empilhado um em cima do outro. Assim como este. Vamos organizá-lo um pouco quando você diz que está correto. Então clique em compilar e podemos clicar em Play. Veja que agora está adicionando a quantidade de inimigos. E um bug que eu posso ver é se eu clicar em Jogar, você pode realmente vê-lo dizendo 0 e eu clicar no jogo, na verdade não 0. Está dizendo 12, a quantidade que nós realmente definir, se eu clicar em Jogar, podemos ver que diz 12 antes que ele conta. Então este é um pequeno bug que nós temos e nós podemos apenas ir dentro do principal aqui e clicar neste número e escrever 0 para começar. Mas agora outro bug que temos, você pode ver que a imagem está sendo empurrada quando o contador está acontecendo. Então, o que está acontecendo é que se voltarmos para o WB principal e clicarmos neste número, na verdade
é porque ele está mudando esse número e está empurrando essa imagem o tempo todo, que está mudando, assim. E nós realmente não queremos fazer isso. E podemos alinhar
esta imagem aqui, o alinhamento horizontal à direita. E agora podemos clicar neste preenchimento. E aqui você pode ver agora se nós redimensionarmos isso não vai empurrar a imagem a menos que ela esteja muito perto em que é, nós podemos apenas redimensioná-lo um pouco mais longe, assim como este. E você pode realmente colocar isso direito para 0 e para fora. Então o texto, o preenchimento de texto. Então agora você pode ver que nós podemos realmente apenas mudar o número e isso não vai afetar esta imagem. E vamos definir isso de volta para 0. Vamos colocar talvez um pouco mais perto. E se nós compilar e clicar em jogar aqui, você pode ver que agora ele está contando sem grampear a imagem aqui. Ok, então a última coisa que nos falta é a quantidade de munição aqui em baixo. Então, clicando neste texto, eu posso mudar o nome para TXT e baixo, assim como este, e Compilar e salvar. E como antes, vamos voltar ao gráfico. Vamos fazer um evento personalizado e vamos chamá-lo de munição. E aqui podemos tirar essas variáveis para que não tenhamos transformado em uma variável. Então, se eu clicar nele e clicar na variável S, eu posso clicar no gráfico, confira esta munição aqui. E eu posso dizer definir texto como antes. Então SetText. E basicamente aqui queremos definir quantas balas você tem agora e quantas balas você tem no total. E para fazer isso, temos que usar algo chamado texto formatado. Formate o texto porque queremos que o texto mude dinamicamente. Não queremos que seja estática como este ano. E nós realmente não podemos fazer isso como este aqui porque este é apenas um número e este é, isso é, isso é muito fácil de trabalhar com. Mas agora temos dois números. Temos este e este para mudar dinamicamente. Então temos que usar um texto em formato. E neste, para a coisa que está mudando dinamicamente, você tem que escrever um colchetes escrevendo 0 e, em seguida, escrevendo o colchete fechando-o. E então você tem que escrever o texto para o que você quiser escrever. E agora eu só quero esta barra aqui porque eu quero, eu quero esta fatia aqui. E então eu quero o texto dinâmico novamente aqui. Porque eu posso, eu posso ir lá na direita 15, como um texto estático. Mas talvez tenha outra arma e possamos realmente torná-la dinâmica. Então, fazendo este colchetes de cor novamente, eu posso escrever um aqui em vez de 0. E agora podemos ver que agora temos duas variáveis que podemos adicionar. Então, se qualquer variável que eu adicionar aqui será exibida aqui, e qualquer variável que eu adicionar aqui será exibida aqui. Agora eu posso conectar isso ao texto assim. E agora podemos realmente adicioná-los ao evento. Então, para o evento, o MO é basicamente um inteiro. Então eu vou criar novas variáveis aqui. E um será chamado de munição atual, e o outro será chamado de AML máximo. E nós vamos ter que transformá-los em um inteiro. Então, se eu conectar isso ao M0 atual e eu posso ligar isso para o máximo m l assim. Assim, os MOs atuais serão exibidos aqui e o máximo será, para ser exibido aqui. Então o que eu posso fazer agora é eu tenho que chamar este máximo neste set modus operandi em algum lugar. E eu tenho que fazer isso na base do jogador porque na base da camada IP, lembre-se que fizemos essa variável de munição. E se eu for aqui, temos essa variável que fizemos chamada munição. E, na verdade, vamos chamar isso de M0 atual. Então eu vou mudar o nome deste aqui. Vamos chamá-lo de M0 atual. E também precisamos de um chamado Max M0 vai assim. E podemos mudar para um inteiro e o MO máximo é 15, e o M0 atual, também podemos começar com 15 para começar. Então, o máximo aqui, podemos realmente arrastar este inteiro agora e colocá-lo aqui. Chamá-lo de munição máxima e o mínimo é 0. Então o que podemos fazer agora é que podemos realmente arrastar isso aqui. Antes de fazermos essa verificação aqui, podemos arrastar isso e precisamos chamar isso de evento de munição da interface principal. Agora já temos uma referência ao controlador do jogador. Nós fizemos isso. Então nós podemos realmente arrastar isso e dizer principal. E agora podemos dizer “set munição “, detoná-los. E podemos realmente usar isso. E vamos conectá-lo aqui. Então conectando-o. E agora podemos dizer qual é a AML atual? A munição atual é que este MOU tem aqui. E a munição máxima é apenas esta MR. que temos aqui. Então agora está parecendo correto. E deixe-me organizá-lo um pouco para não ficar muito bagunçado aqui. Assim como este. Então, se eu compilar, salvar e eu posso clicar em Jogar, você pode ver agora ele está dizendo 815 porque nós não definimos a munição inicial. Mas se eu clicar, você pode dizer sexual correto. Está correto agora. E eu posso bater 0 e agora eu posso clicar em Arch reload. E agora eu posso ver quando eu recarregar, Ele não está mostrando nada, mas quando eu preencheu ele está mostrando então nós temos que corrigir isso. Então, se eu voltar para o
jogador, base de jogadores aqui, Índia, começar a jogar. Na verdade, temos que definir a AML também. Então aqui eu posso pegar isso, copiar isso, e colá-lo aqui. E eu posso conectá-lo assim. Coloque a munição máxima e a demonstração atual. Então temos que verificar isso, logo quando começarmos a jogar. E também temos que fazer isso quando recarregarmos. Então, dentro do recarregamento, dissemos este, este animal aqui. Então podemos copiar isto aqui e colá-lo aqui em baixo. E o que podemos fazer é conectado e no MO atual, você pode conectá-lo aqui e no anaeróbico máximo e conectado aqui. Então agora deve funcionar como deveria. Então, se eu clicar em Salvar e clicar em jogar, ele diz 15 de 15 como deveria. E agora eu tenho 0 e se eu recarregar, ele vai voltar para 15. Então agora está funcionando como deveria.
70. Desenhando o jogo sobre a UI: Por enquanto, estamos prontos para criar o jogo sobre UI. E para este, vá em frente na pasta de interface do usuário e vamos clicar com o botão direito do mouse e criar um novo blueprint de widget. Vamos chamá-lo de w, ser game over. E agora posso clicar duas vezes. E o que eu basicamente quero fazer para a interface do usuário do GameOver é basicamente ter um texto dizendo que você morreu na onda 13, por exemplo, e então ter um botão abaixo dele dizendo retornar ao menu principal. Coisas muito simples. Agora, já que precisamos de um texto e um botão abaixo dele, basicamente
precisamos de um bug vertical. Então, procurando por caixa vertical, eu posso adicioná-lo aqui. E agora podemos encontrar uma mensagem. E agora podemos, estamos tentados a apenas colocar um botão aqui, porque se eu apenas arrastá-lo para baixo para que você possa realmente vê-lo melhor visualmente. Então se eu arrastar esta vesícula grampeada até aqui, e agora precisamos de um botão aqui embaixo embaixo das mensagens, mas este botão também tem texto em cima dele. Então, na verdade, precisamos de uma sobreposição antes de adicionar o botão. Então, agora que temos a sobreposição, podemos adicionar o botão como este em cima da sobreposição, e então podemos colocar o texto no topo da esfera. Então agora temos um botão e um texto em cima do outro. E este botão, podemos clicar nele. Você pode ver que é muito pequeno agora. E isso é porque precisamos preenchê-lo horizontalmente e verticalmente. E agora quando eu remover essas linhas tracejadas para que possamos
vê-lo melhor porque você tem um botão e nós temos um texto em cima dele. Ok, então o design que podemos focar em um pouco, mas agora vamos começar com este texto aqui. Por exemplo, você morreu na onda 13. E este será um texto dinâmico dependendo da onda que você alcançou. Por isso, agora está lá para nós visualmente. E podemos mudar o texto para Montserrat negrito. Podemos mudar o tamanho para talvez 13 em vez de 24. E podemos adicionar uma sombra. Então aqui na cor da sombra, podemos colocar o Alfa em um. E no y aqui, deslocamento de
sombra x e y, podemos colocá-los em três para que a sombra seja mais visível. E podemos colocar o tamanho do contorno aqui. Podemos colocar em um, assim. Então agora temos este texto. E a seguir precisamos deste botão aqui. Para que eu possa fazer isso maior, assim como este. E para este botão, se eu clicar nele agora, você pode ver aqui agora podemos adicionar o estilo do botão. Então, o estilo normal do botão, eu realmente quero voltar para a interface do usuário e ativos. E quero usar este botão azul aqui. Tão azul, botão quadrado azul. Para que eu possa colocá-lo em cima daqui. E agora você pode ver que é, é um pouco de uma cor diferente e isso está acontecendo, aconteceu conosco antes da barra de progresso. E isso é porque a cor aqui está errada. Então a tonalidade aqui, eu realmente quero que ela seja totalmente, totalmente branca aqui. E outra coisa que você pode ver, está parecendo muito estranho aqui ainda. E isso é porque ele está desenhando como uma caixa arredondada. Você pode tentar escolher caixa em vez disso ou escolher uma borda ou imagem. Mas agora, vamos escolher uma caixa e definir a margem para 0.2. Agora podemos ver que está parecendo mais corretamente agora. E ainda é muito grande. E isso é porque ele está realmente preenchendo tanto horizontalmente quanto verticalmente. Você pode tentar colocá-lo no meio, se você quiser. E você pode redimensionar este botão aqui. Então, para algo que você está satisfeito com isso. Então, talvez algo assim. E se você quiser fazer este botão, botão sombra menos, você pode basicamente aumentar e diminuir essa margem. E quanto mais você diminuir, menos será. Então algo assim realmente parece, parece bom. Então este é o botão e nós podemos realmente alinhar este texto no meio também. Então eu posso alinhá-lo horizontalmente no meio. E para este texto, eu também posso colocá-lo no meio, vertical e horizontalmente. Então está no meio deste botão. Então agora você pode tentar brincar com o tamanho que você quer que este botão seja. E algo assim seria bom. Mas vamos ver o tamanho deste texto. Então, se estamos aqui, volte ao menu principal, algo assim. E podemos mudar isso para Montserrat ousado. Podemos, talvez, diminuir o tamanho para 18. Sim, 18 está bem. E eu quero colocar uma sombra como antes de colocar isso em 22, talvez não 33 ou 34 anos. Vamos tentar isso. Agora, isso é demais. Então 22 e o deslocamento de sombra e o contorno podem ser como antes. E, na verdade, podemos mudar a sombra para 0,5 em vez disso. 0,81 é o único trabalhando. Ok, então isso é bom por enquanto. E o que podemos fazer é agora eu quero redimensionar o botão um pouco mais, algo assim. Então agora nós temos este botão e nós podemos empurrar esta sobreposição para longe deste texto. Então aqui no preenchimento do topo, podemos empurrá-lo do topo, talvez 20 pixels como este. Assim como este. E agora nós temos esta caixa e você pode ver outra coisa que você pode fazer se você quiser que ela seja mais dinâmica. Então você pode ver que é dinâmico dessa forma. Então, quando você o redimensiona dessa forma é dinâmico, mas quando você redimensiona dessa maneira, não é dinâmico. Para que você possa realmente fazer isso. E eu gosto disso ainda mais do que, do que apenas ser decidida. Então eu geralmente tento fazer toda a minha interface dinâmica. E isso é porque você tem que alinhá-lo aqui verticalmente na parte inferior. Então esta sobreposição, e então você tem que clicar em Preencher. Então agora você pode ver que é realmente dinâmico aqui, bem como aqui. E o que eu costumo fazer em vez de dois, eu clico nesta sobreposição e eu realmente removo este preenchimento. Então eu não gosto de usar este estofamento se eu realmente posso me safar com ele. Então você pode tentar redimensionar esta caixa agora. E você pode ver, você pode realmente fazer isso sem o preenchimento agora. Então eu gosto de fazer assim. E como colocamos no meio da tela? Então nós temos que colocar esta âncora clicando nesta âncora clicando no meio. E se estiver, se estiver aqui na posição 0, 0. Agora você pode ver que ele está realmente ancorando a este, este ponto de pivô aqui. E isso é porque o alinhamento aqui, você tem que jogar com os alinhamentos. Então este é o eixo x e tem que ser 0,5 e o y tem que ser 0,5 também. Então agora isso vai alinhá-lo no meio desta caixa. Então agora está bem no meio da tela. Se você quiser, você sempre pode clicar no texto e dar-lhe uma pequena cor se você quiser torná-lo um pouco mais para este,
para o sapato, Eu apenas gosto deste talvez. E eu estou clicando em OK, e agora temos este botão. E outra coisa é que você pode clicar neste texto aqui em cima e talvez você possa torná-lo um pouco mais avermelhado. E agora temos o nosso jogo sobre UI.
71. Funcionalidade de o jogo over UI: Agora estamos prontos para adicionar algumas funcionalidades a essa interface de usuário que criamos. E, basicamente, vamos passar para o gráfico. E antes de fazermos isso, vamos realmente clicar neste texto aqui, e vamos chamá-lo de onda de texto. E este, vamos clicar no botão e chamá-lo de menu principal do botão. E este podemos chamar de menu principal de texto. Então agora temos um pouco de uma organização aqui. Então compilando, salvando e clicando sobre isso, você morreu texto UI e clicando sobre isso é variável porque queremos que ele seja uma variável. Aqui no gráfico, estão nas Urgências, no gráfico. Nós podemos realmente excluir esses, esses eventos. E podemos pegar nossa UI do Wave e clicar em SetText. E novamente, temos que usar um formato de texto para este. Então vamos fazer um evento personalizado e vamos chamá-lo de game over wave, por exemplo. E podemos definir este texto. E o que podemos fazer com isso é que podemos escrever o formato de texto. Podemos ligar este texto aqui. E agora o que queremos dizer é que basicamente quero copiar meu texto aqui e colá-lo aqui. Então você morreu na onda 13. E em vez de escrever 13, podemos escrever os colchetes, escrevendo 0 e escrevendo este final, colchetes, clicando no interior. Você pode ver isso agora. E este é basicamente o texto. Então, se eu clicar neste evento personalizado e eu clicar em Criar entradas e defini-lo para texto. E eu chamo de onda de variância. Assim como este. E eu posso deixar cair aqui. E, basicamente, lembre-se, nós não temos um número da onda atual e eu vou realmente mostrar-lhe, Vamos realmente trabalhar com ela primeiro para que você possa ver o que está acontecendo. Então agora nós temos, nós temos isso aqui e nós precisamos definir este jogo sobre onda em algum lugar no código. Agora podemos ir em frente e voltar ao nosso modo de jogo. Lembre-se no modo de jogo, temos, este é realmente o controlador do jogador e o modo de jogo. Então, entrando no modo de jogo, temos este contador de ondas aqui. Então podemos usar este para acessar as informações. E poderíamos colocá-lo aqui, o contador de ondas, e poderíamos definir o código aqui. Mas isso também é uma prática ruim porque nós realmente não queremos definir texto. Nós queremos, nós não queremos definir este texto toda vez que você tem uma nova onda, nós só precisamos vê-lo quando você morrer. Então é por isso que eu realmente quero fazer isso quando o jogador está morto. Então aqui, quando temos morte do jogador, aqui, faz mais sentido fazê-lo aqui porque este código só é executado uma vez quando o jogador é que nós não queremos executar este código o tempo todo e configurá-lo mesmo que você não vai precisar dele. Então, é melhor fazê-lo aqui quando o jogador vai morrer. Ok, então vamos fazer isso aqui. E primeiro, vamos para o controle do jogador e realmente adicionar isso aqui. Então cria widgets. E vamos criar o GameOver veio aqui. E vamos promovê-lo a uma variável e chamá-lo de WB game over. E nós realmente não precisamos adicioná-lo
ao viewport porque nós só precisamos adicioná-lo quando o jogador está morto. Então vamos para a base de jogadores. E aqui já temos uma referência de controlador de jogador. Então aqui no final eu realmente quero levá-lo e dizer WB game over. E agora podemos acessar o nosso, voltamos aqui. Agora podemos acessar o jogo sobre onda. Por aqui. Eu vou dizer jogo sobre onda, assim. E basicamente nós também precisamos de uma referência para o modo de jogo porque nós realmente precisamos contador de ondas aqui. Então, se eu for para o modo de jogo, precisamos dessa variável de contador de ondas. Então, na verdade, eu quero criá-lo aqui em cima. Então, após o controlador do jogador
e, e antes da munição, Eu quero dizer obter Modo de Jogo e obter gráfico Modo de Jogo. E aqui podemos conectá-lo e, em seguida, promover isso a uma variável e chamá-lo. Modo de jogo. Vai assim. Agora eu posso conectar o código e agora temos uma referência ao modo de jogo. Então, basicamente feito aqui, o que queremos fazer é dizer, obtém o modo de jogo. Esta, esta é a variável, ou poderia ter arrastado a partir daqui. E aqui você pode dizer “onda”. Então queremos a variável de onda e a variável de onda. Você pode ligá-lo aqui, mas isso vai realmente estar lá. Haverá um pequeno bug, temos que dizer menos um. Porque lembre-se aqui na onda, no modo de jogo, aqui toda vez que geramos uma amina. Então esta é a onda atual que estamos gerando inimigos. Vamos dizer aqui no final, vamos dizer o contador de ondas. E o contador de ondas vai dizer mais, mais. Então, mesmo que estejamos na onda 1, estamos realmente contando isso e configurando para a onda dois. Então, na onda um, estamos gerando inimigos. E no final desta geração inimiga, estamos vendo mais 1. Então esta onda vai realmente ser dois porque um exame que nós
geramos, estamos prontos para gerar ondas para o nível 2 e segunda-feira nesta ligação terminou para a onda 2. Ele realmente vai definir esta variável para Wave 3 e apenas armazená-la lá até que tenhamos matado todos os inimigos. E então ele vai gerar inimigos para a terceira semana. Então, basicamente, está dizendo “Onda 2”. Então temos que dizer menos1 se ele precisa ser correto aqui. Então eu vou subtrair um dele aqui. E basicamente isso é o que eu quero fazer. E conecte-o aqui. E ele vai torná-lo em um texto em vez de um inteiro. E agora temos isso, disse isso corretamente. E então temos que adicionar isso à janela de exibição. Então arrastando a partir deste e dizer Adicionar ao Viewport, porque agora vamos realmente querer exibi-lo. Mas antes de ser exibido, nós realmente também temos que remover a interface principal da janela de exibição porque não queremos gerar essa interface do GameOver e a interface principal. Então o que eu posso fazer é tentar fazer isso assim. Cale a boca um pouco. E aqui eu também posso dizer esta interface principal, cigarros UI principal e dizer remover dos pais, removido dos pais. E podemos remover esta interface principal antes de adicionar este jogo sobre UI, se parece com isso. Então, não é muito confuso. Então, estamos removendo a interface principal antes de colocar o jogo sobre UI no topo aqui. E podemos basicamente clicar em Jogar e ver o que acontece. Então, brincando aqui, e eu estou brincando de matar, eu vou morrer. Eu posso ver agora nós realmente temos a interface do GameOver. Mas agora você vai perceber que você não pode, você não tem um mouse para clicar em qualquer coisa e você pode corrigir isso. Então, voltando para o UR,
o código aqui, a base de jogadores, aqui queremos, do controlador do jogador, há algo. Se eu voltar para o controlador do jogador
no padrão da classe e ver algo chamado show mouse cursor. E isso é realmente o que queremos fazer. Então, se eu sair deste controle de jogador, ou na verdade, eu vou levá-lo aqui novamente, então não está ficando muito confuso. Estou tomando o controle da placa ou referência. Estou a dizer para mostrar o meu rato. Então este conjunto mostra o cursor do mouse. E eu quero mostrar o cursor do mouse assim. E isso é na verdade tudo o que tínhamos que fazer. E também vamos ter outra caixa. Então, se eu clicar em Jogar, eu posso ver que sou eu correndo por aí. Estou sendo esmagado até a morte. E agora você pode ver, eu posso realmente ver meu mouse e eu posso clicar sobre isso aqui. Você pode ver que o botão está se esgotando um pouco. E eu, na verdade, eu também posso mostrá-lo em C e balançar minha arma quando eu estiver morto até que eu não tenha MR provavelmente pode recarregar isso e eu posso atirar. Então também temos que verificar se você não pode atirar quando estiver morto. E a outra coisa é este botão a sair. Então vamos lá consertar o botão primeiro. Então, na interface do usuário e no GameOver e no designer, então este botão aqui, nós temos que aplicar a mesma coisa para o hovered impressionado, este é o problema aqui. Então vá, indo para os ativos e apenas arrastando dentro e a imagem Hoover e em imagem deprimida. Eu posso me misturar assim. E eu posso remover a tonalidade como antes, tanto o Hubbard e oprimido clique no concurso, removendo-o. E basicamente quando você passa o mouse sobre ele, eu quero torná-lo um pouco mais escuro para que você possa ver que você está pairando. E quando você for pressionado aqui, quero torná-lo um pouco mais escuro. Eles tiveram isso sobre e clique efeito. Ok, então isso é tudo o que tínhamos que fazer e nós realmente também temos que ajustar o tamanho da imagem. Eu posso espingarda cópia de cuidados, e eu posso clicar com o botão direito e colá-lo em cima deste pairado. E isso pressionado assim. Então, outro inseto aqui com o botão. Então, se eu clicar no jogo e eles me matarem, vou tentar te ensinar algo novo aqui. Então podemos ver, eu posso passar o mouse sobre este botão. Mas quando eu passar o mouse sobre o texto, ele não está reagindo. É apenas em torno deste texto. E este é outro trabalho. Podemos consertá-lo daqui a pouco. Então, clicando no jogo aqui. Então o bug aqui não é detectado. Então, para você clicar no texto e você descer aqui. É por causa dessa visibilidade, é chamado de visível. Se você clicar neste, nenhum hit testável. Então isso significa que ele não gosta disso. Sexo realmente não importa. Nós realmente não precisamos clicar neste texto. Este texto está ali, são asmáticos. Isto é o que nenhum bate testável significa. Então você pode ver que eu posso realmente acima deste texto aqui, assim como este. Agora está funcionando corretamente. Agora está dizendo que este jogo sobre widget que adicionamos ao viewport já está na tela. A última coisa que queremos consertar como, na verdade, o jogador atirando. Então vamos fazer isso aqui antes que esqueçamos. E é basicamente aqui no fogo. Então, se eu for até aqui e tivermos esse evento de incêndio, e o que queremos fazer é verificar se o jogador está morto ou não. Então já tivemos essa dívida booleana e podemos dizer ramo. Então, se o jogador é que se for verdade, não faça nada além de apenas para legibilidade, eu gosto de escrever nozes. Então, se o jogador não está morto, podemos ir em frente e atirar. Assim como este. Tudo deve funcionar se eu clicar em Jogar. E agora me matando. Você pode ver que eu não posso realmente atirar a arma. E outra coisa que eu estou percebendo, quando você paira essa caixa, há uma borda preta mínima ao redor dela, e eu não quero isso. E nós realmente temos que mudar essas duas caixas exatamente como a normal aqui. Então eu vou mudar esses bugs redondos em uma caixa e esses bugs redondos e caixa de ferramentas, e isso é para o estado pairado e pressionado. Então eu vou mudar essa margem. Eu posso apenas copiá-lo direito com cópia e colá-lo em cima dessas margens, apenas assim. E agora deve ser consertado e tudo deve estar funcionando como deveria. Agora, quando estamos sendo mortos, você pode ver que tudo está funcionando e os botões parecem bem. E talvez eu precise fazer isso em tela cheia para que você possa ver o que está acontecendo. Então, quando eu estava trabalhando e nós podemos clicar em retornar ao menu principal, mas agora nós não temos um menu principal e basicamente irá adicionar este botão MainMenu. Uma vez que tenhamos criado um menu principal.
72. Criando o menu principal: Muito bem, esta é uma lição mais interessante. Aqui nós estamos realmente indo para projetar o menu principal. Então eu quero fazer um fundo 3D antes de adicionar qualquer botão. E só para fazer isso um pouco mais rápido, vamos para os mapas. E basicamente o menu principal é seu próprio mapa. Então nós estamos realmente fazendo o menu principal fora deste mapa. É assim que costuma ser feito. Então podemos clicar com o botão direito neste mapa mental. Podemos duplicá-lo porque eu quero este ambiente aqui. Então você pode clicar com o botão direito do mouse duplicá-lo e chamá-lo de menu principal Mapa. E basicamente temos este menu principal, pode clicar duas vezes nele, você pode salvar selecionado. E a partir deste menu principal, nós realmente não precisamos desta navegação. Então clique neste volume de limites de navegação, podemos removê-lo. E basicamente tudo está bem. Então esta malha de Nav reformulada. Podemos apagar isso também. E basicamente tudo o resto está bem. E o que queremos fazer é apenas uma pequena cena cinematográfica. Então queremos o personagem. Então vamos levar este jogador aqui, esta, esta máquina. Então eu posso colocar esse cara aqui e o nível. E eu posso, em vez de usar o blueprint de animação, eu posso realmente usar um ativo de animação. Então nós podemos realmente escolher nossa própria animação para o que realmente queremos fazer com eles. E basicamente o que eu quero fazer com ele é nos ativos aqui
nas animações de personagens e em seu rifle de recarga como e colocá-lo aqui dentro desta animação. E você pode ver aqui esta é então a posição inicial. E isso pode basicamente mudar essa posição inicial. Então você pode ver, você pode tipo de fazer uma cena cinematográfica com isso. E basicamente, eu só quero que ele fique assim. Então, olhando muito legal e o fundo. E aqui vamos tentar criar uma câmera cinematográfica. Então, basicamente, eu posso ir aqui na criação, no cinema. E podemos criar esse chamado ator de câmera de sinais. Então queremos criar isso. Não sei onde está, está aqui em baixo. Então podemos arrastá-lo é apenas movê-lo para que possamos tê-lo aqui. E nós podemos basicamente girá-lo 90 graus assim. E, na verdade, o que você pode fazer ,
ou vamos, vamos tentar ajustá-lo primeiro assim. E o que você pode fazer é clicar com o botão direito sobre ele e clicar em piloto. Então pilotando significa que você vai para dentro da câmera. Eu posso realmente apenas controlá-lo assim para que você possa escrever para movê-lo bem seu teclado. E se você quiser que algo seja muito específico, pode realmente mudar os valores aqui. Então você pode ver, você também pode arrastar e alterar os valores aqui. Então, basicamente, quero que os botões fiquem aqui à esquerda. Então eu quero que o personagem seja principalmente para a direita aqui. Então, algo assim. E nós realmente queremos que eles estejam perto aqui. E o que você basicamente pode fazer na verdade, eu quero mudar este filme digital para um DSLR porque um DSLR faz um efeito de borrão melhor ligado para continuar ajustando até que eu esteja satisfeito com ele. E acho que algo assim. Não precisamos torná-lo super hardcore. Podemos fazer assim. E agora estou satisfeito. E basicamente o que você pode fazer é clicar sobre isso aqui, o foco manual. Você pode tentar alterá-lo e ver onde você quer se concentrar. Mas antes de fazer isso, você pode realmente clicar neste Draw Debug, porque quando você diminui, você pode ver realmente onde ele está focando. E você basicamente quer se concentrar neste personagem aqui. Então, arrastando isso para cá assim. E agora eu posso remover essa depuração. E você pode ver que ele está realmente focando neste personagem agora. Então, se eu clicar em G para remover todos esses ícones e linhas e ver isso é o que ele está parecendo agora e está olhando muito legal. E você pode clicar em F 11 para ver como ele se parece em tela cheia. Então este é o nosso passado. E você pode basicamente, se você quiser, você pode adicionar algo também em segundo plano para que você possa clicar no jogador nele aqui e no fundo. Assim como este. E, novamente, você pode usar uma animação personalizada e você pode clicar nas animações de caracteres de ativos. E você pode clicar neste jarro. Então ele está correndo para algum lugar. Simplesmente assim. E basicamente você pode usar isso como sua tela principal da interface do usuário. Então este é o menu principal e basicamente queremos que os botões sejam exibidos aqui. Certo, agora podemos injetar essa câmera. E se você tem medo de mover esta câmera, porque agora está correto e perfeito. Você pode clicar com o botão direito do mouse nessa câmera na transformação. Você pode clicar em Bloquear movimento ator. Então agora você não pode realmente arrastá-lo por engano. Você não pode movê-lo por engano aqui. Então isso é muito legal. E basicamente na edição, nas configurações do projeto, agora
podemos entrar em mapas e modos. E no editor Startup Map, você pode iniciar no mapa principal como este é o mapa de luta, este é o mapa do jogo. Mas o jogo Mapa Padrão. Você quer que o jogador comece no menu principal. Então você tem que selecionar o menu principal do Mapa para o jogo Padrão.
73. Design do menu principal UI: Sim, agora estamos prontos para criar os botões para o menu principal e aqui podemos clicar com o botão direito dentro
da pasta e criar nas interfaces de usuário que ele blueprint, vamos chamá-lo de menu principal. Agora vamos entrar aqui e este vai ser bem rápido E, em vez de aqui, basicamente queremos botões, queremos um botão para iniciar o jogo e queremos um botão para sair do jogo. Então, basicamente, primeiro precisamos de uma caixa vertical para colocar esses botões e, em seguida, precisamos de uma sobreposição porque os botões têm texto em cima deles. Então, precisamos de um botão e do texto. Então, esta sobreposição aqui, eu posso realmente pegar essa caixa vertical, torná-la maior, arrastá-la para baixo e deixe-nos colocar um botão sobre ela e deixe-nos colocar um texto em cima deste botão. Então, basicamente, eu posso realmente copiar isso, mas vamos estilizar como um botão e, em seguida, podemos realmente copiar esse botão. Agora podemos mudar o ponto de ancoragem desta caixa vertical porque eu queria estar no meio aqui, para a esquerda, assim e podemos ajustar a posição mais tarde. Então, primeiro, estou clicando neste botão aqui e estou preenchendo-o vertical e horizontalmente. Então eu posso ver o botão inteiro aqui e exatamente como o que fizemos antes. Vamos para os ativos aqui e, para o botão Iniciar jogo, eu queria ser azul assim. Então eu posso arrastá-lo para dentro do estado normal aqui. O estado de Harvard e o estado pressionado. Então agora temos esse botão e vou mudar todas essas cores aqui. As tonalidades brancas e brancas assim e brancas como este ano, assim. E para o estado de Hobart, vou deixá-lo um pouco mais escuro. Então, quando passarmos o mouse sobre
ele, ele vai ficar mais escuro. E quando você pressiona isso vai ficar ainda mais escuro aqui. Então nós temos isso sobre e pressionamos o efeito Agora novamente, vou mudar a caixa Arredondada para uma caixa e escrevendo 0.4 aqui, vou copiar essa margem e colá-la em cima da margem aqui. Então, vamos mudar este para uma caixa. Também este também. E vamos encarar a margem aqui para isso também. 0,4 e 0,4. Ok, então agora podemos realmente ajustar o tamanho desse botão, eu não acho que deva ser tão grande. Então, basicamente, o que podemos fazer é ajustar o X. R D, Y. Desculpe, para que possamos ajustar o Y. Aqui. E para este texto, também
posso colocá-lo no meio, então clicando no texto, posso centralizá-lo vertical e
horizontalmente e posso mudá-lo dois meses, isso é negrito? E este? Acho que podemos reduzir o tamanho 2 18. E vamos tentar escrevê-lo com letras maiúsculas. Então, vou dizer que comece o jogo assim. E basicamente podemos mudar o deslocamento da sombra para dois e dois e um direito no alfa. Então, podemos realmente ver a sombra aqui e para as configurações de contorno, vou escrever uma. Então agora podemos obtê-lo um pouco melhor e você sempre
pode mudar a cor aqui apenas para que ela corresponda um pouco melhor do que antes e, assim como antes de clicar no texto e descer, lembre-se de mudar a visibilidade para não atingido testável. Então, podemos realmente clicar neste texto e agora você pode clicar neste botão e tentar ajustar o tamanho como quiser. Então esse tamanho de botão aqui e eu acho que este está bom. Então, o que você pode fazer é clicar com o botão direito do mouse e copiar isso, colá-lo em cima da Harvard e também colado em cima desse estado mamário. Agora, o que você pode fazer em vez de recriar esse botão primeiro, vamos realmente renomear isso. Então, vou chamá-lo de ganho de ponto de botão e texto,
vou chamar texto,
iniciar o vou chamar texto, jogo e agora você pode clicar com o botão direito do mouse e duplicar isso excessivamente. Então agora você tem dois botões e, para este segundo botão, posso chamá-lo de botão de sair. E este é o texto sai. E agora você pode clicar neste texto e alterá-lo aqui na parte superior, você pode alterar o texto para sair assim ou sair do jogo ou sair do jogo. Isso depende de você. Talvez queira escrever para sair do jogo, isso é mais explicativo e o que você quer fazer aqui, eu realmente quero mudar a cor, então eu queria ser este vermelho. Então eu posso arrastar e soltar aqui em cima desta imagem vermelha. Então, apenas fazendo um apoio um pouco maior para soltar esta imagem aqui, em todos os Estados como este. E então eu tenho que ajustar o tamanho e posso clicar
no segundo botão aqui e posso copiar o tamanho dele. Eu quero que ele tenha exatamente o mesmo tamanho. Então, clicando neste botão e eu posso colar esse tamanho em cima de todos esses estados, assim mesmo. Agora eu tenho dois botões e o que você basicamente pode fazer aqui é novamente queremos fazê-lo
dinamicamente para que possamos entrar aqui e clicar no acariciamento no topo e escrever talvez 40. E você pode ver que é uma parte assim e está bem. Mas lembre-se que eu gosto que minha interface do usuário seja dinâmica. Então, removendo esse mesquinho, eu só quero anexar este botão aqui. Eu quero alinhá-lo verticalmente aqui na parte inferior e clicar no Phil, então agora está na parte inferior e o que você pode fazer é clicar na caixa vertical e agora você pode
realmente ajustar o tamanho através desta caixa vertical. Então agora estou apenas diminuindo o zoom e tentando ver o que parece e algo assim pareceria legal. Agora queremos que este botão esteja no meio aqui, então escrevendo 00 nesta posição, você pode vê-lo âncoras aqui. Então, basicamente, no eixo Y, queremos que isso seja 0,5 e agora está perfeitamente no meio da tela. Agora vamos afastá-lo um pouco desta borda aqui. Então eu vou mover a exposição aqui e apenas movê-la para o lado, então está bem aqui e agora isso é tudo o que temos que fazer para o menu principal.
74. Funcionalidade de interface do menu principal: Vamos agora criar a funcionalidade da interface do usuário principal. E agora, se entrarmos nas plantas, basicamente aqui nos mapas, criamos um novo mapa para o menu principal. E basicamente o que precisamos fazer, nós realmente precisamos de um modo de jogo separado e um controlador de camada separado. Porque quando você faz um menu principal, ele realmente tem seu próprio jogo, Modo de
Jogo e controlador jogador. Então vamos escrever, clique com o botão direito aqui e vá para Blueprint Class. Clique em Layer Controller. E vamos chamá-lo de PC MainMenu. Vamos também clicar com o botão direito do mouse na Classe Blueprint e clicar no Modo Jogo e chamar um menu principal GM. Agora o que temos que fazer, vamos salvar aqui. E se formos para as Configurações do Projeto aqui e entrarmos nos mapas e modos. Basicamente, nós realmente precisamos mudar este modo de jogo padrão. Agora é realmente o menu principal e não esta greve GM aqui. Então, se eu clicar no menu principal e no menu principal GM, e aqui precisamos mudar o controlador do jogador, bem como para menu principal do
PC e o Peão Padrão que você deseja ter. Na verdade, não queremos nenhum lago. Então eu vou clicar em nenhum porque nós não temos nenhum caractere no menu principal. Ok, então agora isso está acabado. Eu vou salvar. E também você quer ter certeza de que o seu está dentro do museu e dentro dos mapas. E você clica duas vezes neste menu principal. Então você está dentro daqui. Certifica-te de que não estás dentro do mapa. Significa que às vezes você pode cometer um erro e pensar que este é o menu principal. Mas clique duas vezes neste menu principal para que você esteja dentro daqui, e isso é o que realmente projetamos anteriormente. Então, dentro deste menu principal, você pode clicar nas configurações do mundo. E aqui, você pode mudar o modo de jogo aqui. Então podemos mudá-lo para o menu principal da GM. E apenas certifique-se de que o controlador do jogador é o menu principal do PC e que a pornografia padrão é nenhuma. E o que você quer fazer agora é basicamente quando clicamos em Jogar, você pode ver agora que estamos dentro do nada. Mas se clicarmos no jogo e resolvermos isso mais tarde aqui, quando clicarmos em Play, eu só vou mover
a velocidade da câmera um pouco para cima para que eu possa me mover rapidamente neste nível. Então, o que queremos aqui quando clicamos em Reproduzir, nós realmente queremos ver esta câmera. Então nós queremos ver através desta câmera para que possamos ver o fundo do nosso menu. E da maneira como fazemos isso, lembre-se, se você quiser algo específico para um nível, você pode realmente codificar em vez de criar uma classe de blueprint, você pode codificá-lo dentro do Level Blueprint. Então eu vou abrir isso. E dentro daqui podemos excluir este evento doente, e vamos usar este evento começar lugar. Então, o que acontece quando você começa a jogar este nível aqui? Então, o que queremos usar aqui é definir o alvo de visualização com Blend. E você pode clicar com o botão direito do mouse e dizer conjuntos exibir destinos. E agora você não pode ver isso aqui. O que você tem para remover este contexto sensível. E quando você faz isso, você pode ver esta função aqui. Então, clicando nessa função, vou clicar com o botão direito do mouse e colocar em contexto-sensível novamente apenas no caso de eu esquecer. E o que você quer fazer a seguir é que você quer clicar nesta câmera aqui no nível. Porque lembre-se de onde você está, quando você está dentro do plano de nível, você pode realmente criar referências a itens dentro do nível se você clicar neles. Então, clicando nesta câmera, eu posso entrar no loop Level Blueprint novamente. Posso clicar com o botão direito do mouse e, enquanto eu tiver esse contexto sensível, posso criar uma referência à minha câmera. Então agora eu posso conectar isso aqui. E posso ligar a minha câmara como os novos alvos. E este alvo aqui é basicamente a perda de controle do jogador. Eu posso arrastar para fora e dizer recebe controlador de camada, assim como este. E agora ele vai, olhar
para a câmera quando eu comecei a jogar o jogo. Então, se eu clicar em Jogar agora, você pode ver que ele está realmente olhando para esta câmera. E agora temos que consertar isso. E você pode ver que quando eu paro, ele está realmente me dando erros. E a razão pela qual está dando, me
dando Eros é porque eu estou realmente usando a máquina de escape aqui. Se eu for para plantas e jogador, eu basicamente coloquei estes aqui e o nível e nós estamos usando esses. E lembrem-se, estes são, na verdade, filhos da base de jogadores. E está tentando executar este código aqui. Ele está tentando executar este código e o mesmo erro, Eu não disse AML. E isso se tornou, porque estamos usando um controlador de jogador diferente. Este controlador não é o único que estamos usando o menu principal. Então o que temos que fazer agora basicamente é que podemos ir dentro de um jogador aqui e podemos legitimamente esta base de jogadores bp. E vamos duplicar este. E deixe-me chamá-lo de EPA, jogador BP. Na verdade, estou chamando no menu principal da máquina VNP. Então, este aqui, nós estamos usando apenas para o propósito do menu principal. Então eu posso arrastá-lo para fora e colocá-lo no nível e algo legal para você não ter que refazer o trabalho. Você pode clicar neste personagem. Você pode copiar este local. Então clique com o botão direito do mouse Você pode clicar no segundo caractere e você pode clicar com o botão direito do mouse e. E cole este personagem em cima dele e clicando novamente sobre este personagem antigo, você pode até mesmo copiar sua rotação. Você pode clicar sobre este novo personagem, colar na rotação e você pode ver que eles estão de pé no mesmo lugar. Então agora no World Outliner, eu posso clicar nesta máquina para que eu possa selecioná-la rapidamente. E eu posso apenas clicar em Excluir, e é isso. Então agora temos este, este jogador aqui ou esta máquina aqui. Podemos novamente, assim como antes, usar o não um blueprint de animação, mas um ativo de animação. E eu posso ir para as minhas animações e colocar esta animação de recarga assim. E acredito que esta posição inicial foi de 0,5. E podemos remover esta linha aqui. Então agora você pode ver que ele não tem nenhuma arma e precisamos adicionar uma arma a ele. Então, se eu voltar para o jogador e este menu principal da máquina BP que acabamos de fazer, eu vou excluir todo esse código. Nós realmente não precisamos de nenhum código para este. Mas liderando o código, você pode excluir todas essas variáveis. Isso é bom. Assim como este, até mesmo excluir esta função aqui. E você também pode nas Configurações de classe, você pode realmente remover essa interface. Então clique em Sim, Nós não queremos qualquer interface. E assim, então Compilar e salvar. E agora está te dando um erro. Quero ver o que é. É realmente dentro deste bom jogador f função. Eu posso excluir esse também, Compilar e Salvar. E agora está limpo. Então o que queremos fazer aqui é dentro desta arma aqui eu posso clicar nela e eu posso selecionar meu, eu acho que o que é chamado KA por algum motivo, k 47 novo y. Então agora ele tem a arma e nós podemos compilar e salvar mais perto. E agora está funcionando como antes. Então temos que fazer o mesmo por esse cara aqui. Eu posso excluí-lo e eu posso simplesmente colar neste caractere menu principal girado 90 graus e mudar isso para um ativo de animação em vez. E agora eu posso entrar em minhas animações e selecionar esta animação jog. E apenas dando-lhe um pouco de corrida aqui. E mova-os por aí. Clique nesta câmera para ver como ela se parece. E eu quero movê-los um pouco para a frente assim. Então você pode até mesmo clicar neste personagem aqui. Então, voltando ao player e menu principal aqui, você pode até remover essa câmera se quiser porque você não está realmente precisando dessa câmera, então você pode remover isso também. Nós movemos esta câmera e a arma que precisamos para que tudo fique bem. Então, quando você clica em Jogar agora você pode ver realmente isso está jogando, então eu tenho que clicar nele e remover este avião aqui. Agora, quando você clica no player, isso está realmente funcionando. A câmera também está funcionando. E também, o mais importante, não
estamos recebendo nenhum erro se clicarmos em escapar e sair disso aqui. Então tudo está funcionando com este menu principal. Então vamos adicioná-lo à tela. E basicamente, para este menu principal, nós fizemos estes, estes modos de jogo e controlador de jogador. Então lembre-se que eu quero fazer o menu dentro do controle do jogador. Então, clique duas vezes neste. E no gráfico de eventos, podemos excluir o evento doente e eles começam a jogar. Podemos dizer criar widgets. E eu só quero criar o menu principal. Então, selecionando o menu principal do WB. E a partir daqui podemos promovê-lo para uma variável vendo menu principal WB. E aqui podemos dizer Adicionar ao Viewport porque nós só queremos adicioná-lo à viewport imediatamente quando entramos no menu principal. Então, quando eu clicar em Jogar agora, você pode ver que nós realmente temos o menu principal e nosso fogo torná-lo em tela cheia para que ele está olhando correto. Agora temos este menu principal. Agora precisamos mostrar-lhes o cursor do mouse. E eu posso voltar para o controlador do laboratório aqui. E basicamente o que podemos fazer, em vez de colocá-lo dentro do código, você pode realmente apenas ir dentro das configurações de classe, na verdade os padrões de classe padrão. E aqui você pode pegar o cursor do mouse show, assim como este. Então agora se clicarmos em Jogar, você pode ver, você pode realmente ver o cursor aqui e eu posso selecionar botões. Ok, então vamos codificar algumas funcionalidades nesses botões. E, e isso é muito simples. Não temos muita coisa acontecendo aqui. Então, se eu voltar para a interface do usuário e clicar duas vezes em meu menu principal que eu criei. Posso clicar neste botão Sair. E se eu rolar todo o caminho até aqui, eu posso clicar sobre este não clicado, clicando no mais, ele faz um evento para você. Posso até apagar estes. Não precisamos deles por enquanto. Então desclique, o que você quer fazer quando você clica no botão? Então eu posso realmente apenas escrever quits e há realmente algo chamado Quit jogo. próximo que eu quero fazer é quando eu clicar neste jogo Iniciar aqui, Eu quero abrir o nível do jogo. Então o que eu posso fazer é descer novamente, clicando sobre isso não clicado. E o que você quer fazer aqui é basicamente dizer nível aberto. E pode abrir nível pelo nome. Então é assim que você, como você se move para o próximo nível para que você possa abrir um nível. E o nível que queremos abrir, se você entrar nos mapas, queremos abrir este chamado Map main. Então, aqui no nome do nível você pode escrever Map main. E agora, se eu compilar e salvar e clicar em Jogar, clique neste botão. Você pode ver que estamos realmente dentro do mapa principal e estamos jogando o jogo. Ok, então lembre-se que nós realmente fizemos a interface do GameOver. Então fizemos este skim sobre u i, mas nunca terminamos este retorno ao menu principal porque não tínhamos um menu principal. E basicamente o que queremos fazer com este, se você clicar sobre isso e você rolar para baixo e clicar no mais para o não clicado. Aqui nós realmente queremos dizer nível aberto. E você basicamente quer abrir o menu principal. Tão louco, menu principal, acho que é assim que chamamos. Então, se eu voltar e você tem que chamar isso de coisa específica aqui. Então tudo o que você tem em maiúsculas, você tem que escrever cap, então você tem que escrever todos os símbolos e assim por diante. Chamando exatamente o que é chamado aqui. Então, economizando, e agora deve funcionar. Então, se eu clicar no jogo, eu começo o jogo. E eu estou dentro daqui, e deixe-nos ser mortos e ver o que acontece. Agora eu posso clicar em retornar ao menu principal. E agora estamos de volta ao nosso menu principal. Então agora temos um bug muito pequeno dizendo que o jogo acabou. Este é o Widget Blueprint já foi adicionado à tela. Então, estamos adicionando isso à janela de exibição, mas nunca a removemos. E isso é, então, dizer, eu já adicionei isso à tela. Por que eu tenho que fazer isso de novo? Então isso você pode realmente consertar. Lembre-se que fizemos isso dentro do jogador e na base de jogadores. Então, basicamente aqui quando o jogador morre, estamos adicionando este jogo mais. Então, neste estamos adicionando-o à janela de exibição, mas nunca fomos removê-lo. E basicamente nós podemos realmente remover isso aqui. Então, na verdade, no gráfico, quando eu abro esse nível,
apenas, pouco antes de abri-lo, eu posso realmente removê-lo das viewports. E o que eu posso ver aqui é arrastado para fora e dizer Remover da vista, removido dos pais, não da viewport, removido dos pais. E o que eu quero remover é basicamente célula. Então eu não preciso de um alvo porque já estamos dentro do veio. Então eu basicamente quero removê-lo do pai e, em seguida, abrir este nível aqui. Então, se eu clicar em Jogar agora, e vamos fechar isso, eu clico no jogo, e eu clico neste Start Game. E vamos jogar e deixá-lo morrer. E eu estou morto. E eu posso clicar neste retorno ao menu principal. E agora se eu clicar em fuga, você pode ver que não estamos recebendo mais esse bug.
75. Efeitos de som de UI: Ok, então vamos agora adicionar alguns efeitos sonoros para os botões na interface do usuário. Então vamos voltar aqui para a interface do usuário, e vamos começar aqui desde o início. Então, o jogo por cima de um aqui. Lembre-se que temos um botão aqui. Então, clicando neste botão, você pode realmente, se você rolar para baixo agora, você pode ir no gráfico e dizer que quando você clicar neste botão, você pode tocar um som. Então, toquem som. E até agora temos usado som de reprodução no local. E isso é quando você quer gerar um som em um determinado local. Por exemplo, se um inimigo atacando você, você quer gerar esse som como os jogadores que são os inimigos atacando. Mas se você simplesmente quer um som, como um som desta interface do usuário, basta apenas dizer tocar som e você reproduzir um som 2D. Isto é para a interface do usuário, mas não podíamos fazer um aqui e colocar o som aqui. Mas o que realmente podemos fazer, Unreal Engine já codificou em funcionalidade aqui. Então, se você clicar no botão e você pode, você pode ir até aqui, pode realmente ver algo chamado som pressionado e sons de Harvard. Então nós podemos realmente adicionar sons aqui em vez de colocá-lo dentro do código. Então você pode colocá-lo dentro do código, mas eu não acho que é uma boa prática. Quero dizer, por que você faria quando eles estão literalmente tê-lo colocado aqui, basicamente, eu importei alguns sons aqui. Então, no material do curso você vai encontrar tudo, encontrar todos esses sons. Agora aqui podemos basicamente minimizar estes. E eu não acredito que nós temos uma pasta de áudio ou áudio aqui, e eu acho que não. Então o que você pode fazer é clicar com o botão direito nessa pasta de conteúdo, clicar em Novo, e eu estou apenas chamando de áudio. E dentro desta pasta de áudio, posso abrir minha pasta de materiais do curso. E aqui vamos ver o que vamos usar. Então vamos usar essa música de ataque clone,
a música do menu principal. Esta é uma música de Speed Ball que usamos antes. E o botão de clique sobre a profundidade, vamos adicioná-lo mais tarde. A nova onda, o hotel não é algo que estamos usando aqui. Esse era o velho jogo, o jogo de bola. E a estrela é para o jogo. Então esses que vão usar e você pode arrastá-los para dentro do áudio. E agora para o menu principal onde basicamente queremos fazer ou não menu principal. Então, basicamente, a interface do usuário, queremos clicar neste botão pairar, clique com o botão direito sobre ele. E aqui você pode criar um sinal de som. Então crie fila e chame-o de SC para o som de sinalização. E você pode chamá-lo de pasta de botão. E vamos fazer outro sinal de som. Então, este botão clicou no botão clique, você pode clicar com o botão direito do mouse criar fila e chamá-lo botão clique. É assim. Então vamos usar isso para ouvir como eles soam. E você pode clicar na interface do usuário, abrir o jogo sobre UI novamente. E agora o que você pode fazer é realmente clicar neste botão e você pode descer para pressionar o som Hoover e terminar um som Hoover. Você pode escrever Wilbur, e devemos ver o som que acabamos de fazer. E pode fazer o mesmo aqui. Se você disser clique, você pode escolher este clique de um botão que acabamos de fazer. Agora, isso está funcionando. Basicamente, você tem que fazer isso com toda a interface do usuário. Então, indo para o menu principal, não
temos botões. Então, saindo disso, indo para o menu principal, clique neste botão. E a mesma coisa aqui. Se você clicar com o botão direito do mouse gostando disso, direito sobre, selecionando isso e fazendo a mesma coisa, talvez você possa copiá-los na verdade, você pode realmente copiá-lo aqui. Ateísta. E com este podemos apenas procurar por Alice, selecionar isto. Ok, então isso está funcionando também agora. E na onda nós realmente não temos nada aqui. Então, isso foi na verdade todos os botões de interface do usuário que poderíamos adicionar porque nós realmente não temos mais botões que, que faz som aqui.
76. Música de jogos: Então vamos agora adicionar um pouco de música para o jogo. E para começar, eu realmente tenho algo chamado. Então, se formos para o áudio que importamos, na verdade temos este chamado MainMenu música e pode ser muito alto. Tenha cuidado. Sim, então este menu principal música que eu quero
usar para que ele possa clicar com o botão direito e criar uma fila novamente. E este chamado Sun Q menu principal. E podemos chamar-lhe música de sublinhado. Eu só quero saber que isso é realmente música e não uma conduta de efeito sonoro como esta. E para este curso eu só quero baixar o volume para que não seja muito alto. Ou você apenas assim,
isso é, isso está soando bem. E o que você pode fazer aqui, eu realmente fiz bolha azul. Agora isso não era bolha loop inicialmente, eu só baixei algumas músicas livres de direitos autorais do YouTube. E o que você pode fazer é clicar nele e você pode realmente selecionar este chamado looping. Então agora ele está realmente looping para sempre. E eu fiz funcionar dentro do Premiere Pro. Eu só fiz isso em loop. Então agora você pode realmente ouvir isso para sempre. Então a próxima coisa é este, m clone ataca. Então esta é a música clonada. Este aqui eu posso clicar com o botão direito do mouse criar sinalização de som
e SC, e podemos chamá-lo de uma música de ataque clone. Sim, como o destinatário pode clicar duas vezes. E para o bem deste curso, novamente, vou diminuir o volume. Então sua orelha não está explodindo. Talvez 0,3. E você pode até, você pode, você pode aumentar o volume no seu computador, tudo bem. E novamente, você pode clicar na bolha de loop porque é, na verdade, eu fiz loop para sempre, assim. E agora podemos realmente tocar o som aqui. Então você pode fazê-lo no modo de jogo ou no controle do jogador, ou o open e o Level Blueprint e fazê-lo a partir daqui. Então, basicamente, já que é específico para este nível, eu posso realmente apenas abrir este plano de nível. Ou também não é errado se você quiser entrar no modo de jogo aqui e realmente apenas jogá-lo desde o início, comece aqui, mas cabe a você. Isto é, não há nada de errado aqui. Então, entrando no Level Blueprint, eu só vou tocá-lo a partir daqui. Então eu vou dizer tocar som 2D. E a partir daqui eu posso apenas selecionar o meu, Eu posso dizer música e eu posso selecionar o meu menu principal música. Agora isso está funcionando se você clicar no jogo. E a próxima coisa que quero fazer é ir ao Maps, abrir o mapa principal aqui. E novamente, nas plantas de nível Blueprints, eu posso dizer tocar som 2D, e eu posso procurar música e tocar minha colônia, música de greve. Então, se eu jogar daqui, este também está funcionando.
77. Finalização do jogo: Tudo bem, então agora estamos quase terminando e estamos quase na linha de chegada, mas ainda temos que fazer coisas muito pequenas que tornarão o jogo ainda mais incrível. E são sempre esses pequenos detalhes que você faz no final que tornarão seu jogo ainda melhor e melhor. Por isso, vamos acrescentar estas coisas finais. E o que eu acho que devemos fazer é adicionar um efeito sonoro de onda. Então, quando você muda a onda, há um efeito sonoro. E basicamente isso está dentro do modo de jogo. Então, se formos no modo de jogo aqui, blueprint e dentro do modo de jogo para o ataque clone. Então, basicamente, nós temos esse inimigo gerador, o inimigo descendente. E nós sempre podemos, você pode ver aqui estamos realmente exibindo a interface do usuário do Wave. Podemos sempre tocar este som aqui. Então, antes de podermos tocá-lo, obviamente temos que entrar no áudio. E o que vamos usar chama-se New Wave. Então podemos clicar com o botão direito do mouse e criar um sinal de som, chamá-lo de New Wave, e eu posso tocá-lo. Então este som, vamos colocar algum som de helicóptero e vamos tocá-lo. Deixe-me ver onde faz mais sentido. E nós podemos apenas tocá-lo aqui. Então aqui nós podemos dizer tocar som para D
Assim porque nós realmente não queremos tocá-lo em um determinado local e é apenas um som 2D. E podemos procurar uma nova onda e selecioná-la daqui. Em seguida, queremos colocar de volta o nosso atraso aqui. Então lembre-se que desconectamos esse atraso porque nós realmente queríamos tentar o jogo sem o atraso. Então não esperávamos cinco segundos cada vez que tentávamos um novo mecânico. Então eu vou reconectá-lo e excluir este aqui e juntar o código, colocar este nó feio, auxiliar ou AV, exatamente assim. E em seguida, queremos clicar nesta onda e vamos colocá-lo de volta para a onda número um aqui. Então, a próxima coisa que podemos fazer é tocar um efeito sonoro quando o jogador morre. E eu tenho algo engraçado se você ainda não descobriu. Baixei o som mortal do Metal Gear. Acho que podemos fazer algo divertido com isso. Então vamos clicar com o botão direito do mouse e criar uma sugestão sonora disso e chamá-lo de profundidade sc. Vou baixar o volume. Eu acredito que é muito alto, então eu vou baixá-lo para zero ponto três. Então esse músculo, seu som. Podemos fazer mais alto. Simplesmente assim. E eu quero tocar este som sempre que o nosso jogador tiver dados. Então eu posso entrar em plantas, clicar no jogador e abrir esta base de jogadores aqui. E se formos até esta morte aqui, podemos basicamente depois de desativar a colisão e o movimento. E aqui temos este jogo sobre UI. Antes de eu querer exibir esta interface do usuário, eu realmente quero tocar o som aqui, então eu vou movê-lo um pouco para longe. E aqui eu vou dizer tocar som 2D. Então basicamente a mesma coisa que estamos fazendo uma e outra vez. E aqui vou eu à procura da morte. E agora esse som de definição vai tocar. Mas basicamente o que eu quero fazer aqui, eu realmente quero atrasar essa interface porque eu quero reproduzir o efeito sonoro. E depois disso, podemos mostrar a interface do usuário. E eu acredito que se tentarmos atrasá-lo por cinco segundos e C são seis segundos e ver o que se parece natural porque eu quero que o som da morte para tocar antes de mostrar a interface do usuário. E a última coisa que queremos fazer, nós realmente temos um bug ao recarregar no jogo porque lembre-se, nós verificamos que o jogador não é isso quando estamos filmando. Então, quando
estivermos mortos, não podemos disparar a arma. E temos que fazer o mesmo aqui. Ou quando recarregamos porque podemos recarregar enquanto estamos mortos. Então eu vou realmente copiar isso e eu posso mostrar a vocês como nós limpá-lo na próxima lição aqui. Então agora, agora está dizendo que se você não está morto, você pode realmente recarregar. Então, se você é uma nota que você não pode recarregar. Agora, outro livro que temos aqui é selvagem. Você está recarregando. Você pode realmente disparar a arma deles. Então podemos disparar a arma deles. Você pode clicar no mouse uma arma muito longe descontroladamente você está recarregando, e nós não queremos fazer isso. Isso parece um pouco tolo. Então vamos até aqui fazer um novo booleano. E vamos chamá-lo de B está recarregando. Agora podemos levar este recarregamento no início
, será falso. E agora, quando clicamos na recarga e olha aqui, ele verifica, é o PLR morto, sei que o jogador não está morto. Então aqui depois deste cheque aqui, podemos colocar este recarregamento aqui, assim mesmo. E agora o jogador está recarregando. Então no jogador não está recarregando. Podemos subir aqui e dizer: “ Podemos levar isto aqui e dizer “malucos”. Então camada 1D não é isso. E podemos arrastar para fora disso e dizer, e quando o jogador não está morto e o jogador não está recarregando, então podemos atirar. Então temos dois cheques aqui que temos que fazer antes de filmar. E basicamente agora podemos desconectar isso e podemos conectar isso e em vez disso. E aqui nós temos, em algum momento nós vamos ter que definir isso falso porque depois que você terminar de recarregar, você não está recarregando mais. Então é depois desta jogada, esta montagem terminou, você disse DMO, você armou essa munição. E então, no final, eu vou pegar isso e definir o recarregamento para falso. E basicamente o que queremos fazer também aqui, outro livro que você pode ver aqui é o jogador pode realmente spam o recarregamento. E não queremos que o jogador abranja a recarga. Então, basicamente, queremos pegar este ano assim, que ele
possa realmente copiar tudo isso. E vamos apagar isso aqui, e vamos colocá-lo aqui. Então maravilha PLR não está morto e o jogador não está recarregando já. Então podemos ir em frente e clicar em Recarregar. Desta forma, o jogador não tem o potencial de apenas clicar em nosso tempo mais antigo e apenas manter spamming que recarregar animação. Então agora este corrige. Ok, então o último bug que temos, eu acho que é o último. Eu tentei o jogo algumas vezes por cerca de 15, 30 minutos. E um dos insetos é um inseto estranho. E aqui, se voltarmos para os inimigos e para a base inimiga. Então, basicamente aqui na base, temos este jogador de ataque e basicamente esta caixa fora. Então, se isso está sendo jogado antes, se o
grunhido, a IA e a IA realmente atacando você ao mesmo tempo que você está matando o SE II. Este vai tocar e na verdade vai atingir U, mesmo que as AIs que ensinaram que você quer fazer é apenas pegar este e dizer, se o nanico não está morto, então ele pode atacá-lo. Então pegando isso e escrevendo B e checando se o subsídio não está morto. Então, se o chão não estiver morto, você pode ir em frente e atacá-lo. Então, na verdade, vou testar o jogo. Então, se clicarmos em Reproduzir, agora, nós tocamos essa música e eu posso clicar em Iniciar. E temos este efeito sonoro de onda. Temos a música a tocar, temos a IA e está a contar um. E se eu contar a ele, vamos para a segunda semana , então vou deixar que me matem aqui. Então agora ele vai me matar. E palavras que também foram as cobras e o fato e você guiou com dois. E isso é realmente com dois e podemos retornar ao menu principal. E aqui estamos nós. E podemos desistir do jogo se quiser jogar de novo. Se quiser.
78. Limpar o código: Ok, então agora terminamos o jogo e é muito importante limpar seu código porque você pode imaginar se você não limpar seu código depois, digamos um mês, dois meses, três meses, você não vai saber o que você fez. Se você não comentar nada. Além disso, se você contratar outro programador e ele precisa trabalhar ao lado de você, provavelmente não vai saber o que você fez se você não comentar nada. E também se o seu, se o seu código não estiver limpo, é muito difícil de ler e também para si mesmo. Então muito, muito importante, mesmo que tenhamos terminado de novo, muito importante que você limpe seu código. Então, comecemos a partir deles, desde o início. Vamos começar a partir do modo de jogo para o ataque de clones. Então, vou clicar duas vezes aqui. E eu costumo começar do início. Então temos essa peça inicial. Nós temos o atraso, e nós temos os inimigos gerados e o controle do jogador aqui referência. Então o que eu gostaria de fazer é realmente mover este controlador de jogador para esta parte aqui desde o início, porque eu não quero atrasar antes de criar esta referência, não
faz sentido. Faz sentido atrasar ou responder, mas não para fazer essa referência. Isso não faz nenhum sentido. E o que eu costumo fazer é comentar meu código para que você possa sobre todos os selecionar tudo isso, clique em C para fazer um comentário. Então lembre-se de clicar em C. E aqui você pode, por exemplo, certo? Mas nós podemos tocar, eu escrevo, eu gosto de escrever começar peça. Sim, querendo, eu só vou dizer inimigo desovando. Simplesmente assim. Você pode chamá-lo de criação de jogador, referência de
controlador ou criação de referências. O que eu costumo usar o start play para criar referências a coisas como o controlador do jogador. Agora você criou um comentário e agora também é fácil se mover se você quiser. E isso está parecendo muito limpo agora. E também pode, se você clicar aqui, você pode mudar a cor aqui. Então, se você quiser começar a jogar para ser uma cor específica, você pode fazê-lo. E você ouviu isso chamado “Show Bubble “quando ampliado. Então pode pegar uma multa aqui. Então você pode ver esta bolha quando você está ampliado. E então você pode desmarcá-lo se você não quiser vê-lo assim. Agora vou deixar isso acontecer e vou deixar a bola estar aqui. O próximo é o inimigo descendente. E repetindo um som aqui, estamos nos referindo ao controle do jogador. E este controlador de jogador, nós realmente não precisa se referir a ele agora porque nós já temos este controlador de jogador set. Então, vou apagar isto. E nós podemos realmente usar essa referência aqui. Então eu vou segurar o Controle, arrastá-lo para fora e apenas conectado aqui. E isso é tudo o que tínhamos que fazer. Para que eu possa aproximar isto agora. Simplesmente assim. Agora estamos adicionando isso à viewport. Estamos exibindo o texto da onda, atrasando e deletando. Sim, então isso é bom. E eu vou entrar nele e dizer desovar inimigos,
cronômetro, exibindo Wave, UI. Simplesmente assim. E você pode chamá-lo do que quiser. Por isso, neste momento, estou a improvisar a coisa mais rápida que consigo pensar. E aqui em baixo temos os inimigos geradores. Então os geradores inimigos ligando os inimigos através deste temporizador aqui. E o que queremos fazer aqui,
este código aqui de “Get Ator of Class”, você está respondendo, respondendo a esses grunhidos aqui, esta é a lógica do inimigo de origem. E o que eu quero fazer é que eu estou realmente indo apenas para selecionar todos estes aqui. Vou clicar com o botão direito do mouse. E aqui você pode dizer colapso para funcionar. Então você vai fazer uma função. Então Calypso função e você pode ver que eles estão dentro de uma função. E este você pode chamar, por exemplo, desovar, inimigo sobre. Algo assim são gerados grunhidos, isso depende de você. E este valor aqui. Se você clicar nele, você pode clicar duas vezes nesta função agora e você pode ver todos eles estão dentro de uma função. Então, se eu mover esta nota de retorno para que possamos ver como é. E eu afasto isto desta. Isto está dentro de uma função agora. Então este é o nó de entrada. Aqui é onde a função começa e você tem seu código e este é o nó retornado. Então este é o começo e este é o fim, este é o nó retornado. Então agora você tem uma função e sexualmente parece limpo. Agora você não precisa desse código longo dentro do seu gráfico principal. Se você apenas transformá-lo em uma função, ele também aparece aqui à esquerda. E se você quiser criar uma nova função, você pode simplesmente clicar neste sinal de mais aqui e você pode criar sua própria função. E quando você quiser encerrá-lo, você pode escrever um retorno e você pode adicionar esse nó de retorno. E você pode ter seu código no meio daqui. Agora, clicando neste nó de retorno e sua entrada aqui, você pode fazer diferentes variáveis para eles e você pode criar coisas políticas. Então eu vou deixar esta função aqui. Então agora temos isso dentro de uma função e chamamos lagoa inimiga de geração, e o nó retornado, eu não quero que ele seja chamado. O valor de retorno não faz sentido para nós. Não nos dá nenhum valor. Este eu só vou chamar inimigo, inimigo sobre. Talvez haja assim. E se for, e faz mais sentido ter este nome. Um valor de retorno. Então esta é a pornografia inimiga que temos aqui. E no final de Upon, estamos definindo para uma variável chamada pornografia inimiga. Então, se eu mover tudo isso mais perto agora, apenas assim. E aqui estamos adicionando os pons à matriz. Então eu vou mover isso na verdade vai mover estes aqui, Ls. Deixe-me tirar isso e ver o que acontece. Então eu vou mover estes, este aqui. Eu posso me mudar para trás. Agora eu posso, eu posso pegar esses dois aqui. Agora eu posso clicar em ver e dizer adicionar NME na matriz. E este nós podemos apenas vir aqui e dizer display ou um conjunto,
set, subsídio inimigo, ou a interface do usuário, por exemplo. E isso foi um nome ruim, mas você pode chamá-lo de qualquer forma. Mas estamos basicamente definindo o, o número na interface do usuário quantos inimigos você gerou. E podemos mover essa lógica aqui. Então, estes dois aqui, não
pertencem aqui. Para que possamos movê-los. Posso segurar o Controle e selecionar esses. E podemos tirá-los daqui. E este, eu posso colocá-lo aqui porque não há muito espaço. E este está na verdade apenas verificando quantos você gerou. Só assim, porque estamos tendo um contador de ondas. Então estamos parando o contrário. Você não está mais desovando. Nós temos isso agora. E aqui você pode dizer, adicionar um à forma como a variável. E eu vou apenas clicar sobre isso. Então clique em Controlar selecionando todos esses comentários. Eu vou remover as bolhas e realmente vai selecionar tudo isso. Agora clique em C e dizendo spawn, lógica
NME, apenas assim. Então agora eles estão todos neste
mestre, mestres comentários, vendo surgir na lógica imunológica. E eu posso até dar uma cor, algo assim se eu quiser. E agora parece muito mais limpo do que o que tínhamos antes. Agora o que podemos fechar isso, mas você também pode, você pode limpá-lo ainda mais. Na verdade, o que você pode fazer é aqui à esquerda você tem essas, essas variáveis que você criou. Se você clicar em uma variável, você pode ver aqui para ali, para lá, certo? Você tem categorias e aqui você pode realmente dar-lhe, dar-lhe uma. Então aqui, agora é apenas chamado padrão. Você pode fazer o seu próprio se você clicar duas vezes aqui e você pode apenas escrever referências, por exemplo. E você pode ver que faz uma categoria aqui vendo referências. Então agora podemos realmente adicionar todas as referências juntas. E é assim que você limpa suas variáveis também. Exemplo você pode clicar na lagoa inimiga e eu posso simplesmente
chamá-lo de propriedades NME, por exemplo. E ele pode simplesmente pegar este inimigo também, arrastá-lo para cima e colocá-lo dentro de propriedades inimigas. Então agora podemos ver as propriedades inimigas e dentro daqui. E você tem todas as suas outras variáveis. Então você pode colocá-los em, em categorias também. Agora vamos compilar e salvar este e vamos fechá-lo. E vamos para o controle do jogador. Aqui estamos nós. Estamos fazendo uma referência ao peão do jogador. Então estamos criando todos esses widgets. Eu estou realmente indo para selecionar todos esses widgets aqui. E eu vou clicar com o botão direito do mouse e clicar em colapso para funcionar. E eu vou chamá-lo de criar widgets, exatamente assim. E agora temos este. E aqui eu vou apenas dizer Begin Play, criar em referência e criar widgets como esse. Agora que está limpo também. E aqui em baixo temos os movimentos dos jogadores. Então eu vou fazer um comentário e dizer, sim, você pode dar um nome melhor, mas eu estou dando um rápido para que eu não faça o vídeo demorar uma eternidade. E aqui você pode apenas dizer arma de fogo ao pressionar a tecla do mouse. Faz assim. Então agora isso parece limpo também. E novamente, você pode limpar isso aqui. Por exemplo, eu clicando neste, você pode simplesmente chamá-lo de interface de usuário ou widget de blueprint ou widget de interface de usuário ou onde quer que você queira chamá-lo. E você pode arrastar estes para dentro dele apenas assim. E isso está parecendo limpo. E agora podemos colocar este em uma camada. Robert Cheese, ou na verdade isso é uma referência, então é barracão chamando de referências. E você pode colocá-lo dentro daqui, assim. Então agora é muito limpo, bem, então eu posso compilar e salvar aqui e dentro da base de jogadores, eu vou apenas olhar rapidamente se temos algo crítico que precisamos mudar. E não quero fazer esse vídeo muito longo, mas estou vendo se podemos aprender algo novo aqui. E aqui, por exemplo, esta arma de fogo, estamos verificando se o jogador está morto e se o jogador está recarregando. E se não, você pode ir em frente e atirar a arma. Então basicamente você pode fazer isso um pouco menor e não a maior mudança, mas você pode torná-lo menor e talvez mais limpo. Por este está morto, não está morto. Você pode clicar com o botão direito do mouse e recolhê-lo em uma função. E você pode chamá-lo de “está vivo ou exemplo”. Porque se você não está morto, você está vivo basicamente. Então ele está vivo e você não precisa disso como esta função aqui, eu vou te ensinar algo novo chamado puro. Então, se você clicar, se você clicar na função e você clicar neste significado puro, puro, o que significa que você realmente não deseja conectá-lo através desses pinos aqui. E por que você não quer conectá-lo através desses pinos? Isso é porque você não está definindo nada, nenhuma nova informação. Agora, se você está definindo novas informações exatamente como estamos fazendo aqui, isso é definir novas informações. Nós não estamos realmente definindo nenhuma informação nesta função. Se entrares nesta função agora que entramos em colapso, estamos apenas a verificar se o jogador está morto ou não. Então estamos tomando esse booleano se for verdadeiro ou falso. Então não estamos realmente definindo como verdadeiro ou definindo como falso. Então não precisamos conectá-lo por aqui. E se você tem funções como essa, você pode clicar no significado puro e puro se você agora compilar e salvar, ele está funcionando. E puro só significa que você realmente não precisa desses pinos. Você só quer a informação aqui e pode usá-la. Então isso é o que significa puro e você deve tornar suas funções puras para que elas não se conectem por aqui. Se você não definir nada. Então, se você só quer alguma informação, você pode ir em frente e fazer isso. Agora, por exemplo, com este aqui, se eu tivesse que definir isso para puro, eu não poderia porque você está realmente definindo informações aqui. Mas aqui você não está realmente definindo informações. Você só está pegando algumas informações e quer verificar uma coisa. Assim como com este está recarregando. Posso recolher os laboratórios. Isso para uma função e chamá-lo não está recarregando. E eu posso clicar em Seu aqui. E assim mesmo. Outra coisa é que você tem algo chamado Const. Então, se você clicar nesta seta aqui, você pode clicar nesta const e basicamente esta constante, o que significa. Significa que esta informação aqui que temos aqui dentro, pode vir de outra fonte. Então, por exemplo, digamos,
digamos que isso estava dentro do controle do jogador. Então eu tive que pegar o controlador de fluxo e eu posso realmente conectado por aqui. E esta é a função que, que ele teve. Então nós realmente não queremos fazer isso porque esta é apenas uma função que pertence a isso aqui, então não faz nenhum sentido. Então eu vou remover esses contras, mas só para que você saiba, você pode adicionar alvos a essas funções puras são funções RREF puras. Você pode adicionar alvos basicamente se eles vêm de outros projetos, assim como o que fazemos aqui. Pegamos isso e chamamos isso de outros projetos. Então vamos removê-lo. Não faz sentido neste caso. Então agora o código é tudo. É mais pequeno e é um pouco melhor entender auto-montagem. E o pai está vivo e o upload não está recarregando. Você pode ir em frente e disparar a arma deles. Então você pode fazer isso e você pode realmente ir em frente e substituir este site. Você pode excluí-los na verdade. E a razão pela qual eu não peguei tudo isso e tornei isso em uma função é porque às vezes você precisa que isso não está morto sozinho. E eu não quero fazer mais funções do que o necessário. Vou apagar isso e me conectar. Isto está vivo e não está recarregando. Foi assim. Então você pode torná-lo muito mais limpo assim e você pode substituí-lo. Aqui. Eu acho que fizemos o verão sim, eu acho que foi na verdade nos inimigos, então não foi uma lágrima. Ou eu vi antes de terminar esta lição, eu realmente quero mostrar que este é um projeto em que tenho trabalhado apenas por diversão. Você pode ver que estas são todas as animações que eu tenho. E este é apenas basicamente um jogo FPS multiplayer. E isso não é Unreal Engine 4 porque o multiplicador ainda
não foi implementado no Unreal Engine cinco neste momento, estou gravando este vídeo. Então eu não queria mostrar como você limpa seu código também. Assim, você pode ver a partir de um projeto maior como é bom se você limpou seu código. Então você pode ver se eu entrar na base de jogadores, dentro daqui, exatamente como o que fizemos. Eu estou, estou me referindo a este modo de jogo. Estou definindo isso como uma referência. Estou criando um controle de jogador. E nós temos esse movimento de camada. Então você pode ver que eu comentei todas essas coisas lá fora. Coisas que não comentei por aqui. E você pode ver que eu estou trabalhando em algum slot de granada e liberar luz e assim por diante. E estes, eu ainda não terminei, então eu realmente não comentei nada. Ainda estou trabalhando aqui. Mas basicamente todas as coisas que estão terminadas, por exemplo, o movimento do jogador. Você pode ver que eu comentei tudo e é tão bom. Eu não estou neste projeto há cerca de seis meses ou nove meses porque eu tive tantas coisas para fazer e eu queria fazer cursos e minha vida real. Então eu não venho aqui há quase um ano e é tão fácil entender o que eu tenho aqui, seus próprios olhos, é a caminhada aqui, então eu posso ir aqui, ver a caminhada e ver o que eu fiz. E eu posso ir aqui e ver que estas são as árvores de linha como se estivéssemos filmando. Mas neste caso, nós o usamos em filmar para filmar dentro do nosso, nosso exemplo. Mas você também pode usar traços de linha para pegar itens. Então, na verdade, isso está feito. Por exemplo, se eu clicar no jogo aqui, eu estou basicamente dando um traço de linha para detectar qual arma é subterrânea. E você pode realmente fazer isso. Vamos traçar traços, por isso é muito fixe. Então, quando acertar a arma, vai fazer algumas coisas. Mas, basicamente, lembre-se de comentar seu código, fazer o que puder para limpá-lo. Você pode ver aqui eu coloquei nele, eu até coloquei as funções dentro de, dentro dessas categorias. Então, clicando nas funções, você pode realmente adicioná-las duas categorias, bem como dessas funções. E este é em esfrega este multiplayer, Eu realmente não posso adicioná-los em categorias. Então é por isso que eles estão aqui. E basicamente, estas são todas as variáveis. E você pode ver como isso pode ficar confuso se você tem todas essas variáveis e isso, eu nem sequer comecei o jogo. Eu ainda muito buggy e eu ainda estou no início do desenvolvimento. Então você pode ver aqui, nós temos tantos componentes aqui e isso é apenas o começo. E você pode imaginar se você desenvolver um ano, quão confuso isso vai ser. Então, basicamente, limpe seu código e vai ficar muito confuso se você não fizer isso.