Saya berjuang untuk memahami dasar-dasar di balik seni pixel di Unity.
Saya mengerti apa itu unit, dan jika saya menggambar sprite saya dengan 16x16 piksel, saya harus mengatur PPU ke 16.
Ambil lembah stardew misalnya, pada gambar di bawah ini Anda dapat dengan jelas melihat bahwa pemain tidak persegi. Pembuat game mengatakan dia membuat semuanya dalam 16x16, tapi lalu bagaimana ada begitu banyak detail dalam karakter? Tentunya Anda tidak menambal beberapa kotak 16x16 bersama untuk membuat karakter (seperti yang Anda lakukan dengan tilemap)?
Apa itu "umum" cara berurusan dengan hal-hal yang tidak persegi, seperti karakter pada gambar. Apakah Anda hanya membuat sprite 16x32 dan mengatur PPU ke 16? Tidakkah itu membuatnya terlihat sedikit aneh di sebelah sprite 16x16? Apakah Anda biasanya memilih satu ukuran (yaitu 16, 32, 64) Dan kemudian berpegang teguh pada itu untuk semua yang ada dalam permainan?
Masalah visual yang saya lihat adalah ini, di mana sprite 32x32 terlihat sangat tidak pada tempatnya (terlalu tajam) di samping sprite 16x16.
Jadi saya bertanya-tanya, bagaimana Anda mencampur ukuran tanpa mendapatkan efek ini di mana satu gambar terlihat jauh lebih tajam daripada yang lain. Misalnya saya ingin karakter menjadi 16x32, atau nilai non-kuadrat, ketika ubin saya 16x16
sumber
Jawaban:
Merangkum poin-poin di atas, yang penting untuk mencocokkan dua keping pixel art adalah bahwa kerapatan pikselnya (texels per area layar / unit dunia) adalah sama.
Dengan menggunakan beberapa sprite dari Stardew Valley sebagai contoh, kita dapat melihat bahwa meskipun sprite memiliki dimensi tekstur yang berbeda, mereka cocok pada grid yang konsisten karena setiap piksel digambar dengan ukuran yang sama.
Jika kita menganggap ukuran tanaman sebagai satu ubin / satu unit ruang dunia, kita dapat melihat unit ini membentang 16 piksel secara horizontal dan vertikal. Karakter, memiliki dua kali ketinggian tanaman, juga mencakup dua kali jumlah ubin / unit dunia, sehingga kerapatan piksel tetap sama pada 16 piksel per unit dunia.
Khusus untuk Unity, ini memperlihatkan ini untuk Anda sebagai pengaturan Pixels Per Unit di inspektur pengaturan impor Sprite . Selama Anda menggunakan satu angka yang konsisten di sini untuk semua sprite Anda, Unity akan secara otomatis menangani penggambarannya pada ukuran yang tepat di dunia Anda untuk menjaga kerapatan piksel ini - bahkan jika itu ukuran ganjil dan bukan kekuatan dua atau tepatnya kelipatan ukuran ubin Anda. Jadi dalam contoh ini, baik semak dan karakter, dan semua hal lain dalam game akan menggunakan PPU 16.
Jumlah pasti yang Anda pilih bukan masalah besar, konsistensi yang paling penting. Jika kami ingin setiap ubin merentang 2 unit dunia, sehingga saat mengedit tingkat kami dapat dengan mudah mengambil sudut ubin (angka ganjil) dan pusat ubin (angka genap), maka kami akan menggunakan PPU 8 untuk semua sprite kami.
Hanya saja, jangan menolaknya terlalu rendah. Anda akan melihat beberapa artikel di luar sana merekomendasikan pengaturan PPU 1, yang berarti sprite 256-pixel akan menjangkau 256 unit dunia. Meskipun ini mungkin tidak terdengar mengkhawatirkan, sistem seperti fisika disetel dengan asumsi sebagian besar gameplay Anda akan terjadi pada skala sepersepuluh hingga puluhan unit, dan membuat skala Anda terlalu besar dapat menyebabkan mereka berperilaku buruk. Cobalah untuk memilih sejumlah piksel yang bermakna dalam gameplay Anda, seperti lebar karakter atau ubin Anda. Ini juga akan membuat matematika Anda lebih mudah untuk pemrograman & desain level (mis. "Saya ingin karakter ini berlari 3 ubin dengan benar, jadi itu
x + 3.0f
")Perhatikan bahwa penskalaan sprite, gambar UI, atau orang tuanya yang menggunakan properti transformasi akan menjauhkan mereka dari kerapatan piksel yang konsisten ini, jadi berhati-hatilah dengan properti skala, dan simpan sebagian besar atau semua adegan Anda pada skala 1,0 untuk kesederhanaan.
Satu peringatan terakhir adalah bahwa semua ini tidak menentukan seberapa besar sprite Anda benar-benar berakhir di layar Anda - itu ditentukan oleh ukuran jendela permainan / layar Anda, dan ukuran / FoV / sudut kamera Anda. Untuk pixel perfect 2D, Anda juga perlu memastikan bahwa ketinggian jendela Anda adalah kelipatan angka-keseluruhan dari jumlah piksel sprite yang dilihat kamera Anda (tinggi ortografis kamera x 2 x PPU)
sumber