Blogging for sharing, sekedar berbagi ilmu dan pengalaman

Generate Terrain Otomatis Di Unity Dengan Bantuan Adobe Photoshop

September 20, 2013 Posted by Ahmad Saifuddin Azhar 5 comments
Unity sebagai game engine menyediakan fitur untuk membuat terrain atau arena permainan. Terrain dapat dibuat dengan menggunakan fitur terrain tool di unity untuk membuat gunung, lembah, dsb. Tapi taukah anda jika terrain di unity ternyata dapat juga dibuat dengan menggunakan photoshop? Lebih hebatnya lagi bisa buat generate terrain otomatis loh... Tapi meskipun otomatis hasilnya dijamin gak main-main. Lihat saja contohnya di bawah

Screenshot terrain 2
Pada dasarnya sebuah terrain memang dapat dibuat denggan menggunakan .raw image, yaitu image yang berisi informasi heightmap atau kalo saya terjemahkan adalah peta ketinggian. Pada peta ketinggian suatu tempat digambarkan dengan warna-warna tertentu, biasanya hitam dan putih atau warna lain dengan intensitas gelap / terang yang berbeda. Pada umumnya semakin putih suatu daerah pada heightmap maka daerah tersebut semakin tinggi, semakin hitam maka semakin rendah. Terus darimana kita mendapatkan heightmap? Heightmap dapat diperoleh lewat citra satelit, atau dari peta-peta yang beredar di pasaran. Informasi selengkapnya tentang heightmap dapat dilihat disini.

Heightmap peta dunia. Sumber : Wikipedia

 Nah pada artikel kali ini berhubung judulnya "Men-Generate Terrain Otomatis" maka yang akan saya lakukan adalah membuat heightmap ini secara otomatis menggunakan software Adobe Photoshop, bukan mengambil dari peta maupun citra satelit. Lho kok bisa? Ok... Kita ikuti saja tutorial step by stepnya :

Langkah pertama buka Adobe Photoshop dan buat project baru. Pada umumnya sebuah heightmap dibuat dengan resolusi (2 ^ n) + 1, dengan nilai n terserah. Contoh : 65, 129, 257, 513, 1025, dll

Project baru adobe photoshot

Jika project sudah dibuat set background dan foreground menjadi putih dan hitam

Background dan foreground color

Sekarang kita buat heightmapnya dengan efek cloud. Klik Filter >> Render >> Clouds

Render Cloud untuk membuat heightmap Photoshop

Maka jadinya akan seperti ini

Hasil Render Cloud

Gambar diatas jika langsung kita jadikan terrain hasilnya akan kasar dan kurang mantap sebagai terrain. Jadi perlu kita lakukan enhancement dulu pada heightmap kita. Klik Filter >> Render  >> Difference Clouds. Dan hasilnya akan seperti pada gambar di bawah

Hasil Difference Cloud

Heightmap diatas jika diimplementasikan juga masih sangat kasar, akan banyak tebing-tebing di sekeliling jalan. Untuk itu kita perlu untuk melandaikannya dengan menggunakan Blur. Klik Filter >> Blur >> Gaussian Blur. dan atur seberapa landai terrain Anda. Semakin tinggi nilai blur maka terrain akan semakin datar, dengan sedikit tebing curam.


Dan berikut adalah hasil heightmap yang sudah di blur. Tebing-tebing menjadi lebih landai seperti gunung-gunung

Hasil blur

Jika sudah, karena pada heightmap yang dibutuhkan hanya hitam dan putih maka remove semua channel warna. Sisakan hanya satu channel saja.

Menghapus warna channel dan menyisakan satu warna
Kemudian simpan menjadi raw image dalam format .raw
Export .raw image

Kemudian kita masuk deh ke Unity. Kita buat terrain seperti biasa, kemudian select terrain, dan import heightmap

Import .raw image ke unity

Tunggu proses loading selesai, maka jadinya seperti ini deh...

Hasil generate .raw image

Sedikit kita poles dengan memberi warna dan cahaya directional light... Nah jadi kan.. Terrain kita yang kita buat heightmapnya menggunakan adobe photoshop.

Pewarnaan terrain

Untuk menghaluskan terrain kita juga dapat menghaluskan hasilnya dengan tools dibawah

Tools untuk menghaluskan terrain

Nah tinggal tambahkan vegetasi deh. Nambahnya vegetasi bisa otomatis juga loh, pakai saja tool Terrain >> Mass Place Trees

Penambahan vegetasi pada terrain

Naaah... Jadinya seperti ini nih....


Screenshot terrain 2


Nah... Keren bukan... Sangat cocok untuk yang pengen bikin terrain cepet-cepet'an dan tanpa ribet. Emang sih tutorialnya rada panjang, tapi kalo dipraktekin akan jauh lebih cepet kok daripada bikin terrain dengan cara biasa. Tapi cara ini gak cocok lho untuk bikin terrain yang bener-bener perfect. Untuk projectnya akan saya upload di bawah.

Mungkin sekian sedikit ilmu yang dapat saya sampaikan. Jika ada kesalahan saya mohon maaf yang sebesar-besarnya. Jangan lupa tinggalkan jejak dengan berkomentar yaaa.... Ok.. Sekian dulu dari saya.. Tetap semangat dan terus berkarya ^_^

DOWNLOAD CONTOH PSD HEIGHTMAP
DOWNLOAD PROJECT (MENYUSUL)



5 comments:

  1. kakak...
    mau tanya...
    kalo bikin animasi di unity tp datanya ngambil dari DB mySQL gmn??
    trus nanti di-load di web..
    bisa g?

    mohon pencerahannya ^_^
    thx...

    ReplyDelete
  2. Broo mau nanya doong,,,kok menu terrain gak ada yaa? apa harus versi lain?

    ReplyDelete
  3. gan mau nanyak, kan saya mau masukin gambar di unity pake terrain kan nah itu hasil gambarnya pecah trs saya musti gmn ya?? minta solusinya dong :D

    ReplyDelete