Ölçekleme piksel resmini diğer resimlerden farklı kılan nedir?


13

Son zamanlarda piksel sanat oyunları yapmakta yeni olan bir geliştiriciye koçluk yapıyordum ve piksel sanatını ölçeklendirmenin etrafında yeni gelenler için açık olmayan ve iyi belgelendirilmemiş olabilecek bazı "geleneksel bilgelik" olduğunu fark ettim. İşte, bunu düzeltmek için bir girişim ...


  1. % 120 gibi boyutlar arasında değil, piksel resmini yalnızca% 200,% 300 vb. Ölçeklendirmem gerektiğini duydum.

    • Neden? Ölçeklendirme, diğer görüntülerde olduğu gibi "sadece çalışır" mıydı?
    • Doğru oyunu oynamak veya bakmak için karakterimi daha büyük veya daha küçük bir parça haline getirmem gerekirse ne olur? Bunu nasıl düzeltirim?
  2. Bir oyunda farklı ölçeklerde piksel resmini kullanmanın "kötü" olduğu söylendi - neden?

    • Örneğin, karakterimi her sprite texel 4x4 ekran pikseli olacak şekilde ölçeklendirirsem, arka plan resmim ise her sprite texel 6x6 ekran pikseli olacak şekilde ölçeklendirilir. Bir piksel günün sonunda bir piksel değil mi?

Yanıtlar:


31

Tam Sayılarla Ölçeklendirme

2x, 3x ... n x ile ölçeklendirme basittir - her piksel n x n piksel karesi haline gelir ve orijinal hareketli grafiğin görünümü mükemmel şekilde korunur (tüm keskin çizgiler, köşeler ve merdiven zikzakları dahil) .

Piksel sanatını kesirli miktarlarla (örneğin 1.5x) ölçeklendirirken sorun yaşıyoruz çünkü pikseller doğaları gereği ayrık. Gerçekten "yarım piksele" sahip olamayız.

Diğer sanat türleri için, genellikle pikselin "yarı renkli" olması gereken bitişik kaynak piksellerini karıştırabiliriz ve yüksek çözünürlüklerde eserler genellikle fark edilmez. Ancak büyük tıknaz piksel sanatında bu, net görünümü hızla yok eder.

Bunun yerine, genellikle "En Yakın Komşu" filtrelemesini (Nokta filtreleme olarak da adlandırılır) kullanırız, böylece ölçeklemeden sonraki her piksel rengini orijinal hareketli grafikte tam olarak bir pikselden alır.

Bunun başka bir kırışıklığı daha vardır: ölçeklemeden sonraki piksel sayısı kaynak piksel sayısının tam sayı katı değil, bazı kaynak pikseller diğerlerinden daha fazla çoğaltılır (ölçeklenirse) veya tamamen (ölçeklenirse) atlanır.

Ne yazık ki, görüntü düzenleme yazılımı ve GPU doku filtreleme, pikselleri nerede kopyaladıkları veya atladıkları konusunda çok seçici değildir - sadece temel yuvarlama kurallarına uyarlar - bu da sonucun çarpık ve düzensiz görünmesini sağlayabilir.

Aşağıdaki örneği inceleyin. Ortada, En Yakın Komşu filtrelemeyi kullanarak mantar sprite'ı% 150 büyüttük ve sonuç sakat ve gelişigüzel görünüyor. Bir göz diğerinden daha büyük, bazı anahatlar kalın, diğerleri ince kalıyor ve yuvarlak noktalar bloklu görünüyor ... Bir piksel sanatçısının bilerek çizeceği bir şeye benzemiyor.

Tamsayı olmayan bir ölçek kullanımından kaynaklanma örnekleri

Sprite'ın gerçekten% 150 daha büyük olması gerekiyorsa (örneğin, oyunu doğru hissettirmek veya alternatif ekran çözünürlüklerini desteklemek için ), sağdaki örnek gibi sorunlu alanları yeniden boyayabiliriz. Şimdi daha çok bir sanatçının yapacağı bir şeye benziyor ve oyundaki diğer sanatlarla stilistik olarak tutarlı. (Kendim harika bir piksel sanatçısı olmasam da, yine de daha iyi olabilir 😉)

Ne yazık ki bunun için çok fazla kısayol yok. Tam sayı ölçekleri için, En Yakın Komşuya göre daha az bloklu bir başlangıç ​​noktası elde etmek için özel olarak tasarlanmış piksel sanatı yükseltme ölçekleme algoritmaları kullanabilirsiniz - ImageResizer gibi araçlarda çok çeşitli seçenekler mevcuttur , ancak yine de bir sanatçının gözünü ve bazı dirsek yağını alır. yüksek kaliteli bir sonuç elde edin.


Bir kenara: fraksiyonel ölçekler çalışma zamanında da ortaya çıkabilir .

Oyununuzun NES çözünürlükte (256 x 240) olduğunu ve 1080p ekranda görüntülemek istediğinizi düşünün.

1080 ÷ 240 = 4.5, böylece sahnenizdeki bazı kaynak pikseller veya "metinler" en fazla 5 ekran pikseli üflenirken diğerleri yalnızca 4'tür ve yukarıda gördüğümüz gibi bozulmalar oluşturur. Hareket halindeyken, spriteları bariz bir neden olmadan dikkat dağıtan dalgalanma ve parıltı yapma eğilimindedirler:

Dalgalanma artefaktlarını gösteren kesirli ölçekli mantar hareket örneği

İnsanların kamera veya nesne konumlarını tamsayı piksel koordinatlarına yuvarlamayı önerdiklerini görürsünüz, ancak bu sorunu gerçekten çözmez. Yuvarlama zaten en yakın komşu filtrelemenin bir parçası olarak gerçekleşir - sorun, bazı ekran piksellerinin aynı kaynak texeline (çoğaltılması) yuvarlanması, diğerleri ise düzensiz bir sonuca yol açmasıdır.

Çözüm, desteklemek istediğiniz her ekran çözünürlüğü için tutarlı, tam sayıdaki ekran piksellerinin metin oranına geri dönmek için dolgu / kırpma veya alternatif varlık kümelerinin bir kombinasyonunu kullanmaktır - burada bazı Unity örneklerine bakın . Bu, kolay evrensel bir düzeltmenin olmadığı başka bir durum ve oyununuzu keskin tutmak için bazı yargı ve sanat uygulamak zorunda kalacaksınız.

Piksel Ölçeğini Tutarlı Tutmak

Bu "kural" üslup tutarlılığına gelir.

Piksel sanatını farklı ölçeklerde kullandığınızda, varlıklar birleşik bir estetiğe sahip olmak yerine farklı oyunlardan bir araya getirilmiş gibi görünebilir.

Varlıkları tek bir oyunda farklı ölçeklendirme örneği

Soldaki örnekte, Super Mario World'den bazı spriteları aynı ölçekte bir araya getirdim ve harika görünüyor.

Ortada, Mario ve seviyesini arka plan çözünürlüğünün iki katına ve çözünürlüğü üç katına çıkarmak için köstebeke ölçeklendirdim. Tam sayı ölçekleri kullandığım için, hiçbir yerde bozulma veya dalgalanma almıyoruz, ancak yine de biraz komik görünüyor.

Birincisi, arka plan ön plandan çok daha ayrıntılı. Düzgün eğrileri ve keskin vurguları temsil edebilir, bu da ön planın tutarlı bir piksel sanatı hissine sahip olmak yerine özellikle "bloklu" görünmesini sağlar. Ve köstebeğin ana hatları, ön planın geri kalanından belirgin şekilde daha kalın ve daha pürüzlüdür.

Sağda, varlıkları tekrar ortak bir piksel ölçeğinde yeniden boyayarak, yeni varlık boyutlarıyla daha birleşik ve kasıtlı bir his getirebileceğimizi göstereceğim.

Ama yapmak zorunda mıyım?

Hayır gerçek değil. Bu senin oyunun ve istediğin gibi yapabilirsin.

Özellikle oyununuzda prototip oluştururken ve eğlenirken, işleri hızlı bir şekilde deneyebilmek mükemmel görünmekten daha önemlidir. Eğer oyun için en iyisini bulmadan Muhtemelen karakter yanlış birçok kez gibi önemli şeylerden boyutunu alırsınız ve o olurdu emmek her Animasyon Çerçeve farklı bir şey denemek istiyorum her zaman yeniden boyamak zorunda. Yani, erken terlemeyin.

Serbest bırakılan oyun için bu bir yargılama çağrısıdır. Hiçbir piksel sanat polisi, kurallara uymazsanız oyununuzu dağıtmanızı yasaklamaz ve birçok oyuncu farkı açıklayamaz. Ancak bu piksel ayrıntılarına dikkat etmek, birçok oyuncunun (ve hakemlerin) önemli bir kalite işareti olarak gördüğü bir şeydir - bu nedenle kitlenizi tanıyın ve onlara sunmak istediğiniz deneyim için neyin en iyi olduğuna karar verin.

Son bir nokta, birçok piksel sanat oyununun çok yüksek hassasiyetli bir oyuna sahip olmasıdır. İlk Mega Man oyunlarında 1 blok platformlar arasında atlamayı düşünün. Bu durumlarda, tutarlı bir piksel ızgarası (ve döşeme ızgarası) oyuncu için hamlelerini yargılama ve yürütmede önemli bir ipucu olabilir. Sanatta usulsüzlük yaratmak, oyunu öğrenmeyi zorlaştırabilir, bu da sinir bozucu olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.