Ich habe Probleme, die Grundlagen der Pixelkunst in Unity zu verstehen.
Ich verstehe, was eine Einheit ist, und wenn ich mein Sprite mit 16 x 16 Pixel zeichne, sollte ich die PPU auf 16 setzen.
Nehmen wir zum Beispiel das Stardew Valley. Im Bild unten sehen Sie deutlich, dass der Spieler nicht quadratisch ist. Der Schöpfer des Spiels sagte, er habe alles in 16x16 gemacht, aber wie sind dann so viele Details in den Charakteren? Sicherlich patchen Sie nicht mehrere 16x16-Quadrate zusammen, um einen Charakter zu erstellen (wie bei einer Tilemap)?
Was ist die "übliche" Art, mit Dingen umzugehen, die nicht quadratisch sind, wie die Zeichen im Bild. Erstellen Sie einfach ein 16x32-Sprite und setzen Sie die PPU auf 16? Wird es nicht neben 16x16 Sprites ein bisschen komisch aussehen? Wählen Sie im Allgemeinen eine Größe (dh 16, 32, 64) und halten Sie sich dann für alles im Spiel daran?
Das visuelle Problem, das ich gesehen habe, ist das, bei dem ein 32x32-Sprite neben einem 16x16-Sprite sehr fehl am Platz (zu scharf) aussieht.
Ich frage mich also, wie Sie Größen mischen können, ohne diesen Effekt zu erzielen, bei dem ein Bild viel schärfer als das andere aussieht. Wenn ich zum Beispiel wollte, dass ein Zeichen 16x32 oder ein nicht quadratischer Wert ist, wenn meine Kacheln 16x16 sind
quelle
Antworten:
Zusammenfassend ist es wichtig, dass zwei Pixelbilder übereinstimmen, dass ihre Pixeldichte (Texel pro Bildschirmfläche / Welteinheit) gleich ist.
Anhand einiger Sprites aus Stardew Valley können wir sehen, dass die Sprites zwar unterschiedliche Texturabmessungen haben, jedoch in einem konsistenten Raster übereinstimmen, da jedes Pixel dieselbe Größe hat.
Wenn wir uns die Größe der Pflanze als eine Kachel / eine Einheit des Weltraums vorstellen, können wir sehen, dass diese Einheit horizontal und vertikal 16 Pixel umfasst. Das Zeichen, das die doppelte Höhe der Pflanze hat, deckt auch die doppelte Anzahl von Kacheln / Welteinheiten ab, sodass die Pixeldichte bei 16 Pixeln pro Welteinheit gleich bleibt.
Speziell für Unity wird dies für Sie als Pixel pro Einheit angezeigt Einstellung im Inspektor für Sprite-Importeinstellungen angezeigt . Solange Sie hier eine konsistente Zahl für alle Ihre Sprites verwenden, wird Unity diese automatisch in der richtigen Größe in Ihrer Welt zeichnen, um diese Pixeldichte beizubehalten - auch wenn es sich um ungerade Größen handelt und nicht um eine Zweierpotenz oder eine exakte Vielfache Ihrer Fliesengröße. In diesem Beispiel würden sowohl der Strauch als auch der Charakter und alles andere im Spiel eine PPU von 16 verwenden.
Die genaue Anzahl, die Sie wählen, ist keine große Sache, sondern die Konsistenz, die am wichtigsten ist. Wenn wir wollten, dass jede Kachel 2 Welteinheiten umfasst, damit wir bei der Ebenenbearbeitung leicht an Kachelecken (ungerade Zahlen) und Kachelmitten (gerade Zahlen) fangen können, würden wir stattdessen für alle unsere Sprites eine PPU von 8 verwenden.
Drehen Sie es einfach nicht zu niedrig. In einigen Artikeln wird eine PPU-Einstellung von 1 empfohlen, was bedeutet, dass ein 256-Pixel-Sprite 256 Welteinheiten umfasst. Obwohl dies möglicherweise nicht alarmierend klingt, werden Systeme wie die Physik so eingestellt, dass der größte Teil Ihres Spiels auf Skalen von Zehntel bis Zehn von Einheiten stattfindet. Wenn Sie Ihre Skala zu groß machen, können sie sich schlecht verhalten. Versuchen Sie, eine Anzahl von Pixeln auszuwählen, die für Ihr Gameplay von Bedeutung sind, z. B. die Breite Ihres Charakters oder Ihrer Kachel. Dies erleichtert auch Ihre Mathematik für die Programmierung und das Level-Design (z. B. "Ich möchte, dass dieser Charakter 3 Kacheln richtig streicht, das ist es also."
x + 3.0f
").Beachten Sie, dass das Skalieren eines Sprites, eines UI-Bilds oder seiner übergeordneten Elemente mithilfe von Transformationseigenschaften diese von dieser konsistenten Pixeldichte ablenkt. Gehen Sie daher bei den Skalierungseigenschaften sehr vorsichtig vor und halten Sie den größten Teil oder die gesamte Szene der Einfachheit halber auf einer Skala von 1,0.
Eine letzte Warnung ist, dass nichts davon bestimmt, wie groß Ihre Sprites tatsächlich auf Ihrem Bildschirm landen - dies wird durch die Größe Ihres Spielfensters / Bildschirms und die Größe / FoV / Winkel Ihrer Kamera bestimmt. Für pixelgenaues 2D müssen Sie außerdem sicherstellen, dass die Höhe Ihres Fensters ein ganzzahliges Vielfaches der Anzahl der Sprite-Pixel ist, die Ihre Kamera sieht (orthografische Höhe der Kamera x 2 x PPU).
quelle