Bruno C. de Paula
Tópicos Especiais I: Engines
Criação de ambientes com o
1º Semestre 2010 > PUCPR > Pós Jogos
Resumo
Vamos conhecer as funcionalidades
para criação de ambientes usando
a engine Unity 3D;
Além disso, vamos discutir sobre
alguns conceitos relacionados a
ambientes que são comuns a
qualquer engine gráfica 3D;
Nosso foco será a criação de
terrenos.
Criação de níveis e ambientes
Abordagens
 Importação
de modelo feito em outro
programa;
 Criação de terreno dentro do próprio
Unity 3D;
05/11/2015
3
Ambientes são construídos a partir
de modelos 3D
 Modelos
05/11/2015
3D possuem: meshes (malhas de
polígonos), texturas, animações e bones
(esqueleto);
 O Unity 3D trabalha com arquivos nos
formatos:
Autodesk FBX;
DAE / Collada;
3DS (só meshes);
OBJ (só meshes);
DXF (só meshes).
4
05/11/2015
Modelos podem ser importados a partir
de ferramentas externas de uso geral
 Maya
(Autodesk –
comercial – US$ 3000);
 3D Studio Max (Autodesk
– comercial – US$ 3000);
 Cheetah 3D (Martin
Wengenmayer – comercial
– US$ 149,00);
 Cinema 4D (GmbH –
comercial – ~ US$
700,00);
5
05/11/2015
Modelos podem ser importados a partir
de ferramentas externas de uso geral
 Blender
(Blender Foundation – Free);
 Carrara (Daz 3D – US$ 270,00);
 Lightwave (NewTek – US$ 995,00);
 Autodesk XSI (Autodesk – US$ 2995,00);
 SketchUp Pro (Google – US$ 495,00 –
Suporte parcial!);
 Mais informações e passo a passo;
6
05/11/2015
Terrenos podem ser importados a partir
de ferramentas externas específicas
 Ferramentas
não são exclusivas para o
Unity !
 Necessário uso de scripts para algumas
importações;
 Verifique o suporte antes de usar
extensivamente!
 L3DT (Bundysoft – free/US$ 150,00);
 Terragen (Planetside – free/US$ 299,00);
 World Machine (Stephen Schmitt –
free/US$189,00);
7
05/11/2015
Terrenos podem ser importados a partir
de ferramentas externas específicas
 Fractscape
(Starscape – US$ 20,00);
 Freeworld 3D (Soconne – US$ 30,00);
 EarthSculptor (Ernest Szoka – US$ 59,00);
 Google Earth (Como assim?!)(Google – free);
 Outros (não testado): Grome, Picogen.
8
05/11/2015
Importando modelos FBX
 Documentação;
 1)
Arrastar o arquivo FBX para dentro da
Project View;
 2) Acertar o fator de escala no componente
FBXImporter (Scale Factor);
 3) Para que os seus objetos colidam com o
modelo, habilite a opção Generate Colliders;
9
05/11/2015
Importando pacotes do Unity
 Download
de pacotes de recursos;
 1) Selecionar a opção Assets > Import
Package;
 2) Escolher um arquivo com a extensão
.unitypackage;
10
05/11/2015
Navegação básica em um nível
 Usar
o Prefab First Person Controller;
 Implementa controle estilo FPS;
 Importante: eliminar o Main Camera
anterior;
11
05/11/2015
Navegação básica em um nível
 First
*
Person Controller é formado pelos
componentes:
FPSWalker: implementa movimentação e
pulo;
Character Controller: controle do
personagem não responde
realisticamente à física (estilo Doom);
Mouse Look: câmera a partir do
movimento do mouse;
12
05/11/2015
Criação de Terreno
 Terrain > Create
Terrain;
 Terrenos não possuem
rotação;
 Terrenos podem ser
enormes!
 Navegue por um
terreno usando o
atalho F;
13
05/11/2015
Criação de Terreno
 Terrenos
são formados por diversas
camadas: heightmap (altura), splatmap
(posicionamento das texturas), detail
resolution map (árvores e detalhes).
 Alteração de parâmetros em Terrain > Set
Resolution;
 Unity importa e exporta height map
(Menu Terrain);
 Terreno pode ser nivelado em Terrain >
Flatten Heightmap.
14
05/11/2015
Terrain > Set Resolution
 Configurações
para o
Heightmap;
 Heightmap é uma
imagem usada para
armazenar valores de
elevação;
 Preto -> Altura Mínima;
 Branco -> Altura Máxima;
15
05/11/2015
Terrain > Set Resolution
 Configurações
para o Heightmap;
 Terrain Width, Height e Lenght: Largura /
Altura / Comprimento do terreno (metros);
 Heightmap Resolution: Resolução do
heightmap usado para armazenar a topologia.
Valores de 2^n + 1;
 Detail Resolution: Resolução do mapa para
armazenar árvores, rochas, etc. Quanto
maior, mais preciso o posicionamento;
16
05/11/2015
Terrain > Set Resolution
 Control
Texture Resolution: Resolução do
mapa usado para posicionar as texturas
pintadas no terreno (Splat map), controla o
detalhamento das texturas;
 Base Texture Resolution: Resolução da
textura usada em lugar do splat map depois
de uma certa distância;
17
Editor de Terrenos
Terrain Script
 Ferramentas
de edição de terrenos.
05/11/2015
18
Editor de Terrenos
Terrain Script
 Raise
05/11/2015
Height (SHIFT+Q): Subir e Baixar altura;
 Paint Height (SHIFT + W): Pintar altura;
 Smooth Height (SHIFT+E): Suavizar altura;
 Paint Texture (SHIFT+R): Aplicar textura;
 Place Trees (SHIFT+T): Posicionar árvores;
 Paint Details (SHIFT + Y): Aplicar detalhes
(grama, rochas);
 Terrain Settings: Configurações do terreno;
19
Raise Height
(SHIFT+Q)
Subir e baixar altura
 Escolher
 Brush
o pincel;
Size: tamanho do pincel;
 Opacity: efetividade da deformação;
05/11/2015
20
Paint height
(SHIFT + W)
“Pintar” altura
 Similar
ao anterior;
 Com configuração
de altura
máxima;
 Quando chega na
altura indicada pára
de crescer;
 Útil para criação
de platôs;
05/11/2015
21
Smooth Height
(SHIFT + E)
Suavizar altura
 Suaviza
diferenças de
altura;
 Remove
quedas
bruscas;
05/11/2015
22
Paint Texture
(SHIFT + R)
Aplicar textura
 Para
05/11/2015
usar a textura é necessário atribuir a
textura ao terreno e misturá-las;
 Armazenamento das texturas é feito em um
splash map;
23
Paint Texture
(SHIFT + R)
Aplicar textura
 Primeira
textura é usada
como base do terreno;
05/11/2015
24
Place Trees
(SHIFT+T)
Posicionar árvores
 Árvores
próximas da câmera:
Renderização em 3D;
 Árvores distantes da câmera:
Billboard (2D);
Atualizados conforme a distância;
LOD (Level of Detail);
 Criação de milhares ao mesmo tempo:
Terrain > Mass Place Trees;
 Árvores não colidem por padrão;
05/11/2015
25
Place Trees
(SHIFT+T)
Posicionar árvores
 Bend
05/11/2015
Factor: fator de vento;
 Brush
Size: número de árvores por clique;
 Tree Density: proximidade das árvores;
 Color Variation: cor aleatória aplicada às
árvores:
 Tree Width/Height: Tamanho das árvores;
 Variation: Variação;
26
Paint Details
(SHIFT + Y)
Aplicar detalhes
 Aplica
objetos de detalhe como grama,
plantas, rochas, etc;
 Na prática, é uma textura 2D com
transparência ou 3D low poly.
05/11/2015
27
Paint Details
(SHIFT + Y)
Aplicar detalhes - Grama
Detail Texture: textura usada para a grama;
 Min/ Max Width / Height: largura / altura
mínima / máxima (metros);
 Noise Spread: fator de agrupamento;
 Healty Color: cor predominante do centro da
grama;
 Dry Color: cor predominante nos cantos;
 Grayscale Lightning: desabilita iluminação da
grama por luz colorida;
 Lightmap Factor: influência do lightmap;
 Billboard: grama vira em direção à câmera.

05/11/2015
28
Paint Details
(SHIFT + Y)
Aplicar detalhes - Outros
 Modelos
3D de baixa definição (low poly);
 Alta repetição;
05/11/2015
29
Terrain Settings
Configurações do terreno
 Configurações
de
performance:
LOD;
Vento;
Lightmapping.
05/11/2015
30
Lightmapping
Mapa de luz e sombra
05/11/2015
 Estrutura
de dados que armazena o brilho
das superfícies;
 Pré-computados e usados para objetos
estáticos – melhora performance;
 Pioneiro: Quake.
Sem lightmapping
Com lightmapping
31
05/11/2015
Lightmap no Unit
 Menu
Terrain > Create Lightmap;
 Antes de criar precisa ter pelo menos uma luz
direcional (Directional Light);
 Esta luz funciona como se fosse o sol.
32
05/11/2015
Detalhes de criação de ambiente
A
propriedade Flare da luz direcional dá um
aspecto de luz solar;
 A propriedade Background Color da câmera
indica a cor do céu sem detalhamento;
33
Detalhes de criação de ambiente
Skybox
 Em
Edit > Render
Setting há
configuração do céu
aplicando uma
textura (Skybox
material) e outras
configurações (fog);
 Exemplos de
skyboxes;
05/11/2015
*
34
Detalhes de criação de ambiente
Skybox
 Para
criar um novo
skybox, vá em Assets
> Material e crie um
material com o Shader
Render FX/Skybox;
 Observe que um
skybox é um cubo!
05/11/2015
35
Detalhes de criação de ambiente
Água
 Há
05/11/2015
dois prefabs na pasta Standard Assets
> Water para implementar efeito de água:
Daylight Simple Water;
Nighttime Simple Water;
36
05/11/2015
Mais recursos?
 Terrain
Assets: coleção de plantas, árvores e
texturas;
 Terrain Toolkit: ferramentas para a criação de
terrenos realistas;
 Tom’s Terrain Tools: Scrips de importação;
37
Download

Tópicos Especiais I: Engines