Tópicos Especiais I: Engines Criação de ambientes com o 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula
Tópicos Especiais I: EnginesCriação de ambientes com o
1º Semestre 2010 > PUCPR > Pós Jogos
Bruno C. de PaulaBruno C. de Paula
ResumoVamos 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 ambientesAbordagens Importação de modelo feito em outro
programa;Criação de terreno dentro do próprio
Unity 3D;
311/04/23
Ambientes são construídos a partir de modelos 3DModelos 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).
411/04/23
Modelos podem ser importados a partir de ferramentas externas de uso geralMaya (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);
511/04/23
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;
611/04/23
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);
711/04/23
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.
811/04/23
Importando modelos FBXDocumentaçã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;
911/04/23
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;
1011/04/23
Navegação básica em um nível
Usar o Prefab First Person Controller; Implementa controle estilo FPS; Importante: eliminar o Main Camera
anterior;
1111/04/23
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;
1211/04/23
*
Criação de TerrenoTerrain > Create
Terrain;Terrenos não
possuem rotação;Terrenos podem ser
enormes!Navegue por um
terreno usando o atalho F;
1311/04/23
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.
1411/04/23
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;
1511/04/23
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;
1611/04/23
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;
1711/04/23
Editor de TerrenosTerrain ScriptFerramentas de edição de terrenos.
1811/04/23
Editor de TerrenosTerrain ScriptRaise 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;
1911/04/23
Raise Height (SHIFT+Q)Subir e baixar alturaEscolher o pincel;
Brush Size: tamanho do pincel;Opacity: efetividade da deformação;
2011/04/23
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;
2111/04/23
Smooth Height(SHIFT + E)Suavizar altura
Suaviza diferenças de altura;
Remove quedas bruscas;
2211/04/23
Paint Texture(SHIFT + R)Aplicar textura
Para usar a textura é necessário atribuir a textura ao terreno e misturá-las;
Armazenamento das texturas é feito em um splash map;
2311/04/23
Paint Texture(SHIFT + R)Aplicar texturaPrimeira textura é usada
como base do terreno;
2411/04/23
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;
2511/04/23
Place Trees(SHIFT+T)Posicionar árvores
Bend 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;
2611/04/23
Paint Details(SHIFT + Y)Aplicar detalhesAplica objetos de detalhe como grama,
plantas, rochas, etc;Na prática, é uma textura 2D com
transparência ou 3D low poly.
2711/04/23
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.
2811/04/23
Paint Details(SHIFT + Y)Aplicar detalhes - OutrosModelos 3D de baixa definição (low
poly);Alta repetição;
2911/04/23
Terrain SettingsConfigurações do terrenoConfigurações
de performance:LOD;Vento;Lightmapping
.
3011/04/23
LightmappingMapa de luz e sombraEstrutura de dados que armazena o
brilho das superfícies;Pré-computados e usados para
objetos estáticos – melhora performance;
Pioneiro: Quake.
3111/04/23
Sem lightmapping Com lightmapping
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.
3211/04/23
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;
3311/04/23
Detalhes de criação de ambienteSkyboxEm Edit > Render
Setting há configuração do céu aplicando uma textura (Skybox material) e outras configurações (fog);
Exemplos de skyboxes;
3411/04/23
*
Detalhes de criação de ambienteSkyboxPara criar um novo
skybox, vá em Assets > Material e crie um material com o Shader Render FX/Skybox;
Observe que um skybox é um cubo!
3511/04/23
Detalhes de criação de ambienteÁgua Há dois prefabs na pasta Standard
Assets > Water para implementar efeito de água:Daylight Simple Water;Nighttime Simple Water;
3611/04/23
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;
3711/04/23