-
Agora, galera,
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,
-
deixando-o, de repente,
visualmente
-
A gente pode até de, repente,
vir aqui embaixo,
-
na parte de "Rendering"
e desligá-lo.
-
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 o 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 é:
-
"BP", 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 "Event Graph".
-
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 Event Graphic.
-
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 "Add" 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 vir aqui em "Add",
"Add Feature or Content Pack".
-
E aí, você vem aqui
em "Content", "Start Content",
-
você o traz para dentro
do 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".
-
Fechou?
-
Então, a colisão,
como já tava explicando antes aqui,
-
Vamos deixá-la "gordinha".
-
Por que ela precisa o quê?
-
Por 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 Graph"
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 a box.
-
Se quiser renomear até F2,
-
"Box", sei lá, "BoxCollision".
-
Evita ficar usando espaço
no nome das coisas,
-
em qualquer coisa digital,
eu recomendo super.
-
Então, botão direito
enquanto ele está selecionado
-
"Add Event for Box Collision".
-
Colocou esse cara.
-
"Daniel, pera, pera, espera aí.
-
Estou vendo uma diferença aí, cara.
-
O nó é o mesmo propósito,
mas ele tem muito mais opções".
-
Sim.
-
Quando você entra em uma classe,
-
você pode fazer algo
muito mais nichado,
-
muito mais específico,
com muito mais ferramenta.
-
É mais profissional.
-
Eu estou afirmando 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 pouco mais rápida,
-
obviamente, dando todo
o contexto para vocês.
-
Então, eu vou criar esse cara,
dar um destroy
-
na minha box colisão
e na minha moeda.
-
Então, vamos lá.
-
Do "Other Actor",
eu posso já puxar dele
-
"cast to third Person",
dá uma seta para cima,
-
Enter nesse cara.
-
Pode ver que ele
já pluga o evento, olha.
-
Lembrando que a linha branca
é a pergunta: o que eu vou fazer?
-
E a linha azul é a pergunta:
para quem?
-
Esse quem está colidindo
com esse quem,
-
realizando esse o quê.
-
É isso que ele está fazendo.
-
Desse cara aqui,
-
eu posso dar agora
um Destroy Actor.
-
Ou melhor ainda,
-
quando eu estou
dentro de uma classe,
-
eu posso dar um Destroy, o quê?
-
"Component".
-
Eu posso selecionar alguém
para destruir,
-
eu posso destruir todo mundo,
-
o Actor inteiro
que é o "BP_Collectible"
-
ou deletar só alguém.
-
Vamos começar, de repente,
só com sei lá,
-
deixa eu trocar esse cylinder aqui.
-
Deixa eu chamá-lo
de "Coin", de moeda.
-
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 collision.
-
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 selecioná-la
também e deletar esse cara aqui.
-
"Compile".
-
Vamos voltar aqui
para o nosso level
-
Pode deletar esses caras, tá?
-
Ah, Perdão.
-
Vamos só voltar aqui
no third person,
-
no Level Blueprint,
-
vamos deletar esses caras,
esses códigos aqui.
-
porque agora estamos fazendo-o
de uma maneira mais profissional.
-
Vamos lá no Content Drawer.
-
Olha aqui a nossa moeda.
-
Então, lembra o que eu
falei para vocês, olha.
-
Agora a gente tem um cara
que é imparcial.
-
Se eu fizer um outro level,
fizer o boss final aqui,
-
fizer um outro level,
-
eu posso usar essa classe aqui.
-
Então, eu posso destrui-la.
-
Então, galera,
a gente começou
-
a fazer uma classe de uma forma
muito mais profissional.
-
Se você parar para pensar
a classe aqui,
-
ela está funcionando perfeitamente
-
por um sistema
de uma moeda,
-
que a gente pode usar
em qualquer level.
-
Essa é a viagem.
-
E se você pirar mais
ainda a cabeça,
-
o que vai acontecer?
-
Você vai poder, de repente,
criar qualquer coisa
-
que você pode coletar.
-
Então, de repente,
você quer fazer
-
uma coleta de uma arma,
uma coleta de alguma vestimenta,
-
qualquer coisa
que vá sumir do cenário
-
e pode, de repente,
entrar no inventário,
-
é essa a forma
que a gente tem que fazer.
-
Maravilha?
-
Então, convido vocês aí a arriscar.
-
Troca um pouco a arte,
troca um pouco o material,
-
espalha um pouco mais.
-
Dá para vocês agora
replicarem várias vezes
-
e você vai começar
a ter uma cara
-
muito mais próxima de um jogo.