Come posso ruotare gli sprite di pixel art senza rovinare l'estetica?


12

Sono proprio ora di fronte a un'enorme domanda "Game Design". Sto realizzando un gioco pixel art e l'utilizzo dell'interpolazione bilineare potrebbe risolvere molti problemi di animazione. D'altra parte, non è più un "gioco di pixel".

Se uso l'Interpolazione Bilineare, l'animazione funziona ma sembra "ibrida" e l'arte si perde. O sbaglio le mie animazioni o sbaglio l'arte. Non posso avere entrambi sembra.

C'è un altro modo per risolvere questo?

inserisci qui la descrizione dell'immagine


4
Questo è il tuo gioco, decidi tu :)
Vaillancourt

L'interpolazione "mono-lineare" (di solito chiamata semplicemente "interpolazione lineare") è un'opzione?
Philipp,

1
Ho riformulato la domanda per renderla meno basata sull'opinione pubblica.
Philipp,

aspetta cosa? non ho bisogno di approvare questo? : D
OC_RaizW

1
C'è anche la possibilità di rotazione mediante cesoiatura , che sposta i pixel di input in giro senza duplicarli / elitarli / fonderli.
DMGregory

Risposte:


14

La rotazione automatica della pixel art di angoli diversi da 90 ° solitamente non va. Se vuoi mantenere l'estetica della pixel art, di solito non ti preoccuperai di ridisegnare la tua arte in ogni angolo.

Se usi un look finto-retrò in cui i tuoi sprite sono in realtà con una risoluzione molto più elevata di quello che sembrano, a volte puoi cavartela con un fattore intero senza interpolazione nell'editor grafico e ruotarli in interpolazione lineare in fase di runtime. Per evitare che gli sprite vengano sfocati mentre si trovano nell'orientamento originale, assicurarsi sempre che la posizione del disegno sia arrotondata al numero intero più vicino (alcuni motori grafici / framework / librerie consentono di disegnare sprite su coordinate in virgola mobile che spesso sfocano). Ma di solito è solo un sostituto pigro che non raggiunge la qualità che puoi raggiungere con il lavoro manuale.

Ecco un esempio di uno sprite nella dimensione originale, ingrandito dal fattore 3 senza interpolazione e quindi ruotato di 30 ° con interpolazione lineare:

inserisci qui la descrizione dell'immagine


1
In sostanza ogni "pixel" diventa 10x10 pixel o qualcosa del genere?
Giovanni

2
@Giovanni sì, questo è ciò che intendo con finto retro. 10x10 potrebbe essere un po 'grande (a seconda della risoluzione della piattaforma hardware che stai prendendo di mira, ovviamente), ma questa è fondamentalmente l'idea. Hai uno sprite che sembra un pezzo di pixel art 16x32 ma in realtà è una trama 48x96 con ogni pixel "visibile" che in realtà è 3x3 pixel dello stesso colore.
Philipp,

thaaat era più o meno la stessa cosa stavo pensando ....
OC_RaizW

lo stesso approccio era in Starbound, quando i pixel "visibili" erano in realtà quadrati di 3x3 pixel reali
trollingchar

16

Dai un'occhiata a Dai RotSprite .

RotSprite è un algoritmo di ridimensionamento e rotazione per gli sprite sviluppato da Xenowhirl. Produce molti meno artefatti rispetto agli algoritmi di rotazione più vicini e, come EPX, non introduce nuovi colori nell'immagine (a differenza della maggior parte dei sistemi di interpolazione).

Esempio di RotSprite

L'algoritmo ridimensiona prima l'immagine a 8 volte la sua dimensione originale con un algoritmo Scale2 × modificato che tratta pixel simili (anziché identici) come corrispondenze. Calcola quindi quale offset di rotazione utilizzare favorendo i punti campionati che non sono pixel di contorno. Successivamente, l'immagine ruotata viene creata con un algoritmo di ridimensionamento e rotazione del vicino più vicino che riduce contemporaneamente l'immagine grande alla sua dimensione originale e ruota l'immagine. Infine, i dettagli a singolo pixel trascurati vengono ripristinati se il pixel corrispondente nell'immagine di origine è diverso e il pixel di destinazione ha tre vicini identici.

Puoi implementare questo algoritmo tu stesso come parte del codice di disegno del tuo gioco o utilizzarlo per creare risorse ruotate in anticipo. Lo strumento pixel art Aseprite ha integrato RotSprite come parte del suo editor di sprite.

GIF di rotsprite in azione

Inoltre, dai un'occhiata a questo thread del forum Unity su come utilizzare RotSprite in Unity, nonché a informazioni più generali su RotSprite.


jeez. l'ho scaricato per l'unità e l'ho testato - e il risultato è molto peggio del solito rendering di pixel di unità .. Ma grazie
OC_RaizW

@OC_RaizW Non dovrebbe succedere. Potresti voler contattare lo sviluppatore dell'asset Unity.
Rudey,

-4

in alto a sinistra della pagina è un'opzione: selezione automatica: gruppo e livello. scegli l'opzione layer quindi ruota. è così che nessuno te lo dice.


4
Di quale editor di immagini stai parlando? La domanda non menziona alcuno strumento specifico. Quindi, se conosci un editor di immagini in cui ruotare uno sprite a bassa risoluzione con una perdita di qualità minima è davvero così facile, ti preghiamo di comunicarci a quale di queste istruzioni si applicano.
Philipp
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.