01 Introducao Ao Unity 3d DESENVOLVIMENTO COM MOTORES DE JOGOS II IMD
01 Introducao Ao Unity 3d DESENVOLVIMENTO COM MOTORES DE JOGOS II IMD
01 Introducao Ao Unity 3d DESENVOLVIMENTO COM MOTORES DE JOGOS II IMD
Jogos II
Aula 01 - Introdução ao Unity 3D
Objetivos
Aprender elementos dos jogos em 3D utilizando o motor de
jogos Unity;
Vamos começar!
Sempre que você for criar um novo projeto no Unity é necessário que seja
escolhido o tipo do projeto entre 2D e 3D. Como estudaremos o Unity em 3D, vamos
criar um projeto com esse tipo.
Vale lembrar que se você está utilizando uma nova instalação do Unity ou um
novo usuário na máquina, a tela de autenticação do Unity aparecerá solicitando
seu Email (e-mail) e Password (senha), conforme a gura 1.
Se você não tem uma conta, clique no link “Create One” e ele o levará para o site
do Unity, onde você poderá criar sua conta seguindo as instruções. Com a conta
criada preencha o e-mail e a senha e clique em “Sign In”. Se você marcar a opção
“Remember Me” não será necessário digitar essas informações novamente.
Caso o Unity mostre uma tela para que escolha qual licença possui, pode
escolher normalmente a opção “Personal Edition”, e logo depois escolha a opção
con rmando que você não está utilizando o Unity pro ssionalmente ou possui
ganhos menores que o limite de 100 mil dólares anuais (uma das duas últimas
opções). Esses são os requerimentos para se utilizar o Unity gratuitamente.
Assim que terminar o processo de autenticação esta tela inicial do Unity deverá
aparecer:
A opção “Projects” aparece selecionada por padrão. Abaixo, você verá as opções
“On Disk” e “In the Cloud”. Esses dois ltros permitem listar os seus projetos, os
quais estão no seu computador (On Disk) ou armazenados nos servidores do Unity
na Internet (In The Cloud). Não se preocupe, falaremos mais sobre os serviços em
nuvem do Unity nas aulas seguintes.
Criando um projeto
Com o Unity na tela inicial e já com o seu usuário autenticado, vamos criar um
novo projeto 3D? Para isso, siga direitinho os passos necessários.
Primeiro passo: Clique no ícone com o texto “New” para criar um novo projeto.
Uma nova tela aparecerá solicitando que você escolha o Project Name (nome do
projeto), Location (em qual pasta será criado o seu projeto) e Organization (deixe
com o valor por padrão), como demonstra a gura 3:
Segundo passo: Crie um novo projeto com o nome “Primeiro Projeto” na sua
pasta de Documentos (ou onde preferir) e com o tipo 3D selecionado. Desmarque
inicialmente a opção “Enable Unity Analytics”, pois exploraremos esses serviços
somente em outras aulas. Clique em “Create Project”.
Finalmente, após clicar em “Create Project”, observe uma tela, a qual chamamos
de “editor” do Unity 3D. Essa é a tela que você utilizará durante quase todo o
processo de criação dos seus jogos.
Nas últimas versões do Unity é possível notar que a cena (Scene) inicial para
novos projetos começa sem uma câmera padrão e também sem uma luz direcional
na cena (em breve veremos mais a respeito). Não precisa se preocupar se isso
acontecer, basta escolher a opção no menu: File -> New Scene e pronto! Já estará
com uma cena nova no seu projeto 3D com os elementos básicos necessários
(Câmera e Luz).
Figura 04 - Primeiro projeto no Unity. Tela inicial após escolher a opção “File -> New Scene”.
Captura de tela do Unity – Game Engine.
Assim como no modo 2D, o Unity tem várias janelas que podem ser
posicionadas onde você desejar. Caso deseje voltar para a organização de janelas
padrão do Unity, pode a qualquer momento escolher a opção no menu: Window ->
Layout -> Defaults, de acordo com a Figura 5.
Figura 05 - Menu com opções de Layouts disponíveis no Unity. Captura de tela do Unity – Game
Engine.
Projetos 2D ou 3D?
Unity suporta a criação tanto de jogos 2D como de jogos 3D. Como visto, ao criar
um novo projeto no Unity, é possível fazer essa escolha. Dito isso, é importante
saber o que realmente é um jogo 2D ou um jogo 3D. Pode parecer algo simples de
se de nir mas não é bem assim…
As diferenças nas con gurações no editor de acordo com cada modo de jogo
selecionado (2D ou 3D) são as seguintes:
No modo 2D:
Qualquer imagem importada no projeto é considerada um Sprite e
ca con gurada como Sprite Mode;
Baked GI é desativado;
Auto-Building desativado.
No modo 3D:
Novas imagens importadas NÃO são consideradas automaticamente
como imagens 2D (Sprites);
Na janela Lighting:
Baked GI é ativado;
Auto-Building é ativado.
Sim, eu sei, são várias opções que ainda não vimos. Não se preocupe,
exploraremos algumas delas nas próximas aulas. Por enquanto é importante saber
que a mudança do modo do jogo depois de criado não afeta somente a câmera e a
visualização, mas também várias opções de importação de imagem e de iluminação.
Voltando ao nosso projeto, faremos agora uma rápida revisão sobre a interface
do Unity, já que na disciplina de Motores de Jogos I você já teve contato com esse
assunto.
A janela principal do Unity é composta por diversos grupos de outras janelas
com abas (tabs) que podem ser organizadas como você preferir. A organização
padrão (Layout Default) exibe as seguintes janelas:
A janela Project mostra os Assets que estão no seu projeto em uma hierarquia
de pastas, semelhante ao navegador de arquivos tradicional. No lado esquerdo
existe uma lista com os Favoritos e outra chamada Assets. Você pode (e deve!)
organizar os seus Assets em pastas de acordo com uma estrutura que facilite sua
localização futura e todas essas pastas devem ser criadas abaixo da pasta “Assets”
que vem por padrão no seu projeto. Ao clicar em uma pasta o seu conteúdo é
exibido do lado esquerdo da janela Project. No nosso projeto não temos ainda
nenhum asset e, portanto, ela se encontra vazia, observe a Figura 8:
Para adicionar Assets como guras e arquivos de áudio no projeto, você pode
arrastá-los do gerenciador de arquivos diretamente para a janela Project, ou utilizar
a opção no menu Assets > Import New Asset. Veremos mais sobre importação de
Assets nas próximas aulas.
Falamos do Sky Box, que é uma grande imagem exibida como plano de fundo do
jogo, movida de acordo com a posição da câmera. Nas próximas aulas
aprenderemos a modi car o Sky Box para adicionar imagens com diferentes
aspectos para que seu jogo que com o aspecto e o clima desejados.
Figura 12 - Game View em uma cena vazia. Captura de tela do Unity – Game Engine.
O Toolbar do Unity sempre contém esses mesmos botões vistos na Figura 13,
mantendo-os sempre à vista para acesso rápido.
Os botões da direita
permitem que você acesse facilmente os serviços na nuvem do Unity, tenha acesso à
sua conta e também possa escolher quais Layers devem ser exibidos (por padrão
são todos. Veremos mais sobre Layers nas próximas aulas) e também qual tipo de
Layout de janelas você deseja utilizar.
Assets e objetos primitivos
Importação de Assets
O Unity permite que você adicione diversos tipos de objetos em seu jogo, sejam
eles imagens, sons, modelos 3D, etc. Esses objetos podem ser adicionados no seu
projeto e na sua cena. Quando falamos que um objeto é adicionado no seu projeto,
por exemplo um modelo 3D de um navio, isso não signi ca que ele
automaticamente estará em uma de suas cenas e sim que esse modelo foi copiado
para a pasta do seu projeto, cará disponível para uso na janela Project e pode
então ser adicionado em qualquer cena se você arrastá-lo da Project para a Scene
View ou para o Hierarchy.
Você já deve ter visto como adicionar novos objetos no seu projeto na disciplina
de Motores de Jogos I. Para projetos 3D não existe nenhuma diferença, basta
arrastar o arquivo do objeto para a janela Project e, se o Unity suportar o tipo do
arquivo, ele será importado e cará disponível, então passará a ser um recurso
chamado de Asset.
Figura 14 - Importação de arquivos para o projeto. Captura de tela do Unity – Game Engine.
É uma boa prática sempre criar um protótipo da ideia do game que você está
pensando, para depois investir o seu tempo adicionando os assets nais ao
projeto. Essa forma de trabalhar lhe permite ter uma versão funcional do seu
jogo em pouco tempo, de modo que possa testar várias ideias antes de
trabalhar no acabamento do jogo.
Figura 15 - Criando uma pasta para as cenas. Captura de tela do Unity – Game Engine.
Para salvar a sua cena vazia atual vá no menu “File > Save Scene” ou através da
tecla de atalho CTRL+S. Se for a primeira vez que estiver salvando sua cena,
aparecerá uma janela de salvamento de arquivo para ser feita a escolha da pasta e
do nome da cena. Observe que por padrão você estará dentro da pasta “Assets” do
seu projeto. Essa pasta é exibida na janela Project e obrigatoriamente todo Asset
(Sim, a cena é um asset também) do seu projeto deve car nessa pasta ou em suas
subpastas.
Assim que a cena for salva, perceba que no Hierarchy a cena antes chamada
Untitled agora está com o nome “Principal”, na janela Project agora existe uma
subpasta chamada “Scenes” e dentro dela tem um Asset também chamado
“Principal”, que é a sua cena.
Seu jogo pode conter várias cenas, devendo pensar nelas como algo que pode
ser carregado na memória e executado. Você só pode executar no jogo uma cena
por vez e veremos nas próximas aulas como alternar entre cenas durante a partida.
Para editar uma determinada cena, basta localizá-la na janela Project e dar um duplo
clique, no entanto, como já estamos editando a cena principal isso não é necessário
agora.
Figura 18 - Criação de um Cube dentro da cena Principal. Captura de tela do Unity – Game
Engine.
Veja que no Inspector o Cube não está realmente centralizado na nossa cena.
Para isso a sua propriedade Position da seção Transform deverá ter os valores 0, 0, 0
(eixos X, Y e Z, respectivamente). Para centralizar nosso Cube você pode digitar os
valores 0, 0, 0 nos campos indicados ou pode também clicar no ícone representado
por uma pequena engrenagem no canto superior direito da seção Transform, e no
menu que aparecer escolher a opção “Reset Position”, como visto na Figura 20. Após
essa ação a posição do Cube deverá car com o valor 0, 0, 0. O mesmo pode ser
feito para Rotação e Escala. Se você escolher a opção com somente o nome “Reset”,
todas as três serão modi cadas deixando rotação e posição com 0, 0, 0 e escala com
1, 1, 1 (o valor padrão).
Figura 20 - Resetar posição de um GameObject. Captura de tela do Unity – Game Engine.
Navegando na cena
Nossa cena agora tem um simples Cube centralizado. Vamos aprender a
navegar na cena em 3 dimensões utilizando o Scene View, o teclado e o mouse.
Note que no canto superior direito da Scene View existe o que chamamos de
Scene Gizmo representado pela imagem vista na Figura 22:
Figura 23 - Tipos de ponto de vista e perspectiva. Captura de tela do Unity – Game Engine.
Para uma visão livre, escolha a opção “Free”, assim você poderá manipular o
ponto de vista da forma que desejar. Existem diversas formas de manipular o ponto
de vista de cena no Scene View. Vamos inicialmente aprender a opção “Move”.
Para utilizar essa opção, habilite a opção “Move” bastando clicar no primeiro
botão da Toolbar do Unity com um ícone no formato de uma mão, observe a Figura
24:
Com a opção Move ativada você pode manter o botão esquerdo pressionado em
qualquer local da Scene View e arrastar o mouse para navegar na cena para os
lados, para cima e para baixo, sem girar a cena.
Outra opção disponível é a Orbit, demonstrada na Figura 25. Para ativar essa
opção, clique no ícone da Mão, assim como o Move, porém mantenha a tecla ALT
pressionada antes de clicar e arrastar o mouse na Scene View. Isso fará com que a
câmera orbite a cena modi cando o seu ponto de vista.
Basicamente com essas três opções (Move, Orbit e Zoom) você navega na cena
para onde desejar. Lembre-se sempre que pode clicar duas vezes em qualquer
GameObject no Hierarchy para centralizar a cena nele, facilitando bastante a sua
navegação.
O modo Flythrough pode ser um pouco confuso para quem não está
acostumado, porém com a prática é certamente o modo que lhe trará mais
produtividade ao se trabalhar no Unity, pois na maioria dos casos permite que você
realize a navegação na cena de maneira mais rápida.
Vale lembrar que para todos os modos você pode sempre manter pressionada a
tecla SHIFT durante seu uso, fazendo com que a velocidade do movimento seja
aumentada. Isso é muito útil quando é necessário percorrer maiores distâncias na
cena.
Esses Gizmos são manipuláveis utilizando o mouse, ou seja, você pode interagir
com eles clicando e arrastando partes de cada um. Todos eles permitem
manipulações com o Mouse em cada eixo representado pela sua cor: Vermelho = X,
Verde = Y, Azul = Z.
No Translate (W) você pode mover o GameObject em cada eixo de acordo com a
cor simplesmente clicando na sua seta e arrastando para a posição desejada. Desse
modo o GameObject se moverá somente nesse eixo escolhido. Note que no Gizmo
do Translate existe um conjunto com três planos (um verde, um azul e um
vermelho), próximo ponto de encontro das três setas. Esses planos também podem
ser clicados e arrastados para mover o GameObject, porém nesse caso ele será
movido em duas dimensões e não somente em um dos eixos. O plano verde move o
GameObject nos eixos X e Z, o plano azul nos eixos X e Y, o plano vermelho nos eixos
Y e Z. Pode parecer um pouco confuso, mas com prática você verá que, na verdade,
trata-se de uma maneira muito e ciente de mover GameObjects na cena.
Note que ao clicar nas partes manipuláveis desses Gizmos, elas cam
temporariamente com a cor amarela, para deixar claro em qual delas vocês está
clicando.
Video 01
Vamos praticar! Sua cena atualmente contém somente um Main Camera, uma
Direcional Light e um Cube no posicionado na origem. Utilizando as ferramentas de
modi cação de Transform do Toolbar, faça as seguintes mudanças no Cube
utilizando somente o Mouse:
2. Modi que a escala do Cube no eixo X para 2.0 e em Y para 0.2 (ou o mais
próximo disso que conseguir usando o Mouse);
Se você fez as mudanças sugeridas na atividade, deve ter cado com um Cube
que não é mais um cubo perfeito, e sim um objeto, representado abaixo na Figura
28.
Figura 28 - Cube com mudanças na sua posição, rotação e escala. Captura de tela do Unity –
Game Engine.
O Snap pode ser con gurado no menu “Edit > Snap Settings…” e na janela
exibida você pode con gurar o tamanho do passo de movimentação em cada eixo,
da escala e da rotação, de acordo com o que desejar, como mostra a Figura 29.
Figura 29 - Snap Settings. Captura de tela do Unity – Game Engine.
Nesta aula você aprendeu a criar projetos 3D no Unity, criar e salvar cenas,
adicionar objetos primitivos na cena e modi car suas propriedades utilizando o
Transform, com valores exatos e com o Mouse. Nas próximas aulas aprenderemos a
criar cenas mais elaboradas e ainda criaremos o nosso primeiro jogo!
Leitura complementar
Autoavaliação
MARQUES, Paulo; PEDROSO, Hernâni - C# 2.0 . Lisboa: FCA, 2005. ISBN 978-972-
722 208-8