Skip to main content
Go to Editor

Wiki

Questa guida ti aiuterà a iniziare rapidamente con l'ottimizzatore JSON. Carica progetto: Usa il InputNode per caricare il tuo .json , .atlas e .png files. Sceg

animazionecon perditaconcetticonduttureconnessionicontrollidatiesempiesportareflusso di lavorofpsgraficiguidamemoriametricaottimizzazionepiùpremiopreseprestazioneprezziprincipianteregistratoreregistrazioneriproduzionerisultatisenza perditesequenza temporalesottoscrizionespettatorestatistichetavolotipiuivideoyoutube

Per iniziare: flusso di lavoro di base

principianteflusso di lavoroguida

Questa guida ti aiuterà a iniziare rapidamente con l'ottimizzatore JSON. Carica progetto: Usa il InputNode per caricare il tuo .json , .atlas e .png files. Scegli una preimpostazione (modalità Plus): In modalità Plus,...

Read article

Tipi di socket e flusso di dati

presetipidaticonnessioni

Questo articolo spiega i tipi di dati utilizzati dai socket nel grafico del nodo e cosa può essere collegato e dove. Tipi di socket Spine Payload — rappresentazione di facile utilizzo del progetto Spine utilizzata dal...

Read article

Piani di abbonamento e funzionalità premium

sottoscrizionepremiopiùprezzi

re-polish offre due livelli di abbonamento per soddisfare esigenze diverse. Piano gratuito ✓ Base Node Graph ✓ JSON Visualizzatore ✓ Timeline con tracce multiple e mixaggio di animazioni personalizzabili • ottimizzazi...

Read article

Concetti fondamentali: con perdita o senza perdita

concetticon perditasenza perditeprincipiante

Tutti i metodi di ottimizzazione sono divisi in due tipi: Lossless: Questi metodi rimuovono solo i dati ridondanti... Esempi: SplineOptimizationNode , CleanupNode . Lossy: Questi metodi semplificano l'animazione curve...

Read article

Come misurare l'efficacia

guidametricastatistiche

Per comprendere quanto sia efficace l'ottimizzazione, prestare attenzione alle seguenti metriche: Dimensione file: La dimensione finale del file .json è l'obiettivo principale di ottimizzazione. Conteggio fotogrammi c...

Read article

Visualizzatore: Pannello di controllo

spettatorecontrolliui

La scheda Visualizzatore sovrappone un pannello Controlli sulla parte superiore della tela. È diviso in tre gruppi: Controlli animazione Animazione — seleziona l'animazione Spine riproduzione. Skin — seleziona quale s...

Read article

Visualizzatore: pannello delle prestazioni

prestazionefpsmemoriaui

Il pannello Prestazioni mostra le metriche di runtime in tempo reale per il brano attualmente in riproduzione scheletro/i. Real-time FPS — fotogrammi al secondo misurati dal monitor. Frame Time — tempo per fotogramma...

Read article

Visualizzatore: sequenza temporale

spettatoresequenza temporaleanimazioneriproduzioneguida

Il pannello Timeline è un sequenziatore di animazioni agganciabile nella parte inferiore del Visualizzatore. Ti consente di organizzare clip di animazione su più tracce, controllare la riproduzione e visualizzare in a...

Read article

Visualizzatore: registratore

spettatoreregistratoreregistrazioneesportarevideoguida

Il Registratore cattura le animazioni Spine dallo spettatore come video, immagini animate o sequenze di immagini. Registrazione Modalità ⚡ Registrazione rapida : acquisizione in tempo reale utilizzando MediaRecorder +...

Read article

Scheda Risultati

risultatitavoloottimizzazione

La scheda Risultati mostra i risultati dettagliati dell'ottimizzazione. Tabella dei risultati — una visualizzazione riga per modifica dei risultati dell'ottimizzazione di JSON (ad es. quale animazione/osso/proprietà/f...

Read article

Scheda Statistiche

statistichegraficimetrica

La scheda Statistiche riassume i risultati di ottimizzazione sotto forma di grafici e metriche aggregate. Grafico di ottimizzazione : visualizza l'impatto dell'ottimizzazione sul set di dati (quando JSON ottimizzazion...

Read article

Esempi di pipeline (video)

videoesempiconduttureyoutube

Di seguito sono riportate le pipeline complete e reali della playlist ufficiale di YouTube. Apri la versione completa playlist Esempi Spine2D Esperimenti 1: Ottimizzazione della curva con l'algoritmo RDP — linea di ba...

Read article

Nodes

Input

Importa file di progetto Spine, input solo JSON, risorse demo e pacchetti ZIP nel grafo.

Scopo: Questo e il punto di ingresso principale per la maggior parte dei flussi di lavoro. Legge JSON, atlas e texture e li normalizza in dati interni che i nodi a valle possono elaborare.

Modalita supportate:
1. Progetto completo: JSON + atlas + texture
2. Solo JSON: elabora dati di skeleton/animation senza atlas
3. Pacchetto ZIP: un file zip che contiene un progetto completo
4. Risorse demo: dati di esempio integrati per test rapidi

Output principali:
- **payload_out**: dati normalizzati per i nodi di ottimizzazione
- **original_json_out**: JSON sorgente per confronto o ricostruzione
- **atlas_project_out**: progetto atlas analizzato quando vengono fornite texture

Video To Png Sequence

Converti una clip video in una sequenza di fotogrammi PNG per i flussi di lavoro Spine.

Si tratta di uno strumento di input gratuito nel menu Input, pensato per flussi di produzione. Supporta il chroma key per i green screen e una pulizia del matte in stile unpremultiply per gli sfondi neri. Le uscite vengono fornite tramite payload_out e atlas_out.

Picture Input

Aggiunge immagini PNG/JPEG autonome al viewport per creare anteprime e inquadrature di presentazione piu pulite.

Scopo: Usa questo nodo per posizionare immagini direttamente nel viewport come livelli di presentazione o aiuti visivi. E utile quando vuoi decorare una scena, aggiungere grafica di supporto e rendere le anteprime del progetto piu curate prima di registrare video o demo.

Flusso di lavoro: Carica un'immagine, quindi usa gli strumenti del viewport per scalarla, spostarla e regolarne lo z-index cosi che si posizioni correttamente nella composizione. E un modo pratico per creare schermate di showcase accattivanti senza toccare i dati principali del progetto Spine.

Questo nodo e autonomo e non espone socket del grafo.

Version: Formato versione Spine JSON per lo scheletro stub generato.
Blending: Modalità di fusione per l'allegato generato (normale, additivo, moltiplicazione, schermo).

Psd To Skeletons

Carica file PSD/PSB a livelli e genera scheletri Spine collegati che mantengono il layout della scena Photoshop per anteprime precise.

Scopo: Usa questo nodo quando la scena è già stata composta in Photoshop e vuoi trasformare quello stack di livelli in un set di scheletri Spine collegati nel viewer. Ogni livello PSD visibile diventa il proprio scheletro in stile immagine, posizionato secondo le coordinate del PSD, rendendo molto più semplice costruire il preview e posizionare con precisione gli oggetti.

Workflow nel viewer: Dopo la generazione puoi ancora cambiare il draw order nel viewer e collocare altri scheletri tra i livelli PSD importati, così personaggi o props Spine aggiuntivi possono essere inseriti direttamente nella composizione Photoshop.

Disponibilità: Nodo gratuito. Questo nodo è standalone e non espone socket del grafo.

Version: Formato di versione Spine JSON usato per gli scheletri di livello generati.
Blending: Modalità di blending usata per gli attachment generati.
Load PSD: Apre il selettore PSD/PSB e genera scheletri di livello collegati dal file scelto.
File Info: Riepilogo in sola lettura del file PSD/PSB attualmente caricato.
Layer Count: Conteggio in sola lettura dei livelli visibili che verranno convertiti in scheletri collegati.
Preflight: Report in sola lettura sui problemi dei nomi dei livelli rilevati prima della generazione.

Project Input

Carica una cartella o un archivio di progetto Spine nel grafo ed espone un ProjectPayload tramite il socket project_out per i nodi a valle che gestiscono progetti.

Scopo: Punto di ingresso per i flussi di lavoro basati su progetto. Esegue la scansione di una cartella o di un archivio di progetto Spine, costruisce un ProjectPayload e mantiene pronti i metadati in cache per i nodi a valle come Project Viewer, filtri, Static Bake e Deduplicator.

Controlli:
- **Load Folder**: Apre il selettore di cartelle di sistema tramite File System Access API, esegue la scansione della directory selezionata, aggiorna il riepilogo, mette in cache i metadati e avvia un file watcher così che le modifiche successive possano essere riscansionate.
- **Browse (Fallback)**: Usa un input **webkitdirectory** nascosto per i browser senza **showDirectoryPicker()**. Carica il progetto, ma senza un handle persistente della directory, quindi il live watching e i rescans affidabili non sono disponibili.
- **Load Archive**: Carica un archivio **.zip** o **.spine** come albero di progetto virtuale. I progetti caricati da archivio non mantengono un handle di directory, quindi **Rescan** non è disponibile per scelta progettuale.
- **Rescan**: Riesegue la scansione della cartella caricata in precedenza quando è disponibile un handle di directory. Ricontrolla il permesso di lettura prima della scansione. I progetti caricati tramite fallback browse o modalità archivio di solito segnalano che nessuna directory è caricata.
- **Clear Project**: Arresta il monitoraggio dei file e cancella il payload corrente, il riepilogo, la cache di esecuzione e i metadati del payload in cache.
- **Reset to Defaults**: Reimposta solo i controlli generici del nodo. **Non** scarica il progetto corrente e non sostituisce **Clear Project**.
- **Drop folder or .zip here**: Punto di ingresso drag-and-drop che accetta cartelle e archivi e li instrada nella stessa pipeline di caricamento.

Output:
- **project_out**: ProjectPayload con l'albero analizzato, l'elenco file piatto, i totali di dimensione e la ripartizione per tipo per i nodi a valle che supportano i progetti.
- **stats**: Output diagnostico disponibile solo in DEV.

Output

Raccoglie i risultati finali e ti consente di scaricare i dati ottimizzati come file separati, gruppi di file o archivi.

Scopo: Agisce come hub di esportazione per JSON ottimizzato, dati atlas, texture e sprite. Puo assemblare risultati da un singolo set JSON/atlas/texture, da piu set di file oppure solo da sprite quando vuoi un output di immagini senza ricostruire un progetto Spine completo.

Opzioni di esportazione:
- Scarica i file singolarmente o come un unico archivio
- Scarica risultati impacchettati o un archivio con file non impacchettati
- Esporta il JSON in forma compatta o in forma leggibile con pretty print
- Esporta i dati completi del progetto Spine o solo i risultati sprite/immagine

Flusso concatenato: OutputNode non deve essere per forza la fine assoluta del grafo. Puoi passare i suoi output a un'altra fase della pipeline ed eseguire gli stessi file attraverso ulteriori passaggi di ottimizzazione. In pratica, l'ottimizzazione di key e curve e stata testata fino a 3 iterazioni consecutive.

Output principali:
- **reconstructed_json_out**: JSON Spine ricostruito
- **original_json_passthrough_out**: passaggio diretto del JSON originale
- **payload_out**: payload per ulteriore concatenazione
- **changes**: modifiche di ottimizzazione raccolte
- **atlas_assets**: risorse atlas pronte per l'esportazione

RDP

Semplifica le curve di animazione utilizzando l'algoritmo Ramer-Douglas-Peucker (RDP).

Scopo: riduce il numero di fotogrammi chiave nei segmenti di animazione lineare o quasi lineare rimuovendo i punti che si trovano su una linea retta tra altri due.

Regola d'oro: disabilitata per impostazione predefinita. Protegge le curve con forma significativa (area/curvatura) dall'appiattimento a lineare. Disabilitalo solo per una compressione più aggressiva dopo la revisione visiva.

Chiavi socket: payload_in, payload_out, modifiche

Epsilon: Deviazione massima dalla curva originale. Valori più alti rimuovono più keyframe ma possono perdere dettagli della curva.
Steep: Soglia di sensibilità alla curvatura. Protegge le curve complesse dall'appiattimento a lineare.
Round Mode: Modalità di arrotondamento per valori ottimizzati: nessuno (mantieni originale), decimi (1 decimale), interi.
Golden Rule: Quando attivato, protegge le curve con forma/area significativa dalla semplificazione RDP.
S Run Length: Numero minimo di curve a S standard di Spine consecutive richiesto prima che questa linearizzazione basata su modello si attivi. Imposta 0 per disattivare la funzione.
S Deviation: Deviazione normalizzata consentita dal modello standard di curva a S di Spine, in per mille (0-300). Valori più bassi richiedono una corrispondenza più stretta; valori più alti linearizzano più sequenze vicine al modello.

Spline

Adatta curve spline uniformi ai fotogrammi chiave dell'animazione, riducendo i punti intermedi non necessari.

Scopo: adattamento uniforme della curva mantenendo la qualità visiva.

Chiavi socket: payload_in, payload_out, modifiche

Max Error: Errore massimo di approssimazione consentito per l'adattamento spline. Inferiore = adattamento più preciso all'originale.
Min Group Size: Numero minimo di keyframe lineari consecutivi necessari per formare un gruppo rimovibile.

Refit

Si avvicina a sequenze di fotogrammi chiave dense con meno curve di Bezier per ridurre le dimensioni.

Scopo: adatta meno curve rimanendo entro una tolleranza.

Chiavi socket: payload_in, payload_out, modifiche

Error Tolerance: Deviazione massima consentita tra curva originale e Bézier adattata. Inferiore = corrispondenza più accurata.
Max Iterations: Numero di iterazioni di ottimizzazione per l'adattamento della curva. Più iterazioni = migliore adattamento ma più lento.

Quantizer

Riduce la precisione dei valori numerici nei fotogrammi chiave e nelle curve.

Scopo: modo semplice ma efficace per ridurre le dimensioni del file arrotondando i numeri a un numero specificato di cifre decimali.

Utilizzo: può essere applicato a quasi tutti i dati di animazione. Diventa più efficace con un numero maggiore di fotogrammi chiave.

Attenzione: una quantizzazione troppo aggressiva (bassa precisione) può causare jitter o artefatti visivi nelle animazioni.

Chiavi socket: payload_in, payload_out, modifiche

Cleanup

Esegue varie attività di pulizia per rimuovere dati di animazione ridondanti o non necessari.

Scopo: strumento specializzato per rimuovere tipi specifici di dati ridondanti che altri ottimizzatori potrebbero perdere.

Utilizzo: collega il tuo payload a 'payload_in' e prendi il risultato da 'payload_out'. Se desideri un rapporto per modifica, utilizza anche "modifiche".

Chiavi presa:
- Ingressi: payload_in
- Uscite: payload_out, modifiche

Pulizie attualmente supportate:
1. **Rimuovi tracce colore/alfa non utilizzate**: rimuove le linee temporali colore/alfa per gli slot che non sono mai visibili durante l'animazione.
2. **Rimuovi rotazioni IK ridondanti**: rimuove i fotogrammi chiave di rotazione dalle ossa completamente controllate da un vincolo IK con mix al 100%.
3. **Rimuovi chiavi di vincolo del percorso**: rimuove i fotogrammi chiave di rotazione/traslazione dalle ossa completamente controllate da un vincolo di percorso (mescola i valori al 100%).
4. **Disinfetta caratteri non inglesi**: sostituisce i caratteri non inglesi nei nomi/identificatori per evitare problemi negli strumenti downstream.

Remove Unused Color Tracks: Rimuovi componenti colore/alfa che non cambiano mai dal valore predefinito.
Remove Redundant IKRotation: Rimuovi keyframe di rotazione delle ossa completamente controllati dai vincoli IK.
Remove Redundant Path Constraint Keys: Rimuovi keyframe di vincoli del percorso che duplicano i valori di configurazione.
Sanitize Non English Characters: Sostituisci caratteri non-ASCII nei nomi di ossa/slot con equivalenti sicuri.

Scale

Ridimensiona tutti i valori numerici nei fotogrammi chiave dell'animazione in base a un fattore specificato.

Scopo: ridimensiona in modo uniforme i dati di animazione, utile per ridimensionare proporzionalmente lo scheletro o regolare l'intensità dell'animazione.

Utilizzo: collega **payload_in** e prendi il risultato da **payload_out**.

Chiavi socket: payload_in, payload_out

Scale Factor: Moltiplicatore di scala per lo scheletro (es. 0.5 = metà dimensione).
Scale Bones: Scala posizioni e dimensioni delle ossa.
Scale Attachments: Scala posizioni e dimensioni degli allegati.
Scale Animations: Scala i keyframe dell'animazione.
Scale Constraints: Scala i parametri dei vincoli.
Scale Path: Scala i dati del percorso.

Schneider

Adatta le curve di Bezier uniformi ai fotogrammi chiave dell'animazione utilizzando l'algoritmo di adattamento della curva di Schneider.

Scopo: adattamento avanzato delle curve che produce curve di Bezier dall'aspetto naturale da sequenze di fotogrammi chiave dense.

Disponibilità: **Nodo solo Plus**.

Come funziona: l'algoritmo di Schneider analizza le posizioni e le tangenti dei fotogrammi chiave per generare punti di controllo Bezier ottimali che corrispondono fedelmente al movimento originale.

parametri:
- **Tolleranza all'errore**: deviazione massima consentita dai fotogrammi chiave originali. Inferiore = curve più precise, superiore = curve più morbide.
- **Angolo angolare**: angolo di soglia (gradi) al quale dividere la curva in segmenti.

Ideale per:
- Animazioni disegnate a mano o importate con molti fotogrammi chiave
- Conversione dell'interpolazione lineare in curve di Bezier uniformi
- Riduzione del conteggio dei fotogrammi chiave mantenendo la qualità della curva

Nota: più intensivo dal punto di vista computazionale rispetto ad algoritmi più semplici come RDP, ma produce una qualità della curva superiore.

Chiavi socket: payload_in, payload_out, modifiche

Error Tolerance: Deviazione massima consentita tra curva originale e adattata.
Min Segment Size: Numero minimo di keyframe in un segmento per l'elaborazione.

Physics Constraint Bake

Inserisce il movimento Spine PhysicsConstraint nei fotogrammi chiave di rotazione/traslazione dell'osso e rimuove le linee temporali fisiche.

Scopo: converte la simulazione fisica runtime in fotogrammi chiave espliciti in modo che le animazioni siano deterministiche e modificabili senza vincoli fisici. Dopo la cottura, i vincoli fisici e le sequenze temporali fisiche vengono rimossi dal payload.

Disponibilità: **Nodo solo Plus**.

Ingressi/Uscite:
- **payload_in** → **payload_out** (cotto)
- **modifiche** (elenco modifiche facoltativo)

Controlli:
- **Sample FPS**: frequenza di campionamento della simulazione per la cottura.
- **Rotazione Bake**: scrivi le chiavi di rotazione cotte.
- **Traduzione al forno**: scrivi chiavi di traduzione al forno.
- **Traduzione di Bake (bambini)**: applica la traduzione di Bake alle ossa dei bambini che si basano sul movimento fisico.

Note:
- Richiede Spine JSON originale per ricostruire i dati di simulazione.
- Utilizzare quando si desidera rimuovere i vincoli fisici ma mantenere il movimento.

Bake rotation: Cuocere la rotazione dai vincoli fisici.
Bake translation: Cuocere la traslazione dai vincoli fisici.
Bake translation descendants: Cuocere la traslazione per le ossa discendenti.

Attachment Visibility

Ottimizza il rendering impostando l'allegato di uno slot su null quando il suo alfa è zero.

Scopo: Impedisce al motore di gioco di dover elaborare o eseguire il rendering degli allegati invisibili.

Utilizzo: elabora **payload_in**, genera output ottimizzati **payload_out** e, facoltativamente, segnala **modifiche**.

Chiavi socket: payload_in, payload_out, modifiche

Alpha Threshold: Soglia alfa per il rilevamento della visibilità dell'allegato.
Auto Restore: Ripristina automaticamente la visibilità dopo l'elaborazione.

Payload Merger

Unisce più payload di animazione elaborati in un singolo payload unificato.

Scopo: essenziale per pipeline di elaborazione parallela in cui diverse animazioni o gruppi di ossa sono ottimizzati separatamente e devono essere ricombinati.

Ingressi:
- **base**: carico utile principale (struttura scheletrica)
- **sostituisce**: uno o più carichi utili i cui binari sostituiscono i binari base

Uscita:
- **merged_out**: carico utile unito

Chiavi socket: base, override, merged_out

Warn conflicts: Mostra avvisi sui conflitti di unione del payload.

Animation Viewer

Strumento visivo per ispezionare e confrontare le curve di animazione prima e dopo l'ottimizzazione.

Scopo: Fornisce una rappresentazione grafica dei fotogrammi chiave e delle curve per la traccia selezionata.

Utilizzo: collega **prima_in** e **dopo_in** per sovrapporre l'originale e l'ottimizzato. Facoltativamente, collega le **modifiche** per evidenziare le tracce interessate.

Chiavi socket: prima_in, dopo_in, modifiche

Show changed: Mostra solo le animazioni modificate.
Animation: Selezione animazione per la visualizzazione.
Target: Osso/slot target per la visualizzazione.
Property: Proprietà da visualizzare (rotazione, traslazione, ecc.).

Project Viewer

Displays a Spine project from the project_in socket for inspection and preview without mutating the incoming data.

Deduplicator

Deduplicates atlas projects by consuming project_inputs and returning payloads, atlas_projects, original_jsons, and shared_atlas_out for canonicalized downstream workflows.

The Deduplicator node scans all atlas regions for visually identical or near-identical sprites. It merges duplicates by choosing a canonical representative and remapping references. Several thresholds control detection sensitivity for different sprite types (glow, solid, alpha). Optionally constrains the output canonical atlas dimensions. A verification pass ensures the deduplicated result is visually equivalent to the original within the specified RMSE tolerance.

Repack mode: Modalità di reimpacchettamento dopo la deduplica.
Glow threshold: Soglia per il rilevamento di sprite con effetto bagliore.
Solid threshold: Soglia per il rilevamento di sprite solidi.
Min sprite area: Area minima dello sprite per l'analisi (pixel²).
Alpha hash threshold: Soglia hash alfa per il confronto.
Verification threshold: Soglia di verifica dei duplicati.
Color rmse threshold: Soglia RMSE colore per il rilevamento dei duplicati.
Constrain canonical atlas size: Vincola la dimensione dell'atlas canonico.
Max canonical atlas width: Larghezza massima dell'atlas canonico.
Max canonical atlas height: Altezza massima dell'atlas canonico.

Animation Filter

Filtra le tracce dell'animazione in base al nome dell'animazione (ad esempio "esegui", "inattivo").

Scopo: utile per applicare diverse strategie di ottimizzazione a diverse animazioni.

Utilizzo: filtra **payload_in** in **payload_out** ed espone **animation_list** per la selezione dell'interfaccia utente.

Chiavi socket: payload_in, payload_out, Animation_list

Asset Filter

Filtra le risorse atlas per nome, funziona in due modalità: prima dell'unpacker (filtra il testo atlas) o dopo l'unpacker (filtra gli sprite).

Scopo: controlla quali risorse sono incluse nel flusso di lavoro: quali risorse decomprimere da atlas o quali sprite decompressi includere nel repacking.

Ingressi/Uscite:
- Modalità Atlas: **atlante_in** → **atlante_out**
- Modalità sprite: **sprites_in** → **sprites_out**

Chiavi socket: atlas_in, atlas_out, sprites_in, sprites_out

Bone Filter

Filtra le tracce di animazione delle ossa in base al nome delle ossa.

Scopo: consente di individuare o escludere ossa specifiche dal processo di ottimizzazione.

Utilizzo: filtra **payload_in** in **payload_out**.

Chiavi socket: payload_in, payload_out

Skin Filter

Filtra le animazioni e i dati delle risorse in base ai nomi degli skin.

Scopo: elabora solo skin specifiche da un progetto multi-skin Spine.

Utilizzo: filtra **payload_in** in **payload_out**.

Chiavi socket: payload_in, payload_out

Slot Filter

Filtra le tracce di animazione degli slot in base al nome dello slot.

Scopo: utile per scegliere come target o escludere fasce orarie specifiche che potrebbero avere requisiti di tempistica o visibilità speciali.

Utilizzo: filtra **payload_in** in **payload_out**.

Chiavi socket: payload_in, payload_out

Parameter Filter

Filtra le tracce di animazione in base al tipo di proprietà (ad esempio, rotazione, scala, colore).

Scopo: consente di applicare ottimizzazioni successive solo a tipi specifici di dati di animazione.

Utilizzo: filtra **payload_in** in **payload_out**.

Chiavi socket: payload_in, payload_out

Rotation: Includi/escludi tracce di rotazione dall'elaborazione.
Translation: Includi/escludi tracce di traslazione dall'elaborazione.
Scale: Includi/escludi tracce di scala dall'elaborazione.
Shear: Includi/escludi tracce di taglio dall'elaborazione.
Color: Includi/escludi tracce di colore dall'elaborazione.
Attachment: Includi/escludi tracce di allegati dall'elaborazione.
Deform: Includi/escludi tracce di deformazione (mesh) dall'elaborazione.

Atlas Unpacker

Estrae singoli sprite da una texture Spine atlas.

Scopo: scompone un file atlas negli sprite che lo compongono, consentendo l'analisi individuale o il repacking.

Utilizzo: collega **atlas_project** da InputNode a **atlas_project** (o il legacy **atlas_project_in**) su questo nodo. Facoltativamente, collega **skeleton_json_in** (da **original_json** di InputNode) per abilitare il ritaglio compatibile con la mesh (taglia gli sprite sui limiti dello scafo mesh anziché sui limiti rettangolari, il che può ridurre significativamente la memoria delle texture per gli allegati mesh).

Uscite:
- **sprites_out**: array di sprite standardizzati (per visualizzatore/repacker)
- **sprites_data_out**: immagini/metadati sprite estratti (pacchetto strutturato)
- **atlas_out**: Atlas passthrough del progetto

Chiavi socket: atlas_project, atlas_project_in, skeleton_json_in, sprites_out, sprites_data_out, atlas_out

Atlas Repacker

Ricompone i singoli sprite in uno o più atlanti di texture nuovi e ottimizzati.

Scopo: ottimizza la memoria delle texture e riduce potenzialmente le chiamate di disegno creando fogli sprite efficienti.

Utilizzo: accetta sprite tramite **sprites_data_in** (pacchetto di sprite strutturati) o tramite **sprites_out** (array di sprite standardizzati). Se necessario per la gestione alfa/compressione dei poligoni, fornire lo scheletro originale tramite **original_json**. Restituisce un atlas compresso come **atlas_out**.

Chiavi socket: sprites_data_in, sprites_out, original_json, atlas_out

Min Page Width: Larghezza minima della pagina dell'atlas in pixel.
Min Page Height: Altezza minima della pagina dell'atlas in pixel.
Max Page Width: Larghezza massima della pagina dell'atlas in pixel.
Max Page Height: Altezza massima della pagina dell'atlas in pixel.
Padding X: Spaziatura orizzontale tra sprite in pixel.
Padding Y: Spaziatura verticale tra sprite in pixel.
Edge Padding: Spaziatura dai bordi della pagina dell'atlas.
Duplicate Padding: Duplica i pixel del bordo per prevenire artefatti di filtraggio.
Alpha Mode: Modalità alfa: PMA (alfa premoltiplicato) o diretto.
Alpha Threshold: Soglia alfa per ritagliare i pixel invisibili.
Strip Whitespace X: Ritaglia i pixel vuoti orizzontalmente.
Strip Whitespace Y: Ritaglia i pixel vuoti verticalmente.
Color Bleed Radius: Raggio di diffusione del colore per prevenire cuciture durante il filtraggio.
Scale: Fattore di scala applicato a tutti gli sprite prima dell'impacchettamento.
Power Of Two: Arrotonda le dimensioni della pagina a potenza di due.
Divisible By4: Arrotonda le dimensioni della pagina a multipli di 4 (per compressione texture).
Square: Forza pagine quadrate.
Allow Rotation: Consenti rotazione a 90° degli sprite per un impacchettamento migliore.
Packer Type: Algoritmo di impacchettamento: MaxRects o Shelf.

Atlas Viewer

Strumento leggero di visualizzazione e analisi atlas per ispezionare la struttura atlas prima di disimballare.

Scopo: fornisce un modo rapido per visualizzare in anteprima le pagine e le regioni atlas senza eseguire la pesante operazione di disimballaggio. Aiuta a convalidare la struttura atlas e a identificare le regioni inutilizzate.

Utilizzo: collega un singolo progetto atlas a **atlas_project** (o **atlas_in** / **atlas** legacy) o esamina un batch di progetti atlas tramite **atlas_projects**. Facoltativamente, collega lo scheletro JSON a **json** per l'analisi dell'utilizzo.

Chiavi socket: atlas_project, atlas_projects, atlas_in, atlas, json

Page Info: Dimensioni e informazioni della pagina dell'atlas.
Stats: Statistiche di utilizzo dello spazio e conteggio sprite.

Atlas Merger

Combina più origini atlas in un unico atlas unificato.

Scopo: unire più progetti atlas in uno solo.

Ingresso:
- **atlas_inputs**: array multi-input di progetti atlas

Uscite:
- **atlas_out**: progetto atlas unito
- **merged_out**: output unito legacy
- **merged_atlas_out**: output unito legacy

Chiavi socket: atlas_inputs, atlas_out, merged_out, merged_atlas_out

Conduttura tipica:
```
InputA → Unpacker → Repacker ─┐
                               ├→ Atlas Merger → Unpacker → Repacker → Output
InputB → Unpacker → Repacker ─┘
```
Prima di Repacker i dati sono singoli sprite; dopo Repacker diventa un progetto atlas. Atlas La fusione combina i progetti atlas, quindi un passaggio finale Unpacker → Repacker reimballa tutto strettamente in un unico atlas unificato.

Asset Viewer

Visualizza i singoli sprite da un atlas scompattato.

Scopo: strumento di debug visivo per la manipolazione di atlas.

Utilizzo: accetta sprite tramite **sprites_out** (standard) o legacy **sprites_in** / **sprites_data**.

Chiavi socket: sprites_out, sprites_in, sprites_data

Asset select: Selezione asset per la visualizzazione.
Pixel stats: Mostra statistiche pixel dell'asset.