Bagaimana saya bisa membuat efek 'menyala' seperti di layar judul Ocarina of Time?

102

Saya ingin membuat kembali efek yang menyala seperti yang ada pada logo di layar judul game N64 'The Legend of Zelda: Ocarina of Time,' yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di sini

Pandangan cepat ke tekstur yang digunakan dalam ROM memberikan tekstur 32x32 tunggal yang terlihat mirip dengan efeknya tetapi saya tidak tahu bagaimana gambar itu (dengan asumsi itu yang benar) ditransformasikan menjadi efek yang terlihat pada logo.

Bagaimana saya bisa menerapkan sesuatu yang serupa?

nathanburns
sumber
2
Saya sedikit menyesuaikan pertanyaan Anda untuk bertanya bagaimana mencapai efek yang sama, karena kami tidak menganggap pertanyaan yang menanyakan bagaimana game lain menerapkan hasil tertentu sesuai topik.
Josh
Apakah Anda meminta teknik prosedural atau efek pra-dibuat yang sederhana juga cukup?
Bálint
Saya tidak punya waktu dan pengetahuan untuk menulis jawaban yang lengkap, tapi mungkin itu bisa dilakukan melalui bersepeda warna .
Alexandre Vaillancourt
@JoshPetrie Terima kasih, itulah yang benar-benar saya cari
nathanburns
1
Dari apa yang saya ingat tentang tekniknya, bagian yang sulit berasal dari membuat gambar dengan piksel menggunakan palet yang sesuai, bukan warna per se. Bersepeda dilakukan dalam kode melalui subset warna.
Alexandre Vaillancourt

Jawaban:

248

Pertama-tama buat topeng putih-hitam pada logo / teks Anda dan blur.

bentuk logo kabur

Lalu buat tekstur noise padat berulang (tileable) (GIMP digunakan di sini)

tekstur suara

Gunakan filter Map-> Tile ... untuk membuat pola ubin 3x3 (dalam contoh ini, 128x128 x 3 = 384x384) untuk langkah berikutnya untuk memastikan tekstur kami masih dapat diulang - kami hanya akan menyimpan bagian tengah.

gambar sebelumnya ubin 3 oleh 3

Gunakan Blur-> Motion Blur ... untuk mengaburkan tekstur ke atas dan hanya menjaga bagian tengah 1/3 (kembali ke 128x128)

noise plus motion blur

Lipat gandakan kedua tekstur pada GPU dan gunakan ini untuk opacity.

topeng dikombinasikan dengan kebisingan

Kemudian menghidupkannya dengan menggerakkan tekstur pola ke atas di atas tekstur topeng:

topeng dikombinasikan dengan kebisingan bergerak

Selesai untuk bagian animasi.

Kemudian Anda dapat menerapkan peta gradien (hitam -> merah -> kuning -> putih) untuk memberikan warna api:

bentuk logo dengan warna api

Warna lain dapat digunakan membuat api biru yang mengerikan, bidang aura kuning muda, efek yang lebih berasap, dll.

Sekarang jika Anda menggabungkan ini sebagai aditif di atas logo Anda dan render 3D Anda mendapatkan efek yang diinginkan:

Latar Belakang+ logo+ api=logo menyala di atas latar belakang

Efeknya dapat gelap dengan menyesuaikan topeng dan / atau kecerahan pola, dan / atau warna titik, dan / atau peta warna gradien ke tingkat yang dirancang.

Anda bahkan dapat menggunakan dua pola bertekstur bersamaan (Mask * Fire Pattern * Fire Pattern) pada kecepatan dan arah yang berbeda untuk membuat efek api yang lebih kompleks.


Secara teknis pada N64 mereka mungkin telah membuat perkiraan topeng menggunakan segitiga mesh dan warna simpul bukan tekstur topeng karena keterbatasan perangkat keras N64 mengenai tekstur tetapi hasil akhirnya adalah sama ((warna titik * pola tekstur) vs ( tekstur topeng * tekstur pola)).

Mock-up warna vertex

Kita masih dapat menggunakan warna titik tetapi 20 tahun kemudian kita dapat membuat hidup kita lebih mudah dan hanya menggunakan 2 tekstur atau lebih, bahkan GPU seluler saat ini dapat menangani tekstur abu-abu 256x128 ekstra tanpa masalah.

Stephane Hockenhull
sumber
3
Saya pikir kami memiliki seorang pemenang - terima kasih @StephaneHockenhull, ini adalah jenis teknik yang saya cari
nathanburns
7
Astaga, ini jawaban yang bagus!
John Gordon
1
"mengerikan" atau "hantu"?
CJ Dennis
1
Itu juga memiliki arti "mengerikan dalam penampilan". "Jangan memakai dasi itu; itu mengerikan". Saya menafsirkan kalimat Anda sebagai "Warna lain dapat memberikan efek yang sangat buruk atau asap". "Hantu" tidak ambigu, bahkan jika itu tidak sekuat yang Anda inginkan.
CJ Dennis
1
Saya berharap saya bisa memberi Anda suara upvote kedua untuk gambar kuda yang sangat tulus.
recognizer
2

Ada beberapa cara yang bisa Anda lakukan selain dari kepala saya,

1) Miliki logo api + semuanya dalam satu gambar dan pada dasarnya sprite sheet menghidupkannya.

2) Render logo dalam lapisan UI dan tempatkan beberapa efek partikel lapisan UI di sekitarnya.

Dari penampilan gambar itu, sepertinya ada lapisan 3ish perisai & pedang, api, teks (dipesan dari belakang ke depan).

Akan ada banyak cara untuk mendapatkan efek yang serupa, yang Anda pilih akan bergantung pada mesin apa yang Anda kembangkan dan apa yang dapat Anda implementasikan.

unknownSPY
sumber
0

Jika ROM termasuk tekstur api kecil, maka saya kira ini sedang dilakukan dengan semacam efek partikel.

Ini akan dilakukan dengan terlebih dahulu meletakkan sprite pada layar untuk judul dan logo. Kemudian tempatkan sejumlah penghasil partikel yang menciptakan efek nyala di belakang judul sprite. Artinya, kedalaman Z / layar mereka sedemikian rupa sehingga mereka render di belakang judul.

Berikut adalah contoh penggunaan efek partikel GameMaker untuk membuat api yang mungkin memberi Anda beberapa pemikiran tentang potensi pendekatan ini ...

http://martincrownover.com/gamemaker-examples-tutorials/particles-fire/

Tim Holt
sumber
Terima kasih atas sarannya - dengan asumsi teksturnya tidak seperti yang ada di tutorial yang Anda tautkan tetapi malah mengisi ruang 32x32 tanpa transparansi, apakah ada cara yang jelas untuk melakukan ini dengan partikel?
nathanburns
Saya hanya akan membuat tekstur nyala sendiri untuk partikel jika aslinya tidak memiliki transparansi. Asumsi saya di sini adalah bahwa kecuali judul aslinya dilakukan dengan animasi sprite lengkap (yang termasuk efek nyala), itu mungkin efek partikel.
Tim Holt
@TimHolt Anda mungkin melebih-lebihkan kemampuan perangkat keras Nintendo 64. Menghasilkan efek api yang tampak "solid" dengan cara ini kemungkinan akan membutuhkan lebih banyak partikel daripada yang bisa dihasilkan oleh perangkat keras.
duskwuff
1
@duskwuff - benar, tapi saya tidak berpikir pengguna mengimplementasikan ini pada perangkat keras lama. Jawabannya masih valid untuk semua sistem (modern) yang layak.
Tim Holt
@duskwuff pertanyaannya adalah bagaimana mengimplementasikannya sekarang. Pertanyaan (dan jawaban) tentang bagaimana game lain melakukan sesuatu di luar topik di sini. Kemampuan perangkat keras N64 tidak relevan di sini. (Lihat komentar Josh Petries ke pertanyaan)