A comunidade brasileira de desenvolvimento e programação de jogos.
Bem-vindo: Qua Dez 02, 2020 10:14 am

Todos os horários são GMT - 3 horas




Criar novo tópico Este tópico está trancado. Você não pode responder ou editar mensagens.  [ 1 mensagem ] 
Autor Mensagem
 Título: Tutorial Unity WIP [Ultimo update: 22 Setembro 2009]
MensagemEnviado: Sex Ago 07, 2009 3:57 pm 
Offline
Membro avançado
Avatar do usuário

Registrado em: Seg Jan 02, 2006 10:46 am
Mensagens: 283
ÚLTIMO UPDATE: 22 de setembro de 2009 (anúncios de updates serão feitos no tópico abaixo).
PRÓXIMO UPDATE: adiado (aberto).
LINK para Download em PDF: http://www.moonsector.com/AprendendoUnity.pdf (versão 0.1.3)
A versão em PDF possui marcações importantes e melhor formatação.

ATENÇÃO: para discussões (e updates) sobre este tutorial, entre aqui:
http://www.gamedev.com.br/forum/viewtopic.php?t=2074

Haverá uma versão em PDF a cada capítulo fechado!
Este tutorial no momento não cobrirá a parte para iPhone.


Aprendendo Unity v2.5.1 para Windows
by XandeCK – Tutorial v0.1.5


Introdução


Através deste tutorial eu irei aprender a engine Unity e assim ensinando a quem quiser aprender também. Sou programador em VB, PHP, HTML, SQL e um pouco de C++ e Java. Estou pesquisando o processo de desenvolvimento de jogos eletrônicos faz uns 3 anos, sempre parando e voltando, desta vez quero entrar de vez na área, porque agente vai ficando velho e ai ferrou tudo. Já brinquei bastante com a engine 3D GameStudio, hoje a abandonei devido ao tempo e por acreditar que a engine Unity é superiora (embora eu tenha 2 projetos aguardando aprovação, hehe).

Este tutorial está dividido em alguns capítulos, lembre-se que ele é somente para o ensino básico da engine, porém tentarei abordar todas as áreas dela até chegar na criação de um jogo básico completo. Para a criação e complemento deste tutorial irei seguir alguns manuais em inglês tirados do próprio site e dos fóruns do Unity, uma vez que não há material em português disponível (pelo menos eu não achei) e assim adaptando ao nosso tutorial.

Além disso irei focar as explicações na base de um único projeto, agregando todos os scripts aprendidos à ele e assim dando vida ao jogo final. Não irei entrar em detalhes como modelos objetos, personagens, etc, em 3D, tentarei entrar nas teorias, mas não passará muito disso.

Um último detalhe: este tutorial estará sempre em construção, modificações nos textos iniciais poderão ocorrer juntamente com a adição de novo conteúdo. Você precisa ter noções sobre programação e conceitos de modelagem 3D, embora eu tentarei abordar o suficiente para o entendimento destas áreas. Alguns dos assuntos que serão abordados neste tutorial eu ainda não tenho conhecimento, portanto irei aprender assim como as pessoas que irão ler este tutorial. Irei tentar colocar alguma coisa toda semana no site da GameDev (www.gamedev.com.br). Mais assuntos sobre a indústria de jogos e suas áreas podem ser encontrados no site.

Isso não é uma tradução dos manuais do Unity ou qualquer tutorial criado, mas sim um tutorial baseado em tais dados. Foi a maneira mais rápida e eficiente que eu achei de aprender e tentar passar os conceitos a outros usuários.

Requisitos e recursos:

- Unity versão 2.5 ou superior (estarei usando Unity 2.5.1 Indie Version).
- A engine poderá ser trabalhada em cima do Windows ou MAC.
- Um modelador 3D (ex: Blender – ainda não sei se será necessário).
- Paciência para aprender.
- Paciência para compreender.
- Não ser um psicopata doido ou maníaco.
- Gostar de inventar coisas.

Links muito úteis:
Versão Trial 30 dias: http://unity3d.com/unity/download
Documentação e projetos-exemplo: http://unity3d.com/support/
Fórum do Unity: http://forum.unity3d.com/
Wiki Unity: http://www.unifycommunity.com/wiki/inde ... =Main_Page
Vídeos tutoriais: http://www.unitytutorials.com/video
Vários tutoriais com vídeo: http://www.learnmesilly.com/
Mais um site com tutoriais: http://learnunity3d.com/
Pacote de vegetação para Unity: http://unity3d.com/support/resources/as ... ain-assets

Qualquer ajuda é bem vinda, mande suas sugestões ou arquivos de ajuda para: alecoskik a-rro-ba gmail.com e tentarei ajudar/responder assim que possível.

Agradecimentos pela ajuda neste tutorial:
- Irei colocar conforme boas almas aparecerem para me ajudar
- Tydres, fique a vontade para ajudar...



Índice...............................................................................................................................
Este índice está sujeito a alterações e será informado sempre no começo deste tutorial.

Capítulo 1 – Conhecendo Unity

1.1 – Interface e estrutura
1.2 – Arquivos suportados pelo Unity
1.3 – Limitações das versões
1.4 – Linguagem de programação

Capítulo 2 – Iniciando um Projeto

2.1 – O primeiro cenário

2.1.1 – Scenes e Layouts
2.1.2 – Criando um terreno
2.1.3 – Adicionando vegetação
2.1.4 – Adicionando árvores
2.1.5 – Mais detalhes ao terreno
2.1.6 – Controlando os detalhes
2.1.7 – Iluminação do terreno
2.1.8 – Lightmap
2.1.9 – Efeito de sol

2.2 – Adicionado um personagem

2.2.1 – Câmeras
2.2.2 – Variáveis e programação
2.2.3 – Primeiros movimentos
2.2.4 – Aplicando gravidade
2.2.5 – Introdução à física do jogo
2.2.6 – Entendo a lógica


Novo conteúdo acima será incluído em breve.


==============================================================


Capítulo 1 - Conhecendo Unity

1.1 – Interface e estrutura


Imagem
(figura 1 – tela principal do Unity)

Ao abrir o programa Unity será apresentada a você uma tela parecida com a de cima. Esta será sua visão durante todo o processo de desenvolvimento no Unity. Ela contém várias janelas: Scene (Cena, onde você vai construir o game e como ele ficará ), Toolbar (barra de ferramentas), Hierarchy (hierarquia, onde ficam os objetos do jogo da Cena atual), Inspector (onde ficam os dados do objeto selecionado em Hierarchy), Game (janela do jogo, é onde, geralmente, a câmera principal está olhando, é como seu jogo ficará) e Project (projeto, aqui ficam os recursos de teu projeto atual). Note que a figura está na versão Windows do Unity, a versão MAC fica com as bordas um pouco diferente, mas a funcionalidade é praticamente a mesma.

Na aba Project você encontra todos os recursos de teu jogo, também chamados de Assets (ativos – será melhor explicado em outro tópico). Aqui são estocados as cenas, scripts, modelos, som, etc. Caso queira você pode clicar com o botão direito do mouse em um de seus ativos e abrir o local onde ele está realmente em seu PC. Importante: nunca mova os arquivos que estão ativos (Assets) dentro de seu projeto pela janela do Windows (Windows Explorer), pois isso quebrará o vínculo com o projeto. Sempre faça isso por esta tela, evitando dores de cabeça mais tarde. Você pode também pegar arquivos direto de seu Windows Explorer, arrastar e soltar dentro desta tela. Mas devido à versão do Windows ser nova para o Unity, recomendo não utilizar este método ainda (algumas poucas vezes geram erros este processo) e, portanto, usar somente o modo de importar objetos diretamente do Unity. Para isso basta clicar com o botão direito dentro da aba Projects e depois escolher “Import New Asset...”. Este comando será usado mais vezes durante este tutorial, então não se preocupe tanto ainda.

As cenas (Scenes) é o local onde você criará o mundo e dará vida a ele. Esta tela possui a dimensão em 3D e você poderá ver as coordenadas e parâmetros de posição, podendo editar e alterar sempre que necessário. Cenas podem ser encaradas como as fases de seu jogo, ou locais para a criação de informações na tela, etc, basta usar a imaginação. Para criar uma cena aperte Ctrl+N ou vá em File – New Scene.
Já na barra de ferramentas (Toolbar) você encontra os modos de edição, como movimentar, girar e alterar o tamanho de objetos e modelos diversos.

Imagem
(figura 2 – Barra de ferramentas)

Também há outras opções que serão exploradas mais para frente, mas podemos citar o botão principal: o Play, onde você roda o seu jogo para testes.
A aba de hierarquia (Hierarchy) e Inspector mostra bem o que já foi comentado acima.

1.2 – Arquivos suportados pelo Unity

O modo como a engine Unity trabalha com os arquivos se diferencia muito de outras engines, pois ela consegue na maioria das vezes realizar com sucesso as importações destes arquivos.
A parte de modelos 3D, por exemplo, são descritas como Meshes, arquivos com três dimensões e que compõem personagens, objetos, estruturas, etc, que são objetos que se consistem em triângulos com texturas aplicadas, simplesmente falando. Para um objeto 3D aparecer na tela ele precisa ter um Mesh Renderer, um dos muitos componentes que o Unity possui (a parte de componentes será explicada em outro tópico). Sua aparência é controlada pelos rederers de Materials. Estes aspectos e propriedades serão mais detalhados durante o processo de criação do primeiro jogo.

Não é possível criar Meshes dentro da engine, você precisará de um outro programa para modelar personagens e mundos com detalhes, porém a engine consegue criar Meshs simples, como quadrados, esferas e triângulos e posteriormente aplicar materials e texturas nelas. Os seguintes programas são geralmente usados e assim suportados pela engine Unity (assim como suas extensões): Maya, Cinema 4D, 3DS Max, Cheetah 3D, Modo, Lightwave e Blender. Além destas, também são suportados as extensões FBX, DAE, 3DS, DXF e OBJ. Particularmente, a que raramente deu problemas para mim até agora foi o formato FBX, mas é comprovado que todos estes falados acima funcionem.
Para as texturas a engine também suporta diversos tipos de formatos, dentre eles: PSD, TIFF, JPG, TGA, PNG, GIF, BMP, IFF e PICT. Logicamente, os desenvolvedores devem sempre tentar padronizar seus projetos com os formatos que mais economizam memória, possuindo assim o menor tamanho das texturas, tentando ao máximo diminuir a perda de qualidade. Para facilitar ainda mais, Unity consegue importar arquivos multi-layer PSD e TIFF, geralmente usados por Photoshop, por exemplo.

Em Unity algumas ‘regras de texturas’ são válidas assim como para outras engines quando se trata de tamanho. Elas devem sempre ser pares, e ‘dobrando’ (vou achar uma maneira melhor de explicar isso, hehe, fugiu a palavra), por exemplo: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, etc. Sendo assim, a textura não deve ter a largura diferente da altura para Meshes, podendo criar problemas durante execução de seu jogo, mas para a criação de GUI (Graphical User Interface – interface gráfica do usuário) estas diferenças podem acontecer, porém deve respeitar o tamanho par, exemplo: 246x64 é válido, 233x64 não é. Os problemas citados podem ser desde o carregamento desnecessário de memória (pois a engine leva mais tempo para computar) até a aparições estranhas das texturas. Para corrigir texturas que você consiga fora destes padrões, a própria engine consegue converter seus tamanhos, através do comando Scale NonPower of 2 SizesUp na hora de importar o arquivo.

Já a parte de som muitos consideram o lado mais fraco da engine. Suportando os formatos AIFF, WAV, MP3 e OGG, o Unity consegue suportar áudio comprimido e não comprimido (vou procurar melhores palavras para estes termos), mono ou stereo. Há um componente de áudio para fazer o recurso funcionar (mais sobre componentes em futuros tópicos). É altamente recomendável usar o formato OGG Vorbis em jogos web player (aqueles que rodam diretamente de um navegador) que são formatos não comprimidos, tocam rapidamente e não aumentam a taxa de uso da CPU. Há mais detalhes sobre isso no manual de referências do Unity.
Tentarei abordar este assunto mais detalhadamente com o tempo.

1.3 Limitações das versões

Abaixo segue uma lista (tirada do site oficial) da diferença das versões:

Imagem
(figura 3 – Tabela de comparações das versões).

Há outras tabelas para iPhone e Wii, mas não abordaremos. Para mais detalhes, visite: http://unity3d.com/unity/licenses.

1.4 Linguagem de programação

Este tópico talvez deveria estar um pouco mais a frente (e talvez eu coloque depois, rsrs), mas acho importante já citar o modo como a engine trabalha a programação, pois sei que há usuários que querem saber sobre isso antes de tudo. Além disso, este é um dos tópicos que com certeza deixarei cada vez mais rico com o tempo, pois vou precisar pegar mais detalhes para explicar aos iniciantes.
A engine usa, praticamente, três tipos diferentes de linguagens de programação: Javascript, C# e Boo (parecido com Python). O javascript aqui mencionado não se trata exatamente da antiga linguagem javascript que os programados já ouviram falar ou trabalham, é mais um Javascript feito especialmente para Unity. Ele é bem simples, fácil e rápido para a engine, portanto não se preocupe nas perguntas sobre como um jogo de grande porte terá uma boa performance usando javascript... bom, não teria se fosse esta linguagem antiga puramente dita. Na minha opinião, Javascript é mais simples de se trabalhar com a engine, porém C# é mais poderoso e você pode usá-lo com muito mais plugins do que as outras duas linguagens.

Mas o que são Plugins? Plugins são como componentes adicionais construídos, geralmente, em outras linguagens ou programas, capazes de suportar os recursos da engine ou ferramenta. Somente a versão PRO da engine Unity suporta o uso de plugins em jogos e as versões em web player não funcionam, portanto, somente standalone. Com o uso de plugins, sua gama de linguagens aumenta, podendo usar C, C++ ou linguagens orientadas a objetos baseado em C. Este é um recurso considerado avançado e portanto não iremos comentar muito sobre ele.

Para este tutorial iremos adotar mais a linguagem Javascript, porém algumas partes acredito usar também o C#, já o Boo ficará totalmente de fora e não será abordado. Vale lembrar que é possível ter duas ou as três linguagens ao mesmo tempo dentro de seu projeto, há maneiras de fazê-las se comunicarem, entretanto não usaremos muito este recurso. Caso queira saber ainda mais sobre scripts em Unity, lembre-se de checar o “Scripting Reference” dentro da documentação da engine (disponível também no site oficial deles), porém o conteúdo é todo em inglês.

A programação em Unity é feita através das linguagens citadas acima e criando os scripts para depois adicioná-los os Game Objects (ou objetos de jogo, será comentado mais para frente). Cada script pode conter diversas variáveis e funções. Muitas destas funções são pré-definidas da engine, ou seja, nomes que não podem ser usados pelos programadores para realizar outra ação além da sua já pré-definida. Abaixo segue um exemplo simples de script em Unity (mais detalhes sobre como programar será abordado no próximo capítulo):

Código:
//Script de movimentação simples para um personagem, seja em primeira ou terceira pessoa
var velAndar = 3.0; //a velocidade que o jogador vai andar.
var velRotacao = 3.0; //será a velocidade que o jogador vai girar em torno de seu eixo Y.
//note que não podemos usar acentuação, somente em comentários como este
function Update () {
  var controlador : CharacterController = GetComponent(CharacterController);
  // O comando abaixo vai fazer o personagem rodar em seu eixo Y transform.Rotate(0, Input.GetAxis ("Horizontal") * velRotacao, 0);
  // O comando abaixo faz o jogador mover para frente e trás
  var paraFrente = transform.TransformDirection(Vector3.forward);
  var velAtual = velAndar * Input.GetAxis ("Vertical");
  controlador.SimpleMove(paraFrente * velAtual);
}
@script RequireComponent(CharacterController)

(script 1 – movimento simples de jogador).

Observação: odeio quando tutoriais e manuais começa a te ensinar falando “vamos fazer o primeiro Alô Mundo – ou Hello World”, hehehe. Mas isso sou eu.

Como este script funciona? Resumidamente, criamos algumas variáveis e dentro de uma função pré-definida da engine criamos a nossa rotina de movimento. Esta função executa seus comandos antes de desenhar um frame. Note também que há várias variáveis pré-definidas (para você entender melhor, o que estiver em inglês acima são variáveis ou comandos pré-definidos da engine). Não se preocupe no momento com estes comandos, essa foi apenas uma introdução aos scripts da engine. Como rodar o script será explicado no próximo capítulo.

Capítulo 2 – Iniciando um Projeto

2.1 – O primeiro cenário

O capítulo dois será introduzido ao usuário a construção de um jogo simples, onde tentarei abordar os conceitos de movimentação, câmera, iluminação, física, armamentos, entre outros. Novamente, os conceitos aqui aplicados serão do básico ao intermediário e dúvidas poderão ser tiradas no tópico de discussão do fórum.Para quem ainda não baixou a versão Trial do Unity recomendo que faça-o agora, pois iremos precisar (o link está no começo deste tutorial).


2.1.1 - Scenes

Primeiramente abra o programa Unity. Uma tela como a de baixo deverá aparecer.

Imagem
(figura1 – Tela principal do Unity)

Esta é a janela principal da engine, onde iremos trabalhar pelos próximo tópicos e muito provavelmente durante todo o processo de desenvolvimento do jogo, afinal esta é a ferramenta principal ( ). Para movimentar a sua visão dentro da janela scene, vá com o mouse para o campo de visão e deixe apertado o botão direito do mouse, depois mova o mouse para girar a tela e use as teclas W, S, A e D para “andar”. Caso queira ir mais rápido deixe a tecla Shift apertada.

Há diversas formas de trabalharmos com esta janela, pois ela possui alguns layouts padrões que podemos mudar ou até criar o nosso próprio layout. Para isso basta ir na barra de menus, clique em Window, depois em Layouts e uma lista aparecerá para você. Clique nos diferentes tipos e escolha o que mais lhe agrada. Eu, particularmente, prefiro o modo Wide. Agora vamos criar um novo projeto. Clique em File e depois em New Project. A tela abaixo irá aparecer:

Imagem
(figura 4 – Janela de criação de novo projeto)

O primeiro campo você definirá o local onde seu projeto será salvo e seu nome. No Unity todo novo projeto deve ser salvo em uma pasta vazia do Windows (no MAC ainda não sei como é, mas deve ser parecido). Na parte de baixo da janela há os pacotes que podem ser importados para o seu projeto. O pacote Standard geralmente estará selecionado, ele contém diversos objetos de jogo já prontos para serem inseridos no seu projeto, como um personagem com câmera em primeira pessoa e movimentação. Há um pacote legal disponível no site do Unity que contém diversos modelos e texturas para vegetação, como árvores, gramas, etc. Vale a pena baixar (link no início do tutorial). Escolha um local, dê um nome ao teu projeto e salve.

Além dos layouts, há outros botões para você visualizar melhor o que aparece no editor, como a figura abaixo:

Imagem
(figura 5 – configuração de scene)

Onde está Tex-Wire define que a visualização de seu editor aparecerá em modo de textura e ao mesmo tempo os triângulos de seus modelos irão aparecer. O segundo modo muda a definição de cores, onde tem a figura de um sol define se aparecerá ou não a iluminação e o quarto modo definem o fundo de seu cenário (este será abordado mais para frente). Faça testes clicando nestas opções para ver o que muda, porém como o seu projeto ainda deve estar vazio, pouca coisa será notada. Os modos de edição como girar, movimentar, etc, foi comentado já no início do tutorial, portanto vamos pular.

Geralmente quando criamos um novo projeto ele já vem com um cenário (ou cena) em branco, pronto para edição. Mas para aprender, vamos começar um novo. Vá em File, New Scene. Uma nova cena aparecerá para você. Caso você tenha editado a cena anterior, uma tela aparecerá perguntando se deseja salvar ou não, é sua escolha. Com a cena criada já salve-a para não perder nada, para isso simplesmente aperte Ctrl+S ou vá em File, depois em Scene. Após salvar, seu novo cenário aparecerá na janela de projetos, em Project, veja figura abaixo:

Imagem
(figura 6 – janela Project)

Caso não apareça provavelmente ele foi salvo em uma pasta de seu projeto. Isso acontece quando você deixa selecionado uma pasta e clica para salvar o novo cenário. Caso isso ocorra, simplesmente seleciona o cenário na janela Project e depois o arraste para o local desejado.

2.1.2 – Criando um terreno

Salvo o primeiro cenário vamos começar criando o nosso primeiro terreno, onde o nosso personagem jogará. Este terreno terá uma pequena área para explorar, com gramas, árvores e bastante água em volta, além de alguns morros e montanhas.
Caso não esteja com o Unity aberto, faça-o agora e depois abra teu projeto que você salvou para este tutorial. Na barra de menu clique em Terrain, depois vá em Create Terrain. Você verá na janela Scene que um novo terreno foi criado.

Imagem
(figura7 – Janela scene com terreno)

Veja também que na janela Project um novo arquivo foi criado, chamado New Terrain. Seu novo terreno é baseado neste arquivo e se você o deletar, seu terreno também será deletado. Vale lembrar que qualquer arquivo na janela Project pode ser movido de pasta, não alterando qualquer coisa já feita em seu jogo. Isso é muito útil para organização.
O nosso primeiro terreno está bem feio, não tem nada, somente um plano com triângulos. Vamos dar vida à ele. Vá novamente no botão Terrain (barra de menu) e agora clique em Set Resolution. A janela abaixo aparecerá.

Imagem
(figura 8 – janela de resolução de terreno)

Nesta janela iremos configurar o tamanho de seu terreno e resolução de detalhe. Não entrarei em muitos detalhes sobre terrenos, somente o necessário para criarmos a nossa primeira fase, depois você poderá explorar os seus recursos.
Voltando ao terreno, altere o Width para 500 e Length para 500... 2000 deixará o mapa muito grande, o que não é necessário para nós no momento. As outras opções com o texto ‘Resolution’ aumentam o detalhe do terreno, assim como o tempo para carregar e sua memória. Portanto, sempre analise o que sua fase realmente precisa para não consumir memória desnecessária. Faça as alterações que comentei acima e clique em Set Resolution.

Muito bem, alterado o tamanho de nosso terreno, vá na janela Hierarchy e clique no nome Terrain, que é nosso novo terreno. Vamos alterar este nome, para padronizar o nosso português, hehe. Com o Terrain selecionado, clique mais uma vez com o botão esquerdo no nome e ele aparecerá com outra forma de seleção. Altere o nome para Terreno, ou algo que você preferir. Você também pode alterar o nome indo na janela Inspector e ao lado de uma caixa de seleção há o nome do objeto selecionado. Depois de alterar o nome, selecione novamente o Terreno e vá na janela Inspector. Note que aqui é onde fica todas as propriedades de um objeto selecionado. Para o nosso terreno iremos destacar as opções abaixo.

Imagem
(figura 9 – propriedades de um Terrain)

Note as figuras abaixo do texto “Terrain (Script)”. O primeiro botão serve para alterar a altura da área selecionado do terreno. Clique nele e tente um pouco. O botão esquerdo do mouse fará com que o terreno suba na área selecionada e caso queira descer, somente segure a tecla Shift e clique com o botão esquerdo. Mais abaixo, em Settings, você consegue alterar a área (em Brush Size) na qual será afetada ao clicar com o mouse e também o quão rápido a alteração será feita (em Opacity). Um ponto negativo do Unity (embora não impactante para mim) é que não há uma forma visual de identificar o tamanho da área que será afetada ao mudar em Brush Size, ou seja, você vai ter de alterar e testar para ver se ficou com ou não. Caso você tenha feito algo errado, basta apertar as teclas Ctrl+Z para corrigir o erro.
O segundo botão tem o mesmo propósito, porém você consegue controlar a altura, ou seja, com o botão esquerdo você faz o terreno subir, ao segurar o shift e clicar uma vez com o botão esquerdo o programa gravará a altura atual e fará com que o terreno somente suba para a altura máxima que você estipulou. Caso não tenha entendido faça um teste que ficará bem explicado. Há também uma nova opção em Settings para este botão, o qual você altera a altura máxima manualmente.
O terceiro botão é para arredondar as bordas das áreas alteradas de seu terreno, tirando aquela forma quadrada horrível. Novamente, faça alguns testes para entender melhor.
O quarto botão nós conseguimos definir as texturas que o terreno terá para depois pintá-lo. Aqui aparece uma nova opção logo abaixo das figuras de alteração (estas figuras comentarei logo adiante). Veja...

Imagem
(figura 10 – parte de terrenos, pintura)

O botão Edit Textures serve para você adicionar novas texturas, excluí-las ou removê-las de seu terreno. Clique no botão e depois em Add Texture. Uma nova janela irá aparecer, perguntado qual a textura que deseja adicionar e seu tamanho nos eixos X e Y. Quanto menor o tamanho nestes eixos, menor ficará no terreno, muitas vezes dando um maior detalhe. Todos os arquivos que forem considerados como texturas dentro de seu projeto aparecerão nesta tela, independente do local onde está armazenado na janela Projects. A barra Target Strength define a “força”, ou o grau de pintura, para a textura selecionada, deixando-a mais forte ou mais fraca em seu terreno.

Explicado estes conceitos, tente criar um terreno mais ou menos como eu fiz (usei algumas texturas do pacote de vegetação do Unity). Tente deixar a parte centra, onde o jogador irá explorar, um pouco mais alto do que as bordas e laterais, pois futuramente penso em colocar água ali.

Imagem
(figura 11 – terreno criado)

Sobre as figuras para moldar o terreno ou pintar com as texturas (aquelas que ficam abaixo do texto Brushes), elas simplesmente definem como a pintura ou molde sairá. Faça testes para ver como fica.
Nota importante: para visualizar qualquer objeto 3D rapidamente em seu cenário atual, clique nele na janela Hierarchy e depois aperte a tecla F. Sua visão atual irá mudar para o objeto que você selecionou. Se houver dois objetos distantes um do outro e por um motivo você quiser mover um para o mesmo local do outro, clique no objeto com a posição correta, aperte F, depois, sem alterar a visão de onde está, selecione o outro objeto na janela Hierarchy, depois vá em GameObject na barra de menu e clique em Move to View (ou aperte Ctrl+F). O objeto escolhido irá exatamente para a mesma posição de seu outro objeto. Faça testes para experimentar a ação.
Bom, feito o terreno iremos para o próximo tópico.

2.1.3 – Adicionando vegetação

Esta parte também é muito simples, bem parecido com adicionar texturas, mas desta vez é com vegetação (¬¬). Primeiro vá em seu terreno (clique nele no guia Hierarchy) e depois clique em Paint Detail (tem o símbolo de uma florzinha...ui). Clique no botão Edit Details e depois Add Grass Texture (a outra opção é explicado mais adiante). Este tipo de opção é para adicionar texturas de gramas ao seu cenário, mas não precisa ser exatamente grama, você pode adicionar arbustos e outras texturas que simulem o efeito de grama (eu fiz isso, fica legal). Selecione uma textura de grama (eu peguei o Grass do pacote de vegetação).

Logo abaixo da opção de textura tem alguns parâmetros: Min Width é a mínima largura que tua textura terá e Max é o máximo. Isso afetará na hora em que as gramas forem colocadas aleatoriamente. Tente deixar um valor não muito distante, mas não igual, vai dar um maior efeito de realismo. Height significa altura. Noise spread é o quanto escolhado, dentro de sua seleção, será sua grama, faça testes para entender melhor. Logo abaixo há dois tipos de cores: healthy (saudável) e Dry (seco)... eles irão alterar a formação da cor da textura. As outras opções você irá explorar mais pra frente, não irei comentar agora, porém a opção Billboard é para verificar se sua grama vai alterar o formato e desaparecer com a distância, será explicado em opções do terreno.

O restante das opções é parecido com o de texturas e não irei abordar. Tente adicionar algumas gramas ao teu terreno. Tome cuidado com a quantidade, pois quanto mais detalhes de gramas mais pesado será teu jogo e mais será requisitado da máquina para rodar sem lentidão.

Além de Grass Textures também há os Detail Meshs, que são bem parecidos com as gramas, mas eles não possuem influência do vento (setado em opções do terreno, falarei depois) e possuem outro modo de renderização. Explore este recursos mais adiante, não vou comentar aqui. Adicione algumas gramas, salve e vamos para a próxima parte.

2.2 – Adicionando um Personagem

Nesta parte começaremos a dar vida ao nosso jogo, por enquanto só criamos os “vegetais” e objetos estáticos e nada tinha “vida”. Antes de entrar nos tópicos abaixo vamos rever o seguinte: o que é preciso para se ter um personagem jogável? Fazendo uma pequena lista teremos: câmera que visualize o jogador em primeira pessoa ou terceira (esta parte será melhor comentada no próximo tópico), scripts de movimento, animação, gravidade e outros resultados (ataque, danos, etc). Além disso, precisamos de um modelo 3D para o nosso personagem, uma iluminação legal para enxergar o que acontece e física de objeto para que ele não afunde ou voe no cenário. Basicamente é isso, depois você pode reforçar alguma parte e criar seu personagem da maneira que achar melhor.
Agora vá ao seu projeto já salvo e abra o cenário que criamos. Ele provavelmente estará em branco, mas talvez terá um Game Object já inserido chamado Main Camera (todo novo cenário vem com um). Para efeitos de aprendizado delete este objeto, vamos aprender como colocar uma câmera manualmente.

2.2.1 – Câmeras

As câmeras no jogo podem ser usadas para diversas coisas, mas obviamente seu objetivo verdadeiro é visualizar alguma parte de seu jogo. Dentro de seu cenário você pode ter mais de uma câmera, devendo mostrar na tela a que desejar. Como o nosso tutorial é básico, vou demonstrar algumas etapas do processo da câmera, mas não irei me aprofundar em nada, somente usaremos o necessário para nosso pequeno jogo tutorial. Para adicionar uma câmera qualquer ao jogo vá em Game Object no menu principal, depois em Create Other e Câmera. Uma nova câmera aparecerá no seu cenário. Não irei entrar em detalhes sobre cada um dos campos da câmera, mas é bom saber que o campo Far clip pane controla a distância que sua câmera vai enxergar e um componente chamado Flare Layer será carregado junto com a nova câmera, este componente é usado para visualizar flares (como efeito de sol, luzes, etc).

Posicione sua nova câmera em um local qualquer (faremos com que ela vá automaticamente para seu personagem depois, por isso não importa o local onde estará agora). Perfeito, temos nossa câmera, caso queira, clique no botão Play e veja como está (você tem que conseguir visualizar algo, caso contrário você fez algo errado).

2.2.2 – Variáveis e Programação

Chegamos ao tópico dos patinhos na lagoa (entendeu? 2 atrás de 2 atrás 2... ?!.... ¬¬).
Bem, voltando ao tópico...
Acredito que esta parte é a mais desejada dos usuários aprendendo Unity: como programar nele? Vou fazer breves comentários sobre como programar antes de entrar nas linguagens do Unity. Muitos das palavras que eu usar abaixo para explicar como programar poderá ser diferentemente definido por outro programador, mas seu objetivo final é o mesmo, não se preocupe. Além do mais, os termos de programação irão se referir para usar dentro do Unity.

Em Unity, como dito no capítulo 1, tópico 1.4, usaremos as linguagens Javascript e C#, no começo eu pensei em usar somente Javascript, mas hoje uso bem mais o C# devido a maior possibilidade de usar com outras bibliotecas (como SQL) diretamente da engine, importando assim seus módulos (mas como dito, este é um tópico mais avançado e não abordarei aqui).

O que são scripts? Em Unity scripts são diversas linhas de códigos agrupadas entre si, o qual é executado pela engine realizando diversas tarefas definidas dentro deles ou tarefas que foram chamadas por eles, definindo um comportamento padrão para seu jogo. Praticamente tudo que deverá ter movimentos ou ações diversas deverão conter scripts. Não irei entrar a fundo sobre programação totalmente inicial, mas veremos se você será capaz de entender com exemplos, senão recomendo que você aprenda uma linguagem básica com um livro antes de mexer com esta engine (como C++ por exemplo).

O que são variáveis (variables)? Variáveis são dados que podem guardar valores e informações podendo ser alterados no momento que o programador desejar. Como convenção, iremos adotar os nomes das variáveis aqui com letras minúsculas, ficando mais fácil trabalhar com o tempo.

O que são funções (Functions)? Funções são simplesmente blocos ou listas de códigos que podem ser “invocados” a qualquer momento no jogo, podendo ser “reusados” sempre que necessário. Por convenção iremos adotar a primeira letra das funções com letra maiúscula.



Mais sobre este assunto no próximo Update...


Logs de Release:

v0.1.1
- Início do capítulo 1, com os tópicos interface, limitações e arquivos suportados.
v0.1.2
- Finalização do capítulo 1 e alteração do índice de menu.
v0.1.3
- Início do capítulo 2 e criação do primeiro cenário e terreno.
V0.1.4
- Tópico de vegetação.
V0.1.5
- Inicio do segundo capítulo, câmeras e programação.


:wink:

_________________
-----
Game Developer
Odin Game Studio
http://www.odingamestudio.com.br


Editado pela última vez por xandeck em Qui Ago 13, 2009 9:07 pm, em um total de 13 vezes.

Voltar ao topo
 Perfil  
 
Exibir mensagens anteriores:  Ordenar por  
Criar novo tópico Este tópico está trancado. Você não pode responder ou editar mensagens.  [ 1 mensagem ] 

Todos os horários são GMT - 3 horas


Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante


Enviar mensagens: Proibido
Responder mensagens: Proibido
Editar mensagens: Proibido
Excluir mensagens: Proibido
Enviar anexos: Proibido

Ir para:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por: Suporte phpBB