Ir al contenido

Qué es un heightmap de Rust: cómo el gris se hace terreno

Respuesta rápida: un heightmap de Rust es una imagen cuadrada en escala de grises donde el brillo de cada píxel es la altura del suelo en ese punto: el negro es el fondo del mundo, el gris medio es el nivel del mar y el blanco es lo más alto que puede llegar el suelo. RustEdit lo convierte en el terreno 3D por el que caminan los jugadores.

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, el mapa gratis de Drizzza hecho con Crucible Heightmap. Pulsa play o arrastra el deslizador para subir su heightmap hasta el mapa terminado, y arrastra el mapa para girarlo. Los grises están aclarados aquí para que se vean bien las formas.

El suelo de Rust recorre 1000 metros de altura, con el nivel del mar a la mitad. Un heightmap reparte sus grises de forma pareja por ese rango:

GrisAltura en el juego
Negro500 m bajo el nivel del mar, el fondo del mundo
Gris medioNivel del mar
Blanco500 m sobre el nivel del mar, el suelo más alto que permite Rust

Así que el fondo del mar es oscuro, las playas quedan justo por encima del gris medio y las cumbres son los píxeles más claros. Una isla real usa solo parte del rango, por eso el heightmap de un mapa entero parece un gris suave con el mar algo más oscuro alrededor:

El heightmap real en escala de grises de 16 bits de Crucible Volcanic 3800, un mapa personalizado de Rust, en grises suaves con el mar un poco más oscuro que la tierra

La vista 2D de Crucible Heightmap estira los grises para que las formas se lean bien, con el suelo alto claro y el mar oscuro. El heightmap que exporta conserva los grises reales.

La vista 2D del heightmap de Crucible Heightmap con una isla, con los grises estirados para que el suelo alto se vea claro y el mar oscuro

Los heightmaps de Rust son en escala de grises de 16 bits, lo que da 65 536 grises. Repartidos en 1000 metros, son unos 1,5 cm de altura por gris, así que las pendientes salen suaves.

Una imagen de 8 bits, como una foto normal, tiene solo 256 grises. Cada escalón son entonces unos 4 metros de altura, y cada pendiente se convierte en terrazas visibles en el juego. Por eso un heightmap pintado en un editor de imágenes normal y guardado en 8 bits se ve escalonado, y por eso Crucible Heightmap siempre escribe 16 bits.

Un heightmap es una cuadrícula cuadrada, y su tamaño sigue el tamaño del mapa: 513, 1025, 2049 o 4097 píxeles de lado. Cada píxel cubre entre 1 y 2 metros de terreno. Los escalones exactos están en resolución del heightmap de Rust, y qué tamaño de mapa elegir está en tamaños de mapa de Rust.

Un heightmap es altura y nada más. Todo lo demás de un mapa de Rust vive en su propia capa del archivo .map:

  • las texturas de suelo: hierba, tierra, arena, roca, nieve, suelo de bosque
  • los biomas: templado, árido, tundra, ártico y jungla
  • las capas de topología que dicen a Rust dónde van los árboles, el mineral, el loot y los spawns de jugadores (mira biomas y topología de Rust)
  • el agua, los monumentos, las carreteras y los prefabs

Así que un heightmap .raw o .png trae solo el terreno desnudo. Por eso la exportación principal de Crucible Heightmap es un archivo .map de Rust entero, que lleva las texturas de suelo, los biomas, la topología, los lagos y los acantilados junto con la altura.

Abre un .map en RustEdit y su heightmap se carga como el terreno, con todas las demás capas encima.

Para empezar desde un heightmap suelto, abre el diálogo Create New Map de RustEdit, fija el tamaño del mapa y la resolución del heightmap que le corresponde, y elige tu archivo .raw de 16 bits. RustEdit lo levanta como terreno, y desde ahí añades los monumentos, las carreteras y el resto. Paso a paso: cómo hacer un mapa personalizado de Rust.

El diálogo Create New Map de RustEdit con el campo Heightmap y el flujo de importación para aplicar un heightmap a un mapa de Rust

Pintar a mano un heightmap de 16 bits de aspecto natural es un trabajo lento. Crucible Heightmap es un generador de mapas de Rust que hace terreno con forma de Rust por ti, te deja darle forma con deslizadores y pinceles, y lo exporta como un .map listo para abrir, un .raw o un .png.