Aprire, importare ed esportare
Apri sprite e immagini, trasforma le foto in pixel art, ritaglia le sprite sheet ed esporta immagini, animazioni, sheet, video e timelapse.
pxstud.io conserva il tuo lavoro nel browser mentre procedi (Il tuo primo sprite). Questa pagina spiega come portare i file dentro e fuori. Quali formati possono fare cosa è in Formati di file.
Aprire i file
File > Apri... (Ctrl+O) apre un file .pxstudio o Aseprite, un file di un altro editor
(Photoshop .psd, OpenRaster .ora, Piskel, Pixilart, Pixelorama, Pyxel Edit), o un'immagine (PNG o
PNG animato, GIF, JPEG, WebP, AVIF, BMP, TGA, PCX, QOI, ICO, CUR, Netpbm, FLI/FLC), come nuovo sprite
nel progetto corrente, con il nome del file.
Puoi anche trascinare i file sull'editor:
- Più immagini insieme chiedono se aprirle come sprite separati o come una sola animazione (un fotogramma per immagine, in ordine di nome file).
- Un'immagine grande (oltre 512 pixel per lato) chiede se importarla come pixel art o aprirla così com'è.
- Altre immagini che il browser sa mostrare (SVG e simili) vanno in Importa come pixel art.
Quando qualcosa in un file non può essere mantenuto, un avviso dice cosa, per esempio il profilo colore di un file Aseprite, una modalità di fusione che pxstud.io non ha, o un livello di regolazione di Photoshop. Cosa conservano i file di ciascun editor è in Formati di file.
File > Salva con nome... (Ctrl+Shift+S) scarica lo sprite come file .pxstudio, che conserva tutto e si
riapre esattamente com'era.
Importare
Immagine come pixel art
File > Importa > Importa immagine come pixel art... trasforma una foto o un disegno in pixel art.
- Scegli immagine... oppure trascinane una. (Le immagini più grandi di 4096 pixel vengono prima ridotte.)
- Imposta la dimensione: larghezza e altezza, oppure un lato lungo di 16, 32, 64 o 128.
- Scegli un algoritmo:
- Bilanciato (SLIC + k-means), il predefinito, raggruppa i pixel in regioni di colore simile;
- Morbido con contorni (bilaterale) ammorbidisce le aree e può scurire i bordi tra di esse;
- Forme nitide (Kopf-Lischinski) mantiene forme e contorni netti.
- Scegli una palette: Auto trova i colori migliori (da 2 a 64), oppure usa la palette dello sprite, una di Le mie palette o una palette integrata.
- Premi Avvia per vedere il risultato, regola, e premi Riavvia per aggiornarlo.
- Importa come nuovo sprite, o come nuovo livello nello sprite corrente (centrato), e fai clic su Importa. Aggiungi i colori della palette alla palette dello sprite tiene a portata di mano i colori per i ritocchi.
Sequenza di immagini
File > Importa > Sequenza di immagini... sceglie più immagini e crea uno sprite con un fotogramma per immagine,
in ordine naturale di nome file (run2 prima di run10). Lo sprite prende il nome del primo file
senza il numero. Le immagini di dimensioni diverse stanno in alto a sinistra della più grande.
Sprite sheet
File > Importa > Sprite sheet... taglia una sheet in fotogrammi. Scegli un'immagine, oppure Usa lo sprite corrente.
- Rileva griglia automaticamente cerca gli spazi vuoti tra i fotogrammi (trasparenti, o del colore di sfondo della sheet) e imposta il tipo, la dimensione del fotogramma, l'offset e la spaziatura di conseguenza. Viene eseguito quando scegli un'immagine, e di nuovo ogni volta che lo premi. Ha bisogno di spazi tra i fotogrammi, quindi una sheet i cui fotogrammi si toccano mantiene le tue impostazioni e lo dice.
- Trova i fotogrammi con Rilevamento di ogni sprite è per le sheet che non sono su una griglia. Vedi Rilevare gli sprite più sotto.
- Tipo: Striscia orizzontale, Striscia verticale, Per righe o Per colonne.
- Largh. fotogr. e Alt. fotogr., Offset, Spaziatura, e se includere le celle parziali e saltare quelle vuote. Una griglia sopra la sheet mostra dove cadono i tagli.
- JSON di Aseprite... legge i fotogrammi, le durate e i tag dal file JSON che Aseprite esporta con una sheet, invece della griglia. I fotogrammi rifilati tornano al loro posto sulla tela completa, e il margine interno di Aseprite viene lasciato fuori da ogni fotogramma.
- Crea un nuovo sprite, oppure sostituisci i fotogrammi dello sprite corrente (un passo di annullamento).
Rilevare gli sprite
Per le sheet compatte o con spaziatura irregolare, scegli Rilevamento di ogni sprite. Ogni gruppo di pixel che non sono di sfondo diventa un fotogramma, mostrato come un riquadro numerato sopra la sheet.
- Sfondo: Automatico usa la trasparenza se la sheet ne ha, altrimenti il suo colore più comune. Oppure scegli Trasparente, o un colore.
- Tolleranza (da 0 a 255): quanto un pixel può essere lontano dallo sfondo e contare ancora come vuoto. Alzala per ignorare il rumore leggero o la sfocatura JPEG.
- Distanza di unione: i riquadri con al massimo questo numero di pixel vuoti tra di loro si uniscono in un solo sprite, così una spada o una scintilla staccata resta con il suo personaggio. Con 0 si uniscono solo i riquadri che si sovrappongono.
- Pixel min.: gli sprite con meno pixel di questo vengono scartati come puntini.
- Connessione: se i pixel che si toccano solo in un angolo appartengono allo stesso sprite.
- Ordine: i fotogrammi vanno riga per riga o colonna per colonna.
- Dimensione fotogramma è la dimensione dello sprite più grande, oppure una dimensione personalizzata (gli sprite più grandi vengono tagliati). L'Ancoraggio decide dove sta ogni sprite su quella tela: in basso al centro tiene i piedi su una sola linea, il che evita che un ciclo di camminata tremi.
Per correggere il risultato a mano, fai clic su un riquadro per selezionarlo. Puoi cambiarne X, Y, L e A, spostare dove sta sul fotogramma (Sposta X e Sposta Y), spostarlo Prima o Dopo nell'ordine, passare al riquadro Precedente o Successivo, oppure Eliminarlo. Trascina su una parte vuota della sheet per disegnare un nuovo riquadro, che viene aggiunto per ultimo. Cambiare un'impostazione di rilevamento o premere Rileva di nuovo esegue di nuovo il rilevamento e scarta queste modifiche.
Gli sprite che si toccano non si possono distinguere e vengono fuori come un solo riquadro; dividili a mano, oppure usa invece la griglia.
Esportare
File > Esporta... (Ctrl+Alt+Shift+S) apre un'unica finestra per tutti i formati, con un'anteprima del file reale. I livelli nascosti, i livelli di riferimento e i livelli bozza non vengono mai esportati (un file Aseprite conserva ogni livello).
Per ogni tipo:
- Ridimensiona (%) scala a passi interi, da 100% a 1600%, così i pixel restano quadrati nitidi.
- Applica proporzioni dei pixel allunga i pixel non quadrati alla loro forma.
- Fotogrammi: tutti, il fotogramma attivo, o i fotogrammi di un tag. Direzione animazione: avanti, indietro o ping-pong (per un tag, avanti mantiene la direzione propria del tag).
- Riproduci sottotag e ripetizioni (quando lo sprite ha dei tag, attivo per impostazione predefinita come in Aseprite): i fotogrammi vengono esportati come li riproduce la riproduzione, attraverso ogni tag nella sua direzione, compresi tag annidati e numeri di ripetizioni, quindi un fotogramma può comparire più di una volta. Disattivalo per esportare ogni fotogramma una volta, in ordine (un file per fotogramma per una sequenza PNG).
- Area (quando lo sprite ha degli slice): l'intera tela, uno slice, oppure Ogni
slice, che scrive un'esportazione per slice. Uno slice che si sposta o si ridimensiona tra i
fotogrammi viene esportato nel riquadro che lo copre in ogni fotogramma esportato, così tutti i suoi
fotogrammi hanno la stessa dimensione. Con ogni slice,
{slice}nel nome del file diventa il nome dello slice ({slice}.pngdàhead.png); senza, il nome va prima dell'estensione (sprite-head.png,walk-head001.png). Non per le sprite sheet né per i tipi che salvano l'intero file. - Nome file. Per una sequenza PNG, un numero nel nome imposta la numerazione:
walk001.pngdàwalk001.png,walk002.pnge così via; senza, i fotogrammi sono numeratisprite-001.png.
Per tipo:
| Tipo | Opzioni |
|---|---|
| PNG | Un'immagine, oppure una per fotogramma. |
| GIF animata | Numero di cicli (0 va in loop per sempre, oppure usa la ripetizione del tag). Dithering: una GIF contiene 256 colori, quindi un'animazione con più colori ottiene una palette scelta da tutti i suoi fotogrammi, e questo sceglie come vengono disegnati i colori intermedi (le stesse scelte della conversione in indicizzato; i motivi ordinati non sfarfallano tra i fotogrammi). I pixel sotto metà opacità diventano trasparenti; la GIF memorizza le durate a passi di 10 ms, almeno 20 ms. |
| PNG animato (APNG) | Numero di cicli. Conserva ogni colore, la trasparenza morbida e le durate esatte; salvato come .png. Le app senza supporto APNG mostrano il primo fotogramma. |
| WebP | Fisso o animato; Senza perdita, oppure una Qualità da 0 a 100; numero di cicli. |
| Sprite sheet | Sotto. |
| File Aseprite | L'intero sprite, con livelli, gruppi, cel collegati, tag, slice e tilemap. L'opacità dei gruppi e le modalità di fusione si vedono in Aseprite con Experimental > Compose groups attivo. |
| File Photoshop (PSD) | Il fotogramma attivo con i suoi livelli, gruppi, modalità di fusione, opacità, visibilità e ritaglio, più l'immagine unita. Si apre in Photoshop, Krita, GIMP e Photopea. |
| OpenRaster (ORA) | Il fotogramma attivo con i suoi livelli e gruppi, per Krita, GIMP, MyPaint e Pixelorama. |
| File Piskel | Ogni fotogramma e livello visibile. I gruppi vengono appiattiti, e il file riceve una sola frequenza di fotogrammi (dalla durata più comune). |
| Tilemap (JSON / Tiled) | Immagini dei tileset più una mappa Tiled o un file JSON (Tilemap). |
| Video MP4 | Frequenza fotogrammi (Auto mantiene esatte tutte le durate), quante volte viene riprodotto, e un colore di sfondo (il video non ha trasparenza). Offerto solo dove il browser sa creare video. |
| Video WebM (VP9) | Quante volte viene riprodotto e un colore di sfondo (il video non ha trasparenza). Conserva la durata esatta di ogni fotogramma. Offerto solo dove il browser sa creare video. |
| FLC | Il formato di Autodesk Animator: fino a 256 colori, la trasparenza diventa nero. |
| JPEG | Qualità e un colore di sfondo. |
| AVIF | Qualità: 100 (il predefinito) è senza perdita; più basso crea un file più piccolo che non è esatto al pixel. |
| ICO, CUR | Icone e cursori di Windows, fino a 256×256. Tutte le dimensioni memorizza anche ogni dimensione intera più grande fino a 256 (uno sprite 32×32 dà 32, 64, 96 … 256), così Windows ne sceglie una nitida. Il punto di clic di un cursore è il pivot di uno slice chiamato hotspot. |
| ANI | Un cursore animato di Windows, fino a 256×256. Ogni fotogramma selezionato diventa un'immagine del cursore mostrata per la durata del fotogramma (arrotondata a 1/60 s); i fotogrammi ripetuti (ping-pong) sono memorizzati una volta sola. Imposta il punto di clic con Hotspot X / Y (parte dal pivot dello slice hotspot). |
| PDF per lavori manuali | Uno schema stampabile di punto croce, perline o perler del fotogramma corrente: una copertina con un'anteprima e il numero di colori, lo schema diviso in pagine con griglia, e una legenda che elenca simbolo, campione, hex, nome del gruppo della palette e numero di punti di ogni colore. Imposta la dimensione cella (mm), il formato pagina (A4 o Letter), una linea della griglia ogni N celle più marcata, e simboli o riempimenti a colori. Le celle trasparenti vengono saltate; la modalità simboli accetta fino a 56 colori. |
| Netpbm | .pgm non compresso (scala di grigi opaca), .ppm (colore opaco) o .pam (con trasparenza); l'estensione segue l'immagine. |
| TIFF | Senza perdita, compresso LZW. Gli sprite indicizzati conservano la palette (a meno che usino il loro colore trasparente); gli altri sprite salvano RGB, o RGBA quando qualcosa è trasparente. Un file per fotogramma. |
| JPEG XL | Senza perdita, con trasparenza. Limitato a 1024×1024 pixel, quindi riduci il ridimensionamento per le esportazioni grandi. Un file per fotogramma. |
| BMP, TGA, PCX, QOI, SVG | Un file per fotogramma. L'SVG disegna ogni serie di pixel dello stesso colore come un rettangolo. |
Preset e coda
Preset e coda, in fondo alla finestra Esporta, salva e raggruppa le esportazioni. Nulla in essa chiede conferma.
- I Preset conservano il tipo e ogni opzione di quella scheda (ridimensionamento, fotogrammi, area, nome file, e le opzioni per tipo come qualità, sfondo, hotspot, dimensione cella o le impostazioni della sprite sheet) con un nome a tua scelta. Salva preset con un nome esistente lo sostituisce. Applica compila la finestra con un preset, e Rinomina ed Elimina fanno ciò che dicono. I preset restano su questo dispositivo e non richiedono un account. La scelta di tag, slice o fotogramma di un preset che lo sprite corrente non ha ricade su tutti i fotogrammi o sull'intera tela.
- Coda: Aggiungi corrente alla coda (o Aggiungi alla coda di un preset) mette in fila
un'esportazione con le impostazioni attuali. Esegui coda crea ogni file in un colpo solo: un solo
scaricamento, oppure un unico
pxstudio-export.zipquando gli elementi creano più file. Ogni elemento mostra In attesa, Fatto o l'errore che lo ha fermato; un elemento fallito non ferma gli altri, e Esegui coda di nuovo riprova quelli falliti. Rimuovi toglie un elemento. La coda è per lo sprite e la finestra che hai aperto, e torna vuota quando la finestra si chiude.
Sprite sheet
Il tipo Sprite sheet ha quattro schede, organizzate come quelle di Aseprite:
- Layout: striscia, righe, colonne o Compatto; un numero fisso di colonne o righe, o una larghezza o altezza fissa; adattamento migliore; unire i fotogrammi duplicati; ignorare quelli vuoti.
- Sprite: quali livelli e fotogrammi, se dividere livelli o tag, e il ritaglio.
- Bordi: margine del bordo, spazio tra le forme e margine interno, ed Estrusione (ripete i pixel dei bordi, per evitare le giunzioni nei giochi).
- Output: un Preset del motore, il File dati (JSON di Aseprite come Hash o come Array, o un
SpriteFrames
.tresdi Godot 4) e, per il JSON, come viene chiamato ogni fotogramma.
I layout funzionano come quelli di Aseprite, quindi le stesse opzioni danno la stessa sheet:
- Strisce, righe e colonne posizionano ogni fotogramma alla sua dimensione, così i fotogrammi rifilati non occupano lo spazio del più grande. Senza vincoli, Per righe e Per colonne creano una griglia quasi quadrata.
- Dividi livelli mette i fotogrammi di ogni livello uno dopo l'altro, e Dividi tag quelli di ogni tag. Per righe inizia una nuova riga per ogni livello e tag (Per colonne, una nuova colonna), a meno che una larghezza (altezza) fissa li faccia andare a capo.
- Compatto dispone i fotogrammi, dal più grande, nella sheet più piccola possibile, vicina al quadrato (100 fotogrammi rifilati da 4 a 43 px danno 258×236 px, come in Aseprite). Adattamento migliore: Area minima prova qualche dimensione in più, e Potenza di due minima dà una sheet con dimensioni potenza di due.
- Una larghezza o altezza fissa è la larghezza o altezza della sheet, anche quando i fotogrammi ne usano meno.
- L'anteprima avverte quando la sheet supera i 16384 px per lato, che molte GPU e motori non riescono a caricare.
Ritaglio:
- Ritaglia sprite rifila ogni fotogramma all'area usata da un qualsiasi fotogramma. Ritaglia cel rifila ogni fotogramma al proprio contenuto. Con un livello Sfondo visibile, entrambi rifilano il colore di sfondo (il colore del pixel in alto a sinistra) invece della trasparenza.
- Ritaglia sulla griglia allarga l'area rifilata fino alle linee della griglia, per entrambi i tipi di ritaglio.
- Il JSON conserva i fotogrammi in coordinate della tela:
sourceSizeè la dimensione della tela espriteSourceSizeè dove stanno i pixel del fotogramma su di essa, così i motori e le reimportazioni mantengono ogni fotogramma al suo posto.
Nomi dei fotogrammi: lascia vuoto Nome file dell'elemento per i nomi di Aseprite,
{title} {frame}.{extension}, con ({layer}) aggiunto per un livello e #{tag} per un tag
(hero (Body) #walk 0.aseprite). {frame} conta da 0 per ogni livello e tag. I token sono quelli di
Aseprite:
| Token | Diventa |
|---|---|
{title}, {extension}, {name} | Il nome del file senza estensione, l'estensione (aseprite), ed entrambi. |
{layer}, {group} | Il livello, quando i fotogrammi vengono da un livello, e il suo gruppo. |
{tag}, {innertag}, {outertag} | Il tag esportato, o il tag più corto che contiene il fotogramma; {outertag} è il più lungo. |
{frame}, {tagframe} | Il numero del fotogramma, e il suo numero dentro il tag. Le cifre impostano l'inizio e la larghezza: {frame1} conta 1, 2, …; {frame001} dà 001, 002, …. |
{duration} | La durata del fotogramma in millisecondi. |
Ottieni il PNG della sheet e un file dati con lo stesso nome. Il JSON elenca la posizione e la durata di
ogni fotogramma, i tag, i livelli esportati e gli slice, ed è leggibile dai motori di gioco e dagli
strumenti che leggono il JSON di Aseprite. A differenza di Aseprite, il rettangolo frame di un
fotogramma non include il margine interno, e gli intervalli dei tag contano i fotogrammi nella sheet.
Come in Aseprite, i fotogrammi di un tag sono in ordine di timeline sulla sheet, e la sua direzione e il
numero di ripetizioni sono nel JSON perché il motore di gioco li applichi.
I preset del motore impostano il layout per un motore di gioco con un clic: Godot 4 e
Phaser / PixiJS compattano i fotogrammi, rifilano ciascuno al suo contenuto, uniscono i duplicati e
aggiungono 1 px di estrusione, così i fotogrammi non raccolgono i bordi dei vicini quando la camera si
muove o la texture viene filtrata. Godot 4 sceglie anche il file dati .tres. Impostazioni
predefinite di Aseprite riporta il layout a una semplice striscia. Puoi cambiare qualsiasi opzione
dopo.
Godot 4
Con il file dati SpriteFrames di Godot 4 (.tres):
- Ogni tag diventa un'animazione con il nome del tag. Uno sprite senza tag ottiene un'animazione
chiamata
default. Con Dividi livelli, le animazioni si chiamanolivello/tag. - Le durate dei fotogrammi si trasferiscono esattamente: la velocità dell'animazione viene dalla durata di fotogramma più comune, e i fotogrammi più lunghi o più corti ricevono una durata relativa corrispondente.
- Godot non ha impostazioni di inversione, ping-pong o ripetizione, quindi i fotogrammi vengono scritti nell'ordine di riproduzione. Un tag con un numero di ripetizioni viene riprodotto quel numero di volte (ogni verso di un ping-pong conta una volta) e non va in loop; gli altri tag vanno in loop.
- I fotogrammi rifilati mantengono dimensione e posizione complete, così lo sprite non salta tra i fotogrammi.
Metti il PNG e il .tres nella stessa cartella del tuo progetto Godot, poi scegli il .tres come
Sprite Frames di un AnimatedSprite2D. Per pixel nitidi, imposta Project Settings >
Rendering > Textures > Default Texture Filter su Nearest.
Esportare un timelapse
File > Esporta timelapse... crea una breve GIF o un MP4 del tuo sprite mentre viene disegnato, da condividere.
- Anima: Disegna lo sprite finito (i pixel compaiono in un ordine a tua scelta: una scansione, una dissolvenza casuale, uno scorrimento diagonale, una spirale, dal centro, o colore per colore), oppure Riproduci le mie modifiche (la tua vera cronologia delle modifiche di questa sessione, tratto per tratto: i passi che hanno portato a dove sei ora, senza i passi annullati né altri rami). Scegli un intervallo di modifiche (Dalla modifica / Alla modifica) e Mostra ogni N modifiche per velocizzare le costruzioni lunghe.
- Con più livelli o fotogrammi, scegli se vengono disegnati insieme o uno alla volta.
- Tempi: tempo di disegno, frequenza fotogrammi, ritmo (accelera e rallenta, costante, accelera, rallenta), una pausa tra i fotogrammi, una pausa finale, e quante volte viene poi riprodotta l'animazione finita.
- Output: GIF o MP4, scala (punta a 1080 pixel per impostazione predefinita), margine, una tela quadrata, e il colore di sfondo (o trasparente, per la GIF).