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", de Blueprint, em letra maiúscula, underline.
Qual é a ocasião?
Então, "collectable".
Esse aqui, gente,
é o que a gente chama de parent class.
É uma classe pai.
Eu vou fazer aqui um coletável pai.
"Como assim Pai, Daniel?"
A ideia aqui do desenvolvedor,
uma brincadeira que a gente costuma fazer
entre desenvolvedores é que o desenvolvedor
parece que é uma raça meio preguiçosa.
Por quê?
Às vezes ele gosta de programa um camarada só
para depois ele só replicar.
É uma brincadeira, mas é uma brincadeira muito efetiva,
ou seja, você vai sofrer uma vez só com a linha de raciocínio.
Depois, você vai replicá-la.
Então, esse aqui vai ser o nosso father,
o nosso pai.
A gente pode abri-lo.
E ele vai ter uma cara,
ele vai ter justamente "Viewport", "Construction Script"
e "EventGraph".
Olha só que legal.
E pode ser que esses caras aqui, eles tenham sumido.
Pode ser que aconteça isso aqui, olha:
já aconteceu no meu Unreal.
Então, "Palma, palma, não priemos cânico",
como diria o nosso Chapolin Colorado.
A gente vê no lado esquerdo aqui em "My Blueprint"
e você tem "Functions", "Constructions Script".
Você pode ligá-lo aqui.
Ou se de repente, quem sumiu foi o EventGraphic.
Você pode clicar duas vezes aqui.
Pode mudar de ordem.
Enfim, fiquem à vontade.
E assim como nas outras partes aqui da Unreal,
a gente tinha lá, por exemplo, um outliner,
que é uma lista das coisas.
A gente tem aqui também os nossos componentes.
Dá para a gente começar a compor tudo o que precisa visualmente
para, de repente, fazer uma moeda.
Eu vou usar um exemplo de uma moeda.
Então, a gente vai precisar, de pelo menos duas coisas:
uma arte da moeda e a caixa de colisão,
que é o que a gente já tinha começado a fazer.
De repente, dá pra colocar até uma partícula
de efeito especial para fazer um brilho.
Dá para colocar justamente empilhando aqui.
Cada componente visual pode ser justamente uma peça.
Então, vamos dar um ad aqui.
Eu posso começar com "Cylinder".
Cylinder em inglês começa com y, então, c, y, l,
para você começar a procurar cylinder,
e dá para a gente só dar uma leve customizada nele aqui.
Vamos apertar "E" para poder rotacionar.
Rotaciona aqui 90°.
Vamos com a escala.
Dá uma amassada nele.
E aí, é o seguinte:
Caso vocês tenham criado esse projeto
com o Starter Content,
a gente vai poder colocar uma camarada aqui
chamada Gold Material.
Você vem aqui em "Material", do lado "M_Metal_Gold".
"Daniel, acho que eu estava meio distraído.
Eu acho que eu esqueci de ticar a caixa do Starter Content.
E aí, lascou a vida?
Eu preciso deletar esse projeto e criar outro?"
Não precisa.
Aqui em Content Drawer, esse aqui é um aviso
para quem esqueceu de ligar o Contente Drawer.
Você pode ver aqui em "Add", "Add Feature or Content Pack".
E aí, você vem aqui em "Content", "Start Content",
você o traz para dentro seu projeto.
Esse aqui é só para vocês verem que a Unreal
dá umas opções na hora de criar o projeto,
mas nenhuma é assim,
tipo para você se arrepender amargamente.
Então, fiquem tranquilos.
E aí, galera, o que precisa fazer
para fechar esse núcleo aqui,
a gente vai precisar trazer todo esse camarada,
só que agora para cá.
O que está faltando aqui?
Está faltando a caixa de colisão.
Então, vamos dar um "Add".
Aqui não chama mais trigger.
Ele troca o nome.
Ele troca o nome para "Box Collision".
Então, a colisão, como já tava explicando antes aqui,
Vamos deixá-la "gordinha".
Por que que eu estou brincando de ela ser 'gordinha"?
Porque ela precisa estar sempre para fora da malha 3D,
que é para você justamente colidir com ela primeiro de tudo.
Então, com esse cara aqui feito,
lembra que a gente pode selecionar esses casos aqui e deletar.
Vamos na "Event Grapg" e deleta todo mundo.
Lembra que eu tinha começado a fazer uma linha de raciocínio,
em que eu selecionava uma trigger box,
vinha aqui no Level Blueprint e eu adicionava eventos para 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.