Wie kann ich Pixel-Art-Sprites drehen, ohne dass die Ästhetik ruiniert wird?

11

Ich stehe gerade vor einer großen "Game Design" -Frage. Ich mache ein Pixel-Art-Spiel und die Verwendung der bilinearen Interpolation könnte viele Animationsprobleme lösen. Andererseits ist es kein "Pixel-Spiel" mehr.

Wenn ich die bilineare Interpolation verwende, funktioniert die Animation, sieht aber "hybrid" aus und der Kunststil geht verloren. Entweder ich vermassle meine Animationen oder ich vermassle den Kunststil. Ich kann nicht beides haben, wie es scheint.

Gibt es eine andere Möglichkeit, dies zu lösen?

Geben Sie hier die Bildbeschreibung ein

OC_RaizW
quelle
4
Das ist dein Spiel, du entscheidest :)
Vaillancourt
Ist eine "mono-lineare" Interpolation (normalerweise nur "lineare Interpolation" genannt) eine Option?
Philipp
1
Ich habe die Frage umformuliert, damit sie weniger meinungsbasiert klingt.
Philipp
warte was? Ich muss das nicht genehmigen? : D
OC_RaizW
1
Es besteht auch die Möglichkeit der Drehung durch Scheren , wodurch die Eingabepixel verschoben werden, ohne sie zu duplizieren, zu entfernen oder zu mischen.
DMGregory

Antworten:

14

Die automatische Drehung der Pixelkunst um andere Winkel als 90 ° geht normalerweise schief. Wenn Sie die Pixelkunst-Ästhetik beibehalten möchten, werden Sie normalerweise nicht darum herumkommen, Ihre Kunst in jedem Winkel neu zu zeichnen.

Wenn Sie einen Faux-Retro-Look verwenden, bei dem Ihre Sprites tatsächlich eine weitaus höhere Auflösung haben als sie aussehen, können Sie manchmal davonkommen, sie um einen ganzzahligen Faktor zu skalieren, ohne sie in Ihrem Grafikeditor zu interpolieren und sie dann zur Laufzeit in linearer Interpolation zu drehen . Stellen Sie immer sicher, dass die Zeichenposition auf die nächste Ganzzahl gerundet ist, damit Ihre Sprites in der ursprünglichen Ausrichtung nicht unscharf werden (bei einigen grafischen Engines / Frameworks / Bibliotheken können Sie Sprites auf Gleitkommakoordinaten zeichnen, was häufig zu Unschärfen führt). Aber das ist normalerweise immer noch nur ein fauler Ersatz, der nicht die Qualität erreicht, die Sie mit manueller Arbeit erreichen können.

Hier ist ein Beispiel für ein Sprite in der Originalgröße, das ohne Interpolation um den Faktor 3 hochskaliert und dann mit linearer Interpolation um 30 ° gedreht wurde:

Geben Sie hier die Bildbeschreibung ein

Philipp
quelle
1
Im Wesentlichen wird jedes "Pixel" 10x10 Pixel oder so ähnlich?
John
2
@ John ja, das meine ich mit Faux-Retro. 10x10 ist vielleicht etwas groß (abhängig von der Auflösung der Hardwareplattform, auf die Sie abzielen, natürlich), aber das ist im Grunde die Idee. Sie haben ein Sprite, das wie ein 16x32-Pixel-Kunstwerk aussieht, aber tatsächlich eine 48x96-Textur ist, wobei jedes "sichtbare" Pixel tatsächlich 3x3 Pixel derselben Farbe ist.
Philipp
Das war ungefähr das gleiche, was ich dachte ...
OC_RaizW
Der gleiche Ansatz war in Starbound, als "sichtbare" Pixel tatsächlich Quadrate von 3x3 echten Pixeln waren
Trollingchar
15

Schauen Sie sich RotSprite an .

RotSprite ist ein von Xenowhirl entwickelter Skalierungs- und Rotationsalgorithmus für Sprites. Es erzeugt weit weniger Artefakte als Rotationsalgorithmen für den nächsten Nachbarn und führt wie EPX keine neuen Farben in das Bild ein (im Gegensatz zu den meisten Interpolationssystemen).

Beispiel für RotSprite

Der Algorithmus skaliert das Bild zunächst mit einem modifizierten Scale2 × -Algorithmus auf das 8-fache seiner ursprünglichen Größe, wobei ähnliche (und nicht identische) Pixel als Übereinstimmungen behandelt werden. Anschließend wird berechnet, welcher Rotationsversatz verwendet werden soll, indem abgetastete Punkte bevorzugt werden, die keine Grenzpixel sind. Als nächstes wird das gedrehte Bild mit einem Skalierungs- und Rotationsalgorithmus für den nächsten Nachbarn erstellt, der gleichzeitig das große Bild auf seine ursprüngliche Größe verkleinert und das Bild dreht. Schließlich werden übersehene Einzelpixeldetails wiederhergestellt, wenn das entsprechende Pixel im Quellbild unterschiedlich ist und das Zielpixel drei identische Nachbarn hat.

Sie können diesen Algorithmus entweder selbst als Teil des Zeichnungscodes Ihres Spiels implementieren oder ihn verwenden, um zuvor gedrehte Assets zu erstellen. Das Pixel Art Tool Aseprite hat RotSprite als Teil seines Sprite-Editors integriert.

GIF von Rotsprite in Aktion

Außerdem haben einen Blick auf diese Einheit Forenthread , wie RotSprite in Unity zu verwenden, sowie weitere allgemeine Informationen über RotSprite.

Rudey
quelle
Herrgott. Ich habe das für Unity heruntergeladen und getestet - und das Ergebnis ist weitaus schlechter als das übliche Pixel-Rendering von
Unity
@OC_RaizW Das sollte nicht passieren. Möglicherweise möchten Sie den Entwickler des Unity-Assets kontaktieren.
Rudey
-4

Oben links auf der Seite befindet sich eine Option: Automatische Auswahl: Gruppe & Ebene. Wählen Sie die Ebenenoption und drehen Sie sie. So sagt es dir niemand.

Mahdi
quelle
4
Über welchen Bildeditor sprechen Sie? Die Frage erwähnt kein bestimmtes Werkzeug. Wenn Sie also einen Bildeditor kennen, bei dem das Drehen eines Sprites mit niedriger Auflösung und minimalem Qualitätsverlust tatsächlich so einfach ist, teilen Sie uns bitte mit, für welchen diese Anweisungen gelten.
Philipp