Uploaded by slqcurso2020 ss

Unity Usage

advertisement
Unity
1. INSTALAçÃO E INTERFACE DO UNITY ..............................................................................................2
1.1.
INSTALAçÃO DO UNITY .........................................................................................................2
1.2.
TRANSFORMAçÕES...............................................................................................................6
2. ILUMINAçÃO ........................................................................................................................................7
2.1.
LUZ Direta ...............................................................................................................................7
2.2.
Luz indireta ..............................................................................................................................7
2.3.
Tipos de luz .............................................................................................................................8
2.3.1.
Direcional ........................................................................................................................8
2.3.2.
FOCO .............................................................................................................................9
2.3.3.
OMNIDIRECIONAL .........................................................................................................9
2.4.
CONFIGURAÇÃO DA LUZ .................................................................................................... 10
2.5.
Técnica Rim Light .................................................................................................................. 11
2.6.
Rim Light eM videojOgos ....................................................................................................... 13
3. CÂmaras E camadas .......................................................................................................................... 14
3.1.
propriedades das câmaras ..................................................................................................... 14
3.2.
posicionamento da câmara .................................................................................................... 14
3.3.
camadas ................................................................................................................................ 16
3.4.
Câmaras avançadas .............................................................................................................. 16
3.5.
GameObject E componentes ................................................................................................. 19
3.5.1.
Activar e desactivar GameObject e componentes .......................................................... 19
3.5.2.
ativar e desativar GameObjects e componentes por código ........................................... 19
1. INSTALAÇÃO E INTERFACE DO UNITY
1.1. INSTALAÇÃO DO UNITY
Para instalar a aplicação, devemos dirigir-nos à página web do Unity (o link está disponível na agenda do
Campus) e carregar em “Get Unity”.
Na próxima página, ser-nos-á perguntado que plano queremos escolher. Selecionar o plano pessoal
(“Personal”).
No próximo ecrã, em vez de aceitar os termos e descarregar o instalador, vamos para a parte de baixo da
página e carregar no texto que diz “Older versions of Unity”, para garantir que utilizamos a mesma versão
do Unity.
Na página seguinte, carregamos no botão que diz “Unity 2017.x”:
E procuramos a versão Unity 2017.3.0 e carregamos no botão “Downloads (Win)” ou “Downloads (Mac)”,
conforme o nosso sistema operativo, e a seguir em “Unity Installer”.
Quanto o download finalizar, fazemos o duplo-clique para abrir o instalador.
Quando este iniciar, selecionamos “Next”. Na página seguinte, aceitamos os termos e as condições e
voltamos a pressionar “Next”.
A seguir aparece uma lista com os componentes que desejamos instalar. Aqui deixamos ativados os
componentes que vêm pré-selecionados e podemos ativar as plataformas com as quais desejamos
trabalhar (por exemplo, se queremos trabalhar para dispositivos móveis, Linux, Mac ou outros sistemas).
Confirme também que o “Microsoft Visual Studio Community 2017” está selecionado.
Depois de terminar de selecionar os componentes que deseja, clique em "Next", escolha o diretório onde
quer instalar o Unity e clique novamente em "Next".
No próximo ecrã vai pedir-nos para aceitar a instalação do “Microsoft Visual Studio 2017”. Este é o
programa com o qual iremos criar os scripts para os nossos jogos e será instalado com o Unity e os demais
componentes.
Após aceitar iniciar a instalação, o instalador começará a descarregar e instalar todos os componentes
selecionados. Durante este processo, vão ser abertas e fechadas várias janelas automaticamente. Isto faz
parte do processo, e temos de esperar que este seja todo concluído para podermos prosseguir.
O Unity tem dois modos de funcionamento:
◼
Modo “Edit”:
Neste modo pode editar tudo o que queira, posicionar objetos, adicionar componentes, etc. Este
é o modo sobre o qual criará o jogo.
◼
Modo “Play”:
No modo “Play”, poderá testar o seu jogo. É importante saber que todas as alterações efetuadas
no modo “Play” serão perdidas quando se sai deste modo.
1.2. TRANSFORMAÇÕES
Os videojogos baseiam o seu mundo num sistema de eixos cartesianos. Num mundo 2D temos os eixos X
e Y, representados por (x,y), enquanto num mundo 3D temos 3 eixos (X, Y, Z), representados por (x,y,z).
Por exemplo, um ponto que está a situado a 4 unidades no eixo X, 3 unidades no eixo Y, e 2 unidades no
eixo Z seria representado da seguinte maneira (4,3,2).
Sempre que se posicione um objeto num espaço 3D, estar-se-á a posicioná-lo num ponto (denominado
pivot), em que o eixo X servirá para posicioná-lo lateralmente, o eixo Y serve para lhe dar uma altura e em
que o eixo Z será a sua profundidade.
2. ILUMINAÇÃO
Para podermos entender melhor como incluir luz nos nossos jogos, temos primeiro de perceber como esta
funciona na vida real, já que nos videojogos se utilizam os mesmos conceitos para iluminar os espaços 3D
(com alguns truques à mistura).
A luz é composta de partículas denominadas fotões. Estes fotões são criados no ponto onde a luz é emitida
e viajam em linha reta, fazendo tabelas e ricochetes quando encontram obstáculos, até que chegam aos
nossos olhos (ou a uma camara). A luz pode ser direta ou indireta.
2.1. LUZ DIRETA
Falamos de luz direta quando os fotões atingem diretamente a superfície iluminada, isto é, quando não há
obstáculos entre o emissor de luz e a superfície. Por exemplo, quando estamos numa casa e nos pomos à
frente de uma janela aberta, a luz do Sol incide diretamente no nosso corpo e ilumina-nos.
2.2. LUZ INDIRETA
É a luz que recebemos após interações com outros objetos. Por exemplo, se nos colocamos num canto de
uma casa, longe dos raios diretos da luz, nós somos iluminados por fotões que fizeram ricochete no chão,
nas paredes e nos restantes objetos presentes.
Figura 1. Nesta imagem pode ver como os raios vermelhos atuam como luz direta sobre a casa, enquanto o raio verde é luz
indireta (primeiro atinge as nuvens, e depois atinge a casa)
No âmbito dos videojogos, podemos ver um exemplo se como se desenham os dois tipos de luz com a
seguinte imagem.
Figura 2. Nesta imagem podemos ver os diferentes tipos de luz. Na imagem da esquerda, podemos ver uma cena sem
iluminação, no meio a cena está somente iluminada por luz direta (o quadrado no teto é uma janela para o exterior), e na direita
podemos ver a iluminação direta e a indireta.
2.3. TIPOS DE LUZ
No Unity, podemos ter três tipos de luzes diretas: omnidirecional, pontual e foco. Nas imagens abaixo,
vamos manter a mesma luz, mudando apenas o tipo. A cor da luz é um roxo intenso, para se notar bem.
2.3.1. DIRECIONAL
Esta é normalmente usada como luz ambiente, a luz que todos os objetos recebem numa certa direção,
independentemente da sua posição. Serve essencialmente para iluminar toda a cena.
Podemos pensar nela como o Sol da nossa cena. No mundo real, a luz do Sol seria uma luz direcional.
Figura 3
2.3.2. FOCO
Este tipo de luz irradia ã partir de uma direção, numa certa direção e com uma certa abertura. O exemplo
mais parecido com o mundo real seria um foco de luz de um candeeiro de secretária apontado a uma mesa,
ou uma lanterna.
Figura 4
2.3.3. OMNIDIRECIONAL
Este tipo de luz irradia em todas as direções (360 graus). Imagine uma lâmpada ou uma vela. Este tipo de
luz também é conhecido como luz pontual.
Figura 5
2.4. CONFIGURAÇÃO DA LUZ
Além da configuração das luzes individuais, a iluminação da cena é também feita com recurso ao “Lighting
Settings”, onde se podem configurar vários elementos:
Enviroment: parâmetros da iluminação dada pelo céu da nossa cena (skybox)
◼ Realtime Lighting: aqui se podem ajustar parâmetros relativos à iluminação em tempo real,
mudando várias propriedades.
◼ Mixed Lighting: Usando esta opção, pode iluminar-se a cena com uma mistura de luzes
dinâmicas em tempo-real, e luzes estáticas pré-cozinhas (baked)
◼ Lightmapping Setting: Esta secção utiliza-se para configurar as opções relativas à luz précozinhada.
◼
Figura 6
2.5. TÉCNICA RIM LIGHT
Quando queremos iluminar exteriores, temos várias possibilidades. Uma das técnicas mais usadas é usar
uma rim light.
No que consiste a luz Rim Light?
Esta técnica consiste em complementar a luz principal direcional com outra luz direcional, com outra direção
(normalmente a mais de 90 graus de diferença da principal), com uma cor subtilmente diferente (a maior
parte das vezes, mais azulada), e com muito menos potencia.
Esta técnica é usada muitas vezes em fotografia, mas também o é no mundo dos videojogos.
Para compreender melhor, vamos ver duas fotografias:
Figura 7
Na primeira, podes ver que só temos uma luz, que vem do lado esquerdo, e por isso só vemos a parte da
cara que está virada para esta. Se quiséssemos ver toda a silhueta, precisávamos de uma rim light, como
se vê na fotografia abaixo.
Figura 8
Nesta imagem, além da luz principal que vem do lado direito, temos uma luz secundárias mais ténue que
vem do lado esquerdo, que complementa a luz primária e torna mais fácil ver a silhueta.
2.6. RIM LIGHT EM VIDEOJOGOS
Criar o efeito de rim light nos videojogos é relativamente simples. Assim que tenhamos uma luz direcional,
podemos apenas duplicar essa luz, inverter o ângulo, e baixar um bocado a intensidade.
Figura 9. Nave sem rim light
Figura 10. Nave com rim light aplicada
3. CÂMARAS E CAMADAS
3.1. PROPRIEDADES DAS CÂMARAS
As câmaras nos videojogos funcionam de forma muito parecida com câmaras na vida real, já que os
movimentos que realizam, a forma de apontar para conseguir um bom efeito e as técnicas são iguais.
No entanto, no mundo virtual podemos controlar algumas propriedades extra que não têm correspondência
na vida real, como o que vemos quando não há objetos para ver (o fundo ou background), a que distância
podemos ver, se queremos usar uma câmara com perspetiva ou não (câmara ortográfica)
Todas as câmaras têm umas propriedades que podemos alterar para conseguir diferentes efeitos, tais como
o campo de visão (field of view), que nos permite ver quanto do lado em relação à câmara é que
conseguimos visualizar.
3.2. POSICIONAMENTO DA CÂMARA
Para posicionar uma câmara, é necessário primeiro criá-la.
Portanto, para criar uma câmara em Unity é tão simples como ir à secção da hierarquia, clicar com o botão
direito e selecionar “Camera”.
Dependendo do jogo que quer desenvolver, as câmeras serão posicionadas de uma forma ou de outra.
Embora não seja particularmente complicado, é melhor vê-lo no vídeo que temos preparado.
3.3. CAMADAS
As camadas (layers) são uma forma de agrupar os GameObject em diferentes grupos. Isto permite-nos
especificar mais facilmente a outros componentes sobre que objetos temos de operar. Por exemplo, que
grupo queremos que seja visível com uma câmara em particular.
Outro exemplo é podermos especificar que objetos podem ser atingidos por balas, que tem como vantagem
melhorar a performance do nosso jogo.
3.4. CÂMARAS AVANÇADAS
Existem sistemas muito mais avançados de câmaras para videojogos; não é surpreendente por isso que o
Unity tenha acrescentado há pouco tempo um sistema denominado Cinemachine, que permite controlar
câmaras de forma mais complexa, acrescentando-lhes componentes de uso comum nos videojogos.
Este sistema é neste momento gratuito, tendo começado a sua vida como o trabalho de uma só pessoa
que o vendia na Asset Store.
Este sistema tem uma flexibilidade incrível quando se trata de manipular câmaras. O maior inconveniente
é que foi desenhado para alguém que esteja familiarizado com a terminologia do cinema e compreenda as
técnicas que estão por detrás de certos parâmetros das câmaras.
Mesmo assim, manuseando o sistema permite-lhe gradualmente aprender como ele se comporta e fazer
algumas transições de câmara surpreendentes.
Agora que já terá visto os vídeos, vamos ver por alto algumas das câmaras que utilizam no CineMachine,
caso queira experimentar utilizá-las um pouco.
O primeiro passo é ir à Asset Store e descarregar o CineMachine para o projeto. Depois de descarregado,
importamos o pacote para o projeto.
Uma vez importado, temos um novo menu na barra superior do Unity, denominado “Cinemachine” :
Vamos ver as diferentes câmaras que se podem criar:
◼
Virtual Camera:
Esta é a opção por omissão, esta é uma câmara melhorada que nos dá mais flexibilidade que a
câmara normal do Unity. Podemos designar-lhe um alvo (target) para a câmara seguir, um ponto
para focar, entre muitas outras opções.
Sever para termos uma imagem definida (como uma câmara a seguir um carro em movimento).
◼
FreeLook Camera:
Usamos esta opção quando queremos criar uma câmara na terceira pessoa. Desde modo, sem
necessidade de estar a criar código específico, podemos alcançar uma câmara totalmente
funcional para um jogo na terceira-pessoa.
◼
State-driven Camera:
Este tipo de câmara utiliza-se em jogos como God of War, onde temos várias câmaras
apontadas para sítios diferentes, e uma função de estado do jogo que permite dizer ao
sistema qual é a câmara que deve estar ativa num certo instante.
◼
ClearShot Virtual Camera:
Este é o tipo de câmara que utilizamos para conseguir uma imagem não obstruída de um
certo objeto. A câmara irá mover-se de forma a garantir que o objeto esteja sempre visível.
Por exemplo, é o ideal para jogos onde queremos que o jogador esteja sempre visível,
apesar dos obstáculos, paredes, etc.
◼
Dolly Camera with track:
Este tipo de câmara está constrangida a um caminho definido.
É necessário definir um caminho que a câmara irá seguir à velocidade que nós queremos,
animando ou alterando por código um valor.
Podemos ver este tipo de câmaras no futebol, ou no cinema quando se a câmara segue
uma personagem, veículo ou outro objeto.
◼
Group Target camera:
Este tipo de câmara utiliza-se quando queremos que vários elementos da cena estejam
sempre dentro do campo de visão da câmara.
Por exemplo, quando temos um grupo de três personagens e queremos que estejam
sempre visíveis. A câmara vai mover-se e alterará os seus parâmetros de forma a que
estes estejam sempre visíveis.
3.5. GAMEOBJECT E COMPONENTES
No Unity, o objeto básico com o qual se trabalha chama-se GameObject. São nestes objetos em que se
poderá acrescentar os componentes com os quais se construirá todos os elementos do jogo.
3.5.1. ACTIVAR E DESACTIVAR GAMEOBJECT E COMPONENTES
Ativar e desativar GameObjects ou componentes, faz com que estes sejam ativos ou inativos durante a
execução do jogo. Ou seja, se você desativar um objeto, ele não aparecerá no jogo até que reativá-lo e a
mesma coisa acontece com os componentes.
Para ativar um GameObject ou um componente, simplesmente devemos marcar ou desmarcar a checkbox
(caixa de seleção) do mesmo.
Figura 1. O quadrado vermelho corresponde à ativação/desativação do GameObject, enquanto o quadrado verde corresponde à
ativação/desativação do componente.
3.5.2.
ATIVAR E DESATIVAR GAMEOBJECTS E COMPONENTES POR
CÓDIGO
Pouco a pouco vamos vendo como realizar as operações por código. Não se preocupe se não entender
completamento, pois pouco a pouco irá fortalecendo os conceitos básicos da programação.
GameObjects
Para ativar e desativar os GameObjects por código, simplesmente tem de se executar a seguinte instrução.
◼
Para ativar:
gameObject.SetActive(true);
Figura 2. Exemplo de ativação de um GameObject ao iniciar o jogo
◼
Para desativar:
gameObject.SetActive(false);
Figura 3. Exemplo de desativação de um GameObject no inicio do jogo
Se o script for adicionado a um GameObject, não é necessário referir-se ao próprio GameObject; usando a
palavra gameObject, ele automaticamente refere-se a si mesmo.
Componentes
Para ativar e desativar os componentes por código, simplesmente executa-se a seguinte instrução:
◼
Para ativar:
componente.enable = true;
Figura 4. Exemplo de ativação de um componente de tipo Renderer quando se inicia o jogo
◼
Para desativar:
componente.enable = false;
Figura 5. Exemplo de desativação de um componente Renderer quando inicia o jogo
Download