Issuu on Google+

Edson Pereira Santos

Introdução a Unity 3D

EPS Editora

Nova Lima, 2011


APRESENTAÇÃO

Um motor

de

jogos (engine)

tem diversas

utilidades no mundo da computação gráfica, com ele podemos fazer desde a concepção de um jogo, a

apresentação

planejamentos

de

produtos

arquitetônicos

e e

empresas, auxiliando

animações (utilizando seus scripts de físicas para tornar o movimento dos objetos mais próximos da realidade).


INTRODUÇÃO

Para tornar o processo de desenvolvimento de jogos mais simples e rápido, foi desenvolvido o conceito de engine, onde temos um software que já trás

no

seu

kernel

linhas

de

código

com

algorítmicos pronto e que demandariam muito tempo para serem projetados para cada jogo. Os scripts que vem na biblioteca variam de engine para engine, mas normalmente temos os de simulação de física, os gráficos e os de colisão, logo ao utilizar uma engine que já tem um desses scripts incorporados no seu kernel o programador só necessitará de invocá-los (instanciá-los) e utilizá-los no jogo, poupando assim todo o tempo de desenvolvimento do algorítmico especifico. Além de trazer scripts incorporados, podemos citar também as engines orientadas as objetos (POO), onde graças a orientação e de praticas de reaproveitamento de código e modularização, se


consegue

obter

altos

níveis

de

abstração,

diminuindo o tempo de produção e possibilitando o foco em outros ponto do desenvolvimento que necessitem de mais atenção.


CAPITULO 01

O desenvolvimento de um game envolve muitas áreas diferentes de conhecimentos, motivo que normalmente os leva a serem desenvolvidos por uma equipe de profissionais de áreas distintas. Cada um desses profissionais tem a função de desenvolver uma parte do game e depois todas essas partes são unidas em um programa que chamamos de engine,

nelas as partes são

montadas e programadas para agirem de acordo com o desejado durante a execução do game. Essas partes são arquivos de diversos tipos, como arquivos de objetos 3D, arquivos de áudio, arquivos de vídeos, arquivos de texturas e mesmo blocos de programas que podem ser feitos dentro ou fora da engine. Engine são o que chamamos de “motor de jogo” e são nelas que normalmente os projetos dos jogos são criados. Nesse projeto são adicionados todos


os arquivos dos jogos e utilizando a interface da engine é possível montar com eles o mundo do jogo. Além disso, é na engine que normalmente programados os eventos dos jogos, como a IA (Inteligência Artificial) e a física que atuará sobre os objetos do jogo. Existem diversas engines de games no mercado e cada uma tem as suas peculiaridades e adota uma ou mais linguagens de programação. A também engines que são feitas voltadas para um gênero de jogo específico, como corridas ou FPS (jogos em primeira pessoa), possuindo uma biblioteca de assets e scripts prontos que facilitam a vida dos programadores na hora de construir e programar os jogos. Mesmo para Unity 3D é possível localizar diversos scripts e assets prontos na internet, alguns de graça e outras pagos. Mas o interessante é sempre estudar a ponto de conseguirmos nós mesmos fazermos os nossos scripts e assets.


Esse livro foi elaborado pensado nos iniciantes no mundo de desenvolvimento de jogos e aqui serão abordados os conceitos iniciais da Unity 3D, então apresentaremos a engine a algumas de suas funções. Para tanto consideraremos que o leitor possui

um

conhecimento

prévio

sobre

programação, sendo que para acompanhar o livro é recomendado que o leitor de tenha a Unity instalada¹ no seu computador.

Notas: ¹ A Unity disponibiliza no seu site uma versão gratuita da engine Unity 3D, para isso basta entrar no site da Unity e fazer o download.


CAPITULO 02 Iniciando A Unity 3D é uma engine de jogos, por tanto é nela que reunimos todos os arquivos que compõe o jogo (cenário, personagens 3D, áudios, vídeos, entre outros) e montamos o mundo do nosso jogo. Então cabe ao profissional que trabalha com ela utilizar esses arquivos para montar os cenários do jogo e normalmente também a programá-los para que eles reajam como desejado durante o jogo.

É

também na engine que damos a saído do jogo, escolhendo

para

qual

plataforma

ele

será

compilado e criando os arquivos finais do jogo. Podemos dizer que compilar um jogo é pegar todos os arquivos que o compõe e transformá-los em arquivos escritos em uma linguagem que o computador entenda (código de maquina), assim o mesmo pode ser enviado a outras pessoas para que elas possam abri-lo e jogá-lo mesmo se ter a engine. Outra vantagem dos programas que são


compilados e não interpretados pelo computador é o fato do usuário final possuir apenas os arquivos na

linguagem

de

maquina

e

apenas

o

desenvolvedor possuir o projeto aberto para edição. A Unity 3D nos disponibiliza varias opções de saída para o nosso game entre elas nós podemos ressaltar o IOS (plataforma da Apple), o PC (plataforma Windows desktop), o Web Player (Plataforma Web - roda no browser) e o Android (Plataforma Android). Para compilar os jogos para algumas dessas saídas é necessário compra uma licença na Unity e o tipo de programação (linguagem e sintaxe) a ser efetuada pode variar de uma saída para outra. Aqui no livro abordaremos a Unity 3D considerando a utilização das saídas para PC ou Web, sendo que as duas compilações podem ser feitas com a versão gratuita da Unity 3D. Cada engine de jogo adota o seu conjunto de linguagens de programação, no caso da Unity 3D é


possível programar em C#, Java Script e Boo. Sendo que é possível misturar as linguagens durante o desenvolvimento do jogo, ou seja, você pode ter scripts feitos em Javascript e C# no mesmo jogo que ele vai funcionar normalmente. A Unity 3D já vem com uma biblioteca de scripts que o desenvolvedor pode acessar a qualquer momento e ela também possui várias funções que podem ser usadas para executar ações desejadas no jogo. Esses arquivos prontos são de grande ajudar para os desenvolvedores, mesmo que sejam consultados

apenas

para

referência

no

desenvolvimento de novos arquivos. Algumas dessas funções serão explicadas mais detalhadamente mais a frente no livro, uma dica é acessa a documentação da Unity 3D. Lá você poderá conhecer melhor a biblioteca da Unity 3D e ver como é a sintaxe para utilizar algumas de suas funções.


CAPITULO 03 Interface A Unity 3D possui uma interface amigável e customizável, onde é possível mudar praticamente tudo conforme o gosto do desenvolvedor. Assim podemos ajustar os painéis de formar que eles fiquem

melhores

posicionados

para

nós

trabalharmos, além de ser possível inserir novos painéis ou excluir um painel existente. Quando nós abrimos a Unity pela primeira vez, a interface vai carregar um projeto demo (imagem 01) que já vem com a Unity 3D, esse projeto serve para demonstrar as funcionalidades dela e ele é um freeware e inclusive pode-se utilizar os seus arquivos em projetos próprios, mesmo que esses projetos sejam comerciais.


Imagem 01 – Abrindo a Unity 3D pela primeira vez

Fonte – Print Screen da tela da Unity 3D

Eu estou usando a Unity 3D versão Pro, então o projeto que vem junto com ela é o Bootcamp, mas se você estiver usando a versão gratuita vai abrir o projeto demo da ilha.


Imagem 02 – Demo Ilha

Fonte – Print Screen da tela da Unity 3D

Além disso, quando você abrir a Unity 3D aparecerá uma caixa de dialogo de onde é possível acessar vídeos tutoriais sobre ela, entrar no fórum da Unity e acessar um manual da Unity 3D. Esse fórum da Unity é uma ferramenta muito útil para conseguirmos informações e dicas na hora de desenvolvermos freqüentado

por

os

nossos

vários

projetos,

ele

desenvolvedores

é que


normalmente estão predispostos a ajudar outros desenvolvedores em dificuldades.

Imagem 03 – Caixa de Dialogo – Welcome to Unity

Fonte – Print Screen da tela da Unity 3D

A primeira vista já é possível ver que a Unity 3D esta dividida em vários painéis e menus, sendo que esses painéis podem ser modificados, excluídos ou pode-se inseri mais painéis.


Menus A primeira parte que vamos tratar são os menus superiores, através deles nós temos acesso a todas as funções da Unity 3D, como inserir assets, scripts, criar terrenos, criar novos projetos, entre outras. Imagem 04 – Menus Superiores da Unity 3D

Fonte – Print Screen da tela da Unity 3D

O primeiro menu é o File, nele nós temos


Scene A Scene é um dos principais painéis da interface e dentro dele fica todo o mundo do jogo. Nele nós montamos modificando,

os

cenários,

construindo

inserindo terrenos.

arquivos, Ele

tem

funcionalidades bem similares aos softwares de modelagem 3D, como o Maya 3D, o 3D Max e o Blender D, entre outros.

Imagem 05 - Scene

Fonte – Print Screen da tela da Unity 3D


Ele possui um menu próprio onde é possível alternar entre os modo de visualização do cenário , mudar os modos de visualização da cores (imagem 06, 07 e08), ligar e desligar a luz do cenário (tabela 02), ligar e desligar o fundo e ligar e desligar o sons (imagem 09).

Tabela 01 - Modos de Visualização

Wireframe

Ver apenas as linhas de construção do cenário.

Textured

Ver o cenário com suas respectivas texturas.

Textured e Wireframe

Ver as linha de construção e as suas texturas.


Imagem 06 – Modo Textured

Fonte – Print Screen da tela da Unity 3D


Imagem 07 – Modo Wireframe

Fonte – Print Screen da tela da Unity 3D


Imagem 08 – Modo Textured e Wireframe

Fonte – Print Screen da tela da Unity 3D


Tabela 02 – Modos de Cor RGB

Ver todos os itens do cenário

Alpha

Ver só os itens em alpha do cenário

Overdraw

Sobreposição de cores, onde é possível ver os elementos sobrepostos

Mipmaps

Mostra os mapeamentos do cenário

Imagem 09 – Botões de Luz, Fundo e Som da Scene

Fonte – Print Screen da tela da Unity 3D


Além disso, é possível interagir diretamente com os itens da Scene através do mouse e do teclado, abaixo segue alguns comandos de interação. Tabela 01 – Comandos de Interação com a Scene Comando

Ação

Clique do botão

Serve para selecionar

esquerdo do mouse

objetos dentro da Scene, sendo que pode-se utilizar as teclas Shift ou Ctrl do teclado para selecionar mais de um objeto ou aperta, segurar e arrastar a ponteiro do mouse sobre todos os itens que se quer selecionar.

Aperta e segurar do

Rotate,mas sem tirar ao

botão direito do

cenário da posição em

mouse

que ele esta na Scene. Então você consegue


girar sobre o ponto onde o cenário esta. Scroll

Zoon-in e Zoon-out na scene.

Alt + Segurar o botão

Rotate, mas sem tirar ao

esquerdo do mouse

cenário da posição em que ele esta na Scene. Então você consegue girar sobre o ponto onde o cenário esta.

Alt + Segurar o Scroll

Pan, movimentação livre pode todo o cenário, o arrastando para qualquer direção dentro da Scene.

Q + Aperta e segura o

Pan, movimentação livre

botão esquerdo o

pode todo o cenário, o

mouse

arrastando para qualquer direção dentro da Scene.

Alt + Aperta e segura

Zoon-in e Zoon-out da

o botão direito do

Scene.

mouse


Além de interagir através desses comandos também é possível usar um controlador (imagem 10) que fica na parte superior direita da Scene para interagir mudando a posição de visualização do cenário.

Imagem 10 – Controlador da Scene

Fonte – Print Screen da tela da Unity 3D


Game O painel Game é o lugar onde você pode visualizar como o seu jogo esta ficando, diferente do Scene você consegue interagir diretamente com esse painel a não ser que a tecla play esta pressionada. Uma vez a tecla play pressionada e não tendo erros de script no jogo, ele começa a rodar no painel game onde é possível testar como esta ficando o mesmo. Uma dica é utilizar esse painel para ajudar a customizar as partículas, pois mesmo sem a tecla play estar pressiona e se a partícula estiver selecionada no painel

Scene, ela vão esta

funcionando no painel Game. Por tanto é possível customizar suas opções e ver em tempo real no painel Game, sem ter que pressionara teclar start.


Imagem 11 – Painel Game

Fonte – Print Screen da tela da Unity 3D


Intrução a Unity 3D