Agora, a gente já tem um sistema funcionando bem legal aqui dentro de um level só. Só que agora, eu quero expandir um pouco o nosso pensamento para gente se encaixar em outras situações. "Que tipo de situação, Daniel?" Vamos supor que esse sistema todo que a gente tem na mão, a gente quer usar em outros levels. Eu posso simplesmente selecionar todo mundo e dar aquele bom e velho control C Control V? Claro que pode. Só que eu quero deixar uma forma mais profissional. Se, de repente, você está trabalhando com outro programador, vocês vão querer, de repente, compartilhar um arquivo ou outro. Então, é por isso que eu vou expandir um pouco mais a linha de raciocínio da classe. Então aqui, gente, nós temos o nosso Level Blueprint, que é onde tem todas essas regras aqui. E a gente tem basicamente um coletável, vamos dizer assim. Daria até para melhorar o aspecto desse coletável. A gente pode até de, repente, vir aqui embaixo, na parte de "Rendering" e desligar. Ou, no caso, ligar o "Actor Hidden in Game", Que é para ele ficar com mais carinha de coletável mesmo. Então, você vai esbarrar nele e ele vai ser deletado. Essa briga que ele faz, ele meio que dá uma teimada, é porque justamente a colisão dele vem antes do próprio trigger box. Então, por isso que justamente em uma linha de raciocínio dessa, a gente dá uma engordada na trigger box, que é para garantir que ele vai colidir primeiro com a box para aí, sim, ele deletar a tal da esfera. Então, sim, isso aqui agora é um sistema de coletável. O que eu quero começar a apresentar para vocês é algo que não fique preso no level. Qual é uma boa prática? Aliás, uma excelente prática para o desenvolvimento de jogos? É no Level Blueprint, você programar coisas que tenham a ver com o level. Então, desafios que vão ter dentro do level. Você tem um sistema de coletável, como, de repente, uma moeda, uma arma, que você quer coletar e tudo mais. Esse sistema, nessa mecânica, ela vai ser repetida em outros levels. Aliás, essa é a graça do jogo. É você ter vários sistemas que vão funcionar em vários universos diferentes. Então, por isso que agora, eu quero mostrar para vocês para valer mesmo, a tal da classe. Vamos aqui no nosso Content Drawer, vamos começar a customizar esses caras aqui. A gente pode vir aqui em "Content", que é a raiz do nosso projeto. Eu vou apertar o botão direito aqui, "New Folder". Vamos antes de tudo ser pessoas organizadas. Eu vou chamar esse cara aqui de "Collectibles". Para quem quiser botar tudo em português, beleza. É coletáveis. O meu convite é sempre já tentar aproveitar para treinar o inglês, por mais que você esteja um pouco enferrujado, porque o mercado é todo em inglês, né? As vagas, as melhores vagas, vão ser lá fora justamente. Então, collectibles. Vamos entrar aqui nesse cara. Botão direito novamente, "Blueprint Class". Olha o cara que eu estou falando. Na verdade, ele juntou dois caras que eu já estou falando aqui, que são o sistema de blueprint, que é a linguagem que a gente está utilizando para fazer a comunicação entre nós e a máquina, e uma classe. Vamos criar aqui. Só que antes, ele vai me dar uma tela, a famosa floating bar, perguntando que tipo de blueprint. Como é uma boa prática da Unreal, da Epic, eles gostam de facilitar a vida do desenvolvedor, então, eles vão dar sempre um kit de ferramentas já meio mastigado, que é para facilitar a vida do desenvolvedor. Então, vocês vão reparar aqui o seguinte: tem vários tipos de classes aqui. Você tem um "Actor", você tem um "Pawn", você tem um "Character", você tem o "Player Controller" e por aí vai. Ou seja, cada um vai ser um tipo de classe para momentos específicos. Então, o Actor, a ideia dele, é você fazer um arquivo, em que você pode jogá-lo para dentro do seu level. Para esse arquivo ser algo que você pode colocar em qualquer level, porque ele é um ator. Um ator, ele não pode interpretar qualquer filme, qualquer peça de teatro? Essa é a ideia, essa é a logística. Então, ele é uma classe de um ator que tem as regras dentro do universo dele, só que ele pode funcionar em qualquer level. Só que muitas vezes, vamos supor aqui que esse ator, ele não é mais um objeto. Ele passa a ser, de repente, algo que você pode controlar. É por isso que ele, aliás, eu gosto dos ícones que eles escolhem. Você pode ver que o ícone do Pawn é uma peça de xadrez. O que acontece? Quando você está com um tabuleiro de xadrez ali na sua frente, o que acontece? Você é a mente ali que está raciocinando, está pensando nas suas estratégias. Só que para você colocar a sua estratégia em ação, você vai precisar possuir, dar o Pawn, justamente, controlar algumas peças para ir de pouco em pouco, você vai executando toda a sua estratégia. Então, às vezes existe uma regra, assim como no jogo de xadrez, em qualquer jogo de tabuleiro, basicamente, as movimentações seguem regras. Então, esse Pawn é justamente o momento, em que você está colocando regras, eventos, condições, sistemas mecânicas para o ato de controlar algo. Então, imagina um jogo que ele está 3D e do nada você esbarra em uma coisa e ele vira 2D. Já aconteceu isso em jogo com você, tenho certeza. Mario Party, antigão, lá do 64, Game Cube, Nintendo WII, e as mecânicas trocavam toda hora. Ou seja, o sistema de Pawn, ele vai mudando o character muda. Então, às vezes você tem personagens que vão ter regras diferentes. Então, tem um personagem, que, na verdade, vai ser inimigo, ele não vai ser o jogador principal. Então, por isso que ele dá uma classe diferente. Você tem um controle, a maneira de você utilizar a usabilidade às vezes muda, Então, é por isso que nós temos aqui vários camaradas bem diferentes e vão apresentar ferramentas diferentes para nós. Por último, eu só queria falar para vocês do Game Mode. O Game Mode é um tipo de classe em que a gente vai colocar as regras do jogo. Ele é um código que a Unreal toda hora o lê. Ela sempre consulta: "Game mode está certo isso aqui?" Então, beleza. Ela é como se fosse uma consulta geral. É o grande diretor é o Game Mode. Vamos começar com um Actor. Uma boa prática que a gente faz, a nomenclatura que a gente costuma seguir em jogos é: DP Blueprint em letra maiúscula ou underline. Qualquer ocasião então colecta. Bom, esse aqui gente, é o que a gente chama de payment class. É uma classe Pai, eu vou estar fazendo aqui um coletável. Pai Como assim Pai Daniel? A ideia aqui do desenvolvedor, uma brincadeira que a gente costuma fazer entre resolvedores é que dublador parece que é uma raça meio preguiçosa. Por que as delegações programa um camarada só para depois ele só replicar? É uma brincadeira, mas ela é uma brincadeira muito efetiva, ou seja, você vai sofrer uma vez só depois você vai replicar ela. Então esse aqui vai ser o nosso fodder, nossa, o nosso pai. A gente pode abrir ele, ele vai ter uma carinha, ele vai ter justamente Viewport construct. O script é event graph. Olha só que legal. E pode ser que esses caras aqueles, tenham sumido. Pode ser que aconteça isso aqui já aconteceu na Marvel. Então Palma, Palma, não queremos cana, como diria o nosso Chapolin Colorado. A gente vê no lado esquerdo frame blueprint e você tem functions construcções que você pode ligar ele aqui ou você depende. Quem sumiu foi o evento craft. Você pode clicar duas vezes aqui, pode mudar de ordem. Enfim, fiquem a vontade tá? E assim como nas outras partes aqui do um, a gente tinha lá, por exemplo, um alt lá, que é uma lista das coisas. A gente tem aqui também os nossos componentes. Dá pra gente começar a compor tudo o que precisa visualmente para, de repente, fazer uma moeda. Eu vou usar exemplo de uma moeda. Então você precisa de repente, pelo menos duas coisas uma agenda moeda e a caixinha de de de colisão, que é o que já tinha começado a fazer. Já de repente dá pra colocar até uma partícula zinha de efeito especial pra fazer um brilhinho. Dá pra colocar justamente empilhando aqui. Cada componente visual pode ser justamente uma peça. Então vamos dar um LED aqui. Eu posso começar com cilindrar. Se ele der em inglês, ele começa com y, y l para você começar a procurar. Se Linder tá, e dá pra gente só dar uma leve customizada nele aqui, tá? Vamo apertar. E pra poder rotacionar, rotaciona que 90 graus vamos com a escala. Dá uma amassadinha nele, tá? E aí o seguinte caso vocês tenham criado esse projeto com o Content Starter Content, a gente vai poder colocar um camaradinha aqui chamada Google de material. Oh pá, você vai aqui Material do lado M Metal Gold. Daniel, acho que eu estava meio distraído. Eu acho que eu esqueci de tirar a caixinha do Starter Content e aí lascou a vida. Eu preciso deletar esse projeto, criar outro não precisa aqui em conta. Trouxe isso aqui uma vez. Pra quem esqueceu de ligar o Contente Drawer, você pode ver aqui em Ed Tal Ed Fisher Our Content Pack e você vê aqui em Content Start você traz ele pra dentro. Seu projeto tá bom? Então, isso aqui é só pra vocês verem que é ela dá umas opções na hora de criar o projeto, mas nenhuma é assim, tipo pra você se arrepender amargamente, tá? Então fiquem tranquilos. E aí galera, O que precisa fazer pra fechar esse núcleo aqui? A gente precisa trazer todo esse camarada, Só que agora pra cá que tá faltando aqui. Tá faltando a caixa de colisão. Então vamos dar um edge aqui. Não chama mais trigger tal, ele troca o nome, ele troca o nome para box Colisão fechou então a colisão. Como já tava explicando antes aqui, vamos deixar la gordinha que ela precisa, o que é o por que to brincando? Dá la ser gordinha, que ela precisa estar sempre pra fora da malha 3D que é pra você justamente colidir com ela primeiro de tudo. Então seja com esse cara aqui feito, Lembra que a gente pode selecionar esses casos aqui? Deletar já Vamos lá investigar. Todo mundo lembra que eu tinha começado a fazer uma aula de uma cena onde eu selecionava uma trigger box. Vinha aqui no Level Blueprint e eu adicionava eventos pra ele mesma coisa não muda. Seleciona box quiser renomear até F2, box sei lá, box colisão evita ficar usando espaço. Está no nome das coisas assim qualquer coisa digital eu recomendo Super. Então botão direito enquanto ele está selecionado e de Event for Box colisão. Colega colocou esse cara ou Daniel Pera, pera, pera aí, Estou vendo uma diferença aí cara, o nó é o mesmo propósito, mas ele tem muito mais opção sim. Quando você entra numa classe, você pode fazer algo muito mais nichado, muito mais específico, com muito mais ferramenta. É mais profissional. Eu estou filmando para vocês. É muito mais profissional trabalhar dessa forma. Gente, segue o barco, Vamos brincar de programador Agora vou até programar de uma forma um pouquinho mais rápida, obviamente dando todo o contexto para vocês. Então vou criar esse cara, dar um destroy na minha box colisão e na na minha moedinha tal. Então vamos lá Dom oder Héktor, eu posso já puxar dele. Quer estrutura de Person? Se ele dá uma setinha pra cima então nesse cara pode ver que ele já pulou o evento. Lembrando que a linha branca ele tá falando o que eu vou fazer E a linha azul está perguntando pra quem é esse quem colidindo com esse quem realizando esse o quê? É isso que ele está fazendo? Tá desse cara aqui eu posso dar agora um destroy? Héktor Tá, Ou melhor ainda quando eu estou dentro de uma classe, eu posso dar um destroy, O que componente component? Eu posso selecionar alguém para destruir? Eu posso true Todo mundo o Héktor inteiro que a BP coleta bom ou deletar só alguém. Vamos começar de repente só com sei lá, deixa eu trocar essa cilindro aqui e chamá la de coin de moeda tal. Então Destroy component eu vou deletar a coin, então ele vai trazer aqui somente a coin. O único problema é que é legal você também deletar o box colisão que é. Ou seja, se você vai destruir só a moeda, a colisão ainda está lá. Ou seja, se você já tem um contador de moeda, ele vai ficar sempre disparando, Então vamos selecionar ela também e deletar esse cara aqui com pai. Vamos voltar aqui para o nosso level após deletar esses caras, tá? Perdão, vamos só voltar aqui no top de person no leva para frente. Vamos deletar esses caras. Escolhemos aqui porque agora estamos fazendo ele de uma maneira mais profissional. Uma mão no controller, ok? A nossa amadinho então lembra que eu falei para vocês o Agora que tem um cara que ele é imparcial? Se eu fizer um outro level, fazer o boss final aqui, fazer um outro level, eu posso usar essa classe aqui, então eu posso justamente tá destruindo ela. Então galera, aqui ti começou a fazer uma classe de uma forma muito mais profissional. Se você parar pra pensar a classe aqui ela está funcionando perfeitamente para um sistema de uma moedinha onde ele pode usar em qualquer level. Essa é a viagem e se você pirar mais ainda o cabeção, o que vai acontecer? Você vai poder de repente criar qualquer coisa que você pode coletar justamente. Então, de repente, você quer fazer uma coleta de uma arma, uma coleta de alguma vestimenta, qualquer coisa, e aquela vai sumir do cenário e pode de repente entrar no inventário. E essa forma que a gente tem que fazer? Maravilha! Então convido vocês aí a estar de repente arriscando, troca um pouco a arte, troca um pouco o material, espalha um pouco mais. Dá para vocês agora replicar em várias vezes e você vai começar a ter uma carinha muito mais próxima de um jogo.