Gaya visual dari game pengembangan saya
LAUNDRY GAME (ya, ini adalah iklan yang tidak tahu malu) didasarkan pada
piksel yang besar dan jelas dalam 3D. Saya
suka 3D resolusi rendah. Saya ditanya banyak pertanyaan tentang bagaimana saya melakukan ini, jadi saya memutuskan untuk menulis tutorial.
Catatan: ini hanya keputusanku! Ada beberapa metode menggunakan shader, grafis yang mencolok dan trik lainnya, tetapi untuk proyek solo kecil saya solusi semacam itu sudah cukup.Tambahan 1: orang pintar Pete Brisburn mengirim skrip di sini jika Anda tidak suka trik "quad in the sky" (langkah 4-6)!Tahap 1: mempersiapkan adegan sumber
Pertama, Anda perlu menyiapkan adegan! Saya membuat kubus kecil ini dengan teman burung saya
Oscar J. Ruffles . Dia berlari di sekitar kubus dan terus-menerus menjerit. (Ini hanya pengontrol karakter dan animator yang terhubung bersama-sama.)
Tapi lihat garis-garis smoothing menjijikkan ini! Fu, mari kita singkirkan mereka.
Tahap 2: lepaskan kamera MSAA
Sorot
Kamera Utama dan
hapus centang pada kotak
Perbolehkan MSAA . Seperti yang Anda lihat, piksel jauh lebih tajam. Tapi belum ada upscaling! Artinya, semua piksel akan berukuran kecil. Itu perlu diperbaiki.
Tahap 3: rendering kamera dalam tekstur render
Saya memperbesar (untuk mendapatkan piksel
renyah besar) menggunakan
RenderTexture dan merender Kamera Utama ke dalam tekstur ini. Ini akan memungkinkan kita untuk menggunakan RenderTexture ini seperti tekstur biasa!
Berikut adalah opsi yang akan saya gunakan untuk
RenderTexture saya. Ukuran adalah ukuran
di mana kita memperbesar. Semakin kecil angkanya, semakin besar pikselnya. Untuk kedua nilai, saya biasanya menggunakan angka dalam kisaran
300 hingga 600 (
Celeste yang sangat baik, misalnya, melakukan pembesaran dari 320x200).
Mode Filter adalah cara untuk melakukan naik / turun skala. Mode "Point" tidak menambahkan anti-aliasing, yaitu mempertahankan ketajaman piksel yang sangat kita butuhkan.
Tetapi apa yang terjadi?
Sekarang kami membuat Camera bukan di layar, tetapi di RenderTexture, jadi tidak ada yang ditampilkan di layar!
Untuk memperbaikinya, kita perlu mengatur
kamera lain , tetapi kali ini sedikit berbeda.
Tahap 4: Buat Kamera Zoom + Quad
Mari kita mulai dengan membuat kamera baru di tempat kejadian (sebut saja
QuadCamera ) dan pasang
quad 3D ke dalamnya sebagai seorang anak.
Tahap 5: letakkan di suatu tempat kosong
Maka kita perlu mengambil
QuadCamera dan mendorongnya ke suatu tempat. Di mana pun, hal utama adalah bahwa itu tidak boleh terlihat dari
Kamera Utama . Saya biasanya mengangkatnya tinggi ke langit atau menurunkannya jauh ke bawah.
Langkah 6: Pasang Tekstur Render ke Quad dan Letakkan di Depan Kamera
Lalu kita ambil quad. Saya mengatur
Sprite-Default untuk itu (bahan Unity standar yang tidak terpengaruh oleh pencahayaan) sehingga tidak akan terpengaruh oleh pencahayaan acak apa pun di tempat kejadian. Kemudian seret
RenderTexture ke quad. Sekarang quad menunjukkan adegan kita! Lalu kami memindahkan quad sehingga berada di depan
QuadCamera (kamera yang sekarang menampilkan layar target).
Seperti yang Anda lihat, skala rendering kini telah meningkat! Oscar dapat secara konstan mengklik paruh pikselnya! Tetapi pada saat yang sama, kami semakin dekat dengan kepalanya.
Tahap 7: sesuaikan kamera
Pada tahap terakhir, mari kita kembali ke
Kamera Utama saya dan mengaturnya sehingga kita melihat hal yang sama sebelumnya. Di sini Anda dapat meningkatkan ukuran tekstur render sehingga piksel menjadi sedikit lebih kecil, atau menguranginya, sehingga hanya 7 piksel yang pas di layar. Sudah waktunya untuk bereksperimen, cari yang cocok untuk Anda secara pribadi.
Bonus: pastikan bahwa teksturnya tidak buram
Seperti yang telah kita lihat, tekstur model (mata besar Oscar) telah kabur selama ini. Ini terjadi karena ketika mengimpor tekstur ke Unity, parameter standar dipilih untuk menghasilkan tekstur mip dan penskalaan halus. Tetapi kita tidak membutuhkan ini. Oleh karena itu, ketika mengimpor tekstur, Anda harus menonaktifkan
Generate Mip Maps dan pilih mode
Point untuk
Mode Filter .