Usando TileMaps

Ver também

Esta página assume que você já criou ou baixou um TileSet. Caso contrário, leia primeiro Using TileSets, pois você precisará de um TileSet para criar um TileMap.

Introdução

A tilemap is a grid of tiles used to create a game's layout. There are several benefits to using TileMapLayer nodes to design your levels. First, they make it possible to draw the layout by "painting" the tiles onto a grid, which is much faster than placing individual Sprite2D nodes one by one. Second, they allow for much larger levels because they are optimized for drawing large numbers of tiles. Finally, you can add collision, occlusion, and navigation shapes to tiles, adding greater functionality to the TileMap.

Specifying the TileSet in the TileMapLayer

Se você seguiu a página anterior sobre Using TileSets, você deve ter um recurso TileSet incorporado no nó TileMapLayer. Isso é bom para prototipagem, mas em um projeto real, geralmente você terá vários níveis reutilizando o mesmo tileset.

A forma recomendada de reutilizar o mesmo TileSet em vários nós TileMapLayer é salvar o TileSet como um recurso externo. Para isso, clique no menu suspenso ao lado do recurso TileSet e selecione Salvar:

Salvando o recurso TileSet incorporado em um arquivo de recurso externo

Salvando o recurso TileSet incorporado em um arquivo de recurso externo

Multiple TileMapLayers and settings

Ao trabalhar com tilemaps, é geralmente recomendado utilizar múltiplos nós TileMapLayer quando apropriado. Usar várias camadas pode ser vantajoso, por exemplo, permitindo que você diferencie tiles de primeiro plano dos tiles de fundo para melhor organização. Você pode posicionar um tile por camada em uma determinada posição, o que permite sobrepor vários tiles se você tiver mais de uma camada.

Cada nó TileMapLayer possui várias propriedades que você pode ajustar:

  • Enabled: Se true, a camada fica visível no editor e durante a execução do projeto.

  • TileSet: O tileset utilizado pelo nó TileMapLayer.

Renderização

  • Y Sort Origin: O deslocamento vertical a ser usado para ordenação Y em cada tile (em pixels). Só é efetivo se Y Sort Enabled na aba CanvasItem estiver como true.

  • X Draw Order Reversed: Inverte a ordem em que os tiles são desenhados no eixo X. Requer que Y Sort Enabled na aba CanvasItem esteja como true.

  • Rendering Quadrant Size: Um quadrante é um grupo de tiles desenhados juntos em um único CanvasItem para fins de otimização. Esta configuração define o comprimento do lado de um quadrado no sistema de coordenadas do mapa. O tamanho do quadrante não se aplica a um TileMapLayer com ordenação no eixo Y, pois os tiles são agrupados pela posição Y nesse caso.

Física

  • Collision Enabled: Ativa ou desativa a colisão.

  • Use Kinematic Bodies: Quando verdadeiro, as formas de colisão do TileMapLayer serão instanciadas como corpos cinemáticos.

  • Collision Visibility Mode: Define se as formas de colisão do TileMapLayer são visíveis ou não. Se configurado como padrão, depende das configurações de depuração de exibição de colisões.

Reordering layers

Você pode reordenar as camadas arrastando e soltando o nó delas na aba Cena. Também é possível alternar entre os nós TileMapLayer em que está trabalhando usando os botões no canto superior direito do editor de TileMap.

Nota

Você pode criar, renomear ou reordenar camadas no futuro sem afetar os tiles existentes. No entanto, tenha cuidado, pois remover uma camada também removerá todos os tiles que foram colocados nela.

Opening the TileMap editor

Select the TileMapLayer node, then open the TileMap panel at the bottom of the editor:

Abrindo o painel do TileMap na parte inferior do editor. O nó TileMapLayer deve estar selecionado primeiro.

Abrindo o painel do TileMap na parte inferior do editor. O nó TileMapLayer deve estar selecionado primeiro.

Selecionando tiles para usar na pintura

Primeiro, se você criou camadas adicionais, certifique-se de ter selecionado a camada na qual deseja pintar:

Selecionando uma camada para pintar no editor de TileMap

Selecionando uma camada para pintar no editor de TileMap

Dica

No editor 2D, as camadas que você não está editando no momento, pertencentes ao mesmo nó TileMapLayer, aparecerão esmaecidas enquanto estiver no editor de TileMap. Você pode desativar esse comportamento clicando no ícone ao lado do menu de seleção de camadas (tooltip Destacar Camada Selecionada do TileMap).

Você pode pular o passo acima caso não tenha criado camadas adicionais, pois a primeira camada é automaticamente selecionada ao entrar no editor de TileMap.

Antes de poder posicionar tiles no editor 2D, você precisa selecionar um ou mais tiles no painel do TileMap localizado na parte inferior do editor. Para isso, clique em um tile no painel do TileMap ou segure o botão do mouse para selecionar múltiplos tiles:

Selecionando um tile no editor de TileMap ao clicar nele

Selecionando um tile no editor de TileMap ao clicar nele

Dica

Assim como nos editores 2D e de TileSet, você pode deslocar a visualização no painel do TileMap usando os botões do meio ou direito do mouse, e dar zoom usando a roda do mouse ou os botões no canto superior esquerdo.

Você também pode segurar Shift para adicionar à seleção atual. Ao selecionar mais de um tile, vários tiles serão posicionados sempre que você realizar uma operação de pintura. Isso pode ser usado para pintar estruturas compostas por múltiplos tiles em um único clique (como plataformas grandes ou árvores).

A seleção final não precisa ser contígua: se houver espaço vazio entre os tiles selecionados, ele permanecerá vazio no padrão que será pintado no editor 2D.

Selecionando múltiplos tiles no editor de TileMap ao segurar o botão esquerdo do mouse

Selecionando múltiplos tiles no editor de TileMap ao segurar o botão esquerdo do mouse

Se você criou tiles alternativos no seu TileSet, poderá selecioná-los para pintura à direita dos tiles base:

Selecting an alternative tile in the TileMap editor

Selecting an alternative tile in the TileMap editor

Por fim, se você criou uma coleção de cenas no TileSet, poderá posicionar tiles de cena no TileMap:

Posicionando um tile de cena contendo partículas usando o editor de TileMap

Posicionando um tile de cena contendo partículas usando o editor de TileMap

Painting modes and tools

Usando a barra de ferramentas na parte superior do editor de TileMap, você pode escolher entre diversos modos e ferramentas de pintura. Esses modos afetam as operações ao clicar no editor 2D, não no próprio painel do TileMap.

Da esquerda para a direita, os modos e ferramentas de pintura que você pode escolher são:

Selection

Selecione tiles clicando em um único tile ou segurando o botão esquerdo do mouse para selecionar múltiplos tiles em forma de retângulo no editor 2D. Note que espaços vazios não podem ser selecionados: se você criar uma seleção em retângulo, apenas os tiles não vazios serão selecionados.

Para adicionar à seleção atual, segure Shift e selecione um tile. Para remover da seleção atual, segure Ctrl e selecione um tile.

A seleção pode então ser usada em qualquer outro modo de pintura para criar rapidamente cópias de um padrão já posicionado.

Você pode remover os tiles selecionados do TileMap pressionando Del.

Você pode ativar este modo temporariamente enquanto estiver no modo Pintura segurando Ctrl e realizando uma seleção.

Dica

Você pode copiar e colar tiles que já foram posicionados realizando uma seleção, pressionando Ctrl + C e depois pressionando Ctrl + V. A seleção será colada após clicar com o botão esquerdo. Você pode pressionar Ctrl + V novamente para realizar mais cópias dessa forma. Clique com o botão direito ou pressione Escape para cancelar a colagem.

Paint

O modo padrão de Pintura permite posicionar tiles clicando ou segurando o botão esquerdo do mouse.

Se você clicar com o botão direito, o tile atualmente selecionado será apagado do tilemap. Em outras palavras, ele será substituído por espaço vazio.

Se você selecionou múltiplos tiles no TileMap ou usando a ferramenta de Seleção, eles serão posicionados toda vez que você clicar ou arrastar o mouse segurando o botão esquerdo.

Dica

Enquanto estiver no modo Pintura, você pode desenhar uma linha segurando Shift antes de segurar o botão esquerdo do mouse e arrastando o mouse até o ponto final da linha. Isso é idêntico ao uso da ferramenta Linha descrita abaixo.

Você também pode desenhar um retângulo segurando Ctrl e Shift antes de segurar o botão esquerdo do mouse, arrastando o mouse até o ponto final do retângulo. Isso é idêntico ao uso da ferramenta Retângulo descrita abaixo.

Por fim, você pode selecionar tiles existentes no editor 2D segurando Ctrl e clicando em um tile (ou segurando e arrastando o mouse). Isso irá trocar o(s) tile(s) atualmente selecionado(s) para o(s) tile(s) que você acabou de clicar. Isso é idêntico ao uso da ferramenta Conta-gotas descrita abaixo.

Linha

Após selecionar o modo Pintura de Linha, você pode desenhar linhas que sempre terão 1 tile de espessura (independentemente da orientação).

Se você clicar com o botão direito enquanto estiver no modo Pintura de Linha, você irá apagar em forma de linha.

Se você selecionou múltiplos tiles no TileMap ou usando a ferramenta de Seleção, poderá posicioná-los em um padrão repetido ao longo da linha.

Você pode ativar este modo temporariamente enquanto estiver nos modos Pintura ou Borracha segurando Shift e desenhando.

Usando a ferramenta de linha após selecionar dois tiles para desenhar plataformas na diagonal

Usando a ferramenta de linha após selecionar dois tiles para desenhar plataformas na diagonal

Rectangle

Após selecionar o modo Pintura de Retângulo, você pode desenhar um retângulo alinhado aos eixos.

Se você clicar com o botão direito enquanto estiver no modo Pintura de Retângulo, você irá apagar em um retângulo alinhado aos eixos.

Se você selecionou múltiplos tiles no TileMap ou usando a ferramenta de Seleção, poderá posicioná-los em um padrão repetido dentro do retângulo.

Você pode ativar este modo temporariamente enquanto estiver nos modos Pintura ou Borracha segurando Ctrl e Shift e desenhando.

Preenchimento de Balde

Após selecionar o modo Preenchimento de balde, você pode escolher se a pintura deve ser limitada somente a áreas contíguas ativando a caixa de seleção Contiguous que aparece à direita da toolbar.

Se você ativar Contiguous (padrão), apenas os tiles correspondentes que tocam a seleção atual serão substituídos. Essa verificação de contiguidade é feita horizontal e verticalmente, mas não diagonalmente.

Se você desativar Contiguous, todos os tiles com o mesmo ID em todo o TileMap serão substituídos pelo tile atualmente selecionado. Se um tile vazio for selecionado com Contiguous desmarcado, todos os tiles no retângulo que abrange a área efetiva do TileMap serão substituídos.

Se você clicar com o botão direito enquanto estiver no modo Preenchimento por Balde, substituirá os tiles correspondentes por tiles vazios.

Se você tiver selecionado múltiplos tiles no TileMap ou usando a ferramenta de Seleção, poderá colocá-los em um padrão repetitivo dentro da área preenchida.

Using the Bucket Fill tool

Using the Bucket Fill tool

Picker

Após selecionar o modo Seletor, você pode escolher tiles existentes no editor 2D mantendo pressionado Ctrl e clicando em um tile. Isso trocará o tile atualmente selecionado pelo tile que você acabou de clicar. Você também pode selecionar múltiplos tiles de uma vez mantendo pressionado o botão esquerdo do mouse e formando uma seleção em forma de retângulo. Somente tiles não vazios podem ser selecionados.

Você pode ativar esse modo temporariamente enquanto estiver no modo Pintura mantendo pressionado Ctrl e clicando ou arrastando o mouse.

Eraser

Esse modo é combinado com qualquer outro modo de pintura (Pintura, Linha, Retângulo, Preenchimento por Balde). Quando o modo borracha estiver ativado, os tiles serão substituídos por tiles vazios em vez de desenhar novas linhas ao clicar com o botão esquerdo.

Você pode ativar esse modo temporariamente enquanto estiver em qualquer outro modo clicando com o botão direito em vez do botão esquerdo.

Painting randomly using scattering

Enquanto estiver pintando, você pode ativar aleatorização opcionalmente. Quando ativada, um tile aleatório será escolhido entre todos os tiles atualmente selecionados durante a pintura. Isso é compatível com as ferramentas Pintura, Linha, Retângulo e Preenchimento por Balde. Para uma aleatorização de pintura eficaz, é necessário selecionar múltiplos tiles no editor de TileMap ou usar dispersão (ambas as abordagens podem ser combinadas).

Se Scattering estiver definido com um valor maior que 0, há uma chance de que nenhum tile seja colocado durante a pintura. Isso pode ser usado para adicionar detalhes ocasionais e não repetitivos em áreas grandes (como adicionar grama ou migalhas em um TileMap grande visto de cima).

Example when using Paint mode:

Selecionar entre vários tiles para escolher aleatoriamente e então pintar mantendo pressionado o botão esquerdo do mouse

Selecionar entre vários tiles para escolher aleatoriamente e então pintar mantendo pressionado o botão esquerdo do mouse

Exemplo ao usar o modo Preenchimento por Balde:

Usando a ferramenta Preenchimento por Balde com um único tile, mas com aleatorização e dispersão ativadas

Usando a ferramenta Preenchimento por Balde com um único tile, mas com aleatorização e dispersão ativadas

Nota

O modo borracha não considera a aleatorização e a dispersão. Todos os tiles na seleção são sempre removidos.

Salvar e carregar posicionamentos de tiles predefinidos usando padrões

Embora você possa copiar e colar tiles no modo Seleção, pode ser interessante salvar padrões de tiles predefinidos para colocá-los de uma só vez. Isso pode ser feito por TileMap, escolhendo a aba Patterns no editor de TileMap.

Para criar um novo padrão, mude para o modo Seleção, faça uma seleção e pressione Ctrl + C. Clique em um espaço vazio dentro da aba Patterns (um retângulo de foco azul deve aparecer ao redor do espaço vazio), depois pressione Ctrl + V:

Criando um novo padrão a partir de uma seleção no editor de TileMap

Criando um novo padrão a partir de uma seleção no editor de TileMap

Para usar um padrão existente, clique na imagem dele na aba Patterns, mude para qualquer modo de pintura e então clique com o botão esquerdo em algum lugar no editor 2D:

Colocando um padrão existente usando o editor de TileMap

Colocando um padrão existente usando o editor de TileMap

Assim como seleções com múltiplos tiles, os padrões serão repetidos se usados com os modos de pintura Linha, Retângulo ou Preenchimento por Balde.

Nota

Apesar de serem editados no editor de TileMap, os padrões são armazenados no recurso TileSet. Isso permite reutilizar padrões em diferentes nós TileMapLayer após carregar um recurso TileSet salvo em um arquivo externo.

Manipulando conexões de tiles automaticamente usando terrenos

Para usar terrenos, o nó TileMapLayer deve conter pelo menos um conjunto de terreno e um terreno dentro desse conjunto. Veja Creating terrain sets (autotiling) caso ainda não tenha criado um conjunto de terreno para o TileSet.

There are 3 kinds of painting modes available for terrain connections:

  • Conectar, onde os tiles são conectados aos tiles ao redor na mesma TileMapLayer.

  • Caminho, onde os tiles são conectados aos tiles pintados no mesmo traço (até que o botão do mouse seja solto).

  • Substituições específicas de tiles para resolver conflitos ou lidar com situações não cobertas pelo sistema de terrenos.

O modo "Conectar" é mais fácil de usar, mas o modo "Caminho" é mais flexível, ao permitir mais controle artístico durante a pintura. Por exemplo, o modo "Caminho" pode permitir que estradas fiquem diretamente adjacentes umas às outras sem estarem conectadas entre si, enquanto o modo "Conectar" forçará ambas as estradas a se conectarem.

Selecionando o modo "Conectar" na aba Terrains do editor de TileMap

Selecionando o modo "Conectar" na aba Terrains do editor de TileMap

Selecionando o modo "Caminho" na aba Terrains do editor de TileMap

Selecionando o modo "Caminho" na aba Terrains do editor de TileMap

Por fim, você pode selecionar tiles específicos do terreno para resolver conflitos em determinadas situações:

Pintando com tiles específicos na aba Terrains do editor de TileMap

Pintando com tiles específicos na aba Terrains do editor de TileMap

Qualquer tile que tenha pelo menos um de seus bits definido com um valor correspondente ao ID do terreno aparecerá na lista de tiles para escolher.

Handling missing tiles

Se você remover tiles no TileSet que são referenciados em um TileMap, o TileMap exibirá um espaço reservado para indicar que um ID de tile inválido foi colocado:

Tiles ausentes no editor de TileMap devido à referência ao TileSet estar quebrada

Tiles ausentes no editor de TileMap devido à referência ao TileSet estar quebrada

Esses placeholders não são visíveis no projeto em execução, mas os dados dos tiles ainda são preservados no disco. Isso permite que você feche e reabra essas cenas com segurança. Assim que você readicionar um tile com o ID correspondente, os tiles aparecerão com a aparência do novo tile.

Nota

Espaços reservados de tiles ausentes podem não ser visíveis até que você selecione o nó TileMapLayer e abra o editor de TileMap.