Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Game Development
  2. Unity

Ferramentas de terreno da Unity

by
Difficulty:BeginnerLength:LongLanguages:

Portuguese (Português) translation by Jonathan Ramos (you can also view the original English article)

Final product image
What You'll Be Creating

Unity é um motor de jogo multi plataforma desenvolvido pela Unity Technologies e é usado para criar jogos e aplicações para uma multiplicidade de dispositivos (PC, consoles, dispositivos móveis e até mesmo sites). As suas principais vantagens são a sua robustez, a portabilidade e suporte a várias APIs conhecidas como Direct3D, OpenGL, OpenGL ES e a recente Vulkan.

Devido as características acima mencionadas, a Unity tornou-se cada vez mais popular entre empresas de desenvolvimento AAA e programadores de jogos iniciantes.

Unity oferece suporte a várias tecnologias e componentes. Um dos componentes-chave é o sistema de terreno. O sistema de terreno permite que você crie vastas paisagens para seus jogos ou aplicativos. Você pode usar uma seleção de ferramentas disponíveis para criar terrenos de forma fácil e rápida.

Este tutorial irá focar na explicação de como ferramentas de terreno funcionam e como usá-las para criar um ambiente vasto e rico.

Pré-requisitos

Primeiro, certifique-se que você tem a versão mais recente da Unity. Neste tutorial vamos usar a versão 5.6. Você pode encontrar pequenas diferenças seguindo o tutorial ao usar os componentes de física.

Para este tutorial, você não usará qualquer arquivo inicial para começar. O objetivo é criar um novo projeto e executar o tutorial a partir dele.

As ferramentas de terreno

O primeiro passo é criar um novo projeto Unity. Agora adicione uma nova cena (File > New Scene). O novo cenário foi criado com dois objetos, a câmera principal (Main Camera) e uma luz direcional (Direction Light). A Unity 5 irá automaticamente adicionar um skybox à cena.

Agora, a fim de adicionar um objeto de terreno, vá ao menu GameObject e selecione o 3D Object > Terrain. Isto irá adicionar uma superfície plana (chamada Terrain) em sua cena. Este plano é onde vamos criar o nível terreno.

Terrain Tools - New Terrain

Se você verificar o diretório Assets (parte inferior da Unity), você verá que um arquivo novo New Terrain foi criado.

Selecione o terreno e veja a guia Inpector. Você verá que o terreno tem três componentes: Transform, o script Terrain e o componente Terrain Collider.

Terrain Tools - Terrain Inspector

O componente de terreno fornece as ferramentas necessárias para editar o seu terreno. Todas as ferramentas na barra de ferramentas, com exceção da ferramenta de colocação de árvore e o painel de configurações, fornecem um conjunto de "pincéis" e as configurações de tamanho do pincel e opacidade, assim como uma ferramenta de pintura de um editor de imagem normal. Isso permite você esculpir o seu terreno de forma semelhante a uma ferramenta de pintura.

Se você selecionar qualquer pincel sob o componente Terrain e colocar o mouse sobre o terreno, você verá uma área azul projetada no terreno. Isso permite que você conheça a área do terreno que será afetada pelo pincel.

Como você já pode ter percebido, o terreno é muito grande. Para navegar através da cena, você pode usar o mouse e o teclado. Dentro da guia Scene, pressione e segure o botão direito do mouse (o cursor deve mudar para um olho).

Enquanto segura o botão do mouse, você:

  • pode alterar o ângulo de sua visão, movendo o mouse;
  • usar as teclas W, S, A, D as teclas para mover-se ao redor da cena 3D.

Antes de começar a explorar as ferramentas de terreno, vamos dar uma olhada em Propriedades do Terrain. O último botão no componente do terreno (dentro do Inspector) irá mostrar-lhe os parâmetros base do terreno.

Terrain Tools - Terrain Properties

As propriedades são divididas em seções:

  • Base Terrain
  • Tree & Detail Objects
  • Wind Settings for Grass
  • Resolution
  • Heightmap

Dentro da primeira seção Base Terrain, você encontrará várias propriedades e parâmetros.

A opção Draw alterna a renderização do terreno entre ligado e desligado. Pixel Error representa o valor preciso do mapeamento entre os mapas de terreno (por exemplo texturas, heightmaps, e terreno gerados). Valores mais altos representam menor precisão, e valores mais baixos irão resultar em sobrecarga de processamento. É sua responsabilidade equilibrar esse valor para criar um ambiente agradável e rico.

O Base Map dist. é a distância máxima na qual as texturas do terreno serão exibidas em resolução máxima. Você pode definir ou desativar sombras selecionando Cast Shadows.

A seguir, temos o Material. Aqui, você define o material que vai ser usado para processar o terreno. Isto irá afetar como os canais de cor de uma textura de terreno serão interpretados. Você pode selecionar:

  • Built In Standard: representa o material renderizado baseado em fisica que foi introduzido na Unity 5. Se você selecionar essa opção, para cada camada, você pode usar uma textura para albedo e suavidade, uma textura para o normalmap e um valor escalar para ajustar o metalness. Tenha em mente que se "Overwrite Smoothness" estiver marcado em vez da leitura de mapas de textura, a suavidade do terreno inteiro será controlada apenas pelo valor Smoothness.
  • Built In Legacy Diffuse: representa o material embutido do terreno de versões anteriores da Unity (Unity 4 pra trás). Ele usa um modelo de iluminação de Lambert e tem suporte opcional para normalmap.
  • Built In Legacy Specular: usa o modelo de iluminação de -Blinn-Phong (por favor consulte o tutorial anterior sobre relâmpagos com Unity 5) e tem suporte opcional a normalmap. Esta opção também permite que você especifique a cor e o brilho do terreno.
  • Custom usa um material customizado da sua escolha para renderizar o terreno. Este material deve ser um shader que é orientado para renderização de terreno. Esta é uma opção que eu recomendo apenas para usuários avançados. No entanto, se você quiser experimentá-lo, dê uma olhada no código-fonte de alguns shaders de terreno e faça as modificações em cima deles.

Você também pode configurar detectores de reflexo para alguns materiais, mas eles só serão usados quando você estiver usando um material interno padrão ou um material personalizado, que oferece suporte a renderização com reflexão. As opções para detectores de reflexo são:

  • Off: detectores de reflexo são desativados, e só o skybox será usado para reflexo.
  • Blend Probes: detectores de reflexo são ativads. A mistura ocorre somente entre os detectores. O reflexo padrão será usado não se houver nenhuma detector nas proximidades, mas não haverá nenhuma mistura entre ele e o reflexo padrão.
  • Blend Probes And Skybox: detectores de reflexo são ativados. A mistura ocorre entre detectores ou detectores + reflexo padrão.
  • Simple: destes de reflexo são ativados, mas nenhuma mistura ocorrerá entre os detectores quando existem dois volumes sobrepostos.

Por fim, o último parâmetro nesta seção é Thickness. Esse valor especifica quanto o volume de colisão do terreno deve se estender ao longo do eixo y negativo. Isso considera que o objeto colide com o terreno da superfície até uma profundidade igual à espessura. Isso ajuda a impedir que objetos que movem-se em alta velocidade penetrem o terreno, sem que precisemos usar um recurso pesado de detecção contínua de colisão.

A próxima seção de configurações é Tree & Detail Objects.

A primeira opção é Draw. Aqui, você pode ligar ou desligar os detalhes. Basicamente, isso diz a Unity se você quer que árvores e grama sejam renderizados ou não. Em seguida, você tem Bake Light Probes para as árvores. Se você habilitar esta opção, a Unity criará sondas de luz na posição de cada árvore. As sondas serão então aplicadas no processamento das árvores. Se você desabilitar esta opção, árvores ainda serão afetadas pelas sondas de luz do grupo. Tome nota que esta opção está disponível apenas para as árvores que têm essa opção habilitada em seu Prefab.

A opção Detail Distance é a distância entre a câmera e os detalhes que serão cortados. Detail Density representa o número de detalhes do objeto em uma determinada unidade de área. Tree Distance representa a distância entre a câmera e os detalhes que serão cortados das árvores. O Billboard Start é a distância da câmera no qual objetos 3D árvore serão substituídos por imagens. O Fade Length representa a distância na qual árvores serão trocadas de objetos 3D para imagem. Finalmente, o Max Mesh Trees é o número máximo de árvores visíveis que serão representados como objetos 3D sólidos.

Seguindo em frente, você verá a seção Wind Settings for Grass.

Speed define a velocidade do vento que sopra na grama. Size representa o tamanho da ondulação em gramados. Bendings que você defina o grau que a grama dobra com a ação do vento. Grass Tint permite selecionar a tonalidade de cor geral aplicada para objetos grama.

Dentro da seção Resolution você encontrará várias propriedades de resolução, chamadas Terrain WidthLength, e Height. O significado dos três é óbvio. O Heightmap Resolution é a resolução de pixel do height map do terreno. Ele deve ser uma potência de 2 mais 1, por exemplo, 513, onde 512 é uma potência de 2, e você soma 1.

Detail Resolution permite que você defina a resolução do mapa. Resoluções mais altas lhe dará uma grama menor e mais detalhada. Já Detail Resolution per Patch define o comprimento e a largura do quadrado renderizado em uma única chamada. O Control Texture Resolution é a resolução do splat map que a mistura de texturas diferentes no terreno. Finalmente, o Base Texture Resolution define a resolução da textura composta usada no terreno quando visto de uma distância superior à distância do mapa base.

A última seção é Heightmap. Aqui você pode importar um arquivo heightmap cru ou exportar seu terreno atual em um arquivo heightmap. Isso pode ser muito útil se você quiser usar o software de terceiros para interagir com seu aplicativo ou jogo.

Ferramentas de altura

Antes de passar para as ferramentas de altura, lembre-se de que você deve definir as configurações de resolução primeiro. Caso contrário, se você tentar mudá-las mais tarde, toda a escultura do terreno será perdida.

As três primeiras ferramentas no barra Terrain Inpector são as ferramentas de altura. Estas ferramentas são usadas para pintar as alterações de altura sobre o terreno.

Height Tools - Terrain Options

Elas fornecem um conjunto de "pincéis" com as configurações Brush Size e Opacity; estas ferramentas são muito semelhantes às ferramentas de pintura de qualquer editor de imagens. Isso permite que você pinte detalhes no terreno, como se você estivesse pintando uma imagem.

Height Tools - Brushes options

Se você mover o cursor para a tab Scene, você verá uma área azul projetada no terreno. Isso permite que você saiba a área do terreno que será afetada.

Height Tools - Cursor on the floor

A primeira ferramenta é Raise / Lower Height. Ao pintar com esta ferramenta, a altura da área aumenta conforme você passa o mouse sobre ela. Se você segurar o mouse em uma área particular, a altura acumulará. Esse efeito pode ser visualizado na imagem a seguir.

Height Tools - Raising the terrain

Para baixar o terreno, segure a tecla Shift enquanto pinta com a ferramenta e isso irá diminuir a altura do seu terreno.

A segunda ferramenta no editor de terreno é a Paint Height. Essa ferramenta é usada para definir uma altura específica para uma área do terreno.

Height Tools - Selection of STAR brush

Funciona de forma semelhante à ferramenta Raise/Lower anterior, mas tem uma propriedade adicional para definir a altura da área. Você pode selecionar a altura desejada, alterando o valor do parâmetro Height. O botão Flatten próximo à propriedade Height vai nivelar o terreno inteiro para a altura escolhida.

Height Tools - Selection of STAR brush - Lowering terrain

Finalmente, a terceira ferramenta é a Smooth Height. Esta ferramenta não vai drasticamente aumentar ou diminuir a altura do terreno; em vez disso, vai suavisar a paisagem e reduzir o aparecimento de mudanças abruptas. Esta ferramenta é particularmente útil quando você pinta detalhes usando um dos pincéis mais fortes, como esses pincéis tendem a criar pedras afiadas e áreas irregulares na paisagem, você pode usar esta ferramenta para corrigir as áreas afetadas.

Height Tools - Soften tool

Agora é hora de levar algum tempo e criar seu próprio terreno esculpido. Tente usar as três ferramentas acima para criar um terreno da bela montanha.

Ferramenta de pintura de textura

Com o terreno esculpido, agora é hora de dar uma textura.

Paint Texture - Texturing the terrain

Antes de prosseguir, você precisa importar os assets de ambiente que estão disponíveis na Unity 5. Para fazer isso, selecione Assets > Import Package e selecione Environment. Clique em Import para importar todos os assets de ambiente.

Terrain Tools - Importing Assets

Unity permite que você pinte seus terrenos com texturas. Você pode pintar seu terreno com texturas diferentes em diferentes áreas. Por exemplo, você pode ter uma textura para as pedras, outra para a areia e outra para a grama. As texturas podem ser aplicadas com transparência diferente, o que significa que você pode ter transições suaves entre duas texturas. Para alcançar os melhores resultados, você deve pintar seu terreno com texturas sem emenda.

Como você deve ter notado na guia Inspector, a ferramenta Paint Texture tem vários pincéis e permite que você altere o tamanho do pincel, a opacidade e a força aplicada.

Paint Texture - Texturing with brushes

A primeira vez que você usar a Texture Tool, não haverá qualquer textura para escolher. A primeira coisa que você precisa fazer é adicionar uma nova textura em sua palheta. Para fazer isso, clique no botão Edit Textures e selecione Add Texture. Uma nova janela aparecerá.

Texture Tool - New Texture

Como você pode ver, nesta janela você pode selecionar a textura que você deseja usar e seu normal map, se você tiver um. Clique no quadrado sob a textura e selecione a sua. Uma janela irá aparecer para que você selecione a textura. Selecione a textura SandAlbedo e clique em Add.

Texture Tools - Selecting the SandAlbedo Texture

Seu terreno agora deve ter um aspecto de areia. Note que você sempre pode modificá-lo ou removê-lo na opção Edit Texture.

Paint Texture - Textures

A primeira textura que você criar deve ser sempre a textura de base para o terreno. A lista completa de texturas usadas neste exemplo são:

  1. SandAlbedo
  2. GrassHillAlbedo
  3. GrassRockAlbedo
  4. MudRockyAlbedo
  5. CliffAlbedo

Todos eles fazem parte dos assets de ambiente que foram importandos e podem ser encontrados da mesma forma que a textura SandAbedo. Vá em frente e importe todos.

Paint Texture - Multiple textures types

Quando você tiver todas as texturas importadas, é hora de texturizar seu terreno do jeito que achar melhor. Selecione uma textura e pinte o ambiente desejado. Este é um exemplo de um mapa de textura.

Paint Texture - Preliminary textured terrain

Quando você estiver satisfeito com o resultado, passe para a próxima seção.

Ferramenta de pintura de árvore

Agora que você tem seu terreno pintado, é hora de adicionar algumas árvores a ele. a Unity3D permite que você coloque árvores no seu terreno, da mesma forma que você pintou as texturas. Ao usar as configurações de imagem para árvores distantes, a Unity consegue manter um bom desempenho de processamento, permitindo que você tenha densas florestas com milhares de árvores.

Para começar a pintura de árvores, selecione seu terreno na guia Hierarchy, e na guia Inspector selecione o quinto botão.

Paint Tree - Paint tree tool

Semelhante às texturas, você também precisará adicionar as árvores. Clique em Edit Trees > Add Tree.

A Unity vai pedir um Prefab da árvore que você deseja usar. Clique sobre o pequeno círculo, e outra janela irá aparecer. Desta vez, ela vai mostrar todos os prefabs que você tem em seu projeto.

Trees - Select the prefab

Selecione o Prefab Broadleaf_desktop e clique em Add. Isto irá fechar a janela do prefab e adicionar a árvore selecionada para o projeto.

Paint Tree - Trees selection

Agora você pode selecionar a palmeira para pintá-la em seu terreno.

Nas configurações, você encontrará vários parâmetros que você pode ajustar enquanto você está colocando árvores em sua cena. Brush Size define a área que você vai pintar, enquanto Tree Density define o número de árvores que você terá na área pintada. Valores altos significaram mais árvores. Tree Height permite que você defina como muda a altura. Você pode configurá-lo como aleatório e usar um intervalo de valores, ou você pode definir um valor específico. Você pode bloquear largura e a altura das árvores, a fim de fazê-las ter a mesma proporção. Você também pode tornar a orientação da árvore aleatória usando a opção Random Tree Rotation. Além disso, a rotação da árvore pode ser definida como aleatória.

Dentro da seção de Lighting, você pode definir como os lightmaps são gerados para suas árvores.

Paint Tree - Baked lightmaps

Para pintar as árvores no terreno, mova o mouse sobre sua cena. A área azul representa o pincel. Com um tipo de árvore selecionado, pressione o botão esquerdo do mouse sobre o terreno e comece a criar as árvores.

Paint Tree - Example of trees on terrain

Para apagar as árvores de uma determinada área, segure a tecla Shift e use o botão esquerdo do mouse. Isto irá limpar todas as árvores na área do pincel. Se você só quer apagar um certo tipo de árvore, segure Control em vez de Shift. Isto irá limpar o tipo de árvore selecionada.

Você sempre pode alterar ou excluir um tipo de árvore selecionando e clicando no botão de edição. Para modificar uma árvore, clique em Edit e para excluí-la, clique em Remove.

Por fim, você vai notar que dentro do componente Terrain Collider, você tem um campo chamado Enable Tree Colliders. Ao selecionar esta opção, você está permitindo colisões entre as árvores e outros objetos do jogo.

Paint Tree - Terrain Collider

Se você não quer pintar as árvores manualmente, você pode usar o botão Mass Place Trees. Se você clicar ali, uma nova janela irá aparecer. A Unity vai pedir um número de árvores para criar. Digite o número de árvores e clique em Place. Unity irá então colocar aleatoriamente as árvores no seu terreno.

Paint Tree - Mass Place Trees

O próximo passo é ser criativo e preencher seu terreno com árvores. A fim de criar árvores diferentes, você também pode adicionar novas árvores como a Palm_Desktop, Broadleaf_Mobile e Conifer_Desktop. Para isso, use a opção Edit Trees no menu Trees (dentro do Inspector).

Você pode criar algo como a imagem a seguir (ou algo completamente diferente).

Paint Tree - Preliminary terrain with trees

Quando estiver pronto, você pode passar para o próximo passo.

Ferramenta de detalhes de pintura

A Unity permite que os terrenos tenham tufos de grama e outros pequenos objetos, como rochas, cobrindo a sua superfície. A grama é processada usando imagens 2D, enquanto outros objetos são geralmente um mesh padrão.

Para adicionar detalhes ao terreno, selecione o objeto de terreno na hierarquia. Dentro da guia Inspector, clique no sexto botão, aquele com as flores.

Paint Details Tools

Como você pode ver, agora você tem uma interface semelhante às ferramentas de altura. Aqui você também tem um conjunto de pincéis que você pode escolher para pintar uma lista de detalhes.

Como você não tem quaisquer detalhes do objeto selecionado, vamos adicioná-los clicando em Edit Details > Ass Grass Texture.

Isto irá abrir uma janela onde você pode definir várias propriedades para sua grama. Detail Texture permite que você defina a textura que você usará para sua grama. Você também pode definir várias propriedades como Max Width, Min Width, Max Height, Min Height, Noise Spread, Healthy Color, Dry Color e Billboard. Todas essas propriedades irão definir como ficará sua grama.

Para este tutorial, você pode deixar as opções no valor padrão ou alterá-las à vontade.

Clique sobre o círculo na frente do campo Detail Texture. Isto irá abrir uma nova janela. Procure o GrassFrond01AlbedoAlpha, selecione-o e clique em Add.

Paint Details - Grass tools

Assim como para as árvores, você pode usar vários pincéis para pintar a grama. Você pode definir diferentes tamanhos de pincel, alterar o opacidade do pincel e a força aplicada.

Agora é hora de ser criativo e pintar a grama sobre o terreno.

Paint Details - Grass details

Se você deseja adicionar uma malha para pintar detalhes em seu terreno, como pedras por exemplo, você precisa repetir o mesmo processo que você fez com a importação da grama. No entanto, desta vez, quando você clicar em Edit Details, escolha Add Detail Mesh. Isto irá abrir uma janela onde você pode especificar vários parâmetros da malha, muito parecido com o que você usou para importar a grama.

Infelizmente, os ativos do ambiente não incluem qualquer Prefab de rochas, assim você não será capaz de pintar pedras diretamente. No entanto, você pode procurar por umas pedras ao longo da loja de assets da Unity, já que é um ótimo lugar para encontrar coisas gratuitas.

Conclusão

Isto conclui o tutorial sobre as ferramentas de terreno. Você aprendeu sobre várias ferramentas e suas configurações. Com esse conhecimento, você pode agora criar, modificar e melhorar o atual ou criar novos terrenos para o seu próximo jogo ou aplicativo.

a Unity tem uma economia ativa. Existem muitos outros produtos que ajudam você a construir seu projeto. A natureza da plataforma torna também uma ótima opção a partir do qual você pode melhorar suas habilidades. Seja qual for o caso, você pode ver tudo o que temos disponível no mercado Envato.

Se você tiver mais perguntas ou comentários, como sempre, sinta-se livre para escrever alguma coisa na seção de comentários.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.