Você está na página 1de 37

PUC-SP SP Pontifcia Universidade Catlica de So Paulo

Curso Superior de Tecnologia em Jogos Digitais Dapartamento de Computao

Tutorial bsico para a game engine Unity 3D

Por Felipe Augusto de Oliveira Menezes

So Paulo Outubro de 2010

Sumrio
O que Unity ................................................................................................................................ 4 Interface .................................................................................................................................... 5 1. 2. 3. 4. 5. 6. Scene ............................................................................................................................. 5 Game ............................................................................................................................. 5 Project ........................................................................................................................... 5 Hierarchy ....................................................................................................................... 5 Inspector ....................................................................................................................... 5 Animation ...................................................................................................................... 6

Ferramentas da interface utilizveis no painel Scene ........................................................... 6 Criando um novo projeto .............................................................................................................. 8 Criando um Terrain ................................................................................................................... 9 Pintando o terreno .............................................................................................................. 11 Adicionando gua ................................................................................................................ 12 Adicionando luz ................................................................................................................... 13 Adicionando First Person Controller ................................................................................... 13 Adicionando Skybox ............................................................................................................ 14 Criando o labirinto ...................................................................................................................... 14 Criando um muro: Materials e Prefabs ................................................................................... 14 Materials ............................................................................................................................. 15 Prefabs................................................................................................................................. 17 Criando a avalanche .................................................................................................................... 19 Criando uma rocha .................................................................................................................. 19 Interao com o jogador: GUI e Script .................................................................................... 20 GUI ....................................................................................................................................... 20 Script ................................................................................................................................... 21 udio ....................................................................................................................................... 24 Script ................................................................................................................................... 24 Partculas ..................................................................................................................................... 25 Fogueira................................................................................................................................... 27 Importando unitypackages ................................................................................................. 27 Fogo ..................................................................................................................................... 27 udio ....................................................................................................................................... 29 Animao..................................................................................................................................... 29 2|Page

Script ....................................................................................................................................... 31 GUI............................................................................................................................................... 32 Script ....................................................................................................................................... 33 Exportando o jogo ....................................................................................................................... 35 Referncias Bibliogrficas ........................................................................................................... 37

3|Page

O que Unity

http://unity3d.com/unity/ Unity uma ferramenta de criao e edio de games, ou seja, uma game engine. Apesar do foco em jogos tridimensionais, possvel tambm o desenvolvimento de jogos bidimensionais. H verses para Mac e Windows, com a possibilidade de criao para diversas plataformas: Windows, Mac, Wii, iPad, iPhone, browser e, suporte recentemente adicionado para Xbox 360 e PlayStation 3. Hoje h duas licensas as disponveis, a Unity e a Unity Pro. A primeira grtis e a segunda possui diversas caractersticas adicionais. Este curso utilizar a licensa grtis, Unity.

4|Page

Interface
Por default, a Unity abre o projeto Island Demo, que uma demostrao das capacidades da engine nesse estado inicial. Antes de comearmos nosso prprio projeto, veremos algumas caractersticas da interface da Unity nessa demo. A Unity organizada por tabs, ou painis, cada uma com funes especficas e caractersticas diferentes. 1. Scene o painel onde mostra o arquivo de cena selecionado. Pode-se selecionar objetos visveis e edit-los manualmente por este painel. a. View i. Texture/Wireframe: alterna entre a viso de textura (padro) e wireframe, ou ambos. ii. Draw: alterna entre a viso RGB (padro), Alpha, Overdraw e Mipmaps. b. Light: ativa ou desativa a vizualizao de luzes na cena. c. Camera effects: ativa ou desativa a vizualizao dos efeitos de cmera na cena. 2. Game Painel de demostrao e verificao do jogo quando o boto Play est ativado. Aspect: altera a resoluo da vizualizao do game. Maximize on Play: maximiza o painel Game quando o boto Play est ativado. Gizmos: ferramenta de debug que mostra, por exemplo, posio de luzes e wireframe de objetos. Stats: ativa ou desativa a visualizao de estatsticas da cena.

3. Project Este painel contm a lista de arquivos e pastas inclusos no projeto. Lista as cenas, arquivos de imagens, som, animaes, cdigos, etc. a. Create: menu de opes de criao de pasta e arquivos diversos: scripts, materiais, animaes, prefabs. 4. Hierarchy Contm a lista de objetos e grupos de objetos dentro da cena, seja ele visvel ou no. Pode-se somente selecionar objetos (ou grupos de objetos) neste painel. 5. Inspector Mostra as informaes do objeto ou grupo de objeto selecionado, caso haja um. possvel editar a posio, escala e rotao, alm dos componentes adicionais atribudos ao objeto ou grupo.

5|Page

6. Animation Por padro, este painel no aparece na interface da Unity inicialmente. Sua funo mostrar, na timeline, animaes de objetos ou grupos, ou caractersticas destes, inclusos na cena sendo editada. a. Record: ativa ou desativa a gravao de animaes do objeto selecionado selecionado. b. Play: reproduz a animao do objeto selecionado. c. Previous/Next Frame: vai para o anterior/prximo frame na timeline. Todo painel na Unity pode ser removido ou adicionado da interface. . Para isso, acessa acessa-se o menu Window na barra de menus superior. Tambm possvel alterar a posio e tamanho de cada painel. Outra caracterstica user friendly da Unity a possibilidade da customizao da interface. Em Window > Layouts h a opo de salvar o formato da interface atual, alm de quatro layouts pr-definidos.

Ferramentas da interface utilizveis no painel Scene

Hand Tool (Q) 1. Boto esquerdo do mouse: permite a explorao da cena nos eixos X e Y da cmera atual. 2. Boto direito do mouse/scroll: zoom no centro da cmera atual. 3. Alt + boto esquerdo do mouse: rotao em torno do centro da cmera atual. Move Tool (W) Move o objeto(s) selecionado(s) nos eixos X, Y e Z. Rotate Tool (E) Rotaciona o(s) objeto(s) selecionado(s) nos eixos X, Y e Z.

6|Page

Scale Tool (R) Altera a escala do(s) objeto(s) selecionado(s) nos eixos X, Y e Z. Cmeras Para alterar o modo de visualizao a Unity dispe de uma ferramenta bastante prtica, o seguinte boto, encontrado somente no painel Scene:

A visualizao padro a Perspective (Persp, abaixo da ferramenta). Para alter-la la clica clica-se no eixo desejado: Eixo (clicvel) X -X Y -Y Z -Z Centro Visualizao Direita (Right) Esquerda (Left) Cima (Top) Abaixo (Bottom) Frente (Front) Trs (Back) Perspectiva (Persp)

7|Page

Criando um novo projeto


Para criar um novo projeto, acesse na barra de menus superior o menu File > New Project.... A seguinte janela aparecer:

Packages so pacotes de arquivos que sero utilizados no projeto. So os arquivos que aparecem no painel Project, aps criado o projeto. O Standard Assets possui os arquivos padro da Unity. O Toon Shading possui materiais em cel shading, ou cartunizado. Neste caso utilizaremos somente o Standard Assets. Indique o caminho desejado e nomeie o projeto como quiser. A Unity ento, importar os pacotes selecionados e, enfim, abrir o seu novo projeto.

8|Page

Criando um Terrain
Na barra de menus superior, acesse no menu Terrain > Create Terrain para criar um terreno terreno. Note que o terreno foi adicionado no painel Hierarchy, com o nome de Terrain. Voc pode renome-lo lo como desejar no painel Inspector, aps a selecion-lo lo na Hierarchy. Note tambm que o terreno tambm foi criado no painel Project, com o nome New Terrain. Para renome renomelo, selecione-o e aperte F2. O terreno criado possui as propriedades padres. Para alter-las acesse o menu Terrain > Set Resolution. A seguinte janela deve aparecer:

Iremos alterar somente o comprimento do terreno para este projeto. Altere o valor do item Terrain Lenght para isso. Terrain Width altera a largura e Terrain Height altera a altura mxima do terreno, mas no os utilizaremos utilizaremo agora. A ferramenta Terrain > Flatten Heightmap eleva o ponto inicial no eixo Y do terreno para o valor definido. Para este projeto foi utilizado o valor 20. Selecionado o terreno na Hierarchy, aparecer no Inspector, o seguinte componente e ferramentas:

9|Page

Da esquerda para a direira, as ferramentas so as seguintes: Raise / Lower Terrain: eleva e diminui o terreno. Para diminuir, segure a tecla Shift e use o boto esquerdo do mouse. Brush Size: altera o tamanho do pincel selecionado. Use o boto esquerdo do mouse no painel Scene para aplicar. Opacity: fora que ser aplicada no pincel. Paint Height: esta ferramenta eleva o terreno at a altura definida, conforme a fora (opacity). Height: altera a altura (mximo igual Terrain Height em Set Resolution) Smooth Height: alisa o terreno (clculo de mdia entre os pontos da rea do pincel). Paint Texture: pinta o terreno com a textura selecionada. Target Strenght: fora que a textura ser aplicada sobre outra textura. Place Trees: cria rvores no terreno. Segure a tecla Shift para deletar rvores. Tree Density: densidade (proximidade e quantidade) das rvores. Color Variation: variao na cor das rvores. Tree Height: altera a altura da rvore. i. Variation: variao da altura das rvores. Tree Width: altera a largura da rvore. i. Variation: variao da largura das rvores. Paint Details: cria grama, pedras e outros detalhes no terreno. Segure a tecla Shift para delet-los. Target Strenght: quantidade que ser aplicada do detalhe selecionado. Settings for Terrain: configuraes do terreno. Aqui pode-se se alterar valores de distncia para detalhes (Level Of Detail, ou LOD), , como rvores, texturas e grama. Tambm pode-se se alterar caractersticas do vento.

Crie o terreno que desejar, faa algo parecido com o meu resultado, ou use-o. use Independente de sua escolha, faa uma montanha com um buraco no meio, como a montanha superior esquerda na imagem a seguir. Dela, faremos sair fumaa para dar a idia de um vulco.

10 | P a g e

Pintando o terreno Para pintar o terreno, primeiro precisamos do material a ser pintado. A Unity j dispe de alguns e nos utilizaremos deles. Aps selecionado o terreno, selecione a ferramenta Paint Texture no Inspector. No campo Textures no h nada selecionado ecionado e, por causa disso, no h como pintar o terreno. Adicione texturas por clicar no boto Edit Textures... > Add Textures....

Surgir uma nova janela, Add Terrain Texture:

No item Splat, selecione o arquivo Cliff (Layered Rock), como na a imagem. Ao clicar no boto Add o terreno estar todo pintado da textura selecionada, pois a nica textura definida. Repita o processo de adicionar texturas para adicionar as seguintes daquela mesma lista: Grass (Hill), GrassRock e GoodDirty.

Selecione a textura desejada e pinte o terreno como quiser. Lembre-se Lembre se que alterando o valor do item Target Strengh possvel misturar texturas.

11 | P a g e

O mesmo processo realizado para definir rvores e detalhes. Entretanto, s h uma rvore disponvel na licensa grtis, a Palm. E tambm um nico item para detalhes, acesse Edit Details > Add Grass Texture > Detail Texture > Grass. H um outro artifcio para criao de rvores na Unity. Em Terrain > Mass Places Trees, essa ferramenta menta automaticamente distribui pelo terreno o nmero definido de rvores. A seguir, a minha verso do terreno anterior com rvores e grama (no possvel visualizar o ltimo).

Adicionando gua No painel Project, procure por water, aparecero vrios resultados. Selecione o prefab Daylight Simple Water, e o arraste para a Scene. Ou, se preferir, o item Nighttime Simple Water.

Com a ferramenta Scale Tool, aumente o tamanhodo objeto e, com a ferramenta Move Tool, posicione conforme achar necessrio.

12 | P a g e

Adicionando luz Na barra de menus superior, , clique no menu GameObject. Tudo que for um objeto dentro do jogo, seja ele visvel ou no para o jogador, est neste menu. Acesse GameObject > Create Other > Directional Light. Directional Light uma luz direcional e infinita, portanto, pode pode-se deix-la no ponto em que foi criada, e apenas rotacionarmos ela.

Adicionando First Person Controller No painel Project, procure por First Person Controller, ao digitar first j haver um nico resultado da pesquisa.

o e o arraste para o painel Hierarchy. Assim que feito, a Unity dar um aviso no Selecione-o Console, na barra inferior da interface do software. Para abr-lo lo basta clicar na barra.

Esse aviso dado pois, no painel Hierarchy, h agora dois objetos Main Camera h e deve deve-se ter somente um por cena. Um deles est dentro da Hierarchy e o outro dentro do First Person Controller. Delete a Main Camera fora do First Person Controller, , pois no nos utilizaremos dela. Na Hierarchy selecione o First Person Controller, coloque o mouse sobre o painel Scene Scen e pressione a tecla F para focar a cmera no objeto. V-se se que o objeto est cortado pelo terreno e, se dermos play agora, o objeto cair. Para que isso no ocorra, v no painel Inspector e altere a posio sua posio conforme necessrio, ou ento mova o objeto com a ferramenta Move at ele estar acima o suficiente do terreno. Ento, d play. Se achar que o mapa est demasiado grande para a velocidade da personagem, selecione o First Person Controller na Hierarchy e, no Inspector, no componente FPSWalker (Script) altere o item Speed. Pode-se se alterar tambm o Jump Speed e Gravity.

13 | P a g e

Adicionando Skybox Com o objeto Main Camera selecionado, dentro do First Person Controller, note o componente Camera no Inspector. O primeiro item listado, Clear Flags, corresponde ao cu que ser mostrado, conforme definido no componente Skybox.

Entratanto esse objeto no possui um componente Skybox. Adicione um acessando Component > Rendering > Skybox, enquanto a Main Camera est selecionada na Hierarchy.

Como padro, dro, o componente Skybox no possui material definido. Escolha no item Custom Skybox o cu desejado; os que j vem incluso nessa licensa da Unity so: Blue Sky e Sunset.

Criando o labirinto
Criando um muro: Materials e Prefabs
Para criarmos o muro utilizaremos o objeto cubo da prpria Unity. Crie-o Crie o ao acessar GameObject > Create Other > Cube, um cubo deve aparecer na tela, seno aperte a tecla F para focar nele.

14 | P a g e

No Inspector ou com a ferramenta Scale Tool, altere a escala do objeto conforme achar necessrio. cessrio. Entretanto nosso muro possui muito pouco interesse, por isso, adicionaremos textura a ele. Materials No Project, em Create > Folder, crie uma pasta chamada Materials e, , para melhor organizao do projeto, , a pasta Muro dentro desta. desta Importaremos uma ma textura, mas para isso precisamos antes do arquivo de textura. Voc pode utilizar o mesmo que utilizei ou procurar imagens em diversos sites, muitos gratuitos. CGTextures (www.cgtextures.com www.cgtextures.com) o que utilizei, e h diversas outras texturas que podem te interessar mais que minha opo. Lembre-se se de utilizar somente arquivos de texturas de resoluo quadrada (256x256, 512x512, etc.). Escolhida a textura, clique com o boto direito do mouse em cima da pasta Muro que criamos. Acesse Import New Asset e escolha o diretrio do arquivo desejado, ou simplesmente arraste o arquivo da pasta original para a pasta Muro na Unity.

Carregado o arquivo (Bricks na imagem acima), acima) a textura estar dentro da pasta a e pode ser visualizada no Inspector ao ser selecionad selecionada. Na pasta Muro, acesse Create no painel Project ou com o boto direito sobre a pasta. Create > Material criar um novo arquivo chamado New Material, o nomeie de muro.

No Inspector pode-se se ver que o novo material no h textura, como padro. Arraste o textura importada anteriormente (bricks) para a Main Color ou clique em Select e selecione a textura desejada. No Preview poder ser visualizado a textura aplicada na esfera. esf Voc pode alterar a forma do objeto por clicar no boto esquerdo na aba Preview.

15 | P a g e

Arraste o material muro para o objeto Cube na Hierarchy ou mesmo na Scene. O material cobrir todo o objeto. Entretanto, esse material no parece possuir muito volume, e para consertar isso, adicionaremos um bumpmap. Importe novamente a mesma textura utilizada uti na Main Color do material muro. Renomeieo, , fazendo meno que aquele arquivo um bumpmap, por exemplo Bricks_bump. Selecionado esse mesmo arquivo, no Inspector ative a opo Generate Bumpmap e clique no boto Apply. A Unity converter o arquivo arquiv atual para bumpmap. O resultado ser uma imagem com tons azulados, como a imagem abaixo. Note que no painel Project o cone do arquivo tambm foi alterado.

16 | P a g e

De volta para o material muro, na opo Shader, no Inspector, selecione Bump Diffuse. O item Bumpmap (RGB) aparecer. Selecione o arquivo de textura convertida para bumpmap para este item.

Prefabs Utilizaremos mais de um muro no nosso projeto, e para no repetir esse processo de texturizao, por exemplo, a Unity possui um artifcio facilitador, os prefabs. Um prefab um arquivo com propriedades e componentes padronizados por aquele que o criou, podendo existir mais de um simultaneamente na mesma mesma cena, e ainda, configurveis individualmente. Vamos para a prtica. Por adicionar o material ao muro, ele deve ter resultado em algo parecido com isso:

Faremos um prefab desse muro. Primeiro, caso o nome do objeto ainda seja Cube, renomeie-o de Muro no Inspector. Aps verificado isso, no Project crie uma pasta chamada 17 | P a g e

Prefabs. Dentro desta pasta, crie um prefab ao acessar Create > Prefab, e o arquivo new prefab ser criado. Note que ao selecion-lo, selecion lo, nada aparece no Inspector, pois um objeto vazio vazio. Arraste o objeto Muro na Hierarchy para cima do new prefab. Note que agora esse prefab possui todos os componentes do muro que foi adicionado e pode ser visualizado no aba Preview no Inspector. Renomeie esse prefab de muro tambm. Est pronto o prefab. b. Qualquer momento que for desejvel um novo muro na cena, simplesmente arraste esse prefab para o painel Scene ou Hierarchy. O novo muro ser criado com as mesmas caractersticas que o original adicionado ao prefab, inclusive posio. Pode-se deletar o antigo ntigo muro, o objeto Muro, Muro, o prefab continuar com as informaes armazenadas e poder ser criada cpias. Como criaremos vrios muros para elaborao de um pequeno labirinto, labirinto, crie um objeto nulo na Hierarchy e agrupe todos os muros l, para melhor organizao organizao do projeto. Acesse GameObject > Create Empty para criar o objeto GameObject e o renomeie como labirinto. Crie esse objeto nulo na posio 0, 0, 0 para no haver problemas com posio global e local.

Todo muro que for adicionado cena atual, arraste-o o para dentro deste objeto. Eis meu labirinto final:

18 | P a g e

Criando a avalanche
As pedras cairo das montanhas e, em determinado ponto essas pedras devem parar. Por isso agora h algumas curvas e posies estratgicas nas montanhas e o caminho inicial uma subida terminada numa depresso repentina.

Criando uma rocha


Para criar uma pedra, criaremos uma esfera acessando o menu GameObject > Create Other > Sphere. Aumente o tamanho dessa esfera para um valor desejado no componente componente Transform no Inspector; 10, 10, 10 pode ser uma boa opo. Precisamos criar um material para essa pedra. No painel Project, dentro da pasta Materials, crie outra pasta com o nome Pedra. Procure por uma textura de rocha, ou use a mesma que utilizei nesse projeto e importe-a a para essa pasta, para podermos criar o material. Nomeie a textura Pedra e importe-a a novamente para gerar o bumpmap, nomeado de Pedra_bump, por exemplo. Ao gerar o bumpmap, reduza o Bumpiness, seno a rocha parecer afiada demais e queremos algo mais desgastado. Crie um novo material na mesma pasta e aplique as duas texturas como feito anteriormente. Ento aplique o material sobre a esfera (Sphere). O resultado deve ser algo assim:

19 | P a g e

Antes de criarmos o prefab, precisamos adicionar fsica a esta rocha, pois se testarmos o jogo agora, ela estar flutuando, do, parada no espao. Selecione-a Selecione a e acesse no menu superior Component > Physics > Rigidbody, e o componente de mesmo nome poder ser visualizado no Inspector. Ao testar o jogo agora, ver que a rocha afetada por gravidade e se move conforme o solo. Assim feito, na a pasta Prefabs criada anteriormente, crie um novo prefab chamado pedra e adicione a esfera a ele, pois teremos mais de uma rocha. Crie um objeto nulo para agrupar as pedras e posicione-as posicione como desejado. Lembre Lembre-se que cada objeto pode ser individualmente dualmente alterado para caso queira rochas de dimenses diferentes.

Interao com o jogador: GUI e Script


Nossas rochas caem das montanhas, colidem umas com as outras e com a personagem personagem, mas no h desafio para o jogador a no ser que criemos algum limitador, limitador, como uma barra de vida ou quantidade de vidas. E isso que faremos. GUI Primeiramente, GUI (Graphical User Interface) uma forma visual de resposta ao jogador, por exemplo uma barra de vida. Utilizaremos as imagens que vem junto a este projeto ou, se preferir, pode desenvolver suas prprias, lembre-se se somente de nome-las nome las corretamente para que no haja problemas quando formos programar. No painel Project, crie a pasta GUI e dentro dela a pasta Health. Importe para esta pasta os arquivos h00, h10, , h20, h30, h40 e h50. Selecione qualquer um destes e acesse GameObject > Create Other > GUI Texture para criar o objeto na cena. Por ser um objeto da interface do jogador, no possvel visualiz-lo visualiz lo na cmera do painel Scene, ento v para o painel Game. No centro da tela ter a barra de vida que importou. No

20 | P a g e

Inspector, altere a posio da barra como desejar. Os valores no componente Transform para GUI so diferentes, variando de 0 a 1, 1 e o eixo Z nulo j que tratamos de um plano. Ao dar Play ver que a barra estar l, esttica. No painel Hierarchy, renomeie o objeto para vida. . Feito isso, partiremos para o cdigo. Script A Unity compatvel com as linguagens Java, C# e Boo, Boo utilizaremos a primeira. . Crie a pasta Script no painel Project e crie um novo n script acessando Create > JavaScript. Nomeie-o Jogador. Para editar o script, clique duas vezes no arquivo ou no boto Edit... no Inspector. Inicialmente definiremos as variveis que faro referncia s imagens adicionadas anteriormente. E ento a varivel rivel que definir a vida inicial do jogador:

Ento, criaremos a funo Update, que a cada novo frame verificar o objeto vida vida e alterar a textura conforme retornado.

21 | P a g e

Finalizado o script, arraste-o o para o First Person Controller na Hierarchy, ou para o Inspector do mesmo objeto. Arraste as imagens corretas para cada varivel definida no script.

22 | P a g e

Se dermos Play no jogo agora, nada acontecer com a barra de vida pois, mesmo que o personagem colida com a rocha, no h um script que subtraia a vida. vida. Ento o faremos. Crie um novo java script chamado Colisao Colisao. Utilizaremos uma funo j existente na Unity, Unity OnCollisionEnter, que verifica colises entre objetos.

Nisso verificamos ficamos se o objeto colidido possui a tag pedra, e se isso for verdade, reduzir a vida do jogador em 10. Salvo o script, script, selecione o prefab pedra criado anteriormente. No Inspector, logo abaixo do nome do objeto, h a opo Tag, com diversas opes j inclusas nesta licensa da Unity.

Criaremos nossa prpria tag. Clique em Add Tag... e nomeie o Element 0 pedra.

23 | P a g e

Assim, com o prefab pedra selecionado, selecione a tag pedra no Inspector. Essa alterao ser realizada em todos os objetos na cena originado desse prefab. Por fim, arraste o script Colisao para o First Person Controller e adicione a tag Player e ele.

udio
Colocaremos um som que ser ativado toda vez que alguma pedra tocar o cho. Primeiramente, criaremos a pasta Audio no painel Project e importaremos o arquivo boom para ela. Aps importado o arquivo, arraste-o arraste para o prefab pedra, e apenas destive a opo Play on Awake.

Precisaremos de um script para verificar a coliso da pedra com o cho todo hora. Crie, na pasta script, o novo java script Pedra. Script Esse script funcionar como o anterior, exceto que ao invs de verificar a coliso com o objeto com a tag pedra, verificar com a tag chao que criaremos. criaremo Tambm, esse cdigo no diminui a vida do jogador, ele inicia o som contido no objeto quando a verificao se faz correta. Isso pode ser vista na linha audio.Play();.

24 | P a g e

Crie ento a tag chao e selecione-a selecione no Inspector do objeto Terrain.

Partculas
Para criar a fumaa do vulco usaremos o sistema de partculas da Unity. Acesse GameObject > Create Other > Particle System para criar o objeto Particle System na cena. Nomeie-o Fumaa, por exemplo, e o posicione osicione pouco dentro do vulco. Possivelmente tanto tan o objeto quanto as partculas estaro pequenas demais para o tamanho do vulco. vulco No componente Particle Animator, dentro do item Force, aumente o valor de Y para o valor desejado. Isso far com que as partculas recebam uma fora no eixo designado. No componente Ellipsoid Particle Emitter aumente o valor dos itens Min Size e Max Size para alterar o tamanho de cada partcula, e, mais abaixo, no item Ellipsoid, aumente o valor de X, Y e Z para alterar o tamanho da elipse formada pela animao. Aumente os valores alores dos itens Min Energy e Max Energy para alterar a distncia que as partculas podem alcanar. Aumente tambm os valores dos itens Min Emission e Max Emission para incrementar a emisso de partculas.

25 | P a g e

De volta para o componente Particle Animator, escolha as cores desejas. Vulces geralmente emanam uma fumaa branca ou acizentada. Altere a opacidade para que haja melhor aparncia na mudana de cores.

Por ltimo, no componente Particle Renderer, altere a opo Billboard no item Stretch Particles para a opo Stretched, para esticar as partculas ao invs de deix-las las no formato esfrico.

26 | P a g e

Fogueira
Para fazer a fogueira, importaremos um pacote da Unity, utilizaremos novamente partculas para produzir o fogo e o animaremos, programaremos um script para acender a fogueira, e colocaremos udio, assim como nas rochas. Importando unitypackages No painel Project, clique com o boto direito e escolha a opo Import Package. Selecione o diretrio no qual est o pacote fogueira, que veio junto a este tutorial. tut A Unity importar todos os arquivos contido nesse pacote. Aps carregado o pacote, voc poder ver as texturas, malhas e materias dos arquivos carregados, alm do udio e de um prefab. Adicione o prefab na cena, e altere-o o como achar necessrio. Assim feito, , est importado o unitypackage. Fogo Criaremos agora o fogo. Crie um sistema de partculas e edite como anteriormente, mudando entretanto as cores para vermelho, laranja, laranja amarelo e novamente vermelho para o fogo, e, e por ltimo, cinza para a fumaa.

27 | P a g e

Selecione tambm a opo Stretched em Stretch Particles no componente Particle Renderer. Note que desabilitei a opo Emit no componente e Ellipsoid Particle Emitter, pois ser necessrio para animao. Essa opo habilita ou desabilita a emisso de partculas e a deixaremos desabilitada por enquanto. enquanto Nomeie esse sistema de partculas fogo. Com ele selecionado acesse no menu superior Component > Physics > Box Collider para adicionar coliso, na forma de um cubo. Altere a escala dele para que fique menor que a fogueira, como na imagem:

28 | P a g e

udio
Para adicionar o udio a fogueira, basta arrastar o arquivo fire_atmosphere no painel Project para o Inspector do objeto, ou na Hierarchy.

Ative a opo Loop pois queremos que o som repita e mude mud o valor do Volume para 0, pois no haver som se o jogador no acender a fogueira.

Animao
No painel Project, crie a pasta Animations. Com o sistema de partcula fogo selecionado, abra o painel Animation. Nessa nova pasta, crie c uma nova animao em Create New Clip, na

29 | P a g e

barra logo acima da hierarquia desse painel, ou simplesmente crie pelo painel Project, como as vezes anteriores. Nomeie esta animao Fogo.

Na hierarquia do painel Animation encontre o componente Ellipsoid Particle Emitter e, dentro dentr deste, o item Emit. Clique no boto Record e ver o valor relativo a este item, , que deve ser inicialmente 0. Clique no boto em frente a esse nmero e escolha a opo Add Key, isto marcar o valor definido na timeline, , ou seja, adicionar um keyframe.

Na timeline, v para o frame 30 e mude o valor para 1, o que automaticamente adicionar um keyframe naquele ponto. O fogo est animado, mas precisamos fazer o mesmo processo com o udio. udio. Procure na hierarquia do painel Animation por Audio Source. No frame 0, deixe o Volume 0, no frame 30 aumente para 2.

30 | P a g e

Por fim, precisamos definir o tipo de animao. Na barra abaixo da hierarquia desse painel h opes de tipo de animaes: Once: a animao ser iniciada e finalizada uma s vez, toda vez que ativada. Parece apropriada mas encontraramos problemas para nosso futuro cdigo. Loop: a animao repetidade infinitamente. Clamp Forever: aps finalizada, a animao no ser repetida e nem poder ser ativada novamente. Ping Pong: a animao vai e volta, realmente realme como uma bola de ping-pong, pong, ou como assistir um filme e depois assist assist-lo lo de trs para frente e assim infinitamente.

A opo que selecionaremos ser Clamp Forever, pois o script que criaremos far com que quando o personagem colidir com a fogueira, a animao animao comece, isso faria voltar o volume a 0 toda vez que ele colidisse. Finalizada esta parte, partamos para o cdigo.

Script
Como dito, o script reconhecer o momento em que o personagem colidir com o cubo de coliso que adicionamos ao sistema de partculas partculas fogo, e que a animao iniciaria da. O cdigo parecido com o anteriormente feito Colisao, com diferenas bsicas. Crie um novo java script chamado Acender.

31 | P a g e

A funo verifica o momento da coliso e se a tag do objeto fogo. Caso for, el ela inicia a animao Fogo do objeto colidido. Crie a tag fogo e a associe o sistema de partcula de mesmo nome, e o cdigo estar pronto.

GUI
Para finalizar, faremos um menu incial, de entrada para o jogo. Crie a pasta Scenes no painel Project e crie uma nova cena no projeto em File > New Scene. Crie um cube e posicione-o o frente a cmera (Main Camera), ao modo que cobra toda a tela. No painel Project, na pasta Standard Assets > Fonts h uma fonte default que vem com essa verso da Unity, Courier. Com essa fonte selecionada a acesse GameObject > Create Other > 3D Text para criar um novo objeto de texto com determinada fonte. Posicione-o o como desejar e altere seu texto para Play Game e, tambm, o nomeie Play. A fonte pode parecer um pouco desfocada, para para corrigir isso, aumente o valor do item Font Size no Inspector da fonte em questo.

Adicione um Box Collider nesse objeto ao acessar Component > Physiscs > Box Collider. Aps realizada as alteraes desejadas, duplique esse objeto Play, Play coloque-o o um pouco mais abaixo e mude o texto e seu nome para Quit, para criarmos o boto de sada do jogo. Para isso, precisaremos de um script.

32 | P a g e

Script
Crie um novo java script chamado Menu na pasta Script no painel Project. Faremos com que quando o mouse passe por cima desses objetos, sua cor seja alterada, para feedback para o jogador. Mas primeiro, definiremos uma varivel que definir ou no se o boto o boto de sada.

Na imagem acima, a funo OnMouseEnter faz com que quando o mouse esteja em cima do boto, a cor da fonte seja alterada para preto. A funo abaixo, OnMouseExit, faz com que a cor retorne para branco quando o mouse no esteja em acima do boto. A funo na imagem abaixo encaminha o jogador para o jogo ou para fora do programa, dependendo do boto clicado (respectivamente, Play e Quit).

33 | P a g e

A linha Application.LoadLevel(1) carrega o nvel 1 do jogo, que pode ser definido na Build Settings, acessvel no menu File > Build Settings. A seguinte janela deve aparecer:

As cenas devem estar listadas a, caso uma ou mais no esteja, pode-se pode se adicionar a cena aberta atualmente na Unity clicando no boto Add Current. O nmero em frente ao diretrio e nome da cena o nmero de referncia ela, como no cdigo que acabamos de escrever. Caso a cena que chamei de quest no esteja numerada 1, altere a order arrastando as cenas ou simplesmente altere o nmero no cdigo.

Por fim, lembre-se se de ativar a opo Botao Quit que definimos no Inspector do objeto Quit. Podemos adicionar nar luzes e outros detalhes, como preferir.

34 | P a g e

Por hora o boto Quit no funcionar pois o jogo est sendo rodado dentro da Unity.

Detalhes
H alguns simples detalhes que podemos adicionar para finalizar o nosso jogo. Por exemplo, para dar mais imerso, adicionar som das ondas, alguns insetos na pequena floresta de coqueiros ali. Os arquivos crickets, gulls_and_waves e rockslide, so respectivamente espectivamente sons de insetos, ondas e pssaros do litoral, e um leve tremor de terra, caso queira adicionar logo no incio do jogo, na avalanche. Deixe a opo Loop ativada para os arquivos de som crickets e gulls_and_waves. Aps importados, preferencialmente para a pasta Audio, basta arrastar esses arquivos para o painel Hierarchy que estaro inclusos no jogo. Posicione-os Posicion os de forma coerente, pois no 3D a distncia do som faz diferena para a experincia. Podemos tambm colocar cubos nas extremidades do mapa para que o jogador no caia. Entretanto esses cubos no podem ser vistos, ento simplesmente desabilite ou remova o componente Mesh Renderer do cubo. Para facilitar ainda mais, faa um prefab chamado Parede Invisivel.

Exportando o jogo
Com o jogo finalizado, agora veremos algumas propriedades de exportao e como exportar o jogo. No menu Edit > Project Settings > Quality pode-se se alterar a qualidade entre as opes pr-definidas definidas pela Unity. Entretanto cada uma dessas opes pode ser editada logo abaixo, no Inspector.

35 | P a g e

Em Edit > Project Settings > Player pode-se alterar algumas s outras configuraes como o nome da empresa presa e do jogo, tornar o modo tela-cheia tela padro, cone do jogo, entre outros outros. Em Build Settings h algumas opes de plataforma para exportao do jogo. Selecione a opo desejada, por exemplo Windows Standalone caso use alguma verso do Windows, e clique no boto Build. Escolha o diretrio que deseja salvar o jogo e seu nome; para jog-lo jog lo basta clicar no arquivo executvel.

36 | P a g e

Referncias Bibliogrficas
GOLDSTONE, Will. Unity Game Development Essentials. Birmingham, Packt Publishing Ltd., 2009. TornadoTwins: http://www.youtube.com/user/tornadotwins http://tornadotwins.com/

37 | P a g e

Você também pode gostar