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 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.