Escolar Documentos
Profissional Documentos
Cultura Documentos
Unity 4 PDF
Unity 4 PDF
Unity 4
Curso de Unity 4
A indstria dos games vem crescendo a cada dia e o que era uma brincadeira
de criana hoje virou coisa sria, j existem games que tem at indicao de
idade.
E essa indstria se tornou to rica que at o cinema se rendeu a ela, h alguns
anos era comum ver grandes filmes se tornarem jogos de vdeo game, hoje
isso mudou.
Temos grandes games que invadiram os cinemas, como Hitman, O Prncipe
da Prsia, Street Fighter,Mortal Kombat, entre outros
E agregado ao crescimento dessa indstria est o desejo de vrios jovens do
mundo inteiro em fazer parte desse mercado milionrio.
O que parecia um sonho h cerca de cinco anos atrs, hoje realidade. Temos
hoje no Brasil pequenas empresas de games que esto faturando muito com
essa indstria, principalmente os voltados para dispositivos mveis, porm, j
temos tambm algumas empresas brasileiras apostando no mundo dos
consoles.
Devido ao fato dessa indstria estar em um momento de grande crescimento
no Brasil, quem souber desenvolver algo novo e de qualidade certamente vai
colher os ricos frutos desse segmento.
Agora vamos conhecer um pouco mais a fundo sobre a origem de tudo isso,
como e de onde vem o primeiro console, os primeiros jogos, os principais
cones desse mercado que vem crescendo numa velocidade incrvel e ainda
promete crescer ainda mais nos prximos anos.
A idia para esse jogo era simplesmente mostrar todo o potencial de uma
mquina nova que usava transistores ao invs de vlvulas.
Apesar do desinteresse comercial por parte dos criadores do jogo, no faltaram
pessoas interessadas em investir nessa nova idia.
E foi na dcada de 70, oito anos aps a finalizao do jogo Spacewar, que
apareceram os primeiros investidores na rea de games.
No podemos esquecer que falar de games falar de um conjunto e no de um
nico produto, um jogo eletrnico precisa de um aparelho para poder executar
suas rotinas de programao, ento, a evoluo dos softwares de games
caminhou lado a lado com a evoluo dos hardwares para rodar os games.
E esse fato fica claro em meados de 1971 com o nascimento do Odyssey, um
console capaz de se conectar a aparelhos de televiso. Esse console de
propriedade da Magnavox, certamente abriu as portas para as inovaes que
estariam por vir.
Como uma dessas inovaes vai citar as conhecidas mquinas de fliperama,
que resistem at os dias de hoje tornando aquela nossa visita ao Shopping
Center muito mais divertida.
Depois desse fenmeno chamado fliperama, era de se prever que surgissem
empresas interessadas em investir nos games, uma dessas empresas foi
a Atari que surgiu em 1976 inspirando outras empresas a investir em jogos e
consoles cada vez mais avanados.
Nem precisamos falar do sucesso que foi a empresa Atari, qualquer pessoa que
conhea o mnimo sobre games sabe a febre que foi o console produzido por
ela.
E essa febre se alastrou de tal forma que outras empresas viram nesse novo
segmento a oportunidade de gerar muito lucro em pouco tempo, uma dessas
empresas foi a Mattel, que se tornou uma forte concorrente da Atari brigando
no s na produo dos jogos, mas tambm na produo de consoles.
Durante alguns anos os proprietrios dessas duas empresas no enxergavam
nada a no ser um ao outro, a Atari e a Mattel estavam literalmente numa
guerra por mercado, e enquanto essa guerra se intensificava outros
investidores resolveram aproveitar para lucrar investindo na produo de jogos
para
esses
consoles,
e
assim
foram
surgindo
empresas
como Ubisoft, Rockstar, entre outras especialistas em criao de jogos.
Afinal, com o mercado de console concentrado nas mos de dois tits, o que
restava para os pequenos desenvolvedores era criar jogos para eles. E foi dessa
forma que surgiu a primeira Softhouse da histria dos games, a mundialmente
conhecida Activision criadora de relquias como Enduro e Pitfall.
A histria dos games
Agora a histria dos games ganhava uma nova pgina onde desenvolver jogos
era to lucrativo quanto desenvolver os consoles.
Aps a criao da Activision muitas outras empresas vieram e se foram de
acordo com as necessidades do mercado, mas sem dvida uma empresa que
podemos citar como revolucionria desde a sua fundao a Nintendo.
A Nintendo famosa produtora de consoles e games japonesa, a responsvel
por inmeros sucessos tanto na parte de games quanto na de consoles. E Falar
de Nintendo e no falar de Shigeru Miyamotoseria impossvel.
Shigeru foi responsvel por ttulos que faturam at os dias de hoje milhares de
dlares, alguns deles so: Super Mario, A lenda de Zelda, Metroid, Star
Fox, entre outros ttulos de sucesso.
Podemos dizer que a Nintendo hoje o que foi a Atari nos anos 70, obvio
que a Nintendo enfrenta rivais muito mais poderosos do que a Atari, mas
essa rivalidade que mantm essa empresa viva e se renovando a cada dia.
Podemos destacar como a primeira rival da Nintendo a poderosa Sony com
seu console Playstation.
O Playstation desde sua primeira verso chamou a ateno pelos belos
grficos e jogos no to ldicos (marca registrada da Nintendo).
E com essas caractersticas mais voltadas para o pblico adulto no demorou
muito para a Sony comear a conquistar jogadores que queriam bem mais que
pular em tartarugas e quebrar tijolos com a cabea.
Se fizermos uma pesquisa, veremos que de 90% dos lares no mundo todo
possui ao menos 1 aparelho de televiso. Isso comum faz parte da nossa
cultura, desde pequenos j somos acostumados a passar boa parte do nosso
tempo assistindo TV. Seja na sala em sof, ou no quarto deitados em uma
cama, espalhado em um puff, ou at mesmo sentado ou deitado no cho,
enfim, o assistir TV um ato de relaxamento. E um game feito para consoles
tenta seguir a mesma linha que os programas de TV, ou seja, feito para
relaxar, se descontrair, enfim, se divertir.
Quando voc senta em frente TV voc quer relaxar e acompanhar alguma
histria, nos identificarmos com alguns personagens, fantasiarmos outros,
enfim, so por essas razes que gostamos tanto de filmes, novelas e seriados.
E as empresas de games para console sabem disso, e produzem jogos com
histrias onde voc deixa de ser apenas um espectador e vira o personagem
principal, jogar um game no console deixar de ver o filme para entrar nele.
Computadores
Os computadores ao contrrio dos consoles no tm como funo primordial
executar games, na verdade essa ao apenas uma das vrias tarefas de um
computador.
Agora vamos analisar em quais locais temos maior facilidade de encontrar
computadores. Os computadores podem ser encontrados nas casas, salas e
quartos, podem ser encontrados nas empresas, nos hospitais, nos comrcios, e
por ai vai.
Essa diversidade de locais possveis de se encontrar um computador identifica
com facilidade seus usurios e em consequncia os tipos de jogadores desses
aparelhos.
A seis ou sete anos atrs raramente voc encontraria um jogador de
computador em sua casa em sua maioria esse jogadores jogavam no trabalho e
principalmente em Lan House e Cyber Caf, porm com a evoluo do
hardware e o preo reduzido de mquinas mais potentes e internet banda larga
ficou comum encontrar esses jogadores em suas casas ou em casas de amigos
jogando em grupo.
Celulares
Os jogadores que usam esse aparelho so diferentes dos dois anteriores, pois
pelo fato do celular ser um aparelho porttil ele pode se adequar a situao e
ao local onde est.
O jogador que usa um celular pode jogar em uma fila de espera, deitado em
sua cama, no sof da sala enquanto a me assiste TV, enfim um aparelho
que se adapta a qualquer lugar e situao, talvez por isso seja to difcil definir
um estilo de jogo para ele.
Games educativos
Essa modalidade de jogos tambm muito popular entre os pais e professores.
Existem escolas que pagam pequenas fortunas para adquirir jogos que possam
ajudar a fixar na mente de seus alunos o contedo curricular, que podem
abranger desde os primeiros anos escolares com jogos simples para a
alfabetizao, conhecer cores, animais, entre outras coisas, como tambm
podem ser utilizados para criar jogos mais complexos e que mostrem na prtica
contedos que em uma sala de aula seriam extremamente difceis de explicar.
Esses jogos so em sua maioria muito simples para se desenvolver, sem muitos
efeitos visuais ou complexas histrias, mas cumprem com excelncia sua
funo, jogos como ligar pontinhos, colorir, quebra cabea, so alguns dos
games possveis para essa categoria.
Games corporativos
Essa categoria de games tambm nova no mercado e ela se destina a treinar
trabalhadores que precisam executar funes complexas em ambientes de
extremo risco.
Assim como os educativos esses games no tem seu foco em qualidade grfica,
nica exigncia do mesmo a exata reproduo da realidade.
Existem empresas petroqumicas que usam simuladores virtuais para
treinamento de operadores de mquina, autoescolas que usam simuladores ao
invs de veculos reais para testes de condutores.
Games sociais
Essa modalidade de games vem crescendo a cada dia, com comunidades
como Orkut e Facebook o mercado para games sociais vem crescendo
bastante.
As pessoas no se contentam mais em apenas deixar mensagens nas redes
sociais elas querem interagir umas com as outras atravs de um mundo virtual,
um mundo dos games.
O crescimento desse tipo de jogo foi tanto que em alguns games sociais
podemos ver traos tpicos de advergames.
Isso natural afinal um jogo onde vrias pessoas interagem umas com as
outras sempre uma boa ferramenta para se anunciar produtos e servios.
Temos como um bom exemplo de game social o Cityville da Zynga um jogo
muito parecido com o famoso Simcity.
Games Indies
O que um desenvolvedor Indie?
Podemos definir como um desenvolvedor de games indie uma pessoa ou
pequeno grupo de pessoas que no esto inseridos no grande mercado de
games, mas que produzem games comerciais mesmo assim.
Uma das diferenas entre os desenvolvedores indie e
desenvolvedores a organizao da equipe e claro seu capital.
os
grandes
Arcade Town
O Arcade town um site bem interessante voc pode publicar seus games
nesse site e colocando a logo marca deles no seu game possvel no s ser
reconhecido como faturar algum.
Veja o link: http://www.arcadetown.com/
Union
A Union talvez seja uma das mais interessantes formas de publicar seus
games, ela faz parte da Unity Tecnologies e a equipe da Unity te ajuda a
vender seu game por uma pequena percentagem do seu lucro.
Veja o link: http://unity3d.com/
Steam
O que falar sobre a Steam? Ela simplesmente o sonho de qualquer
desenvolvedor, o seu game anunciado para o mundo inteiro.
Veja o link: http://store.steampowered.com/
Como documentar um projeto de game
Um game como qualquer produto precisa ser bem documentado, existem
etapas que precisam ser acrescentadas a rotina da equipe de desenvolvimento.
Abaixo vamos listar as etapas de desenvolvimento dessa documentao:
Fase inicial
Nessa fase precisamos definir com riqueza de detalhes todas as informaes
referentes ao game, se ele um game 2D ou se 3D.
A histria de um game precisa ter comeo meio e fim, os objetivos do jogador
dentro dele precisam estar bem definidos para que no final todas essas
informaes possam servir para as prximas etapas.
Documento de pblico
Esse documento de extrema importncia para o desenvolvimento do projeto e
atravs dele que analisamos todas as informaes do mercado de games para
as principais plataformas e suas devidas categorias como: games de ao,
games de aventura, etc.
Nesse documento tambm preciso definir com clareza todas as estratgias de
marketing para promover o game de tal forma que o lucro de vendas supere o
valor de investimento.
Descrio tcnica
Essa fase uma das mais curtas do desenvolvimento da documentao, talvez
por ser uma etapa que necessite de objetividade no que documentado.
na descrio tcnica que documentamos algumas informaes vitais ao
funcionamento do game como, por exemplo, se o game massivo qual
linguagem de programao est sendo usada, em qual aparelho ser
executado.
Documento de game designer
Esse documento responsvel por coletar todos os documentos criados
anteriormente a fim de produzir um game que respeite ao mximo as
determinaes j documentadas. A documentao de game designer no
admite erros, uma deciso tomada sem o devido conhecimento nas
documentaes anteriores capaz de destruir todo um projeto de game j que
a funo desse documento garantir que todas as decises anteriores sejam
integralmente executadas.
Prottipo
Por fim o prottipo, fase onde documentamos todos os testes feitos em
cenrios, funes. Essa fase tem como principal meta garantir a mecnica de
jogo.
Alm das documentaes apresentadas anteriormente existem documentos que
precisam ser feitos paralelamente para garantir o sucesso do projeto.
Precisamos analisar quais so as expectativas dos jogadores ao jogar o seu
game, se ele oferece ao jogador uma experincia social podendo ser jogado
entre amigos e se ao mesmo tempo ele possibilita uma experincia mais
individual para que o jogador possa usufruir do produto mesmo quando estiver
sozinho.
preciso analisar at onde vai coerncia do game, no se podem adicionar
itens coletveis a um game que no tenha nenhuma funo lgica. Dentro de
um game todos os objetos que sejam dotados de ao com o jogador precisam
ter funes agregadas a si, algumas funes mais importantes outras menos,
mas definitivamente todas com alguma interao lgica e perceptvel ao
jogador.
Os limites do mundo dos games tambm precisam ser bem definidos afinal o
personagem precisa comear e terminar o game como heri ou como vilo
evitando qualquer forma de mudana de lado durante a histria do game, no
devemos esquecer que um pecado mortal no mundo dos games deixar o
jogador confuso, essa sensao causa descontentamento e consequentemente
desinteresse pelo jogo.
Outro tema importante para se documentar o fluxo ou andamento de game,
um desenvolvedor de games em hiptese alguma pode deixar lacunas que
Introduo
A Unity3D como j foi mencionada, uma Game Engine ou traduzindo, um
motor de jogo. A funo desse software facilitar ao mximo o
desenvolvimento de aplicaes interativas 3D.
A empresa criadora da Unity3d (Unity Tecnologies) foi responsvel por uma
verdadeira revoluo no mundo dos games, afinal alm de desenvolver uma
ferramenta
capaz
de
competir
de
igual
para
igual
comGame
Engines poderosas
no
mercado
como UDK e CRY
ENGINE,
a Unity3D mostrou toda sua ousadia quando anunciou ao mundo que liberaria
uma verso gratuita e comercial para desenvolvedoresIndie.
Talvez essa atitude tenha sido apenas uma jogada de marketing j que
em 2007 e 2008 para uma pessoa comum ter uma ferramenta desse porte era
praticamente impossvel.
Seja o que for deu certo e em pouqussimo tempo a Unity3D comeou a ser
a Game Engine mais usada no mundo, conseguindo um espao at mesmo no
fechado mundo dos consoles.
Hoje a Unity Tecnologies no s oferece uma verso gratuita para que novos
desenvolvedores possam ingressar no mercado, como tambm oferece
ferramentas adicionais por um preo relativamente baixo em relao s
concorrentes que podem ir turbinando sua verso free da Unity3D.
Veja que ir aparecer a seguinte tela: Clique em I Agree para concordar com
os termos de licena e continuar com a instalao.
Feito isso, ser apresentada tela da imagem abaixo: Clique em Next para
instalar todos os componentes da Unity3D.
Feito isso ser apresentada a seguinte tela: Se for a primeira vez que voc est
instalando aUnity3D, aqui ser necessrio que voc clique no boto Create
Account para se registrar na Unity3D (esse servio totalmente gratuito).
Clicando nesse boto teremos a tela de registro: Preencha seus dados como
pedido no formulrio e clique em OK.
Aps esse procedimento voc receber um e-mail para confirmar seu registro,
confirme o mesmo e a seguinte tela ser apresentada em seu navegador web:
Pronto! Voc est perto de poder usar a Unity3D s precisa seguir mais
alguns passos, veja a imagem abaixo: Depois de se registrar voc dever voltar
tela da Unity3D e colocar seu e-mail e senha criados nos passos anteriores,
e ser direcionado tela abaixo:
Preencha a pesquisa feita pela Unity eles querem saber seu nvel de
conhecimento, seus interesses para com Unity3D, etc. Terminado esse
preenchimento avance.
Interface
Agora que j instalamos e conhecemos um
da Unity3D chegou a hora de conhecer sua interface.
pouco
da
histria
Ferramentas de manipulao 3D
J a ferramenta Local quando clicada muda para Global fazendo com que um
objeto de game (GameObjects) seja rotacionado, movido ou escalado de
acordo com os eixos X,Y e Z do objeto (Local) ou do mundo 3D (Global).
O uso dessa ferramenta ficar mais claro com o decorrer do curso.
Ferramentas de iniciao de game
As ferramentas de iniciao de game, como o prprio nome diz tem a funo de
iniciar um teste do game, o primeiro boto o play inicia a execuo do cdigo
de game.
Prosseguindo, ao lado do boto Textured temos o boto RGB (que est com a
opo Mipmapsselecionada) que significa Red, Green e Blue ou vermelho,
verde e azul as cores primrias que juntas nos fornecem todas as faixas de
cores reproduzidas pelos computadores.
O pequeno sol: Tem a funo de mostrar a cena com ou sem as luzes criadas
em cena;
O quadro: Tem a funo de mostrar a cena sem as linhas de grade que guiam
o desenvolvedor (As linhas quadriculadas que aparecem na aba/janela Scene);
E por ltimo temos o boto de iniciao de udio ele tem a funo de
reproduzir os arquivos de udio colocados na cena.
direita temos o boto Gizmos, esse boto lista todos os cones
da Unity3D permitindo alterar o tamanho de cada cone e sua visibilidade.
Segue abaixo a imagem do boto estendido com todas as suas opes.
Por ltimo no canto superior temos um campo de busca, nele podemos digitar o
nome de qualquer objeto de game (GameObjects) que ele ser destacado no
meio de todas as modelagens e cones presentes em tela.
Veja um exemplo abaixo:
Veja que o primeiro boto mostra vrios nmeros, esses nmeros so as suas
opes de resoluo de tela.
Voc pode escolher qualquer uma como resoluo de seu game, e escolhendo
ver que o tamanho da rea de game ser alterado.
Veja um exemplo: Tela no modo de resoluo em Free Aspect.
Note que aqui tambm temos um campo de busca que nos mostra onde est
um objeto especfico.
Aba/janela projeto (Project)
Na aba/janela projeto (Project) so listadas todas as pastas do game desde
texturas, imagens, modelos estticos, modelos animados, sons, shaders, enfim.
Nota: "Uma malha nada mais do que um objeto 3D composto de uma malha
de tringulos".
Por ltimo temos o material de textura aplicado ao objeto de game
(GameObject), onde temos o nome do material, a cor predominante sobre esse
material (Main Color), a textura usada (Base (RGB)) o valor
de Tiling e Offset e no fim um boto para adicionar mais componentes (Add
Component).
Barra de ferramentas
Como mencionamos anteriormente a Unity nos oferece uma barra de
ferramentas bem parecida com as que existem nos programas comuns de
computador como Word e Photoshop.
Agora vamos detalhar cada item do menu e mostrar como cada um pode
facilitar a vida do desenvolvedor de games.
Menu File expandido:
aparecem
at
se
assemelha
programas
No menu File temos como primeiro boto o New Scene, clicando nesse boto
iremos criar uma cena totalmente nova para nosso game (Lembre-se que uma
cena equivale a uma fase do game).
Logo abaixo temos o boto Open Scene, como voc deve ter deduzido esse
boto vai abrir uma cena dentre vrias outras que seu game venha a ter.
A seguir temos o boto Save Scene e Save Scene as, que como voc
tambm j deve ter deduzido responsvel por salvar as cenas (fases) do seu
game.
Os dois botes seguintes, Build Settings e Build & Run so responsveis por
compilar seu game para a plataforma desejada, seja ela Pc, Mac, Web, Android,
etc.
E por fim o boto Exit que nada mais que uma sada do programa.
Logo abaixo temos trs botes o Cut, Copy e Paste, que significam
respectivamente, recortar, copiar e colar um objeto de game (Gameobject).
Nota: "Na verso 4.0.x essa opo executada de maneira satisfatria usando
as teclas de atalho Ctrl + A.
A seguir temos o boto Preferences..., que tem a funo de ajustar a
aparncia da Unity3D, trocando as cores de fundos das abas/janelas dentre
outras pequenas modificaes visuais.
Na sequncia teremos:
Load
Selection carrega
a
seleo
de
um objeto de
game
(GameObjects). Load Selection pode expandir at Load Selection 1, Load
Selection 2
E por ltimo, temos o boto Snap Settings que nos fornece as configuraes
de grid (As linhas que servem de guia para posicionar os objetos em cena).
No menu Assets comeamos vendo o boto create que responsvel por criar
pastas de game, cdigos, animaes, entre outros elementos de games.
Import New Asset - que tem a funo de importar elementos de game como
texturas e modelos 3D salvos em outros projetos.
Agora podemos ver todos os pacotes que integram a Unity3D, e como primeira
opo tem o botoCustom Pachage que abrir pacotes criados pelo
desenvolvedor. Caso voc clique em Custom Pachage a seguinte janela ir
surgir:
Mas se sua escolha for por um pacote padro da Unity3D a seguinte janela ir
surgir:
Para usar essa ferramenta selecione a pasta de game que voc deseja
exportar:
Para que essa ferramenta funcione, primeiro clique em uma pasta de game.
Reimport - que importa novamente algum pacote que foi perdido por alguma
razo.
E finalmente temos o ltimo boto, o Sync MonoDevelop Project que faz uma
sincronizao da Unity com o programa responsvel por escrever os cdigos de
game no caso o MonoDevelop (dificilmente voc usara esse boto j que o
MonoDevelop se tornou padro na Unity3D).
No menu Game Objects temos como primeiro boto o Create Empty, esse
boto responsvel por criar um GameObject vazio na cena.
Veja que o cubo azul selecionado o "pai" dos outros dois cubos.
Agora vamos clicar em Center On Children e teremos o seguinte resultado:
O cubo "pai" foi movido para uma posio entre os dois objetos filhos.
Make Parent - esse boto tem a funo de tornar um objeto "pai" de outro,
para us-lo primeiro precisamos clicar no objeto que queremos que seja o
"filho", depois com a tecla Ctrl pressionada clicamos no objeto que ser o
"pai" e por fim clicamos no boto Make Parent.
Clear Parent - esse boto tem como funo quebrar um vnculo que tenha
sido criado entre dois ou mais objetos de game pelo boto Make Parent.
Para que esse boto funcione clique no objeto "filho" que se deseja excluir do
parentesco e clique em Clear Parent.
Apply Changes to Prefab - esse boto tem como funo aplicar aos objetos
pr-fabricados todas as alteraes feitas no objeto de referncia para a criao
do pr-fabricado
E por fim temos o Align View to Selected que tem a funo de alinhar a
cmera de viso do desenvolvedor com o objeto de game (GameObjects)
selecionado.
No menu Terrain temos o boto Create Terrain que como o prprio nome diz
tem a funo de criar um terreno que poder ser editado pelo desenvolvedor.
Pronto cena foi criada, porm, necessrio salv-la para que a mesma
aparea na aba/janela Project.
Ento repita o procedimento de Save descrito acima para concretizar essa
ao, salve a cena como Fase2. Assim teremos o seguinte resultado:
Introduo ao gamecode
A Unity3D trabalha
com
trs
linguagens
de
programao C#,
Javascript e Boo, sendo as mais conhecidas, C# e Javascript.
A estrutura da Unity3D funciona bem com ambas as linguagens, poupando ao
desenvolvedor, preocupaes de desempenho.
Nesse curso ns da AprendaMais usaremos a linguagem mais popular
(Javascript), facilitando assim seu aprendizado.
Agora vamos escrever nosso primeiro cdigo que exibir na tela um "Ol
Aluno".
Mas antes de escrever nosso cdigo vamos aprender como cri-lo dentro de
uma pasta de nosso projeto de game.
Primeiro vamos criar uma pasta para guardar os scripts, clique no
boto Create na aba/janela Project e depois no boto Folder como mostra a
imagem abaixo:
Fazendo isso voc estar criando uma pasta de game onde poder salvar
cdigos, modelos, texturas, etc.
Nesse caso criamos uma pasta chamada Scripts como mostra a imagem
abaixo:
Agora
vamos criar nosso
primeiro arquivo de cdigo, com
pasta Scripts selecionada
clique
em Create novamente
e
escolha
boto Javascript.
a
o
Agora clique duas vezes sobre o cone do script Ola_Aluno, para abrir o
programa de edio de cdigo como mostra a figura abaixo:
Perceba que a Unity3D gera um cdigo padro com duas funes a Start e
a Update, ento agora vamos us-las.
Vamos digitar o seguinte cdigo:
Antes de qualquer coisa vamos entender o cdigo, perceba que ele comea com
duas funes distintas, a funo Start e a funo Update.
A funo Start ser executada automaticamente uma nica vez antes da
funo Update, atravs dela podemos iniciar variveis.
J
a
funo Update executa
um looping a
cada frame (quadro
renderizao) atravs dessa funo que o jogo ganha vida.
de
Perceba que na aba/janela Scene temos uma imagem que contm trs flechas,
isso significa que existe um objeto de game (GameObject) e as flechas s esto
indicando a orientao desse objeto de game (GameObject) no mundo 3D,
como mostra a figura abaixo:
Criando luzes
Agora que criamos nosso primeiro cdigo, chegou a hora de fazer coisas mais
avanadas, ento lembre-se que mesmo sendo um game 2D o ambiente de
desenvolvimento 3D ento precisamos adicionar luzes a cena, caso contrrio
no enxergaremos nada.
Para criar uma luz primeiramente clique no boto GameObjects, depois
em Create Other, e por fim escolha um dos quatro tipos de luzes que existem
a nossa disposio:
So elas:
Spot light - que uma luz em formato de cone que ilumina apenas os objetos
que se encontram dentro dos limites desse cone como mostra a imagem
abaixo:
E por fim: Area light - que uma luz que ilumina tudo em uma rea
retangular (Essa luz s pode ser usada na verso Pro).
Perceba que todas as luzes tm alguns parmetros para serem alterados de
acordo com as preferncias do desenvolvedor, observe na imagem abaixo:
Nesse caso o tipo de luz a Spot light, mas para todas as outras luzes os
parmetros se repetem com pequenas excees como, por exemplo, a ausncia
de ngulo e alcance.
Veja que permitido ao desenvolvedor alterar o tipo de luz mesmo sem
precisar criar outra fonte de luz, basta clicar no boto Type e mudar o tipo de
luz como apresentado na imagem abaixo:
Fazendo isso criaremos uma plane em nossa cena como mostra a imagem
abaixo:
Caso voc tenha criado a luz Spot light proposta no exercicio anterior, excluaa clicando com o boto direito do mouse sobre seu nome na guia Hierarchy e
escolha a opo Delete.
Pronto agora salve o cdigo clicando no menu File opo Save do Editor de
cdigos:
Movimento de rotao
Agora vamos alterar o cdigo de translao para rotacional, use o mesmo
cdigo do exemplo anterior fazendo apenas algumas alteraes.
Primeiro comente a linha de cdigo que move o cubo.
Menu 2D
Agora que j brincamos um pouco com algumas transformaes de objetos
dentro daUnity3D chegou a hora de criar um Menu 2D para nos auxiliar nas
transformaes do cubo.
E porque no ir um pouco alm criando um menu interativo onde
possamos controlar as trs transformaes que acabamos de ver?
Vamos l, abaixo veremos a imagem da aplicao que iremos desenvolver:
Muito bem, vamos explicar esse cdigo, para comear declaramos as seguintes
variveis:
A varivel vel controla a velocidade em que as transformaes vo acontecer o
nome da varivel pode ser alterado para o nome que voc quiser velocidade,
vel2, veloci, enfim.
A
varivel liberaM
responsvel
por ligar e desligar o
boto
de movimento do cubo, essa varivel pode ter seu nome alterado sem
problema algum, desde que o seu tipo seja mantido int (integer).
A
varivel liberaR
responsvel
por ligar e desligar o
boto
de rotao do cubo essa varivel pode ter seu nome alterado sem problema
algum, desde que o seu tipo seja mantido int (integer).
A
varivel liberaS
responsvel
por ligar e desligar o
boto
de escala do cubo essa varivel tambm pode ter seu nome alterado sem
problema algum, desde que o seu tipo seja mantido int (integer).
Agora na funo Start preciso inicializar essas variveis com algum valor. Por
exemplo:
A varivel vel ser iniciada com o valor de 5, que como j vimos adiciona
ao cubo uma velocidade aceitvel.
Por ltimo vamos a funo que responsvel por criar nosso Menu 2D que a
funo OnGUI().
A funo OnGUI da mesma forma que a funo Start e Update padro
dentro da Unity3D e desta forma no deve ser modificada, ela executada
desde o momento que se inicia o cdigo at o final.
Mas devemos lembrar que suas aes devem ser executadas dentro da
funo Update.
Essa funo leva o nome de OnGUI porque a definio de GUI : Interface
Grfica do Usurio. Ou seja,GUI trabalha com a parte dos programas que
interagem diretamente com os usurios, como os botes, rea de textos, etc.
Essa funo tambm est no manual online da Unity3D citado anteriormente.
Alm de botes podemos criar dentro dessa funo, labels, Grafical Box,
textfields, entre outros elementos para interagir com o usurio do game.
Vamos analisar nosso cdigo:
Primeiramente criamos uma label com o nome de Menu 2D, uma label um
rtulo ou etiqueta que serve para descrever alguma coisa, no nosso caso
alertar o jogador que ali existe um menu.
Esse cdigo funciona da seguinte forma:
um
O
primeiro
parmetro
adicionado
atravs
do
cdigo Rect(X,Y,Width,Height), esse cdigo fornece para a GUI.Label a
posio X e Y de onde deve ser desenhada a label com a largura e altura da
mesma.
O segundo parmetro um texto (String)
referncia de uma textura(Image).
colocado
entre aspas ou
Esse cdigo cria botes que da mesma forma que a label tem seu
posicionamento
e
tamanho
determinados
de
forma
retangular Rect(X,Y,Width,Height),
tendo
sua
posio
definida
por X e Ydepois sua largura e altura, e por fim um texto de identificao ou
uma imagem.
Perceba que dentro dessa condio colocamos nossa varivel liberaM sendo
multiplicada pelo valor -1, isso foi feito para ligar e desligar o efeito de
movimento sobre o cubo.
Afinal essa condio significa que cada vez que clicarmos no boto Mover a
varivel liberaM vai mudar seu valor de -1 para 1 e depois de 1 para -1, que
matematicamente a operao de (1 x -1).
Input settings
Muito bem, aprendemos a movimentar objetos via cdigo e a criar menus que
controlem aes dentro do game.
Chegou a hora de aprender a mover objetos dentro do game usando o teclado,
o mouse e o joystick.
Mas para que isso possa ser feito precisamos conhecer as configuraes
de input da Unity3D.
Para isso v at o boto Edit, depois clique em Project Settings e na lista que
surgir clique em Input:
Mouse
Agora que j movimentamos o cubo com o teclado vamos usar o mouse para
reproduzir novamente esse movimento, mas antes vamos verificar o input
settings do mouse. Observe a imagem abaixo:
A primeira linha de cdigo cria uma varivel "x" onde atribumos o valor da
multiplicao da varivel vel pelo valor do movimento do mouse no eixo X.
A segunda linha apenas usa o valor obtido nessa varivel para mover
o cubo para a direita e para a esquerda.
Controle
A movimentao com controle muito simples na verdade no muda quase
nada do que j foi apresentado, para usar o controle / joystick primeiro
necessrio fazer algumas mudanas no input settings.
Adicione no InputMananger o nmero necessrio para criao dos botes
do joystick. Observe a imagem abaixo:
Depois ajuste o nome do eixo ou boto criado como mostra imagem abaixo:
Perceba que esse cdigo um pouco diferente dos anteriores, nele primeiro
criamos uma condio que analisa se boto "0" do controle foi pressionado, se
foi movemos o GameObject.
Note que o nmero do boto do controle pode ser editado pelo desenvolvedor.
Qualidade de renderizao
Agora vamos falar de um tema muito discutido e estudado pelos games
designers, a qualidade da renderizao (Criao da cena).
Afinal j foi o tempo de jogar um game todo serrilhado com uma qualidade
grfica pssima que nunca chegaria nem perto da realidade.
Ento a Unity3D como uma Game Engine de primeira linha que , resolveu
disponibilizar aos seus usurios, meios de configurar o visual do game para que
o mesmo seja nico.
Para acessar essas configuraes clique em Edit, depois em Render Settings:
No menu Render Settings existem vrias opes para deixar seu game ainda
mais profissional, podemos ajustar por exemplo se o game ter ou no o efeito
de nevoa (Fog) que surge sobre os objetos conforme a distncia da cmera e
do objeto aumenta.
Podemos definir uma cor para essa nevoa (Fog Color), como ela ir atuar
sobre os objetos do game, atuando como linear ou exponencial (Fog Mode).
Podemos definir tambm uma textura de cu (Skybox Material), cor da luz
ambiente (Ambient Light), entre outras configuraes.
Alm dessas configuraes podemos manipular a maneira que nosso game ser
renderizado ajustando algumas outras ferramentas como, por exemplo, a
emulao de grficos ou Graphics Emulation.
Veremos ento um pouco disso na prtica!
Clique em Edit, depois em Graphics Emulation: Agora s escolher qual
opo voc quer para emular seu game nenhum shader, shader model 3, 2, 1,
ou directX 7.
Alm dessas opes existe mais uma ferramenta para melhorar a qualidade dos
nossos games, essa ferramenta o Quality.
Para acess-lo clique em Edit, depois em Project Settings, e por fim
em Quality:
Game Objects
Vamos entender o que seria um Game Object, se levarmos a traduo ao p
da letra um game object no passa de um objeto de jogo.
Isso muito vago afinal no processo de desenvolvimento de game existem
vrios objetos ou elementos para fazer com que o jogo seja produzido.
A Unity3D tem uma definio bem especfica sobre isso, um Game Object
todo elemento de cena que recebe ao menos um component o transform.
Mas o qu seria esse tal transform?
Simples, um transform um componente, que manipula aes em um
mundo 3D como deslocamento, rotao, escala.
Components
Como falar de Game Object e no falar de componentes, os components do
vida ao game.
Um cdigo considerado um componente, afinal ele adicionado
ao GameObject lhe atribuindo modificaes no ?
Efeitos de partculas tambm so considerados components, a fsica adicionada
aos games, o udio.
Layers
Em relao aos Layers, essas so mais usadas por cmeras ou por luzes.
No caso do uso de Layers com luzes podemos escolher o que deve ou no ser
iluminado.
Para criar uma Layer basta clicar no boto ao lado de Layer na
aba/janela Inspector, depois clique em Add Layer e digite seu nome "heroi".
Agora o Layer est pronto para ser usado.
Introduo a arte 2D
Agora vamos falar um pouco sobre arte 2D e como devemos proceder para
criar mdias 2Dde qualidade para uso em games.
Antes de qualquer coisa precisamos ter conhecimento dos tipos de imagem,
quanto "pesam" em uma aplicao complexa como um game e qual a sua
qualidade visual.
Falando de games existem 3 tipos de texturas que os games aceitam bem
inclusive os games feitos emUnity3D que so: JPG, PNG e BMP.
Vamos explicar cada formato de textura:
BMP
O tipo de imagem BMP tem uma boa qualidade visual dependendo do nmero
de pixels da imagem, porm o seu peso invivel para aplicaes que venham
a ser executadas em aparelhos com capacidade de processamento limitada.
JPG
O tipo de imagem JPG tem uma caracterstica excelente, que a de ser muito
leve. Isso explica sua popularidade, que fez com que fosse adotada como
padro de fotos de mquinas digitais, porm existe um problema quanto a
qualidade uma imagem JPG quando manipulada perde com facilidade sua
qualidade.
PNG
As imagens nesse formato so sem dvida a melhor opo para os
desenvolvedores de games, alm de trabalhar com transparncia a qualidade
das imagens tima e no sofre perda de qualidade com a manipulao
(compresso, por exemplo).
claro
que
existem
desenvolvedores
que
preferem
trabalhar
mesclando PNG e JPG para games 2D eBMP, PNG e JPG para texturas de
modelos 3D, mas isso no uma regra, cada desenvolvedor precisa testar cada
tipo de arquivo at chegar a uma concluso do que melhor em cada projeto.
Pintura digital (Photoshop/Gimp)
Muito bem vamos explicar agora de maneira resumida como funciona a pintura
digital em programas como Photoshop e Gimp.
Vamos usar o Photoshop por ser o programa mais popular, porm no Gimp o
processo produtivo o mesmo mudando apenas nomes e o local de poucas
ferramentas. Em nossa prxima vdeo aula vamos ensinar como passar de um
desenho preto e branco para um colorido.
Sprites
Em relao sprites precisamos deixar claro alguns pontos, a Unity3D uma
game engine3D e no 2D ento para criao de sprites com ela necessrio
fazer isso de maneira fake(no habitual)
Precisamos pegar uma textura e adicionar em um plane como mostra a figura
abaixo:
Ciclos de animao
Como j falamos uma imagem animada composta por vrias imagens
menores que podem ir de 0 a 4, 0 a 10 enfim.
O espao de tempo que demora para que o cdigo de controle do offset se
desloque desde a primeira imagem at a ltima um ciclo.
Para que nossa animao fique suave, esses ciclos precisam ser suaves e
contnuos, inadmissvel uma animao que apresente trancos no incio de
cada novo ciclo.
Sendo assim precisamos garantir que o ltimo movimento da animao seja o
movimento que precede o primeiro movimento como mostra a imagem abaixo:
Controle de animaes
Antes de aprender a controlar (gerenciar) uma animao precisamos importar a
imagem animada apresentada no tpico acima.
Clique com o boto direito do mouse sobre a pasta Texturas e no menu que
surgir
escolha
a
opo Import
New
Asset...,
procure
pelo
arquivo img_114 e clique no boto Import.
Pronto, agora nossa textura j est dentro de nossa pasta e pronta para ser
usada.
Lembre-se que como explicamos no tpico Materials, uma textura precisa ser
colocada em um material para s assim ser usada em nosso Game Object.
Ento clique na pasta Material que criamos anteriormente, e no
material Teste, adicione a textura animada simplesmente clicando no quadrado
descrito como "None Texture" e aplique a textura.
Nota: "A pasta Asset uma pasta padro criada pela Unity3D onde so
armazenadas todas as mdias e pastas de game"
Agora j podemos ver nossa textura aplicada ao material.
Veja que a imagem foi aplicada no quadrado que antes tinha outra textura
"cenagame", e que logo abaixo temos um exemplo dela aplicada a um
objeto 3D (uma esfera).
Depois de ter nossa textura aplicada a um material chegou a hora de adicionar
esse material a algum GameObject, nesse caso o nosso cubo. Arraste o
material Teste da guia Projectpara o objeto Cube da guia Hierarchy:
Pronto, teremos o seguinte resultado:
Nota: "O valor adicionado a Tiling no um padro, o valor de 0,27 foi obtido
atravs de testes com diversos valores at se obter esse que foi o adequado
para a imagem em questo".
Pronto agora nosso material mostra os personagens separados e no
compactados como estava antes.
Mas ainda existe um pequeno problema, a imagem no apresenta
transparncia, para resolver isso vamos mudar o tipo de material clicando no
boto Difuse do material onde colocamos a textura animada, depois na lista de
opes em que surgir vamos escolher as opes Transparent e na janela que
surgir escolheremos a opo Difuse.
Agora teremos esse resultado:
Pronto, agora nosso material j tem transparncia, mas ainda falta alguma
coisa, repare que a qualidade da imagem do personagem est muito ruim. Para
ajustar isso precisamos configurar algumas opes diretamente na textura,
ento v at a pasta Texturas clique em nossa textura animada e altere os
seguintes parmetros na aba/janela Inspector: Em Aniso Levelmude o valor
para 6 e em Max Size mude para 1024.Dessa forma aumentaremos a
qualidade de renderizao da imagem tendo como resultado a imagem abaixo:
Veja que a imagem do personagem est bem mais ntida que antes.
imagens
do
Isso faz com que a cada ciclo de 10.0 renderizemos um frame a frente, por
exemplo:
zeramos
o offset e
retornamos
tipos
de
cmera
cmera Perspective e
Cmera Perspective
Esse tipo de cmera usada em games 3D, com ela podemos ver o volume do
cenrio podendo distinguir com facilidade objetos que estejam longe ou perto
da cmera.
Cmera Orthographic
a
projeo,
primeiramente
vamos
mudar
de Perspective para Orthographic.
Agora ajuste o tamanho Size para que a imagem da tela do game fique de
maneira satisfatria.
Nota: Voc pode utilizar os valores que utilizamos na imagem abaixo ou ir
testando at encontrar um tamanho que voc considere satisfatrio.
Fsica 2D
Efeitos de fsica certamente do um ar de profissionalismo a qualquer game
seja 3D ou 2D.
claro que a fsica 2D muito mais simples que a 3D pelo fato de no existir
um terceiro eixo para complicar tudo.
Nesse tpico iremos aprender como criar efeitos fsicos bidimensionais.
Primeiro crie um Novo projeto com o nome de Fisica2D.
Depois adicione a sua cena dois GameObjects um cubo e uma esfera, para
fazer isso primeiro clique em GameObject depois Create Other e a
seguir Cube.
No altere nada na esfera, mas o cubo deve ser escalado como mostra a
imagem abaixo:
Aps modificar o cubo modifique a cmera para que tenha uma aparncia 2D,
definindo a projeo Projection como Orthographic e Definindo Size de
forma que a cena fique com boa visibilidade.
Aqui o valor 3,66 foi considerado satisfatrio.
Agora vamos adicionar fsica a essa esfera para que a mesma caia sobre
o cubo ao iniciar o game.
Primeiro precisamos adicionar a essa esfera um componente fsico, para isso
clique na esfera depois em Component, depois em Physics e por fim
em RigidBody como mostra a imagem abaixo:
um
cdigo
bem
simples
simulando
lanamento
Por fim, na funo Update criamos um cdigo que adiciona uma fora a nossa
esfera lanando a mesma em seu eixo Y.
Aqui temos o cdigo que captura o input de uma das teclas do teclado, no caso
a tecla espao, como j vimos esse cdigo padro da Unity3D e ele captura
a tecla pressionada a qualquer momento assim como GetAxis.
que
ser
aplicada
parte
de
sua
Essa funo deve ser colocada dentro da funo Update para que possa ser
executada de acordo com o ato de pressionar a tecla espao (space).
Pronto agora adicionaremos esse cdigo esfera.
Depois clicamos na esfera e na aba/janela Inspector, nos campos onde esto
contidas as variveis do nosso cdigo, clique no pequeno boto redondo ao lado
do nome Bola.
Clicando nesse
nossa esfera.
boto
janela Select
Rigidbody abrir,
nela
escolha
a Unity3D quem
Aps efetuar todo procedimento explicado acima, faa o teste da esfera sendo
arremessada clicando em Play e depois pressionando a tecla de Espao no
teclado.
Prefabs
Agora vamos falar um pouco sobre prefabs. Antes disso crie um Novo
Projeto com o nome de Exemplo_Prefab, crie tambm uma cena com o
nome Fase1 e desenha nela um cuboconforme figura abaixo:
Imagine que voc quer fazer com que um personagem atire, os tiros
sero prefabs da bala original.
Um prefab muito til, pois se mudarmos as caractersticas de seu objeto
"pai" todos osprefabs sero alterados veja na imagem abaixo.
O cubo que deu origem foi modificado, mas nada aconteceu com o prefab.
Para fazer com que o prefab imite o GameObject que lhe deu origem, clique
no boto Apply na aba/janela Inspector.
ser
acessadas
pela
aba/janela
Temos Is Trigger que precisa estar selecionado para que possamos codificar
uma coliso que desencadeie em alguma ao como uma bala atingindo
uma parede. Temos tambm Material que nesse caso so materiais fsicos e
por ltimo o tamanho e o centro do collider.
Agora
vamos
montar
uma
cena
simples
e
fazer
nosso personagem animado tenha uma coliso com uma caixa.
com
que
Repare que existe um problema com essa Plane, ela esta deitada e no
queremos isso.
Em nosso exemplo essa Plane ser o Background de nossa cena, aplicaremos
a ela uma textura de paisagem.
Ento precisamos rotacionar essa Plane de maneira que ela fique em p, como
uma parede, por exemplo, para isso clique na ferramenta de rotao:
Depois rotacione nossa Plane em -90 graus no eixo X como mostra a imagem
abaixo:
Perceba que a Plane no esta mais deitada, mas com essa viso temos uma
falsa impresso de que ela esta inclinada ento vamos ajustar a cmera.
Clique na cmera:
Agora ajuste suas configuraes para projeo 2D, lembre-se que suas
configuraes Size podem ser diferentes das apresentadas aqui.
Abrir uma janela na qual voc poder escolher as texturas que pretende usar
em seu game. Lembrando que ao criar suas texturas voc dever salv-las
nessa pasta que deve ser previamente criada conforme j vimos anteriormente.
A imagem de fundo.
E a imagem animada.
mesmo
at
Agora vamos criar dois cubos, um ser nosso personagem e o outro uma caixa
que ir colidir com ele.
Para criar os cubos clique em GameObject depois em Create Other e por fim
em Cube. Observe o passo a passo na imagem abaixo:
Agora posicione esse cubo no centro da tela, ele ser a caixa que vai colidir
com o personagem.
Para posicion-lo use a ferramenta.
Agora sim nossa cena esta criada e j podemos passar para a programao.
Coliso com CharacterCollider
Para testar a coliso vamos criar um script dentro da pasta Scripts com o
nome de MovimentoInput.
Agora vamos digitar nele o seguinte cdigo:
Feito isso nosso personagem ser envolvido em uma esfera verde como
mostra a imagem abaixo:
seja
do
ento,
Por
ltimo
informamos
a Unity3D atravs
da
funo Move da classe CharacterController,
que
o
movimento
do
personagem deve ser o produto da varivel DirecaoM por Time.deltaTime.
Alm dessa coliso, que sem dvida a mais complexa, existem colises mais
simples como a de uma bala atingindo uma caixa como veremos no prximo
tpico.
Execute o jogo e verifique se est funcionando.
Caso esteja tudo cerreto, salve a cena e seu projeto.
crie
trs
objetos
de
game
(Gameobjects),
Um dos cubos precisa ser escalado para que tenha o seguinte aspecto:
Lembre-se que o valor de Size obtido por tentativa e erro, voc precisa
escolher um valor que lhe agrade.
Agora voc precisa criar uma fonte de luz na cena para que seja possvel
enxergarmos os objetos em cena.
Para isso, v at GameObject, em seguida clique em Create Other e por fim
clique em Directional Light.
Feito isso, agora necessrio criar um prefab para essa bala, ento crie a
pasta Prefabs e deixa-a selecionada, clique em Create, e na sequncia
em prefab, d o nome de Pbala para ela.
Agora precisamos arrastar nossa cpsula para dentro do prefab:
Aps
adicionar
a
cpsula
ao prefab,
iremos
adicionar
um
componente Rigidbody a nossa cpsula (lembre-se que tudo que acontece
com o objeto "pai" imitado pelos prefabs. Sendo assim tudo que
adicionarmos ao objeto "pai" os prefabs tambm recebero). Selecione o
objeto Capsule e adicione o Rigidbody.
Pronto nossa
cpsula
j
tem
um Rigidbody e
por
consequncia
nosso prefab tambm, porm as alteraes feitas no objeto principal s
passam para seu prefab depois de clicarmos no seguinte boto:
pede como parmetro um Collider que venha a colidir com o objeto onde ela
esta armazenada.
Seu cdigo :
Esse cdigo tem a funo de movimentar a bala em direo ao alvo e deve ser
adicionado aoprefab.
Agora criaremos o cdigo para o jogador que vai disparar os tiros, crie um
novo script com o nome de Personagem e escreva nele o seguinte cdigo:
No cdigo acima temos uma novidade, a varivel Tiro que recebe como valor a
funo Instantiate.
Essa funo faz parte da classe Object e tem a funo de criar instncias de
um objeto.
Seu cdigo pede como parmetros o objeto a ser instanciado, a posio e
rotao de origem para essa instncia.
Salve os dois cdigos.
Agora precisamos Instanciar os cdigos aos seus respectivos GameObject.
Selecione a prefab Pbala e adicione o compenente Script Atirar.
Agora adicione o script Personagem a Sphere (esfera).
Agora falta apenas instanciar o prefab Pbala ao Rigigbody Bala.
Mas ainda no existe uma coliso ento vamos fazer algumas alteraes no
cdigo para quando a cpsula colidir com o cubo o mesmo desaparea.
Para que isso acontea primeiro precisamos criar uma Tag para o cubo.
Para isso primeiro, selecione o GameObject Cube, clique no boto ao lado
de Tag e depois em AddTag..., na janela Tag Manager que surgir crie
a Tag inimigo. Agora aplique nocubo e determine que a Tag dele seja
o inimigo que acabamos de criar.
Feito isso v at o cdigo Atirar e faa a seguinte alterao:
udio
Agora que j aprendemos como usar fsica, coliso e at a atirar, precisamos
aprender a usar arquivos de udio em nossos games.
Devemos ressaltar que a Unity3D aceita bem arquivos do tipo MP3, OGG,
WAV, entre outros.
No nosso caso vamos usar o projeto de tiros que fizemos no captulo anterior
para aprender o uso de sons em Unity3D.
Primeiro crie uma pasta com o nome de Sons:
Clique com o boto direito do mouse sobre essa pasta Sons e selecione a
opo Insert New Asset... E depois escolha um arquivo de som, que no nosso
caso vamos usar o arquivo Tiro.wav que se encontra na pasta \\arquivoscurso\Unity4.
Pronto nosso arquivo de udio j est na pasta Sons.
Quando voc atirar vai escutar o som dos tiros sendo emitidos.
Caso esteja tudo correto, salve a cena e o projeto.
Passagem de fase
Agora vamos aprender a programar um efeito muito comum nos games, mas
que ningum repara que a passagem de fase.
Passar de fase algo muito simples, o conceito principal :
Precisamos ter duas ou mais cenas para poder efetuar a passagem de fase.
Sendo assim vamos criar um Novo Projeto, clicando em File, depois New
Project como mostra a imagem abaixo:
Feito isso teremos a seguinte janela para informarmos o nome do novo projeto,
vamos colocar o nome de PASSANDO_DE_FASE e clicar no boto Create.
Depois disso a Unity3D ir reiniciar com o novo projeto aberto, caso sua rea
de trabalho no esteja semelhante a figura abaixo, chame seu professor para
lhe ajudar a configur-la:
Agora antes de qualquer coisa vamos salvar nossa primeira cena, que
a Unity3D j cria como Default, com o nome de Fase1.
Clique em File e escolha Save Scene as...
Agora crie outra cena e repita o processo de salvar, porm agora com o nome
de Fase2 para que tenhamos como resultado a seguinte imagem:
Agora clique duas vezes na Fase1 para ativ-la e vamos montar uma cena
que se parea com a imagem abaixo:
ltimo
Use a ferramenta
para posicionar a esfera sobre a plane e use
aumentar o tamanho da esfera.
para
Com a luz em cena vamos trocar a cor dela de branco para azul.
Pronto, com isso a cena apresentada no incio do tpico est pronta.
funcionar,
Mas, lembre-se: para que tudo isso funcione, adicione as cenas ao Build do
projeto estando com a cena carregada e clicando em Add Current.
Execute seu projeto e observe se ao pressionar a tecla de Espao ser trocado
de cena:
Introduo a IA
A inteligncia artificial o estudo que visa fazer com que mquinas se
comportem de forma natural.
Na indstria dos games essa tcnica muito valiosa para fazer com que os
personagens que no so controlados por humanos tenham reaes o mais
natural possvel de acordo com cada situao.
Um exemplo disso seria games como GTA, onde o jogador anda pelas ruas e
dependendo de suas aes os personagens ou NPCs em volta reagem de um
jeito diferente.
Um dos exemplos clssicos da inteligncia artificial para games o homem
que patrulha.
Nesse exemplo um personagem faz sua patrulha respeitando um ciclo de
lugares que ele precisa visitar para garantir que o permetro esteja vigiado.
No prximo tpico vamos reproduzir esse efeito.
IA na prtica
Agora vamos fazer um exemplo simples de inteligncia artificial que consiste
em um cubo transitar entre outros 3 cubos afim de simular uma rota de
viglia.
Primeiro crie uma cena usando os conceitos que voc aprendeu de maneira que
fique igual cena apresentada abaixo:
Nessa cena usamos uma plane e quatro cubos, sendo que um desses cubos
se comportar como o agente inteligente.
Para o nosso exemplo vamos criar um Novo Projeto com o nome de IA.
Observe o passo a passo nas imagens que seguem:
Crie
tambm
uma Directional
Create Other, Diretional Light.
light clicando
em GameObjects,
Agora precisamos organizar nosso projeto, e pra isso precisamos criar pastas
para guardar texturas, cdigos e materiais.
Para criar essas pastas v at a aba/janela Project, clique no boto Create,
depois clique em Folder para criar uma pasta, repita esse processo at ter
criado as trs pastas apresentadas abaixo:
Agora na pasta Texturas vamos importar uma textura para ser o cho da
nossa aplicao, voc pode escolher qualquer textura para isso, para a nossa
aplicao de exemplo vamos usar uma textura de grama.
Para importar essa textura selecione a pasta Texturas e clique sobre ela com
o boto direito do mouse, no menu que surgir clique em Import New
Asset..., na janela Import New Asset selecione a textura de grama,
localizada na pasta\\arquivos-curso\Unity4.
Otimizao para jogos mbile
Quando se fala de games 2D os cuidados para otimizao so menos drsticos
do que em 3D.
Mas existem alguns pontos que precisam ser discutidos independente do tipo
de game 2D ou 3D.
Precisamos ter em mente que o bom senso no tamanho das imagens conta
muito e efeitos como alpha blend so fatais para games mobile.
Para quem adora usar efeitos shader triste dizer isso, mas o desenvolvedor
precisar se conter muito, pois j foi constatado pela prpriaUnity
Tecnologies que
a
renderizao
de
grandes
superfcies
com shaders complexos derrubam a taxa de FPS tornando o game impossvel
de ser jogado.
claro que isso no significa que voc no v poder usar shaders no seu game
mobile, pode sim, mas com moderao "MUITA MODERAO".
Outro cuidado necessrio so as partculas, sistema de partculas criam
inmeros objetos em cena que em sua maioria utilizam o efeito dealpha
blend, ento para esse caso muitas vezes o uso de uma ou mais planes com
imagem animada seria o mais vivel.
Um exemplo que a prpria Unity Tecnologie apresenta de game mobile com o
mximo de otimizao o game 3D ShadowGun.
Acompanhe o prximo mdulo do curso de Unity onde estaremos abordando
com mais nfase esse tema (mobile), nele estaremos fazendo testes e
exemplificando todo o procedimento com a verso da Unity para Android.
Save Game simples
Falar de desenvolvimento de games e no falar de sistema de save e load
uma falha gigantesca. Portanto vamos falar um pouco sobre esse assunto.
Um jogador espera que todas as suas conquistas sejam salvas para que no
precise conquist-las a toda hora.
Vamos ver agora um exemplo bsico, porm poderoso de sistema
de save e load que tem a funo de salvar e depois carregar umnome.
Primeiro crie um Novo Projeto e d o nome a ele de Save_Load, feito isso
crie uma pasta para guardar seus scripts, d a ela o nome de Scripts.
Para nosso cdigo primeiro criamos uma varivel para armazenar o nome.
Depois criamos uma condicional para o boto save, dizendo que se clicado ele
ir salvar na varivel "nome" o que digitamos na Text field.
E por ltimo, criamos uma condicional para carregar a palavra salva na varivel
"nome" dentro de nossa Text field.
Compilao
Agora vamos aprender como compilar um game desenvolvido por ns.
Os passos so bem simples, para teste vamos compilar o ltimo projeto
de save e load que fizemos.
Primeiro clique em File, depois em Build Settings:
Nela escolheremos para qual plataforma vamos compilar nosso game, para PC,
MAC, WEB, IOS, ANDROID, XBOX360, PS3, WII , depois vamos clicar
em Add Current.
Isso far com que adicionemos a compilao s fases criadas, no caso como
criamos apenas uma ento s ela foi para a compilao.
Agora s clicar em Build ou Build And Run para a imagem abaixo aparecer:
Cho
A primeira coisa que criaremos ser o solo, o cho do cenrio, faremos que se
parea com um terreno clssico com grama por cima. Para isso criaremos uma
camada, ou seja, uma layer com o nome de "grama" e configurao da
camada Normal, e nela desenharemos uma figura conforme a da imagem
abaixo:
O desenho acima foi feito com um pincel do tipo duro (Dureza 100%).
Essa imagem ser a base para nosso cho, s curvas desenhadas esto
representando a rea da grama, ento deduzimos que a parte de cima da rea
ondulada a grama e a rea de baixo a terra.
Seguindo esse pensamento escolhemos um tom de verde de RGB 89,170,35 e
pintamos a grama com a ferramenta balde de tinta.
Perceba que criamos uma nova camada e iniciamos a pintura das sombras na
parte inferior da grama, para essa pintura utilizamos um pincel malevel de
tamanho 17 pixels, cor verde com RGB de 37,68,20.
Nota: Esse curso no est destinado a ensinar as ferramentas
do Photoshop nem as do Gimp, ou qualquer outro editor de imagens, o que
ensinaremos so as tcnicas de arte digital que envolve luz, sombras e
tonalidades de cor, caso voc no tenha domnio sobre essas ferramentas
aconselhamos fazer o curso de Photoshop.
Feito isso preciso deixar essa grama mais real, para isso vamos criar outra
camada
no Photoshop com
o
nome
de
"sombra2"
com
a
configurao Multiplicao e vamos pint-la, com um tom de verde mais
escuro que o usado na camada "sombra, vamos usar um verde com RGB de
20,38,10.
Depois de criadas as duas sombras vamos criar uma camada para o efeito de
luz sobre a grama, essa camada ter o nome de "luz" com
configurao Subexposio.
Vamos pintar a grama com um tom de verde mais claro que os usados at o
momento, no nosso caso usamos um verde com RGB de 83,203,18.
Veja que a grama tem um aspecto mais real, isso graas a um pincel especial
do Photoshop chamado Grama de Duna, aqui o utilizamos com tamanho
de 25 pixels, mas claro mesmo que voc use o Gimp esse efeito pode ser
reproduzido pintando cada grama com um pincel comum apenas movendo o
mouse em ngulos para simular cada grama.
Nossa grama j est com um aspecto bem legal, porm, no est real, para
resolver isso vamos usar o pincel Grama de Duna tamanho25 pixels para
pintar todas as bordas da grama dando um efeito como o da imagem abaixo:
Terminada a grama preciso criar a terra que fica abaixo da grama, para isso
escolha duas tonalidades de marrom para mescl-las.
Voc pode escolher qualquer tonalidade, aqui ns escolhemos como primeiro
plano o marrom com RGB de 91,53,13 e
para
o marromdo segundo
plano usamos um RGB de 119,55,4.
A essa imagem vamos adicionar efeitos a fim de deix-la mais parecida com
terra,
podemos
adicionar
um
filtro
chamado Rudo com
configurao Monocromtica com uma porcentagem de 1,5 a 2% de rudo,
para dar um aspecto spero.
Enfim, o nmero de efeitos que podemos adicionar infinito, mas por enquanto
vamos deixar nosso cho com o aspecto apresentado abaixo:
Feito isso vamos definir as cores para trabalhar como mostra a imagem abaixo:
Nota: Fique atento, para criao de imagens que tero movimento lateral
(eixo X), preciso garantir que exista uma continuidade da imagem, no
podemos deixar que o jogador perceba emendas na imagem do cenrio durante
seu movimento lateral.
Perceba que com apenas esse efeito nossa imagem ainda no fica muito boa,
ento precisamos criar uma nova camada com o nome de "sombra" e com a
configurao definida como Normal.
Na nova camada com nomeada como "sombra" escolha um verde um pouco
mais escuro que o usado para pintar a imagem acima, nesse caso o RGB fica a
seu critrio, depois diminua a opacidade e o fluxo do pincel em 60% e com o
pincel de Grama de Duna, pinte a grama de forma que sua imagem fique
como apresentado abaixo:
Lembre-se que a camada detalhe precisa estar definida como Normal e que
a resistncia do pincel borrar precisa ser de 30%conforme mostra a
imagem abaixo:
O valor adicionado a esse filtro aleatrio devendo ser usado o valor que
melhor se adapte a suas necessidades.
Depois de ajustado a imagem ao seu movimento no eixo X, chegou a hora de
trabalhar o visual da imagem, para isso ajuste o equilbrio de cor, o brilho,
contraste e nvel de claridade da imagem (essas configuraes esto no boto
imagem e sub-boto ajuste) de forma que a mesma tenha um aspecto realista
como a imagem abaixo:
Coqueiro
Agora continuaremos nosso projeto desenvolvendo a arte de um coqueiro que
ser usado em nosso game.
Para isso vamos abrir o Photoshop e criar um novo arquivo com o tamanho
de 1024 de largura por 600 de altura e apertar o boto Ok.
Com a cena criada, primeiramente iremos ajustar as cores de trabalho
do Photoshop para preto e branco, depois vamos criar uma nova camada
com o nome de "coqueiro" e com a configurao definida como Normal.
Depois de criada a camada vamos escolher um pincel de opacidade e fluxo
100%, tamanho de 5 pixels e dureza mxima.
Feito isso vamos desenhar o coqueiro como mostra a imagem abaixo:
Depois de desenhado o coqueiro, vamos criar uma nova camada com o nome
de pintura.
Nessa camada vamos pintar o coqueiro comeando pelos cocos, escolha um
tom de marrom, no nosso caso um marrom com RGB de95,69,20 e um pincel
com dureza de 100% e tamanho de 25 pixels. Agora pinte os cocos tomando
o cuidado de definir as configuraes da camada pintura como Multiplicao.
Fazendo isso teremos a imagem abaixo:
Pronto, pintamos os cocos, porm, ainda esto muito sem graa, ento
precisamos adicionar sombras a esses cocos, para isso vamos criar uma nova
camada com o nome de "cocos_sombra" e definir essa camada com a
configurao definida como Escurecer.
Agora vamos escolher um pincel malevel de tamanho 11 ou o tamanho que
seu projeto se adapte melhor e pintaremos apenas as bordas onde a sombra
tem maior intensidade.
Veja abaixo:
valor
Perceba que criamos uma iluso de brilho nos cocos, mas isso ainda pouco,
da mesma forma que a sombra tem tons mais claros e mais escuros, o brilho
tambm tem, ento no meio da pintura de brilho d pequenas pinceladas
de branco (RGB de 255,255,255) para simular um brilho mais intenso (Para
esse efeito use a mesma camada de "cocos_brilho").
Perceba que o efeito melhorou muito, mas claro que isso apenas uma base,
voc pode ajustar os efeitos para ficarem conforme seu gosto.
Agora vamos adicionar mais realismo aos nossos cocos, para isso vamos
escolher dois tons de marrom no mosaico de cores, ummarrom claro e
outro mais escuro.
Agora vamos criar uma nova camada chamada "plos" (Deixe suas
configuraes como Normal) e depois escolheremos o pincel Grama de Duna.
Pronto, criamos uma pintura que simula plos com grande realismo, porm
agora precisamos adicionar uma sombra a esses plos para isso crie uma nova
camada com o nome de "plos_sombra".
Depois
escurea
as
cores
de primeiro e segundo
plano para
de marrons mais escuros do que os utilizados para pintura dos plos.
tons
precisa
estar
Com o tronco pintado chegou a hora de detalhar essa pintura, para isso crie
uma nova camada com o nome de "detalhe" e configure-a como Normal.
A seguir escolha dois tons de marrom mais escuro para pintar os detalhes, (no
nosso caso usamos um marrom de ( RGB 50,31,2) e outro de (RGB 44,27,2)
e defina como pincel o Grama de duna com um tamanho de 16 pixels.
Feito isso pinte os detalhes do tronco como mostra a imagem abaixo:
Agora preciso adicionar uma sombra a esse detalhe para que o mesmo
apresente um aspecto mais realista.
Ento crie uma nova camada com o nome de "tronco_sombra" defina sua
configurao como Normal.
Depois escolha um tom de marrom escuro (RGB 56,35,1) para ser a sombra
do tronco, feito isso troque o pincel que era o Grama de Duna por um pincel
comum malevel com tamanho de 8 pixels.
Agora pinte o tronco at obter o seguinte resultado:
Agora vamos detalhar um pouco mais nosso trabalho criando para isso uma
nova camada com o nome de "tronco_sombra2" com a configurao definida
como Normal.
Nessa camada use as mesmas configuraes de pincel que usamos na primeira
sombra do tronco, apenas mudando o tom de cor para um marrom mais
escuro, fica a seu critrio o quanto mais escuro deve ser ns sugerimos
um RGB de 65,39,6
Feito isso pinte o tronco de forma que se parea com a imagem abaixo:
Perceba que nesse caso tambm teremos que suavizar o trao das sombras,
ento use a ferramenta Desfocar com resistncia de 88%, para fazer esse
trabalho. Depois de aplicado essa ferramenta sombra teremos o seguinte
resultado:
No
se
esquea
de
usar
a
ferramenta Desfocar
com resistncia de 88% e um pincel malevel de 8 pixels para suavizar o
trao do pincel e desta forma obtermos o seguinte resultado:
Perceba que o tronco apresenta um aspecto mais suave, mas repare que abaixo
dos cocos existe um detalhe de folhas que ainda no foi pintado.
Pronto terminamos essa parte e agora vamos pintar a grama que fica na base
do tronco do nosso coqueiro, para isso crie uma nova camada e d o nome de
"grama", ajuste sua configurao para Normal.
Depois escolha dois tons de verde para pintar essa grama, um verde mais
claro (RGB de 47,72,11) e outro mais escuro (RGB de38,59,5).
Feito isso escolha o pincel Grama de Duna com um tamanho de 41 pixels e
pinte a base do tronco at obter o seguinte resultado:
A grama ficou com uma qualidade boa, mas perceba que o trao est muito
duro, ento para resolver isso vamos usar a ferramentaborrar com
uma resistncia de 30% e um pincel do tipo Borrifo tamanho 46 pixels.
Vamos aplicar essa ferramenta nas duas camadas de grama, a "grama" e
"grama_sombra" deixando a imagem semelhante apresentada abaixo:
Agora que pintamos nossas folhas vamos adicionar sombras a elas, para isso
crie uma nova camada com o nome de "folhas_sombra" a configurao da
camada deve ser Luz Direta com opacidade de 57%, depois v at o quadro
de escolha de cores e escolha um tom deverde mais escuro no nosso caso
escolhemos um verde com RGB de 36,70,8.
Por fim escolha um pincel do tipo malevel tamanho 17 pixels e pinte as folhas
conforme a imagem abaixo:
Agora vamos criar efeitos de luz nas folhas, para isso vamos criar uma nova
camada
com
o
nome
de
"folhas_luz",
configurao Clarear eopacidade de 54%.
Depois escolha um tom de verde bem claro para simular brilho nas folhas ns
escolhemos um verde com RGB de 107,149,56, depois disso escolha um
pincel malevel de tamanho 17 pixels.
Agora s pintar as regies iluminadas como mostra a imagem abaixo:
Pronto pessoal, nosso coqueiro est pronto para ser usado dentro do nosso
game.
Rocha
Agora vamos criar um Novo arquivo com o tamanho de 1024 de largura
por 600 de altura.
Com o arquivo criado, crie uma nova camada com o nome de rocha e
configurao Normal, depois escolha a cor preta como cor primaria:
Agora precisamos pintar nossa rocha, para isso crie uma camada com o nome
de "pintura" e deixe sua configurao definida como Multiplicao.
Para pintar essa rocha primeiro escolha um tom de cinza cor sugerida
(RGB de 148,148,148), lembre de escolher um tom nem muito escuro nem
muito claro e depois pinte a rocha com um pincel malevel de tamanho 55
pixels aproximadamente para que a mesma fique parecida com a imagem
abaixo:
Agora que j temos a rocha pintada vamos adicionar sombras a ela, para isso
crie uma nova camada com o nome de "rocha_sombra" com uma
configurao de Multiplicao.
Escolha um tom de cinza mais escuro, ns usamos um tom de cinza
com RGB de 96,94,94 e depois selecione um pincel malevel com tamanho
de 31 pixels.
Agora pinte a rocha para que a mesma se parea com a imagem abaixo:
Agora precisamos suavizar o trao da pintura das sombras para isso escolha a
ferramenta Desfoque com resistncia de 88%.
O tamanho do pincel de desfoque precisa ter um tamanho de 22 pixels e
precisa ser malevel.
Ajustando essas configuraes teremos um resultado semelhante ao da
imagem abaixo:
um pincel
malevel de
tamanho
de 10
Passe o pincel sobre as sombras at que elas fiquem como na imagem abaixo:
A cor escolhida ser um tom de cinza bem claro, no nosso caso usamos a cor
cinza com um RGB de 221,221,221 e um pincel malevel de tamanho 14
pixels.
Depois desses ajustes feitos, pinte a rocha de forma que tenhamos um
resultado semelhante ao da imagem abaixo:
Perceba que agora conseguimos ver com clareza os efeitos de relevo, luz e
sombra da nossa rocha.
Podemos melhorar ainda mais o visual dessa rocha, para isso modifique a
configurao da camada "rocha_luz" para Diviso.
Dessa forma teremos o seguinte resultado:
Para finalizar essa rocha precisamos tratar alguns aspectos da imagem, como
o equilbrio de cores.
Para isso, primeiramente vamos unir todas as camadas criadas clicando sobre
uma delas com o boto direito, depois em Mesclar Camadas Visveis.
Pronto, teremos agora uma nica imagem para tratar.
Agora v ao boto imagem, depois em ajustes e escolha a opo equilbrio
de cores, na janela que ir aparecer ajuste os nveis de corem -7, 7, 36.
Depois no boto Imagem Ajustes, escolha a opo brilho/contraste e
ajuste seu valor para brilho + 6 e contraste +4.
Agora mais uma vez vamos ao boto Imagem Ajustes e escolha a
opo curvas, nessa opo ajuste o valor de entrada para 137 e
de sada para 117.
Teremos como resultado a seguinte imagem:
Pronto nossa imagem j esta com uma aparncia boa, mas caso voc queira
deix-la mais profissional pode usar mais filtros para isso.
No nosso caso vamos fazer algo diferente, primeiro vamos duplicar a
camada da imagem.
Depois na imagem duplicada adicione o filtro artstico papel de carta.
Pronto, com esse filtro adicionado a uma das copias da imagem vamos
modificar
a
configurao
da
duplicata
da
imagem
para Superexposio com opacidade de 42% assim teremos como resultado
algo parecido com a imagem abaixo:
Agora com a rocha pronta precisamos criar uma pedra, a fim de adicionar um
pouco de variedade ao cenrio. O processo de pintura da pedra idntico ao da
rocha, tendo apenas seu desenho diferente.
Pronto, como resultado temos a pedra finalizada com uma diferena pequena
de brilho para diferenciar pedra de rocha.
Montanhas
Agora vamos incrementar um pouco mais nosso cenrio, j criamos arbustos,
rochas e pedras, agora vamos criar montanhas.
Crie um novo arquivo no Photoshop com 1024 de largura e 600 de altura,
dentro do arquivo crie uma camada com o nome de "montanhas".
Depois
disso
vamos
ajustar
cores primria a secundaria do Photoshop para preto e branco:
as
J temos a forma das montanhas, mas lembre-se essa imagem vai deslizar em
seu eixo X (Lateralmente), ento precisamos usar o filtro deslocamento para
ajustar a emenda desse desenho como apresentado abaixo:
Veja que existe uma falha no desenho que aparece quando deslocamos seu
posicionamento no eixo X.
O que precisamos fazer nesse caso consertar essa emenda para dar um efeito
de infinito para nossas montanhas.
Para isso com o pincel que usamos para desenhar a montanha, desenhe uma
linha que seja capaz de unir as extremidades do desenho.
Veja o resultado abaixo:
Agora sim, nosso desenho tem uma continuidade. Agora que j fizemos esse
ajuste, vamos pintar nossa montanha, mas para isso primeiro precisamos criar
uma nova camada com o nome de "pintura", com configurao Normal.
Depois disso use a ferramenta de seleo Varinha Mgica e selecione toda a
parte que fica abaixo da silhueta da montanha como mostra a imagem abaixo:
a segunda cor escolhemos um tom de verde escuro com RGB de 35, 68, 8.
Agora aplicamos o filtro ao desenho e temos como resultado a imagem abaixo:
Para detalhar ainda mais nossa pintura vamos criar uma nova camada com o
nome de "pintura2" e com a configurao definida comoNormal. Nessa
camada vamos repetir o procedimento de pintura pelo filtro nuvem, porm
vamos usar cores diferentes. A primeira
cor ser um marrom
avermelhado com RGB de 83, 28, 9 e a segunda cor vai ser um verde mais
claro com RGB de 133, 227, 57. Teremos como resultado a imagem abaixo:
Agora para deixar essas duas imagens com um visual aceitvel, vamos fazer
uma alterao na "camada pintura2". Vamos trocar a configurao
de Normal para Luminosidade, conseguindo dessa forma um resultado como
o apresentado abaixo:
Perceba que agora o visual ficou bem mais real, mas ainda no terminamos,
vamos adicionar um filtro rudo para tirar esse aspecto de superfcie polida
das montanhas.
Ento vamos l, na camada "pintura2" v ao boto filtro e depois rudo,
adicione
um rudo
monocromtico,
do
tipo gaussiana,
com
uma porcentagem de 4,80%.
Teremos como resultado a seguinte imagem:
Perceba que aquele aspecto polido sumiu, porem, ainda d pra melhorar essa
imagem. Vamos adicionar a ela um filtro de desfoque por movimento com
um ngulo de movimento de -77 e uma distncia de 7 pixels, gerando
como resultado a imagem abaixo:
Agora vamos adicionar sombras a nossa montanha, para isso crie uma nova
camada com o nome de "montanha_sombra" com uma configurao
de Multiplicao. Para pintar essas sombras vamos escolher um tom escuro
de verde, no nosso caso escolhemos umverde com RGB de 41, 51, 10.
Depois vamos escolher um pincel do tipo Borrifo no tamanho de 46 pixels e
que seja malevel, com uma opacidade e fluxo de 80%. Pintaremos nossa
imagem at chegarmos a um resultado parecido com o da imagem abaixo:
Veja que o trao das sombras est muito rustico, precisamos suavizar e
espalhar mais esse efeito. Para isso vamos usar a ferramenta Borrar:
tamanho
O resultado ficou legal, mas a cor da sombra est muito forte vamos modificar
a configurao da camada "montanha_sombra" deMultiplicao para Luz
Direta com opacidade de 67%.
Vamos ver a mudana abaixo:
Feito isso teremos como resultado algo parecido com a imagem abaixo:
Agora chegou a hora de tratar a imagem das montanhas, para isso primeiro
mescle todas as camadas que usamos para desenhar as montanhas clicando
com o boto direito do mouse sobre uma das camadas e escolhendo a
opo Mesclar Camadas Visveis. Pronto, agora com uma nica imagem,
vamos ao boto imagem, ajustes e em equilbrio de cores vamos ajustar
os nveis de cor para +30,+15, +17, depois no boto imagem ajustes, v
em brilho - contraste e
ajustes
o
valor
de brilho para +18 e
de contraste para+47, e por ltimo vamos mais uma vez ao boto imagem ajustes e em curvas ajuste, a configurao de entrada para 141 e de
sada para 119. Seguindo essas configuraes teremos o seguinte resultado:
tamanho
igual
a 48
O trao est mais suave, porm ainda precisa de um tratamento, escolha agora
a ferramenta Borrar:
Perceba que o aspecto das nuvens melhorou muito, porm essa nuvem est
muito densa.
Vamos mudar a configurao de opacidade da camada para 60%.
Com essa alterao teremos o seguinte resultado:
um Novo arquivo
Dentro desse arquivo crie uma nova camada com o nome de passo1 e deixe a
configurao da camada como Normal.
Na cor
plano:
escolha
Terminado esse desenho crie uma nova camada com o nome de "passo3" e
desenhe nosso heri mais uma vez na posio abaixo:
Agora que desenhamos nosso heri nas quatro posies necessrias para
produzir o efeito de andar, vamos adicionar o braoe arma do nosso heri.
Faremos isso em camadas distintas para manter um controle de movimentao
dos braos.
Ento crie uma nova camada com o nome de "brao" e configurao de
camada Normal.
Com as mesmas configuraes de pincel usadas at o momento, desenho brao
como mostra na imagem abaixo:
Perceba que o brao do nosso heri se move para cima e para baixo de acordo
com os passos que ele d.
Agora vamos pintar nosso heri, para isso crie uma nova camada com o nome
de "pintura" e configurao de camada comoMultiplicao.
Para pintar a pele do nosso heri escolha um tom de bege, no nosso caso
escolhemos o bege com RGB de 245, 223, 184.
Feito isso, com um pincel malevel de 8 pixels de tamanho pinte todo o
rosto do nosso heri de forma que se parea com a imagem abaixo:
Agora que pintamos o rosto do nosso heri vamos adicionar sombras a ele.
Para isso crie uma nova camada com o nome de "sombra_rosto1" e defina a
configurao da camada para Multiplicao. Depois disso vamos escolher um
tom de bege um pouco mais escuro do que o que usamos para pintar o rosto
do heri, no nosso caso usamos o bege com RGB de 202, 170, 115. Agora
vamos
escolher
um pincel
malevel com
tamanho
de 8
pixels com opacidade e fluxo de 100%.Vamos pintar as sombras para que
fiquem com o aspecto da imagem abaixo:
Agora vamos afastar um pouco a imagem para que seja possvel ver o rosto do
heri com as sombras e com a verdadeira qualidade da imagem.
Muito bom, agora que adicionamos todas as sombras do rosto vamos definir o
efeito de luz do rosto.
Para isso crie uma nova camada com o nome de "luz_rosto1" com
configurao de camada Normal. Para a pintura do efeito de luz vamos
escolher um tom de bege bem claro, no nosso caso escolhemos
um bege com RGB de 255, 246, 230.
Para
o pincel escolhemos
um pincel
malevel de
tamanho 6
pixels com opacidade e fluxo de 100%, dessa forma conseguimos obter o
resultado apresentado abaixo:
Pronto, repare que o efeito de luz valorizou mais nosso heri, mas vamos
afastar um pouco mais a imagem para que possamos ver de longe como esse
efeito se comporta em uma camada com configurao de Luz Direta ao invs
de Normal.
Pronto, o efeito ficou bem mais interessante, agora vamos pintar os cabelos e
sobrancelha do nosso heri. Para essa pintura crie uma nova camada com o
nome de "plos", e ajuste a configurao dela para Multiplicao. Depois de
criada a camada, escolheremos a cor que iremos usar para pintar os cabelos e
sobrancelha do nosso heri, vamos escolher um tom de cinza para aparentar
que nosso heri j possui uma idade avanada. No nosso caso usamos um tom
de cinza com RGB de 111, 109, 108, depois escolhemos um pincel de
dureza
mxima ou 100% com
um
tamanho
de 4
pixels com opacidade e fluxo de 100%. Por fim pintamos a sobrancelha e os
cabelos do nosso heri.
segredo,
vamos
escolher
logo
Lembre-se depois de
ferramenta Desfoque:
pintar
efeito
de
luz
necessrio
usar
Agora vamos fazer um pequeno ajuste na boca do nosso heri, para isso crie
uma nova camada com o nome de "dentes", deixe sua configurao
como Normal.
E agora escolha uma cor avermelhada para ser a gengiva do heri, no nosso
caso escolhemos um tom de vermelho com RGB de 102, 5, 5 e pincel do
tipo dureza 100% de tamanho 1 pixel.
Pronto agora pinte um efeito semelhante o apresentado abaixo:
Agora vamos afastar a imagem para que possamos enxerg-la sem ver os
pixels ressaltados.
Agora precisamos pintar as roupas do nosso heri, para isso vamos criar uma
nova camada com o nome de "camisa_pintura" deixaremos sua configurao
como Multiplicao e escolheremos um tom de vermelho para ser a camisa
do heri.
No nosso caso escolhemos um vermelho com RGB de 64, 2, 2, depois
precisamos escolher um pincel, ns escolhemos um pincel do tipomalevel no
tamanho de 17 pixels.
Agora s pintar toda a rea da camisa como mostra a imagem abaixo:
Bem, a camisa est pintada, mas temos um pequeno problema com o corpo e o
brao da mesma cor fica difcil diferenci-las.
Para resolver isso vamos criar uma nova camada com o nome de "brao" e sua
configurao deve ser Diviso.
Agora vamos escolher um tom de vermelho mais claro para pintar esse brao,
no nosso caso escolhemos o vermelho com RGB de 100, 16, 16.
Com
um pincel
malevel de
pixels com opacidade e fluxo de 100% pinte todo o brao e
camisa como mostra a imagem abaixo:
tamanho 5
a gola da
Agora vamos prosseguir pintando a cala do nosso heri, para isso crie uma
nova camada com o nome de "cala" e configurao Multiplicao.
Agora vamos escolher um tom de verde para a cala do heri, no nosso caso
escolhemos um verde com RGB de 69, 83, 2.
E escolheremos um pincel do tipo malevel no tamanho de 12 pixels.
Agora pintaremos a cala at obter o seguinte resultado:
Muito bom, agora vamos adicionar um brilho para essa arma, mais uma vez
podemos usar a mesma camada a camada "mao", escolha a
cor branca de RGB 255, 255, 255 e pinte o brilho da arma conforma a
imagem abaixo:
Legal, agora vamos afastar a imagem para enxerg-la com sua qualidade real.
Acima temos a imagem do efeito de luz que sai do cano da arma quando o
heri atira.
Nota: Como tudo o que ser apresentado nesse tpico j foi explicado, no
detalharemos o processo de criao de pastas eGameObjects. Apenas
mostraremos como foi montada a cena do game SideScroll.
Agora na aba/janela Project crie pastas e cenas conforme mostra a imagem
abaixo:
Comeando
projeto:
pela
pasta Texturas,
adicione
as
seguintes texturas ao
seu
Depois na pasta Material crie um material para cada textura e dois materiais
extra para ser as moedas e a bala.
sem
nenhuma
textura,
apenas
pintamos
do
tipo Transparent/Diffuse,
textura heroi_anda,
Material moedas,
utiliza
a
textura Default
com Transparent/Cutout/Diffuse e cor amarelo ouro.
Material montanha e montanha2,
com Transparent/Diffuse e Tiling 5.
Material nuvem ,
utiliza
com Transparent/Diffuse e Tiling 8.
Diffuse,
utiliza
da
Unity,
textura montanha,
textura nuvem,
devida
Depois na pasta sons adicione o som de tiro que ser usado quando
o heri disparar contra os zumbis.
Vale ressaltar que o som em questo foi extrado da internet, um bom site para
baixar efeitos sonoros gratuitos ohttp://www.freesfx.co.uk.
Depois na pasta Prefabs crie trs prefabs um para bala, um para moeda e um
para zumbis.
Por ltimo na pasta Scripts crie os scripts que sero usados em nosso game.
1
2
3
4
5
6
Plano
Plano
Plano
Plano
Plano
Plano
Para ter uma cena com esse visual a primeira coisa que precisamos fazer
criar o cho, para isso criaremos um cubo que dever ser escalonado e
texturizado conforme mostra a imagem abaixo:
Caso sua cena no esteja como na figura acima selecione o objeto Main
Camera na guia Hierarchy e defina as seguintes configuraes:
Note que a cena est escura, precisamos adicionar uma luz, para isso, clique no
menu GameObject, depois em Create Othere selecione a opo Directional
Light.
Light na
guia Hierarchy e
defina
suas
Depois crie cubos com espessura fina para serem os coqueiros, aplique o
material coqueiro neles e distribua-os pela cena de acordo com as
configuraes abaixo:
Coqueiro1
Coqueiro2
Coqueiro3
Coqueiro4
Coqueiro5
Coqueiro6
Coqueiro7
Coqueiro8
Coqueiro9
Coqueiro10
adicionar
sero
Para criar esses arbustos aplique o material de arbustos aos cubos (Que
precisam ser de espessura bem fina).
Arbusto1
Arbusto2
Arbusto3
Arbusto4
Arbusto5
Arbusto6
Arbusto7
Arbusto8
Arbusto9
Arbusto10
Arbusto11
Arbusto12
Arbusto13
Arbusto14
Rocha2
Rocha3
Rocha4
Rocha5
Rocha6
Rocha7
Rocha8
Pedra2
Pedra3
Pedra4
Montanha2
Por ltimo temos nossas nuvens que sero criadas adicionando o material
de nuvem a uma plane, essa plane deve ficar atrs das montanhas.
Para adicionar uma Plane, clique no menu GameObject, selecione Create
Other e escolha a opo Plane;
Vamos criar o objeto bala, que ser criado a partir de uma cpsula. Ento
clique no menu GameObject, depois na opoCreate Other e escolha a
opo Capsule.
Como o objeto bala vai ter coliso com os zumbis, precisamos adicionar a ele
um componente Rigidbody. Com o objeto balaselecionado, clique no
menu Component, depois em Physics e escolha a opo Rigidbody.
Um script deve ser adicionado a bala, pois este script que ser responsvel
pela
movimentao
da bala quando
o heriatirar.
Ento
arraste
o script Mover_bala da pasta Scripts para o objeto bala da guia Hierarchy.
Quando a bala for disparada, um som de tiro deve ser emitido, ento
precisamos adicionar um som ao objeto bala.
Primeiro, com o objeto bala selecionado, clique no menu Component, depois
em Audio e escolha a opo Audio Source.
Na guia Inspector um
objeto bala.
componente Audio
Source ser
adicionado
ao
Agora vamos adicionar o arquivo de som que ir ser executado cada vez que
o heri atirar. Siga o vdeo abaixo para inserir este arquivo.
Agora que j configuramos o objeto bala, vamos transform-lo em um prefab.
Para isso, selecione a pasta Prefabs na guiaProject, depois arraste o
objeto bala da
guia Hierarchy sobre
o
objeto bala da
pasta Prefabs,
conforme vdeo abaixo:
Agora j podemos apagar o objeto bala da cena, pois no vamos utiliz-lo no
momento, o prefab bala ser disparado atravs do script Mover_bala.
Montando o Cenrio Parte 6
Agora precisamos criar os espetos que vo perseguir o heri, para isso crie
um cubo de largura mdia e adicione o materialde espetos com as seguintes
configuraes.
Depois
dos espetos vamos
adicionar moedas por
toda
a
as moedas podem
ser
feitas
com cubos de espessura
mdia,
aplicaremos o material moeda.
Configuraes na guia Inspector da primeira moeda:
cena,
onde
Moeda na cena:
cena,
Como o zumbi tambm sofrer coliso com outros objetos e tambm ser
manipulado pelos scripts, faa o mesmo que voc fez com as moedas, criando
um prefab para ele e depois espalhe estes prefabs pela cena.
Duplique o zumbi criado 13 vezes e espalhe-os pela cena alterando apenas o
eixo X.
da
mesma
forma
que
Vamos criar uma plane para os efeitos do tiro que devem ficar junto ao heri.
Para isso clique no menu GameObject, depois em Create Other e escolha a
opo Plane.
primeiro
vamos
Feito isso adicionaremos a cmera da nossa cena o cdigo que cria um boto
para o jogador retornar ao game.
O cdigo ser analisado no tpico Cdigo de GameOver do heri.
Selecione
o
gameobject espetos na
guia Inspector suas propriedades.
cena,
para
que
aparea
na
atribua
a tag espetos ao
A varivel numeroframes foi iniciada com o valor 4, pelo motivo de que nossa
imagem animada tem apenas quatro frames de animao.
Na varivel atualframe adicionamos o valor inicial de 1, pois queremos que
mesmo sem nenhuma animao estar sendo executada ele comece sempre
apresentando o primeiro frame da imagem animada, para a partir dela comear
um ciclo de animao.
Por fim a varivel tempo iniciada com o valor 0.0, pois dessa forma
iniciaremos a contagem do tempo de cada ciclo de animao comeando pelo
numero 0.0.
Na funo Update, adicionamos algumas condicionais que sero responsveis
por animar nosso heri.
da
Depois
de
terminada
condicional (if(Input.GetKey("right")){...}),
condicional, porm agora ser com a condio:
essa
teremos mais
uma
enorme
grande
Essa condio else fala para a Unity3D que caso a tecla a deixe de ser
apertada necessrio renderizar o frame 0 da imagem animada, que como
podemos ver abaixo no tem desenho algum.
Isso significa que nada aparecer na tela, que o certo afinal se no estamos
atirando o cano no pode emitir luz.
Cdigo de tiros do heri
Agora que j vimos os cdigos para movimentar o nosso heri, precisamos
desenvolver um cdigo para fazer com que nosso heri atire.
Nosso cdigo inicia com uma varivel chamada tiro e do tipo RigidBody,
essa varivel vai armazenar as balas de nossa arma.
No caso do cdigo acima toda vez que a condio seja satisfeita ser criada
uma varivel temporria chamada temp.
Essa varivel do tipo RigidBody e nela ser armazenado uma instancia de
um RigidBody que em nosso caso a nossa bala.
Como j explicamos anteriormente, o cdigo Instantiate cria uma cpia de
um RigidBody em uma determinada posio e rotao.
S com essas poucas linhas de cdigo j temos um sistema para criao
de balas.
Cdigo de mover balas
Para nosso game no adianta apenas criar as balas, necessrio mov-las em
direo ao vilo.
Para isso o cdigo abaixo do script Mover_bala satisfaz nossa necessidade:
Nosso cdigo inicia com a criao de uma varivel chamada bala_vel, essa
varivel do tipo float e tem a funo de guardar a velocidade de
deslocamento da bala.
Primeiro criaremos uma varivel chamada condicao essa varivel ser iniciada
na funo Start como false.
Pois no nosso cdigo ela ser responsvel por dizer se existe ou no uma
coliso entre os espetos ou zumbis e o heri.
J na funo Update teremos uma condicional
varivel condicao verdadeira ou no.
que
ir
verificar
se
Mais abaixo veremos qual a funo que iniciar responsvel por definir o
estado da varivel condicao.
Na funo de coliso OnTriggerEnter(), criamos uma condicional que ter a
funo de verificar se existe coliso entre os espetos e oszumbis com o
nosso heri.
Caso existe uma dessas duas colises a varivel condio ser definida como
verdadeira (true).
Esse cdigo muito simples nele criamos uma Funo OnGUI() que criar um
boto no meio da tela com a mensagem Jogar Novamente.
Se esse boto for clicado, carregamos a Fase1 que a fase do game
Cdigo de Vitoria do heri
Para o cdigo de vitria do heri vamos desenvolver um cdigo muito parecido
com o de GameOver.
Digite o cdigo do script Ganhou:
Nosso cdigo comea com uma varivel chamada pontos, essa varivel do
tipo inteiro e tem a funo de armazenar o nmero de moedas coletadas.
Veja que esse cdigo bem simples, para que ele funcione comeamos criando
uma varivel com o nome de espeto_vel.
Veja que diminumos o valor pelo fato do zumbi ser mais lento em sua
movimentao que o nosso heri.
Depois no ciclo de tempo tambm fizemos um pequeno ajuste.
Para definir a vida dos nossos viles primeiro precisamos criar uma
varivel.
Para terminar clique na opo Build And Run, para gerar o jogo
para Web e depois execut-lo.
Caso seja solicitado uma pasta onde dever ser gerado o jogo, informe
o local desejado e clique em Selecionar pasta.
Concluso
Bom pessoal chegamos ao fim do nosso curso de Unity3D voltado a
games 2D, nesse curso aprendemos as principais tcnicas de
desenvolvimento de um game 2D, abordando desde a arte at a criao
de cena e programao do jogo.