Przejdź do głównej zawartości

Czym jest mapa wysokości Rust (heightmap)? Szarość w teren

Krótka odpowiedź: mapa wysokości Rust (heightmap) to kwadratowy obraz w skali szarości, w którym jasność każdego piksela to wysokość terenu w tym miejscu: czerń to dno świata, środkowa szarość to poziom morza, a biel to najwyższy punkt, na jaki może wyjść teren. RustEdit zamienia ją w teren 3D, po którym chodzą gracze.

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, darmowa mapa Drizzzy zrobiona w Crucible Heightmap. Naciśnij odtwarzanie albo przeciągnij suwak, żeby wynieść jej mapę wysokości w gotową mapę, i przeciągnij mapę, żeby ją obrócić. Szarości są tu rozjaśnione, żeby kształty były dobrze widać.

Teren w Rust rozciąga się na 1000 metrów wysokości, z poziomem morza w połowie. Mapa wysokości rozkłada swoje szarości równo na ten zakres:

SzarośćWysokość w grze
Czerń500 m poniżej poziomu morza, dno świata
Środkowa szarośćPoziom morza
Biel500 m powyżej poziomu morza, najwyższy teren, na jaki pozwala Rust

Więc dno morza jest ciemne, plaże leżą tuż nad środkową szarością, a szczyty gór to najjaśniejsze piksele. Prawdziwa wyspa używa tylko części zakresu, dlatego mapa wysokości całej mapy wygląda jak miękka szarość z odrobinę ciemniejszym morzem wokół:

Prawdziwa 16-bitowa mapa wysokości w skali szarości Crucible Volcanic 3800, własnej mapy Rust, w miękkich szarościach z morzem odrobinę ciemniejszym niż ląd

Widok 2D w Crucible Heightmap rozciąga szarości, żeby kształty łatwo się czytało, z jasnym wysokim terenem i ciemnym morzem. Mapa wysokości, którą eksportuje, zachowuje prawdziwe szarości.

Widok 2D mapy wysokości wyspy w Crucible Heightmap, z rozciągniętymi szarościami, żeby wysoki teren był jasny, a morze ciemne

Mapy wysokości Rust są 16-bitowe w skali szarości, co daje 65 536 odcieni szarości. Rozłożone na 1000 metrów, to około 1,5 cm wysokości na jeden odcień, więc zbocza wychodzą gładkie.

Obraz 8-bitowy, jak zwykłe zdjęcie, ma tylko 256 odcieni. Każdy stopień to wtedy około 4 metry wysokości, a każde zbocze zamienia się w grze w widoczne tarasy. Dlatego mapa wysokości namalowana w zwykłym edytorze obrazów i zapisana jako 8-bitowa wygląda schodkowo, i dlatego Crucible Heightmap zawsze zapisuje 16-bitową.

Mapa wysokości to kwadratowa siatka, a jej rozmiar zależy od rozmiaru mapy: 513, 1025, 2049 albo 4097 pikseli w poprzek. Każdy piksel obejmuje od 1 do 2 metrów terenu. Dokładne stopnie są w rozdzielczości mapy wysokości Rust, a jaki rozmiar mapy wybrać, w rozmiarach map Rust.

Mapa wysokości to wysokość i nic więcej. Wszystko inne na mapie Rust żyje we własnej warstwie pliku .map:

  • tekstury podłoża: trawa, ziemia, piasek, skała, śnieg, runo leśne
  • biomy: temperate, arid, tundra, arctic i jungle
  • warstwy topologii, które mówią Rust, gdzie idą drzewa, rudy, loot i spawny graczy (zobacz biomy i topologia w Rust)
  • woda, monumenty, drogi i prefaby

Więc mapa wysokości .raw albo .png przynosi sam goły teren. Dlatego głównym eksportem Crucible Heightmap jest cały plik .map Rust, który niesie razem z wysokością tekstury podłoża, biomy, topologię, jeziora i klify.

Otwórz .map w RustEdit, a jego mapa wysokości wczytuje się jako teren, z każdą inną warstwą na wierzchu.

Żeby zamiast tego zacząć od gołej mapy wysokości, otwórz okno Create New Map w RustEdit, ustaw rozmiar mapy i pasującą rozdzielczość mapy wysokości i wskaż swój 16-bitowy plik .raw. RustEdit wynosi go w teren, a stamtąd dodajesz monumenty, drogi i resztę. Krok po kroku: jak zrobić własną mapę Rust.

Okno Create New Map w RustEdit z polem Heightmap i procesem importu mapy wysokości do mapy Rust

Malowanie naturalnie wyglądającej 16-bitowej mapy wysokości ręcznie to żmudna robota. Crucible Heightmap to generator map Rust, który robi za ciebie teren w stylu Rust, pozwala kształtować go suwakami i pędzlami i eksportuje go jako gotowy do otwarcia .map, .raw albo .png.