Dalam
tutorial retro-game
pertama kami, kami menunjukkan cara menyesuaikan alat 2D Pixel Perfect dan bagaimana grafik dibuat di era game 8-bit. Dalam posting ini kita akan dipindahkan ke era 16-bit. Dengan Mega Cat Studios, kita akan belajar cara membuat grafik otentik untuk gim dengan gaya Sega Genesis (Mega Drive) dan Super NES menggunakan opsi, struktur grafis, dan palet warna Unity.
Buat Grafis Kejadian-Gaya Otentik
Di bagian ini, kami akan mempertimbangkan alur kerja pembuatan grafik yang meniru gambar dari konsol yang berbeda. Akan ada lebih sedikit batasan daripada dalam proyek 8-bit dan lebih banyak kebebasan ketika bekerja dengan warna, tetapi tetap saja, Genesis memiliki batas. Kami percaya bahwa itu juga akan berguna untuk menjelaskan bagaimana perangkat keras konsol bekerja sehingga Anda dapat menerapkan pembatasan ini dalam proyek retro Anda sendiri.
Palet dan Sub-Palet
Transisi dari konsol 8-bit ke 16-bit karena kompleksitas peralatan memberi para pengembang lebih banyak peluang. Namun, prinsip-prinsip untuk membuat grafik NES berkualitas tinggi masih berlaku. Semua gambar masih disimpan dalam ubin, misalnya, berukuran 8 × 8, dan dikumpulkan darinya ke dalam gambar besar - sprite dan elemen latar belakang. Seniman masih terbatas pada sub-palet dengan warna transparan yang umum, tetapi 16 bit memberikan lebih banyak fleksibilitas untuk bekerja dengan palet. Anda kemungkinan besar akan senang bahwa konsol 16-bit tidak memiliki palet warna yang terdefinisi dengan baik, yaitu, jumlah warna yang tersedia telah sangat berkembang dibandingkan dengan NES.
Selain itu, Genesis menawarkan sub-palet yang berisi 15 warna plus warna keseluruhan yang digunakan untuk transparansi sprite dan layer. Namun, salah satu kelemahan dalam membuat grafik untuk Genesis adalah bekerja dengan sub-palet. Sub-palet dapat secara bebas ditugaskan untuk sprite atau ubin latar belakang, tetapi Genesis memungkinkan Anda untuk menggunakan tidak lebih dari empat sub-palet sekaligus. Oleh karena itu, seniman perlu berpikir tentang warna apa yang harus digunakan dalam sub-palet, sehingga jumlah sprite dan latar belakang mereka maksimum. Sub-palet Genesis biasanya berisi warna yang digunakan untuk latar belakang dan sprite.
Adegan dari game untuk Genesis ditampilkan di atas, dan sub-palet yang digunakan di bawah ini.Membuat grafik untuk platform 16-bit, Anda harus bekerja dengan palet yang diindeks. Untuk melakukan ini, Anda dapat menggunakan editor Gimp, alternatif gratis untuk Photoshop yang memungkinkan Anda untuk memanipulasi palet yang diindeks.
Untuk membuat palet yang diindeks di Gimp, buka
Image> Mode> Indexed ...
Jendela Konversi Warna Terindeks terbuka.
Untuk jumlah warna maksimum, atur nilainya menjadi
15 . Anda dapat menggunakan pola dithering otomatis, tetapi biasanya terlihat lebih baik jika Anda membuatnya secara manual.
Warna gambar sekarang diindeks. Informasi ini disimpan secara otomatis dengan gambar sehingga indeks warna dapat digunakan. Jika Anda perlu mengubah urutan warna dalam indeks, maka cukup klik kanan pada peta warna dan pilih
Atur Ulang Colormap ...Sebuah jendela akan terbuka yang memungkinkan Anda untuk menarik dan melepas warna, mengubah urutannya.
Trik yang populer untuk meningkatkan kedalaman warna adalah dengan mengontrol palet pada garis pemindaian tertentu, mirip dengan cara penggiliran paralaks diimplementasikan pada NES. Konsol Genesis dapat mengubah pilihan sub-palet grafik pada garis pindai yang ditentukan. Trik ini sering digunakan untuk menciptakan ilusi bahwa sebagian level berada di bawah air. Warna bawah air ditambahkan ke sub-palet terpisah, dan sub-palet ini dimuat ketika garis pemindaian yang ditentukan ditampilkan di layar.
Penyimpanan dalam ubin dan memuat di konsol ini
Secara umum, konsol 16-bit memuat ubin grafis berbeda dari yang 8-bit. Konsol 8-bit memuat ubin sprite dan latar belakang dengan potongan besar data untuk menghemat daya pemrosesan, sementara sumber daya konsol 16-bit memberikan peningkatan fleksibilitas. Mereka dapat memuat dan mengganti ubin terpisah dengan cepat, berkat hanya dimungkinkan memuat grafis yang diperlukan. Oleh karena itu, pada satu layar atau level, Anda dapat menggunakan beragam grafik yang lebih luas.
Aspek unik lain dari Genesis / Mega Drive adalah bahwa data grafis dan palet bukan satu-satunya data yang dimuat ke konsol VRAM selama permainan. Ini membuatnya sulit untuk membuat desain grafis untuk konsol, karena jumlah ubin grafis yang dapat dimuat ke memori pada titik waktu tertentu tergantung pada apa lagi yang terjadi dalam permainan. Dalam kasus umum, sebagian besar gim memiliki ruang yang cukup untuk memuat sekitar 1000 ubin, dan dengan elemen dinamis, ubin selalu dapat diunduh secara gratis dan dimuat ke dalam memori.
Ubin dimuat ke dalam memori dalam adegan yang ditunjukkan di atas. Ruang kosong besar di tengah dan artefak di bawah ini adalah ruang yang dialokasikan dalam memori untuk musuh dan elemen lain dari permainan.Terlepas dari kenyataan bahwa dalam VRAM, variasi ubin yang lebih besar dapat dimuat pada saat yang sama, paling sering ruang tambahan ini disediakan untuk sprite. Ini memberikan animasi yang lebih kompleks dan memungkinkan untuk menampilkan lebih banyak sprite di layar secara bersamaan. Artinya, filosofi desain dasar dengan segmen ubin berulang masih aktif digunakan dalam grafis 16-bit, karena latar belakang yang tidak memakan banyak ruang yang tersedia. Izin NES, Genesis, dan SNES hampir sama, jadi segmen 16 × 16 biasanya merupakan titik awal untuk jenis desain ini.
Di sini, seniman menggunakan pola blok 32 × 32 untuk membuat bagian utama lantai, yang merupakan latar belakang.Bekerja dengan lapisan latar belakang
Genesis / Mega Drive memungkinkan Anda menampilkan dua lapisan latar secara bersamaan di layar. Ini berarti elemen overlay lebih nyaman untuk membuat latar belakang desain. Namun demikian, hanya ada dua lapisan, oleh karena itu, untuk memberikan adegan yang lebih dalam, artis dan pengembang dapat menggunakan trik dengan garis pindai. Untungnya, karena semua ini dapat ditransfer ke lapisan kedua, desainer bebas untuk menempatkan objek latar depan di depan latar belakang tanpa merusak ilusi.
Selain itu, berkat kehadiran lapisan kedua, pengembang tidak lagi harus menerapkan trik dengan prioritas sprite. Alih-alih terus mengubah prioritas sprite dengan cepat, sekarang mungkin untuk mengatur lapisan kedua dari latar belakang yang ditampilkan di depan pemain. Namun, untuk overlay yang lebih kompleks, masih membutuhkan manipulasi cepat prioritas sprite. Lapisan latar belakang kedua juga memiliki area yang dapat digunakan untuk antarmuka. Area ini terkunci di tempatnya dan tidak akan pernah bergulir.
Karena tampilan top-down untuk pohon, perlu dibuat ubin khusus untuk memanipulasi urutan lapisan sprite.Pembatasan sprite
Saat beralih ke 16 bit, kebebasan bekerja dengan sprite sangat meningkat. Genesis / Mega Drive memungkinkan Anda untuk secara bersamaan menampilkan di layar hingga 80 sprite dan hingga 20 sprite pada satu garis horizontal; semua sprite berikutnya tidak diberikan. Selain itu, sprite tidak lagi dianggap terpisah 8 × 8 ubin. Genesis mampu menghasilkan sprite tunggal yang terdiri dari beberapa ubin. Mereka bisa dari satu ubin ke ubin 4x4. Gambar yang lebih besar harus terdiri dari beberapa sprite.
Grafik bos terakhir menggunakan sejumlah besar elemen latar belakang animasi, lapisan, dan banyak sprite. Semua ini tidak mungkin dilakukan pada platform 8-bit.Pola dan kontras dithering
Salah satu fitur karakteristik grafis era 16-bit adalah penggunaan dithering. Pada masa itu, permainan dimainkan di TV CRT, di mana piksel layar biasanya bergabung satu sama lain. Artis mengambil keuntungan dari fitur ini dengan menerapkan pola dithering dalam grafik mereka: ketika satu piksel bergabung dengan yang lain dalam pola berulang, ini menciptakan ilusi warna yang lebih banyak daripada yang diizinkan konsol. Untuk menyampaikan estetika aslinya, dithering masih digunakan secara aktif dalam pixel art, meskipun tampilan lebih baik.
Dithering sering digunakan pada konsol 16-bit. Pada layar CRT, pola piksel bercampur, menciptakan warna baru atau efek transparansi yang tidak memungkinkan.Dibandingkan dengan SNES, Genesis / Mega Drive menampilkan warna dengan kontras yang lebih tinggi. Ini juga perlu dipertimbangkan ketika memilih sub-palet. Jika Anda membuat gim dengan warna yang pudar dan kusam, maka selama rendering pada perangkat keras asli, palet mungkin berbeda. Secara umum, grafik harus dibuat dalam palet warna kontras tinggi sehingga hasil akhir sesuai dengan visi asli artis.
Buat grafik bergaya SNES yang otentik
Game Super NES masih bekerja dengan grid / ubin 8 × 8 piksel, jadi sangat berguna untuk menggunakan ubin berulang. Secara umum, ukurannya harus kelipatan delapan.
Palet warna
Perbedaan mendasar pertama antara Genesis / Mega Drive dan SNES berkaitan dengan palet warna. Seperti Mega Drive, konsol SNES tidak memiliki palet warna yang dijahit dalam perangkat keras, sehingga Anda dapat memilih warna sendiri.
Kompleksitas SNES adalah menggunakan warna dengan kedalaman 5 bit per piksel (bit per pixel, BPP), yang jarang terlihat saat ini. Anda dapat mengimplementasikannya dengan Gimp, dan kemudian cukup memposting gambar dalam 32 warna RGB, yang akan sesuai dengan warna dengan 5 BPP. Ini akan secara akurat menampilkan warna gambar pada konsol.
Opsi ini di Gimp terletak di item menu
Warna> Posterize ... Jendela sembul akan muncul di mana Anda dapat mengatur level Posterize ke 32 untuk membuat warna yang kompatibel dengan 5 BPP.
Resolusi layar
Perbedaan besar lainnya antara kedua sistem berkaitan dengan resolusi layar. Karena SNES adalah keturunan dari NES, kedua konsol memiliki resolusi layar yang sama. Resolusi internal SNES adalah 256 × 224. Hal ini memungkinkan Anda untuk membuat gambar di area aman di sebagian besar televisi CRT tanpa memotong bagian gambar. Resolusi ini tidak pernah berubah, jadi itu akan menjadi ukuran gambar, dan artis harus menggunakannya.
Gambar ini menempati resolusi SNES layar penuh yang digunakan di sebagian besar mode layar.Mode layar konsol
Di bagian ini, kita akan membahas secara singkat tentang berbagai mode layar.
Perbedaan terbesar antara konsol adalah bahwa SNES dapat membuat grafik latar belakang dalam tujuh mode layar yang berbeda. Dalam beberapa mode layar, SNES secara bersamaan dapat membuat 256 warna dari satu sub-palet di layar. Berikut adalah mode layar paling populer:
- Mode 1: salah satu mode layar paling umum untuk SNES. Ini adalah mode paling rata-rata yang menunjukkan kemampuan konsol. Mode 1 memungkinkan Anda untuk bekerja dengan tiga lapisan latar belakang, dua di antaranya memiliki 16 palet warna, dan lapisan terakhir memiliki 4 palet warna.
- Mode 3: Mode ini biasanya digunakan untuk gambar foto besar, seperti layar splash atau adegan. Ini memiliki dua lapisan latar belakang. Yang pertama menggunakan sub-palet 256-warna penuh, yang kedua menggunakan yang 16-warna.
- Mode 7: Ini adalah salah satu fitur utama SNES. Mode ini ditunjukkan di sebagian besar bahan iklan konsol. Berkat Mode 7, konsol rumah untuk pertama kalinya dapat melakukan transformasi gambar dalam waktu nyata: penskalaan, rotasi, peregangan, dan kemiringan pada bidang latar belakang. Itu digunakan untuk membuat efek pseudo-3D yang dapat dilihat di banyak game balap dan simulator penerbangan untuk SNES.
Untuk memastikan bahwa fungsi-fungsi ini bekerja, satu-satunya bidang latar belakang dalam Mode 7 diproses sangat berbeda dari pada mode layar lainnya. Pertama, hanya ada satu bidang warna 256-warna, yaitu, semua sprite harus memiliki warna dari sub-palet bidang latar belakang ini. Kedua, alih-alih ukuran layar SNES yang biasa, bidang latar belakang dalam Mode 7 adalah 1024 × 1024 piksel. Ini bersisik dan menyesuaikan sesuai kebutuhan desainer.
Kantor ini menggunakan Mode 1 dengan satu sub-palet (dua lainnya digunakan untuk UI). Layar Thanks for Playing menggunakan Mode 3, yang memungkinkan seniman untuk menerapkan palet 256-warna.
Ukuran sprite
Dibandingkan dengan kompleksitas mode layar latar belakang, aturan untuk bekerja dengan sprite relatif sederhana. SNES memiliki beberapa mode sprite yang berbeda, hampir seperti Mega Drive, tetapi dengan batasan ketat: konsol hanya dapat menggunakan dua mode sprite yang berbeda dalam game
Sprite dapat memiliki ukuran 8 × 8, 16 × 16, 32 × 32 atau 64 × 64. Tapi itu belum semuanya - desainer harus memilih kombinasi dari daftar ukuran sprite yang sudah jadi. Kombinasi berikut dapat digunakan dalam game SNES:
- 8 × 8, 16 × 16
- 8 × 8, 32 × 32
- 8 × 8, 64 × 64
- 16 × 16, 32 × 32
- 16 × 16, 64 × 64
- 32 × 32, 64 × 64
Ukuran ini dipilih "sekali dan untuk semua", dan semua sprite dalam game harus cocok dengan mereka. SNES mampu membuat 32 sprite pada satu garis pemindaian horizontal, dan tidak lebih dari 128 sprite pada layar sekaligus. Semua yang lain tidak akan diberikan.
Fork Parker's Crunch-Out menggunakan kombinasi 32 × 32 dan 16 × 16 untuk semua sprite dalam game.Sprite dapat bekerja dengan delapan sub-palet 16-warna. Seperti halnya semua konsol retro, warna pertama dari setiap sub-palet adalah warna keseluruhan yang digunakan untuk transparansi. Sejumlah besar sub-palet dibandingkan dengan konsol lain memberi kita lebih banyak kebebasan dalam memilih warna untuk sprite. Anda hanya perlu mengingat bahwa ada batasan ketat 256 warna.
Menggunakan 2D Pixel Perfect untuk membuat game retro
Pada
tutorial retro sebelumnya, kami membahas opsi 2D Pixel Perfect dan membuat ulang grafis gaya 8-bit.
Dimulai dengan Unity 2019.2, paket 2D Pixel Perfect adalah bagian dari 2D Renderer, yang pada gilirannya merupakan bagian dari paket Lightweight Render Pipeline (LWRP). Jika Anda tidak menggunakan LWRP, maka 2D Pixel Perfect juga dapat digunakan sebagai paket terpisah. Dalam tutorial ini kami akan menunjukkan cara mengatur proyek di LWRP.
Mempersiapkan proyek baru di Unity 2019.2 dan LWRP
- Luncurkan Unity Hub, klik New, pilih 2D dan tentukan nama proyek Anda.
- Untuk mengimpor paket 2D Pixel Perfect, klik pada menu Window pada bilah alat dan pilih Package Manager . Di jendela yang muncul, pilih paket RP Ringan dan pastikan versinya 6.9.0 atau lebih tinggi.
- Maka Anda perlu mengkonfigurasi Renderer 2D di Editor dan membuat Aset Pipeline baru. Di jendela Proyek, klik kanan pada jendela Aset dan pilih Buat> Rendering> Pipa Render Ringan> Aset Pipa .
- Di jendela Aset dari jendela Proyek, buat Renderer 2D baru dengan mengklik kanan dan memilih Buat> Rendering> Pipa Render Ringan> Renderer 2D .
- Pilih Aset Pipeline yang dibuat. Pilih Umum , lalu alihkan Jenis Renderer dari Teruskan Renderer ke Kustom .
- Tetapkan Penampil 2D yang dihasilkan sebagai nilai bidang data.
- Dalam opsi Grafik, ubah Pengaturan Pipeline Scriptable Render untuk menggunakan Aset Pipeline baru yang Anda buat.
Ini melengkapi pengaturan 2D Renderer, serta 2D Pixel Perfect Camera.
Dalam Unity 2019.2, sprite dua dimensi dapat memiliki material Sprite-Lit yang memungkinkan mereka untuk merespon kondisi pencahayaan 2D. Jika proyek Anda tidak memiliki pencahayaan 2D, maka gunakan material yang tidak memerlukan pencahayaan 2D sehingga sprite terlihat, yaitu, "Sprite-Default".
Pixel Perfect tingtur untuk gaya grafis 16-bit
Anda harus menambahkan komponen Pixel Perfect Camera ke Main Camera. Kami menyarankan Anda memilih kotak centang Jalankan Dalam Mode Edit.
Konsol
Sega Genesis memiliki resolusi 320 × 224 piksel (atau kotak 40 × 28 ubin berukuran 8 × 8 piksel). Ini berlaku untuk versi NTSC.
Konsol
Super NES juga dalam versi NTSC memiliki resolusi 256 × 224 (30 × 28 ubin dengan ukuran 8 × 8 piksel).
Untuk membuat kedua gaya grafis, sebaiknya gunakan resolusi tinggi 224 piksel dan 8 PPU.
Dengan menggunakan sprite bantuan (di atas menunjukkan gambar layar penuh 320 × 224 dari Sonic the Hedgehog for Sega Genesis), Anda dapat memahami bagaimana sprite dengan 8 piksel per unit (piksel per unit, PPU) ditempatkan di jendela Scene dengan resolusi dan PPU yang sama.
Jika Anda memerlukan pengingat tentang apa yang masing-masing opsi dalam komponen 2D Pixel Perfect Camera lakukan, maka baca
tutorial retro game sebelumnya .
Pengembangan lebih lanjut
Saya harap Anda menikmati serangkaian posting ini tentang membuat game retro 8- dan 16-bit menggunakan 2D Pixel Perfect di versi terbaru Unity.
Kami belum selesai dengan 2D Pixel Perfect, karena paket ini akan siap untuk diproduksi di Unity 2019.3, dan juga akan mendapatkan lebih banyak kompatibilitas dengan Cinemachine 2D.
Buat kami tetap terbarui dengan proyek Anda dengan 2D Pixel Perfect dan jangan lupa mengunjungi
forum 2D untuk berbicara dengan pengguna Unity dan pengembang fungsi 2D.