Dünya Uzayında Sprite Boyutuyla İlgili Karışıklık (Birlik)


11

1080x1920 çözünürlüğe sahip bir Sprite'ım var. Oyun Görünümü Çözünürlüğünü de 1080x1920 olarak ayarladım. Düşündüğüm şey, hareketli grafiğin (1080x1920) Kamera Görünümü'ne doğru şekilde uyması gerektiğidir.

görüntü çözünürlüğü 1080x1920

Ancak o hareketli grafiği sürüklediğimde hareketli grafik büyütülür ve kamera görünümünden çıkar.

ekran görünümü, hareketli kamera dışında

Bu hareketli grafiğin kamera görünümünde% 100 uygun olduğundan emin olmak için ne gibi ayarlamalar yapmam gerekir. Sprite Dönüşümü Ölçeğini değiştirebilirdim. Ama bu sorunlara neden olacak çünkü başa çıkacak diğer spritelarım var ve orantılı olmalılar.


Bir 3D sprite hakkında mı konuşuyorsunuz? Veya UI 2D sprite?
TomTsagk

2D Sprite .....
Faizan Khan

Yanıtlar:


19

Spriteların sadece ekranınıza piksel piksel örülmediğini hatırladığınız zaman mantıklıdır (bu, tüm resminizi farklı şekilde kırpacağı için farklı çözünürlüklere sahip ekranlarda aynı görünümü elde etmenin bir kabus olmasını sağlar) daha ziyade kontrol edebileceğiniz cihazdan bağımsız bir oyun koordinat sisteminde 3D dünyanızın bir parçasıdır.

Bu oyun dünyasındaki diğer her şey gibi, ekrana eşleme yapan bölüm Kamera nesnesini nasıl yapılandırdığınıza göre belirlenir.

Spriteınızın ne kadar büyük gösterileceğine karar veren dört bölüm var:

  1. Hareketli grafiğin kaynak çözünürlüğü .

  2. Birim Piksel ithalat ayarları denetçisi seçilen ayarı.

    Bu, doku alanındaki piksellerden dünya uzayındaki birimlere (yani tüm oyun ve fizik hesaplamalarınızın gerçekleştiği alana) boyutları dönüştürmek için bir dönüşüm faktörü belirler.

    Dünya Birimlerinde Yükseklik = Birim Başına Piksel / Piksel Kaynak Yüksekliği

    Oyununuzdaki alakalı oyun metrikleriyle hizalamak için genellikle bu sayıyı seçmelisiniz. Örneğin. 135 piksel aralıklı bir döşeme ızgarasına sahipseniz, Birim Başına Piksel = 135'i seçmek, ızgaralarınızın her hücresini oyunun koordinat sisteminde tam olarak 1 birim genişliğe getirerek hesaplamalarınızı daha kolay hale getirir.

  3. Kameranızın ortografik boyutu .

    (Veya bir perspektif kamera kullanıyorsanız, kameranın görüş alanının ve kameradan hareketli grafiğinize kadar olan derinliğin bir kombinasyonu)

    Bu, kameranızın görüşünün ortasından üst kenarına kadar kaç birim görebileceğini belirler.

    Kullanılan Kamera Yüksekliği Oranı = Dünya Birimlerinde Yükseklik / (2 * Kamera Orto Boyutu)

    Bu nedenle, 135 PPU değeriyle koşarsak, 1920 piksel yüksekliğinde sprite dünyada 14.222222 birim uzunluğunda olacak, yani her şeyi yukarıdan aşağıya yakalamak için 7.111111 yüksekliğe sahip bir kameraya ihtiyacımız olacak (kamera yüksekliği ortadaki)

  4. Pencere / çıkış ekran çözünürlüğü piksel boyutu.

    Varsayılan olarak, kameranın görünümü ekranı dikey olarak dolduracaktır, bu nedenle ekranınız / pencereniz yükseklik olarak değişirse, sahnenizin dikey kesimi değişmez (ekranın üst kenarındaki veya alt kenarındaki bir nesne hareket etmez veya kırpılırsa, tüm sahne mevcut yüksekliği doldurmak için büyür veya küçülür).

    Böylece kameranızın yukarıdan aşağıya görebileceği dünya birimi sayısı, pencerenizdeki / ekranınızdaki yukarıdan aşağıya piksel sayısına eşleşir.

    Çıktı Piksel Boyutu = Kullanılan Kamera Yüksekliği Bölümü * Piksel cinsinden Pencere Yüksekliği

    Dolayısıyla, ekranımız 1920 piksel yüksekliğinde ve kaynak hareketli grafiğimiz kameranın görünümünü tam olarak dolduruyorsa, 1920 ekran piksellerinin tamamında 1: 1 hizalamada çıkacaktır.


Ayrıntılı cevabınız için size gerçekten minnettarım !!!!
Faizan Khan

3
Yararlı bulduğunuz için memnunum! : O olabilir de yardım Unity sprite boyutları ile çalışma hakkında birkaç diğer Q & As yazdım peri büyüklüğünün seçilmesi üzerine , farklı büyüklükte sprite görünümünü eşleşen üzerine , ölçekleme piksel sanatı
DMGregory

1
Teşekkürler .... Sizi Twitter'da da takip ettim ... UbiSoft'ta çalışan biriyle etkileşim kurduğum için kendimi çok iyi hissediyorum :)
Khan
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.