Pular para o conteúdo

O que é heightmap de Rust? Como o cinza vira terreno

Resposta rápida: um heightmap de Rust é uma imagem quadrada em tons de cinza em que o brilho de cada pixel é a altura do chão naquele ponto: preto é o fundo do mundo, cinza médio é o nível do mar e branco é o mais alto que o chão pode chegar. O RustEdit transforma isso no terreno 3D em que os jogadores andam.

A Rust heightmap seen from above in shades of grey: Drizzza's free volcanic map before it becomes terrainThe same volcanic Rust map raised into 3D terrain, with grass, desert, snow, beaches and sea
Crucible Volcanic 3800, o mapa grátis do Drizzza feito com o Crucible Heightmap. Pressione play ou arraste o controle para erguer o heightmap até o mapa pronto, e arraste o mapa para girar. Os cinzas estão mais claros aqui para as formas ficarem fáceis de ver.

O chão do Rust ocupa 1000 metros de altura, com o nível do mar na metade. Um heightmap espalha seus cinzas por igual nessa faixa:

CinzaAltura no jogo
Preto500 m abaixo do nível do mar, o fundo do mundo
Cinza médioNível do mar
Branco500 m acima do nível do mar, o chão mais alto que o Rust permite

Então o fundo do mar é escuro, as praias ficam um pouco acima do cinza médio e os topos das montanhas são os pixels mais claros. Uma ilha de verdade usa só parte da faixa, e é por isso que o heightmap de um mapa inteiro parece um cinza suave com o mar um pouco mais escuro em volta:

O heightmap real em tons de cinza de 16 bits do Crucible Volcanic 3800, um mapa personalizado de Rust, em cinzas suaves com o mar um pouco mais escuro que a terra

A vista 2D do Crucible Heightmap estica os cinzas para as formas ficarem fáceis de ler, com o chão alto claro e o mar escuro. O heightmap que ele exporta mantém os cinzas verdadeiros.

A vista 2D do heightmap no Crucible Heightmap de uma ilha, com os cinzas esticados para o chão alto aparecer claro e o mar escuro

Os heightmaps do Rust são em tons de cinza de 16 bits, o que dá 65.536 cinzas. Espalhado por 1000 metros, são cerca de 1,5 cm de altura por cinza, então as encostas saem suaves.

Uma imagem de 8 bits, como uma foto comum, tem só 256 cinzas. Cada degrau então tem cerca de 4 metros de altura, e toda encosta vira terraços visíveis no jogo. Por isso um heightmap pintado num editor de imagem comum e salvo em 8 bits fica em degraus, e por isso o Crucible Heightmap sempre grava 16 bits.

Um heightmap é uma grade quadrada, e o tamanho segue o tamanho do mapa: 513, 1025, 2049 ou 4097 pixels de lado. Cada pixel cobre de 1 a 2 metros de chão. Os degraus exatos estão em resolução do heightmap de Rust, e qual tamanho de mapa escolher está em tamanhos de mapa de Rust.

Um heightmap é altura e mais nada. Todo o resto de um mapa de Rust fica na sua própria camada do arquivo .map:

  • as texturas do chão: grama, terra, areia, rocha, neve, chão de floresta
  • os biomas: temperado, árido, tundra, ártico e selva
  • as camadas de topologia que dizem ao Rust onde vão árvores, minério, loot e pontos de spawn de jogadores (veja biomas e topologia de Rust)
  • a água, os monumentos, as estradas e os prefabs

Então um heightmap .raw ou .png traz só terreno puro. Por isso a exportação principal do Crucible Heightmap é um arquivo .map de Rust inteiro, que leva as texturas do chão, os biomas, a topologia, os lagos e os penhascos junto com a altura.

Abra um .map no RustEdit e o heightmap dele carrega como o terreno, com todas as outras camadas por cima.

Para começar de um heightmap puro, abra a janela Create New Map do RustEdit, defina o tamanho do mapa e a resolução do heightmap que combina, e escolha seu arquivo .raw de 16 bits. O RustEdit ergue isso em terreno, e daí você adiciona os monumentos, as estradas e o resto. Passo a passo: como fazer um mapa personalizado de Rust.

A janela Create New Map do RustEdit mostrando o campo Heightmap e o fluxo de importação para aplicar um heightmap a um mapa de Rust

Pintar à mão um heightmap de 16 bits com cara natural dá muito trabalho. O Crucible Heightmap é um gerador de mapa de Rust que faz terreno no formato do Rust para você, deixa você dar forma com sliders e pincéis, e exporta como um .map pronto para abrir, um .raw ou um .png.