Bagaimana saya bisa memutar sprite seni pixel tanpa estetika hancur?

11

Saya sekarang di depan pertanyaan besar "Desain Game". Saya membuat game pixel-art-ish dan menggunakan interpolasi bilinear bisa menyelesaikan banyak masalah animasi. Di sisi lain, ini bukan "pixel-game" lagi.

Jika saya menggunakan Bilinear Interpolasi, animasi berfungsi tetapi terlihat "hybrid-ish" dan artstyle hilang. Entah aku mengacaukan animasiku atau aku mengacaukan artstyle. Sepertinya saya tidak bisa memiliki keduanya.

Apakah ada cara lain untuk menyelesaikan ini?

masukkan deskripsi gambar di sini

OC_RaizW
sumber
4
Itu keputusanmu, kamu yang memutuskan :)
Vaillancourt
Apakah interpolasi "mono-linear" (biasanya hanya disebut "interpolasi linear") merupakan opsi?
Philipp
1
Saya menulis ulang pertanyaan agar terdengar kurang berdasarkan opini.
Philipp
tunggu apa? saya tidak perlu menyetujui ini? : D
OC_RaizW
1
Ada juga kemungkinan rotasi dengan geser , yang menggerakkan piksel input sekitar tanpa menduplikasi / menghilangkan / memadukannya.
DMGregory

Jawaban:

14

Rotasi otomatis pixel art oleh sudut lain dari 90 ° biasanya salah. Jika Anda ingin mempertahankan estetika pixel-art Anda biasanya tidak akan berkeliling menggambar ulang seni Anda di setiap sudut.

Jika Anda menggunakan tampilan faux-retro di mana sprite Anda sebenarnya dalam resolusi yang jauh lebih tinggi daripada yang terlihat, Anda kadang-kadang bisa pergi dengan meningkatkan skala mereka dengan faktor integer tanpa interpolasi dalam editor grafis Anda dan kemudian memutarnya dalam interpolasi linier saat runtime. Agar sprite Anda tidak kabur saat berada dalam orientasi asli, selalu pastikan bahwa posisi gambar dibulatkan ke bilangan bulat terdekat (beberapa mesin grafis / kerangka / pustaka memungkinkan Anda untuk menggambar sprite pada koordinat floating-point yang sering mengakibatkan buram). Tapi itu biasanya masih hanya pengganti malas yang tidak mencapai kualitas yang dapat Anda capai dengan kerja manual.

Berikut adalah contoh sprite dalam ukuran aslinya, ditingkatkan oleh faktor 3 tanpa interpolasi dan kemudian diputar 30 ° dengan interpolasi linier:

masukkan deskripsi gambar di sini

Philipp
sumber
1
Intinya setiap "pixel" menjadi 10x10 piksel atau sesuatu seperti itu?
John
2
@ John ya, itulah yang saya maksud dengan faux-retro. 10x10 mungkin agak besar (tergantung pada resolusi platform perangkat keras yang Anda targetkan, tentu saja), tetapi pada dasarnya itulah idenya. Anda memiliki sprite yang terlihat seperti karya seni piksel 16x32 tetapi sebenarnya merupakan tekstur 48x96 dengan setiap piksel "terlihat" sebenarnya menjadi 3x3 piksel dengan warna yang sama.
Philipp
thaaat kira-kira sama dengan yang kupikirkan ....
OC_RaizW
pendekatan yang sama adalah di Starbound, ketika piksel "terlihat" sebenarnya kuadrat dari piksel nyata 3x3
trollingchar
15

Lihatlah RotSprite .

RotSprite adalah algoritma penskalaan dan rotasi untuk sprite yang dikembangkan oleh Xenowhirl. Ini menghasilkan artefak yang jauh lebih sedikit daripada algoritma rotasi tetangga-tetangga, dan seperti EPX, itu tidak memperkenalkan warna baru ke dalam gambar (tidak seperti kebanyakan sistem interpolasi).

Contoh dari RotSprite

Algoritma pertama skala gambar sampai 8 kali ukuran aslinya dengan algoritma Scale2 × yang dimodifikasi yang memperlakukan piksel yang sama (bukan identik) sebagai cocok. Kemudian menghitung rotasi rotasi yang digunakan dengan memilih titik sampel yang bukan piksel batas. Selanjutnya, gambar yang diputar dibuat dengan penskalaan terdekat dan algoritma rotasi yang secara bersamaan menyusutkan gambar besar kembali ke ukuran aslinya dan memutar gambar. Akhirnya, detail satu-piksel yang diabaikan dipulihkan jika piksel yang sesuai dalam gambar sumber berbeda dan piksel tujuan memiliki tiga tetangga yang identik.

Anda bisa mengimplementasikan algoritma ini sendiri sebagai bagian dari kode gambar gim Anda, atau menggunakannya untuk membuat aset yang diputar sebelumnya. Alat pixel art Aseprite telah mengintegrasikan RotSprite sebagai bagian dari editor sprite-nya.

GIF dari rotsprite beraksi

Juga, lihat di forum Unity ini tentang cara menggunakan RotSprite di Unity, serta informasi yang lebih umum tentang RotSprite.

Rudey
sumber
Astaga. saya mengunduh itu untuk persatuan dan mengujinya - dan hasilnya jauh lebih buruk daripada rendering piksel persatuan yang biasa .. Tapi terima kasih
OC_RaizW
@OC_RaizW Itu seharusnya tidak terjadi. Anda mungkin ingin menghubungi pengembang aset Unity.
Rudey
-4

kiri atas halaman adalah opsi: pilih otomatis: grup & lapisan. pilih opsi layer lalu putar. itulah cara tidak ada yang memberitahu Anda.

mahdi
sumber
4
Editor gambar mana yang sedang Anda bicarakan? Pertanyaannya tidak menyebutkan alat khusus apa pun. Jadi, jika Anda tahu seorang editor gambar di mana memutar sprite resolusi rendah dengan kehilangan kualitas minimal sebenarnya sangat mudah, silakan beri tahu kami petunjuk mana yang berlaku.
Philipp