Verwirrung über die Sprite-Größe im Weltraum (Einheit)

11

Ich habe ein Sprite mit einer Auflösung von 1080x1920. Und ich habe die Game View-Auflösung auch auf 1080x1920 eingestellt. Was ich dachte ist, dass das Sprite (1080x1920) korrekt in die Kameraansicht passen sollte.

Die Bildauflösung beträgt 1080x1920

Aber wenn ich dieses Sprite ziehe, wird das Sprite vergrößert und verlässt die Kameraansicht.

Bildschirmansicht, Sprite ist aus der Kamera

Welche Anpassungen muss ich vornehmen, um sicherzustellen, dass dieses Sprite zu 100% in die Kameraansicht passt? Ich hätte die Sprite-Transformationsskala ändern können. Aber das wird Probleme verursachen, weil ich mit vielen anderen Sprites zu tun habe und sie proportional sein sollten.

Faizan Khan
quelle
Sprechen Sie über ein 3D-Sprite? Oder UI 2D Sprite?
TomTsagk
Ein 2D-Sprite .....
Faizan Khan

Antworten:

19

Dies ist sinnvoll, wenn Sie sich daran erinnern, dass Sprites nicht nur Pixel für Pixel auf Ihren Bildschirm übertragen werden (was es zu einem Albtraum machen würde, auf Bildschirmen mit unterschiedlichen Auflösungen das gleiche Aussehen zu erzielen, da sie alle Ihre Kunst unterschiedlich beschneiden würden). , sondern sie sind Teil Ihrer 3D-Welt in einem geräteunabhängigen Gameplay-Koordinatensystem, das Sie steuern können.

Wie alles in dieser Spielwelt hängt der Teil, der dem Bildschirm zugeordnet wird, davon ab, wie Sie Ihr Kameraobjekt konfiguriert haben.

Es gibt also vier Teile, die entscheiden, wie groß Ihr Sprite angezeigt wird:

  1. Die Quellauflösung des Sprites.

  2. Die Einstellung " Pixel pro Einheit" , die im Inspektor für Importeinstellungen ausgewählt wurde.

    Dies legt einen Umrechnungsfaktor für die Umwandlung von Größen von Pixeln im Texturraum in Einheiten im Weltraum fest (dh den Raum, in dem alle Ihre Gameplay- und Physikberechnungen stattfinden).

    Höhe in Welteinheiten = Quellenhöhe in Pixel / Pixel pro Einheit

    Sie sollten diese Zahl im Allgemeinen auswählen, um sie an einige relevante Spielmetriken in Ihrem Spiel anzupassen. z.B. Wenn Sie ein Kachelraster mit einem Abstand von 135 Pixel haben, wird durch Auswahl von Pixel pro Einheit = 135 jede Zelle Ihres Rasters im Koordinatensystem des Spiels genau 1 Einheit breit, was Ihre Berechnungen bequemer macht.

  3. Die orthografische Größe Ihrer Kamera.

    (Oder, wenn Sie eine perspektivische Kamera verwenden, eine Kombination aus dem Sichtfeld der Kamera und der Tiefe von der Kamera zu Ihrem Sprite)

    Dies bestimmt, wie viele Einheiten Ihrer Welt Ihre Kamera von der Mitte ihrer Ansicht bis zur Oberkante sehen kann.

    Teil der belegten Kamerahöhe = Höhe in Welteinheiten / (2 * Kamera ortho. Größe)

    Wenn wir also mit dem 135-PPU-Wert arbeiten, wird das 1920 Pixel hohe Sprite weltweit 14,222222 Einheiten hoch sein, was bedeutet, dass wir eine Kamera mit einer Höhe von 7,111111 benötigen, um das Ganze von oben nach unten zu erfassen (da die Kamerahöhe von gemessen wird) die Mitte raus)

  4. Die Pixelgröße Ihrer Fenster- / Ausgabebildschirmauflösung.

    Standardmäßig füllt die Ansicht der Kamera den Bildschirm vertikal aus. Wenn sich also die Höhe Ihres Bildschirms / Fensters ändert, ändert sich der vertikale Zuschnitt Ihrer Szene nicht (ein Objekt am oberen oder unteren Rand des Bildschirms bewegt sich nicht oder Wenn Sie es ausschneiden, wird die gesamte Szene nur größer oder kleiner, um die verfügbare Höhe zu füllen.

    Die Anzahl der Welteinheiten, die Ihre Kamera von oben nach unten sehen kann, entspricht der Anzahl der Pixel in Ihrem Fenster / Bildschirm von oben nach unten.

    Ausgabepixelgröße = Teil der belegten Kamerahöhe * Fensterhöhe in Pixel

    Wenn unser Bildschirm also 1920 Pixel groß ist und unser Quellensprite genau die Ansicht der Kamera ausfüllt, wird es über die gesamten 1920 Bildschirmpixel in 1: 1-Ausrichtung ausgegeben.

DMGregory
quelle
Ich bin dir sehr dankbar für deine ausführliche Antwort !!!!
Faizan Khan
3
Ich bin froh, dass Sie es nützlich fanden! Ich habe ein paar andere Fragen und Antworten zur Arbeit mit Sprite-Größen in Unity geschrieben, die ebenfalls hilfreich sein könnten: zur Auswahl von Sprite-Größen , zur Anpassung an das Erscheinungsbild von Sprites unterschiedlicher Größe , zur Skalierung von
Pixelkunst
1
Danke ... Ich bin dir auch auf Twitter gefolgt ... Ich fühle mich wirklich gut, mit einer Person interagiert zu haben, die bei UbiSoft arbeitet :)
Faizan Khan