Bagaimana saya bisa mendapatkan tekstur di tepi dinding seperti di Super Metroid dan Aquaria?

57

Gim seperti Super Metroid dan Aquaria menghadirkan medan dengan bagian-bagian lain yang berhadapan dengan batu dan benda-benda yang lebih dalam di belakangnya (yaitu di bawah tanah) ada detail yang berbeda atau hanya hitam.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Saya ingin melakukan sesuatu yang serupa menggunakan poligon. Medan dibuat pada level saya saat ini sebagai satu set kotak persegi yang tumpang tindih. Saya tidak yakin apakah metode rendering ini akan bekerja seperti sistem untuk membuat medan tetapi jika ada yang punya ide saya ingin mendengarnya. Kalau tidak, saya ingin tahu bagaimana saya harus menulis ulang sistem rendering medan sehingga benar-benar berfungsi menggambar medan dengan cara ini ...

meds
sumber
1
Aquaria menyertakan editor level, jadi Anda bisa melihatnya untuk melihat bagaimana tepatnya mereka membangun aset.
2
Selain melihat pada editor level Aquaria, metode dasar yang digunakan di sini adalah memiliki dua (atau lebih) lapisan medan yang dirender.
thedaian

Jawaban:

133

Metroid hanya menggunakan ubin, tidak ada yang istimewa terjadi di sana.

Namun Aquaria melakukan sesuatu yang agak pintar. Jika Anda perhatikan, banyak batu-batu di atas tempat tidur diulang beberapa kali. Ini salah satu contohnya:

satu variasi batuan berulang dengan setiap instance dilingkari

Sepertinya mereka baru saja membuang sprite di sepanjang tepi medan mereka. Ini seperti apa yang dilakukan Metroid - gudang besar ubin tepi, tetapi jika Anda memperhatikan Anda dapat melihat pengulangan ubin. Acquaria melakukan hal yang sama, kecuali dengan sprite batu, dan bukan pada grid.

Bagaimana cara mereplikasi itu

Ini mungkin tidak persis bagaimana mereka melakukannya, tetapi ini adalah salah satu cara untuk menghasilkan hasil akhir yang sama.

Pertama, dapatkan sendiri sekumpulan sprite batu yang bagus seperti ini:

beberapa sprite batu perdy

Sekarang ada proses untuk diikuti sehingga Anda tahu di mana harus meletakkannya.

Tentukan simpul dan tepi yang membentuk medan Anda.  Lintasi mereka seperti seekor laba-laba yang berjalan melintasi garis jaring dan pada jarak reguler menyimpan koordinat saat ini.  Jarak inverval tergantung pada ukuran sprite Anda!  Warnai satu sisi hitam lalu buang sprite pada setiap titik yang Anda rekam.

Tada!

Anda dapat menggunakan ini sekali untuk menghasilkan daftar batu dan di mana untuk menggambarnya, maka Anda cukup menggambar semua sprite batu Anda. Atau mungkin Anda bisa menggambar semua poin dan memilih sprite yang berbeda untuk menggambar pada setiap langkah, membuat tepi lubang lava atau medan asing!

Dan fitur medan lainnya ...

Aquaria bisa menggunakan metode yang sangat mirip untuk membuang semua jamur, karang dan fitur lainnya di dasar laut (termasuk struktur berbatu raksasa yang membentuk latar belakang). Jamur bisa dihasilkan seperti ini:

  1. Kumpulkan beberapa poin pada interval acak , bukan interval tetap.
  2. Jangan hanya menyimpan intinya. Juga simpan normal tepi yang Anda pilih titiknya.
  3. Pilih rotasi acak dalam rentang tertentu rotasi normal. Sebagai contoh jika normal menunjuk pada 30 derajat, pilih rotasi dalam 20 derajat dari itu (yaitu antara 10-50 derajat).
  4. Gambar jamur Anda pada rotasi yang dipilih, dan pada panjang tangkai acak.

Segala sesuatu yang lain mungkin merupakan variasi dari instruksi yang sama: karang tidak diputar banyak, kedua cangkang / batu itu mungkin hanya ditempatkan jika medan yang normal mengarah ke atas secara kasar (yaitu dataran rata).

Catatan Akhir

Karena seorang komentator bertanya: Saya membuat gambar-gambar ini dalam Adobe Photoshop (menyusut di sini sebesar 50% untuk garis yang tajam) menggunakan tablet Wacom Intuos3 (yang memungkinkan saya menggambar secara bebas dan alami, dan memvariasikan lebar garis saya dll).

doppelgreener
sumber
25
Jawaban bagus! Karya seni besar yang menyertainya.
Tim Holt
2
Wow, sebagian besar gambar dan foto yang pernah saya lihat pada jawaban.
Xeoncross
Jawaban Terbaik. Kerja bagus
Ellis
2
@Jonathan Hobbs: Karya seni yang sangat bagus. Apakah Anda menggambar semua ini? Jika demikian, program apa yang Anda gunakan? Saya sangat suka hasil dan efeknya ketika mencoba menunjukkan sesuatu. Terima kasih.
Jesse Emond
4
Saya pikir, "Saya harus mendapatkan salah satu tablet itu sehingga saya dapat membuat karya seni yang bagus seperti itu!" Lalu aku berpikir, "Oh benar, toh aku tidak pandai menggambar dan tablet tidak akan membantu itu"
MichaelHouse
3

Melakukan ini dengan Poligon akan sangat sederhana, selama Anda memiliki pola pengulangan / ubin yang bagus, Anda dapat dengan mudah mengatur model Anda untuk menduplikasi sepanjang kurva, tidak ada yang rumit sama sekali.

Semoga itu bisa membantu.

Dan_Tsukasa
sumber
Setelah ini Anda BISA membuatnya, dan hanya menggunakan pesawat untuk mencapai hasil yang sama (asalkan mereka hanya untuk latar depan dan pemain tidak pernah menyentuhnya, dengan cara ini polycount dalam adegan akan lebih kecil, karena mungkin memiliki banyak objek yang digandakan (seperti pada 2 contoh di atas) akan menjadi sangat intensif
Dan_Tsukasa
Jika Anda menggunakan strip segitiga untuk membuat perbatasan, itu akan menjadi kurang intensif poli (N / 2) +2, tetapi Anda tidak akan bisa mendapatkan efek 'tumpang tindih' yang bagus tanpa membuat ubin khusus.
Jonathan Connell