Aller au contenu

Qu'est-ce qu'une heightmap Rust ? Du gris au terrain

Réponse rapide : une heightmap Rust est une image carrée en niveaux de gris où la luminosité de chaque pixel donne la hauteur du sol à cet endroit : le noir est le fond du monde, le gris moyen est le niveau de la mer et le blanc est le point le plus haut que le sol peut atteindre. RustEdit la transforme en terrain 3D sur lequel les joueurs marchent.

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, la map gratuite de Drizzza faite avec Crucible Heightmap. Appuyez sur lecture ou faites glisser le curseur pour faire monter sa heightmap jusqu’à la map terminée, et faites glisser la map pour la tourner. Les gris sont éclaircis ici pour que les formes se voient bien.

Le sol de Rust s’étend sur 1000 mètres de hauteur, avec le niveau de la mer à mi-chemin. Une heightmap répartit ses gris uniformément sur cette plage :

GrisHauteur en jeu
Noir500 m sous le niveau de la mer, le fond du monde
Gris moyenNiveau de la mer
Blanc500 m au-dessus du niveau de la mer, le sol le plus haut que Rust autorise

Le fond marin est donc sombre, les plages sont juste au-dessus du gris moyen et les sommets sont les pixels les plus clairs. Une vraie île n’utilise qu’une partie de la plage, c’est pourquoi la heightmap d’une map entière ressemble à un gris doux avec une mer un peu plus sombre autour :

La vraie heightmap 16 bits en niveaux de gris de Crucible Volcanic 3800, une map custom Rust, en gris doux avec la mer un peu plus sombre que la terre

La vue 2D de Crucible Heightmap étire les gris pour que les formes soient faciles à lire, avec le terrain haut clair et la mer sombre. La heightmap qu’il exporte garde les vrais gris.

La vue 2D de la heightmap de Crucible Heightmap sur une île, avec les gris étirés pour que le terrain haut paraisse clair et la mer sombre

Les heightmaps de Rust sont en niveaux de gris 16 bits, ce qui donne 65 536 gris. Répartis sur 1000 mètres, ça fait environ 1,5 cm de hauteur par gris, donc les pentes sortent lisses.

Une image 8 bits, comme une photo normale, n’a que 256 gris. Chaque palier fait alors environ 4 mètres de hauteur, et chaque pente devient des terrasses visibles en jeu. C’est pourquoi une heightmap peinte dans un éditeur d’images normal et enregistrée en 8 bits paraît en escaliers, et pourquoi Crucible Heightmap écrit toujours en 16 bits.

Une heightmap est une grille carrée, et sa taille suit celle de la map : 513, 1025, 2049 ou 4097 pixels de côté. Chaque pixel couvre entre 1 et 2 mètres de terrain. Les paliers exacts sont sur Résolution de heightmap Rust, et la taille de map à choisir est sur Tailles de map Rust.

Une heightmap, c’est la hauteur et rien d’autre. Tout le reste d’une map Rust vit dans sa propre couche du fichier .map :

  • les textures du sol : herbe, terre, sable, roche, neige, sol forestier
  • les biomes : temperate, arid, tundra, arctic et jungle
  • les couches de topologie qui disent à Rust où vont les arbres, les minerais, le loot et les spawns de joueurs (voir Biomes et topologie de Rust)
  • l’eau, les monuments, les routes et les prefabs

Une heightmap .raw ou .png n’apporte donc que le terrain nu. C’est pourquoi l’export principal de Crucible Heightmap est un fichier .map Rust complet, qui porte les textures du sol, les biomes, la topologie, les lacs et les falaises avec la hauteur.

Ouvrez un .map dans RustEdit et sa heightmap se charge comme terrain, avec toutes les autres couches par-dessus.

Pour partir d’une heightmap nue à la place, ouvrez la boîte de dialogue Create New Map de RustEdit, réglez la taille de la map et la résolution de heightmap qui va avec, et choisissez votre fichier .raw 16 bits. RustEdit le transforme en terrain, et à partir de là vous ajoutez les monuments, les routes et le reste. Pas à pas : comment créer une map custom Rust.

La boîte de dialogue Create New Map de RustEdit avec le champ Heightmap et le workflow d'import pour appliquer une heightmap à une map Rust

Peindre à la main une heightmap 16 bits d’aspect naturel est un travail lent. Crucible Heightmap est un générateur de map Rust qui fait pour vous un terrain à la forme de Rust, vous laisse le modeler avec des curseurs et des pinceaux, et l’exporte en .map prêt à ouvrir, en .raw ou en .png.