Kuinka koko Helsingin kattava tarkka Minecraft-malli luotiin?
”Uusi koko Helsingin kattava Minecraft-malli on tuotettu automaattisesti Helsingin vuoden 2015 kolmioverkko-kaupunkimallin pohjalta. Kolmioverkko-kaupunkimalli on luotu ilmakuvista ja on hyvin tarkka “virtuaalinen pienoismalli” koko kaupungista. Helsinki3D+-Minecraft-mallissa tämä kolmioverkkomalli on tuotu Minecraftiin muuttamalla se kuutioiksi ja värjäten kuutiot saman värisiksi, kuin mitä kolmioverkkomalli on kussakin pisteessä.
Tämän tavoitteen saavuttamiseksi koodasin avoimena lähdekoodina julkaistun ohjelman, joka käsittelee kolmioverkkomallia ja automatisoi kolmannen osapuolen avoimen lähdekoodin ohjelmien synergian. Ohjelma muuttaa .obj-muodossa olevaa kaupunkimallia askel askeleelta Minecraft-rakennusta kuvaavaan .schematic-muotoon, ja se ladataan Minecraft-maailmaan.
Ohjelmalla voi myös periaatteessa tuoda minkä tahansa 3D-mallin Minecraftiin, mutta käytännössä työkalu on erikoistunut Helsingin kaupunkimalleihin. Sen käyttäminen muihin tarkoituksiin vaatii hieman perehtymistä ja hienosäätöä.
Selitän nyt askel askeleelta, miten ohjelmaa toimi, kun sitä käytettiin koko kaupungin tuomiseen Minecraftiin. Kaiken kaikkiaan Minecraft-Helsingin generoimisessa kesti ohjelmalla 40 tuntia.
Helsingin kolmioverkkomalli on avoimesti ladattavissa. Se on jaettu ruudukon muotoisesti paloihin, koska se on valtava aineisto. Ohjelma lataa aina ensin .zip-tiedoston, joka sisältää 64 ruudukkoon järjestettyä 250m x 250m .obj-muotoista laattaa. Zip-tiedosto puretaan, ja ohjelma lähtee käymään sen sisältöjä läpi yksi kerrallaan. Kun jokainen laatta tässä kansiossa on käyty läpi, ne poistetaan tietokoneelta, ja uusi .zip-tiedosto ladataan käsiteltäväksi.
Kun ohjelma käsittelee yksittäistä kaupunkimallilaattaa, se muuttaa tiedostomuotoa useasti. Yleiskatsauksena kaupunkimallilaatan elinkaarta 3D-mallista Minecraft-maailmaan esittää seuraava kuvaaja. Tämä prosessi selitetään yksityiskohtaisemmin seuraavissa kappaleissa.
Kaupunkimallista Minecraftiin: työprosessi
Kun kaupunkimallilaatta on valittu, se muutetaan pistepilveksi käyttäen avoimen lähdekoodin CloudCompare-työkalua. CloudComparen avulla pistepilveä käsitellään ja esim. merialueet pyritään rajaamaan erilliseksi maastosta, jotta myöhemmin merialueet voidaan korvata Minecraftin vedellä maastoa kuvaavien palikoiden sijaan.
Käsitelty pistepilvi syötetään FileToVox-ohjelmaan, joka muuntaa pistepilven .vox-tiedostoksi. Vox-tiedosto on vokselimallin sisältävä tiedostomuoto, joka on alun perin luotu MagicaVoxel-grafiikkaeditorin projektitiedostoksi. Käytännössä vokseli on kolmiulotteinen pikseli, eli kuutio, jolla on paikka ja väri. Tässä vaiheessa pistepilvi siis muuttuu kuutioiksi. Lisäksi tiedoston nimeen tallennetaan tieto laatan sijainnista ruudukossa.
Jo valmis kuutiomalli avataan MagicaVoxel-työkalulla, johon ohjelma lähettää näppäinkomennon, joka tallentaa kuutiomallin uudestaan, korvaten vanhan. Tiedosto on yhä .vox-tiedosto, mutta seuraavissa askeleissa käytettävät ohjelmat pystyvät käsittelemään tiedostoa vain, jos se on ensin tallennettu MagicaVoxel-työkalulla, joten tämä askel selvästi muuttaa jotain olennaista tiedoston rakenteessa.
Vokselitiedosto viedään nyt Vox2Schematic-python skriptan käsiteltäväksi. Vox2Schematic on McThings-nimisen Python-kirjaston eräs skripta, kirjasto sisältää erilaisia työkaluja Minecraftiin liittyen. Skripta muuttaa vokselitiedoston .schematic-tiedostoksi, korvaa pelkän väritiedon sisältävät kuutiot Minecraftin kuutioilla. Kuution materiaali valitaan vertaamalla sen keskimääräistä väriä vokselitiedoston kuution väriin. Tällä hetkellä värimahdollisuuksia on 49.
Schematic-tiedosto tuodaan nyt automaattisesti Minecraft-maailmaan Amulet World Editor-ohjelmalla, joka mahdollistaa monet tehokkaat toiminnot Minecraft-maailmoihin liittyen. Käyttäen Amuletin työkaluja ohjelma sijoittaa .schematic-muodossa olevan kaupunkimallilaatan muotoisen ja värisen Minecraft-rakennelman oikeaan sijaintiin Minecraft-maailmassa. Lisäksi jos laatassa on tieto siitä, että se sisältää merialueita, ne rajataan pois ja korvataan Minecraftin vesikuutioilla.
Ohjelma toistaa nämä askeleet jokaiselle kaupunkimallin 250m x 250m laatalle, eli yhteensä noin 8320 kertaa, jonka jälkeen koko kaupunkimalli on onnistuneesti tuotu Minecraftiin.”
Sähköposti: pietari.niinimaki (a) hel.fi
Kotisivu: http://www.pietariniinimaki.com/