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