Skip to main content
Go to Editor

Wiki

Learn how to optimize your Spine 2D animations, reduce file size, and improve performance

animacijabez gubitakacjevovodifpsgledateljgubitakaizvozkartekonceptikontrolememorijametrikaodređivanje cijenaoptimizacijaperformansepluspodacipočetnikpremijapretplataprimjerirekorderreprodukcijarezultatesnimanjestatistikastoltijek radauiutičnicevezevideovodičvremenska linijavrsteyoutube

Početak rada: Osnovni tijek rada

početniktijek radavodič

Ovaj će vam vodič pomoći da brzo počnete koristiti JSON Optimizer.

  1. Učitaj projekt: Koristite InputNode za učitavanje vašeg .json, .atlas i .png datoteke.
  2. Odaberite unaprijed postavljenu postavku (Plus način rada): U Plus načinu rada upotrijebite desnu ploču za odabir jedne od ugrađenih unaprijed postavljenih postavki (npr. "Basic Fallback"). Ovo automatski gradi grafikon optimizacije za vas. U slobodnom načinu rada izradite minimalni ručni graf: InputNodeQuantizerNodeOutputNode.
  3. Pokreni grafikon: Kliknite "Pokreni Graph" gumb.
  4. Usporedite rezultate: Prijeđite na karticu "Preglednik" za vizualnu usporedbu izvorne i optimizirane animacije.
  5. Pregledajte promjene: U Na karticama "Rezultati" i "Statistika" pronaći ćete detaljne informacije o tome koji su ključevi izmijenjeni ili izbrisani.

Vrste utičnica i protok podataka

utičnicevrstepodaciveze

Ovaj članak objašnjava vrste podataka koje koriste utičnice u grafu čvorova i što se gdje može povezati.

Brzo pravilo

Većina processing čvorova radi na Spine Korisni teret. Čvorovi povezani s Atlas rade na Atlas projektu ili Sprites. Koristite ValidatorNode kada niste sigurni što utičnica očekuje.

Socket vrste

  • Spine Payload — prikaz projekta Spine koji se koristi u većini obrada prilagođen vremenu izvođenja čvorovi.
  • Atlas Projekt — atlas metapodaci + slike stranica koje koristi atlas čvorovi.
  • Sprites — otpakirane slike/regije spritea (Atlas Raspakiravač → Preglednik sredstava / Atlas Repaker).
  • JSON — originalno ili rekonstruirano Spine JSON za dijagnostika/provjera valjanosti/razlikovanje.
  • Promjene — popis/tok razlika koje proizvode neki optimizatori i koriste ih preglednici/čvorovi za izvješćivanje.

Key → type → connect do

Ključ utičnice (primjeri)Vrsta podatakaProizvedeno od stranePoveži se na
payload, payload_in, payload_outSpine Korisni teretInputNode, većina čvorova za obraduČvorovi za obradu (RDP/Spline/Refit/Quantizer/Cleanup/itd.), zatim OutputNode.payload
original_jsonJSONInputNodeDiagnosticNode, JSONDiffNode.json_before, OutputNode.original_json, neki atlas čvorovi (npr.prepakir alfa način)
reconstructed_json_outJSONOutputNodeJSONDiffNode.json_after, validatori/debug
promjenePromjene listaNeki čvorovi za obradu + OutputNodeAnimationViewerNode (izborno), izvješća/debug
atlas_projectAtlas ProjektInputNode / atlas gledateljAtlasUnpackerNode.atlas_project, OutputNode.atlas_project, atlas filteri
atlas_in, atlas_outAtlas Projekt (ili atlas-povezan tok)Atlas čvorovi / filteriAtlas čvorovi, AtlasViewerNode, AtlasMergerNode (putem svog višestruki ulaz)
sprites_out, sprites_in, sprites_data_inSpritesAtlasUnpackerNode, filteriAssetViewerNode.sprites_in, AtlasRepackerNode.sprites_data_in
atlas_inputsViše Atlas ProjektiVišestruki izvoriAtlasMergerNode.atlas_inputs (povežite nekoliko atlasi)

Praktični cjevovodi

  • Osnovno JSON optimizacija: InputNode → (izborno: DiagnosticNode / filteri) → optimizatori (RDPNode, SplineNode, QuantizerNode, …) → OutputNode.
  • Atlas ponovno pakiranje: InputNode.atlas_projectAtlasUnpackerNode → (izborno: AssetViewerNode) → AtlasRepackerNodeOutputNode.atlas_project/atlas_assets.

Planovi pretplate i premium značajke

pretplatapremijaplusodređivanje cijena

re-polish nudi dvije razine pretplate za različite potrebe.

Besplatni plan

  • • osnovniGraf Čvora
  • ✓ JSON Gledatelj
  • ✓ Vremenska traka s više zapisa i prilagodljivim miješanjem animacija
  • • ograničene optimizacije
  • • spineVerzije

Plus plan (5 dolara mjesečno)

  • ✓ Sve besplatne značajke
  • ✓ Komplet alata za optimizaciju koji pokriva ključeve, krivulje i teksture
  • ✓ Pretvorite fiziku u ključne kadrove
  • ✓ Pečene ključeve očistite u krivulje
  • ✓ Graph Unaprijed postavljene postavke
  • ✓ Prioritetna podrška

Dobivanje Plus

Kliknite Nadogradi gumb u gornjoj navigaciji, zatim:

  • Odaberite Get Plus
  • Bit ćete preusmjereni na Patreon — dovršite pretplata
  • Vratite se u uređivač čvorova dok ste prijavljeni na isti Patreon račun kako bi usluga mogla potvrditi vezu i omogućiti Plus
  • (opcionalno) Unesite aktivacijski kod (za posebne ponude)

Temeljni koncepti: Lossy vs. Lossless

konceptigubitakabez gubitakapočetnik

Sve metode optimizacije dijele se u dvije vrste:

Preporuka: Uvijek pokreni s optimizacijama bez gubitaka. Koristite metode s gubitkom samo kada je potrebno daljnje smanjenje veličine datoteke i uvijek vizualno provjerite rezultat.

Kako izmjeriti učinkovitost

vodičmetrikastatistika

Da biste razumjeli koliko je učinkovita vaša optimizacija, obratite pozornost na sljedeće metrike:

  • Veličina datoteke: Konačna veličina .json datoteke glavni je cilj optimizacija.
  • Broj ključnih okvira: Na kartici "Statistika" pronaći ćete tablice i grafikone koji pokazuju koliko je ključnih okvira uklonjeno u svakoj animaciji.
  • Visual Usporedba: Uvijek koristite karticu "Preglednik" za usporedbu animacija "prije" i "poslije". Uvjerite se da Lossy optimizacije nisu unijele neprihvatljive vizualne artefakte.
  • Izvješće u tablici "Rezultati": Ovdje možete detaljno ispitati svaku specifičnu promjenu koja je napravljena na vašim podacima.

Preglednik: Kontrolna ploča

gledateljkontroleui

Preglednik kartica prekriva Kontrole ploču na vrhu platna. Podijeljen je u tri grupe:

Animacija Kontrole

  • Animacija — odabire koja je Spine animacija igranje.
  • Skin — odabire koji se skin primjenjuje.
  • Brzina — množitelj brzine reprodukcije (0,1× → 3.0×).

View Kontrole

  • Reset View — vraća zadanu kameru/izgled pozicioniranje.
  • View Options — numerički pomaci koji se koriste za pozicioniranje usporednog prikaza: Razmak X / Razmak Y (udaljenost između originala/optimiziranog) i Pomak X / Pomak Y (globalni pomak).

Debug Kontrole

  • Debug Mode — omogućuje preklapanja za ispravljanje pogrešaka (ovisi o podršci za vrijeme izvođenja).
  • Omogući fiziku — uključuje/isključuje simulaciju fizike (ako kostur koristi fizika).
  • Oznake — uključuje/isključuje preklapanje oznaka.

Preglednik: Ploča izvedbe

performansefpsmemorijaui

Ploča Performanse prikazuje metriku vremena izvođenja u stvarnom vremenu za trenutnu reprodukciju kostura(a).

U stvarnom vremenu

  • FPS — sličica u sekundi mjereno monitor.
  • Frame Time — vrijeme po okviru u milisekundama (manje je bolje).
  • FPS grafikon — zadnji 120 uzoraka prikazanih kao trake.

Skeleton metrics

  • Visible Slots — koliko je utora bilo vidljivo na zadnjem uzorak.
  • Prosj. Vidljivo — tekući prosjek vidljivih utora (stabilniji od jednog okvira).
  • Vertices — trenutni broj vrhova koji se koristi za iscrtavanje.
  • Granice (px) — trenutne granice kostura širina×visina u pikselima.
  • Prosj. Granice — granice tekućeg prosjeka.
  • Najveća tekstura — najveća atlas stranica (po dimenzijama) otkrivena za kostur.
  • Memorija teksture — procijenjena ukupna memorija teksture za učitane atlas stranice. Kad je dostupno, ploča također prikazuje raščlambu po stranicama (naziv datoteke, dimenzije i procijenjenu veličinu).

Poboljšanja (kada je Optimizirano dostupno)

  • Utor Poboljšanje — uspoređuje Avg. Vidljivo između izvornog i optimiziranog.
  • Promjena memorije — uspoređuje Texture Memory između izvornog i originalnog Optimizirano.

Gledatelj: Vremenska traka

gledateljvremenska linijaanimacijareprodukcijavodič

Vremenska crta ploča je sekvencer animacije koji se može pričvrstiti na dnu Preglednika. Omogućuje vam raspoređivanje isječaka animacije na više staza, upravljanje reprodukcijom i pregled prijelaza.

Pjesme i isječci

  • Do 4 staze animacije — svaka se staza preslikava na Spine trackIndex sloj. Viši zapisi stapaju se na niže.
  • Dodaj animaciju — kliknite gumb + na bilo kojem zapisu da biste otvorili birač animacija (s pretraživanjem filtar).
  • Povucite i promijenite veličinu isječaka — povucite tijelo isječka da biste ga pomicali po stazi; povucite lijevo/desno rubove za promjenu vremena početka ili trajanja.
  • Brisanje isječaka — odaberite isječak i pritisnite Izbriši ili Backspace.
  • Otkrivanje preklapanja — isječci koji se preklapaju na istom zapisu istaknuti su u crvena.

Transport Kontrole

  • Play / Pause / Stop — standardna reprodukcija kontrole.
  • Prethodno / Sljedeće — skoči na početak prethodnog ili sljedećeg isječka.
  • Brzina animacije — klizač od 0,1× do 3.0×.
  • Auto-stop — reprodukcija se automatski zaustavlja na kraju vremenske trake.

Prijelaz Mixing

  • Global mix duration — postavlja zadano vrijeme prijelaza između uzastopnih isječaka.
  • Per-transition overrides — kliknite na prijelazni oblačić između dva isječka da postavite prilagođeno trajanje miksa.Pojedinačna nadjačavanja možete vratiti na globalnu vrijednost.

Seeking & Scrubbing

  • Playhead — povucite ručicu na vremenskom ravnalu ili kliknite ravnalo za traženje.
  • Pregled vremena kursora — lebdeći iznad područja staze prikazuje vrijeme ispod kursora.
  • Web Worker — traženje i događaj računanje se prebacuje na pozadinskog radnika radi glatke izvedbe.

Physics-Aware Playback

  • Prebacivanje fizike između Ažuriraj (aktivna ograničenja) i Nijedan (onemogućeno).
  • Tijekom traženja, vrijeme kostura je unaprijedeno kako bi se ispravno riješila fizika ograničenja.

Multi-Skeleton Support

  • Selektor ciljanih parova — svaka pjesma može ciljati sve parove (🌐 Sve parovi) ili određeni kostur.
  • Položaj i mjerilo po kosturu — X/Y pomak i unosi mjerila za pojedinačne kosturi.
  • Redoslijed izvlačenja — numerički unos za kontrolu prioriteta sloja renderiranja.

Debug Crtanje

Prebacivanje vidljivosti za: kosti, nazive kostiju, regije, mreže, trupove, granice, staze, isječke, točke.

Odabir kože

Multi-select potvrdne okvire za sve skinove definirane u učitanom kosturu.

View Settings

  • Razmak X / Y — razmak između kostura parovi.
  • Offset X / Y — globalni pomak prikaza.
  • PMA preklopnik — unaprijed umnoženi alfa način (Spine 3.x) ili atlas alpha mod (Spine 4.x: auto / pma / bleed / none).
  • Skeleton labels — prebacivanje oznake sloj.

Gledatelj: Snimač

gledateljrekordersnimanjeizvozvideovodič

Snimač snima Spine animacije od gledatelja kao video, animirane slike ili nizove slika.

Snimanje Načini rada

  • ⚡ Brzo snimanje — snimanje u stvarnom vremenu pomoću MediaRecorder + captureStream(). Stvara samo WebM izlaz. Brz, ali ograničen na broj sličica u sekundi u stvarnom vremenu.
  • 🎬 HQ izvoz — izvanmrežno prikazivanje okvir po okvir pomoću WebCodecs VideoEncoder + readPixels().Podržava sve formate i stvara ispis savršen za piksel.

Izlazni formati

  • Video: WebM, MP4, AVI, MOV
  • Animirana slika: GIF, animirani PNG (APNG)
  • Sekvenca slika: PNG Sekvenca, WebP sekvenca

Kodeci (HQ izvoz)

VP8, VP9, H.264 (AVC), AV1, ProRes — dostupni kodeci se automatski otkrivaju na temelju preglednika podrška.

Kvaliteta

  • Presets: niska (~1 Mbps), srednja (~3 Mbps), visoka (~5 Mbps), bez gubitaka (~20 Mbps).
  • Prilagođena brzina prijenosa — navedite u kbps za fino kontrola.

Timing

  • FPS: 24, 30, 60 ili prilagođeno (1–120 fps).
  • Warm-up — sekunde za rješavanje fizike/ograničenja prije početka snimanja.
  • Pauza-poslije — držite zadnji okvir za određeno trajanje.
  • Uključi zadnji okvir — prebacivanje.

Viewport & Obrezivanje

  • Omogući/onemogući izrezivanje — prebacivanje regije izrezivanja.
  • Obreži pravokutnik — X, Y, Širina, visina u Spine svjetskim koordinatama.
  • Snap to pair — automatsko prilagodba izrezivanja na par kostura s mogućnošću konfiguracije padding.
  • Interaktivni prekrivač obrezivanja — povucite kutove/rubove izravno u polje za prikaz.

Rezolucija

  • Način skaliranja — postotni klizač (10%–400%).
  • Fiksni način rada — eksplicitne dimenzije piksela (do 4096px).
  • Prikazana računska izlazna razlučivost uživo.

Opcije generiranja

  • Render bones — uključite kost za otklanjanje pogrešaka preklapanje.
  • Render slike — uključi slike privitaka.
  • Renderiraj druge — granični okviri, staze.
  • MSAA — Nema / 2× / 4× anti-aliasing.
  • Smoothing — razine 0–8 s izborom algoritma (Bicubic / Bilinear).

Pozadina

  • Transparent — automatski onemogućeno za formate koji nemaju alfa (npr. GIF, JPEG).
  • Puna boja — prilagođena boja birač.
  • Checkerboard — vizualni indikator transparentnosti.
  • Podrška za alfa kanal: VP9+WebM, AV1+MP4, PNG Sekvenca, APNG, WebP sekvenca.

HUD Overlay

  • Toggle: informacije o stazi, vrijeme, broj okvira, FPS, kosturne oznake.
  • Prilagođeni tekst — vodeni žig niz.
  • Pozicija — 4 kuta (gornji lijevi, gornji desni, donji lijevi, donji desni).
  • Font veličina — 8–64 px, plus alat za odabir boje teksta.

Ponovi & Multi-Skeleton

  • Ponovi count — 1–100 ponavljanja petlje.
  • Ciljni par — snimite određeni kostur ili sve.
  • Skeletons mode — Kombinirano (jedna datoteka) / Odvojene datoteke (jedna datoteka po kosturu).

Naziv datoteke Predložak

Niz predloška s varijablama: {projekt}, {animacija}, {W}, {H}, {fps}. Prikazuje se pregled razriješenog naziva datoteke uživo.

Vremenska crta Integration

Snimka raspon se pojavljuje kao crveno/narančasto isprekidani isječak na vremenskoj traci. Povucite rubove da promijenite veličinu raspona, povucite tijelo da promijenite položaj ili upotrijebite gumb za postavke (⚙️) da otvorite pune postavke snimanja.

Kartica Rezultati

rezultatestoloptimizacija

Rezultati kartica prikazuje detaljne rezultate optimizacije.

  • Tablica rezultata — prikaz retka po promjeni rezultata optimizacije JSON (npr. koja je animacija/kost/svojstvo/ključni okvir izmijenjen ili uklonjen).
  • Sprite/Atlas usporedba — kada se koristi optimizacija teksture, ovaj odjeljak uspoređuje veličine i pakiranje spritea ishodi.

Savjet: koristite prikaz rezultata da odgovorite: što se točno promijenilo?

Tab. Statistika

statistikakartemetrika

Kartica Statistika sažima rezultate optimizacije kao grafikone i agregirane metrike.

  • Grafikon optimizacije — vizualizira učinak optimizacije na skup podataka (kada JSON optimizacije su dovele do promjena).
  • Tablica mjernih podataka — ključni brojevi kao što su originalne/nove veličine i postotak smanjenja.
  • Pakiranje teksture Statistika — ako je korišteno atlas ponovno pakiranje, prikazuje stranice, ukupnu/iskorištenu površinu, učinkovitost i raščlambu po stranicama.

Koristite ovu karticu da odgovorite: koliko smo poboljšali ukupno?

Primjeri cjevovoda (video)

videoprimjericjevovodiyoutube

Ispod su potpuni cjevovodi iz stvarnog svijeta sa službene YouTube liste za reprodukciju.

Otvorite cijeli popis za reprodukciju

Primjeri

Spine2D Eksperimenti 1: Optimizacija krivulje s RDP algoritmom — osnovna Spine demonstracija 2D optimizacije: algoritam Ramer–Douglas–Peucker (RDP) uklanja suvišne krivulje/ključne podatke kako bi se smanjio JSON. RDP može ukloniti važne ključeve, stoga uvijek pregledajte animacije i isključite osjetljive kosti/utore s čvorovima filtera prije čvora RDP. Gledaj YouTube

Spine2D Eksperimenti 2: Optimizacija krivulje s kvantizacijskim algoritmom — kvantizacija je najsigurniji Spine 2D optimizator krivulje: zaokruživanje vrijednosti (često na 1 decimalu) daje trenutačne dobitke u veličini. Primjer: [0.115,14.5,0.222,-27.78] → [0.1,14.5,0.2,-27.8]. Koristite kvantizacijski čvor kao posljednji korak prije izlaznog čvora za zaključavanje optimizacije; video prikazuje prije/poslije s gotovo neprimjetnom vizualnom promjenom. Gledaj YouTube

Spine2D Eksperimenti 3: Ponovna izgradnja krivulja s Spline & Refit Algorithms — Spline je bez gubitaka za ravne segmente (uklanja suvišne srednje ključeve), dok je Refit s gubicima, ali moćan: ponovno gradi složene dijelove kao jednu Bézierovu krivulju. Ovi su algoritmi idealni nakon fizičkog pečenja i čišćenja putem Schneider čvora. Napomena: ponavljanja ponovnog postavljanja iznad 100 mogu potrajati nekoliko minuta da se pronađe najbolja krivulja. Video prikazuje kako obje metode funkcioniraju i postotak dobivene optimizacije. Gledaj YouTube

Spine2D Eksperimenti 4: Uklanjanje suvišnih podataka s čvorovima vidljivosti privitka i čišćenja — strukturna Spine 2D optimizacija pomoću čvorova vidljivosti privitka i čišćenja. Vidljivost privitaka onemogućuje privitke kada alfa prijeđe na 0 i vraća ih nakon pojavljivanja, smanjujući pozive za izvlačenje i uklanjajući suvišne ključeve. Čišćenje uklanja logičke redundancije: neiskorištene kolor/alfa staze, IK ključeve rotacije potpuno kontrolirane ograničenjima i ključeve ograničenja putanje. Videozapis pokazuje kako se ove optimizacije temeljene na logici razlikuju od pojednostavljenja krivulje. Gledaj YouTube

Spine2D Eksperimenti 5: Izgradnja nelinearnih cjevovoda (filtri i spajanje Node) — nelinearna Spine 2D optimizacija: podijelite tok podataka s filtrima (animacija, kost, utor, parametar ili koža), pokrenite različite algoritme na paralelnim granama (na primjer, agresivna kompresija za tijelo kosti uz zadržavanje animacije lica bez gubitaka), zatim kombinirajte grane s čvorom Spajanje u jedan kostur.Ovaj tijek rada nadilazi jednostavan ulaz → Optimiziraj → Izlazni cjevovod i omogućuje vam da ciljate samo ono što treba optimizirati. Gledaj YouTube

Spine2D Eksperimenti 6: Ponovno pakiranje teksture i selektivno skaliranje s prilagođenim čvorovima — napredni cjevovodi za optimizaciju teksture: čvorovi Atlas Unpacker/Repacker omogućuju vam raspakiranje, promjenu veličine/sažimanja i ponovno pakiranje atlasa unutar jednog grafikona, brže od standardnih Spine radnih procesa. Korištenjem nelinearnog cjevovoda možete podijeliti sredstva, zadržati teksture znakova na 100%, dok druge smanjite na 25%, a zatim sve spojiti natrag u jedan dijeljeni atlas. Atlas/Čvorovi Asset Preglednik omogućuju vizualni pregled i filtriranje imovine i atlasa u svakoj fazi. To olakšava definiranje ciljeva za promjenu veličine, selektivnu obradu i ponovno kombiniranje rezultata kao predloška koji se može ponovno koristiti. Gledaj YouTube

Spine2D Eksperimenti 7: Trenutačna promjena veličine kostura s skalom Node — od kraja do kraja Spine 2D optimizacijski cjevovod plus skaliranje kostura. Čvor Scale zamjenjuje zamoran Spine tijek rada (izvoz/uvoz, ponovno pakiranje/otpakiranje, popravak staza) s jednim korakom grafikona: postavite ciljnu veličinu, trenutno pregledajte u okviru za prikaz i ponavljajte u stvarnom vremenu. Videozapis povezuje optimizaciju krivulje/ključa, obradu sredstava i promjenu veličine kostura u jedan pojednostavljeni cjevovod. Gledaj YouTube

Spine2D Eksperimenti 8: Javna beta verzija Node Pregled — pregled svakog čvora dostupnog u javnoj beta verziji i kako ponovno dotjerati potrebe animatora i programera mostova. Pokriva redundantno čišćenje ključa, Bézier-ovo-linearno pojednostavljenje, zaokruživanje veličine, nevidljivo uklanjanje privitaka, neiskorišteno čišćenje svojstava, otkrivanje neengleskih znakova i atlas raspakiranje/filter/razmjer/ponovno pakiranje. Dvostruki preglednik potvrđuje rezultate usporednom vizualnom i FPS usporedbom. Javna beta dostupna je uživo na re-polish.com. Gledaj YouTube

Spine2D Eksperimenti 9: Ograničenja fizike pečenja za ključne okvire — U ovom videu demonstriram svoje najnovije eksperimente s ograničenjima fizike pečenja u standardnim ključnim okvirima. Novi algoritam pečenja osigurava: savršene petlje (bez podrhtavanja ili skokova između početnih i krajnjih okvira), optimiziranu veličinu datoteke (automatsko čišćenje krivulje održava JSON veličinu blizu izvorne) i povratnu kompatibilnost (zapečeni ključevi vam omogućuju upotrebu Spine 4.2 fizičke animacije u Spine 4.1 ili čak 4.0). Gledaj na YouTubeu

Nodes

Input

Uvozi datoteke Spine projekta, ulaze samo s JSON-om, demo resurse i ZIP pakete u graf.

Svrha: Ovo je glavna ulazna tocka za vecinu radnih tijekova. Cita JSON, atlas i teksture te ih normalizira u interne podatke koje nizvodni cvorovi mogu obraditi.

Podrzani nacini rada:
1. Cijeli projekt: JSON + atlas + teksture
2. Samo JSON: obrada podataka skeleton/animation bez atlasa
3. ZIP paket: zapakirani zip koji sadrzi cijeli projekt
4. Demo resursi: ugradeni primjerni podaci za brzo testiranje

Glavni izlazi:
- **payload_out**: normalizirani podaci za cvorove optimizacije
- **original_json_out**: izvorni JSON za usporedbu ili rekonstrukciju
- **atlas_project_out**: parsirani atlas projekt kada su teksture dostupne

Picture Input

Dodaje samostalne PNG/JPEG slike u prikaz kako biste mogli izraditi cisce preglede i prezentacijske kadrove.

Svrha: Ovaj cvor koristite za postavljanje slika izravno u prikaz kao prezentacijske slojeve ili vizualne pomocnike. Koristan je kada zelite ukrasiti scenu, dodati pomocnu grafiku i uciniti preglede projekta dotjeranijima prije snimanja videa ili demonstracija.

Tijek rada: Ucitajte jednu sliku, zatim upotrijebite alate prikaza za skaliranje, pomicanje i prilagodbu njezina z-indeksa kako bi pravilno sjela u kompoziciju. To je prakticno za izradu privlacnih promotivnih kadrova bez diranja glavnih podataka Spine projekta.

Ovaj cvor je samostalan i ne izlaže uticnice grafa.

Project Input

Učitava mapu ili arhivu Spine projekta u graf i izlaže ProjectPayload kroz socket project_out za nizvodne čvorove koji rade s projektima.

Svrha: Ulazna točka za radne tokove temeljene na projektima. Skenira mapu ili arhivu Spine projekta, gradi ProjectPayload i drži predmemorirane metapodatke spremnima za nizvodne čvorove kao što su Project Viewer, filteri, Static Bake i Deduplicator.

Kontrole:
- **Load Folder**: Otvara sistemski birač mapa preko File System Access API, skenira odabrani direktorij, ažurira sažetak, sprema metapodatke u predmemoriju i pokreće praćenje datoteka kako bi se kasnije promjene mogle ponovno skenirati.
- **Browse (Fallback)**: Koristi skriveni **webkitdirectory** input za preglednike bez **showDirectoryPicker()**. Učitava projekt, ali bez trajnog handlea direktorija, pa praćenje uživo i pouzdani ponovni scanovi nisu dostupni.
- **Load Archive**: Učitava **.zip** ili **.spine** arhivu kao virtualno stablo projekta. Projekti učitani iz arhive ne zadržavaju handle direktorija, pa je **Rescan** namjerno nedostupan.
- **Rescan**: Ponovno skenira prethodno učitanu mapu kada je dostupan handle direktorija. Prije skeniranja ponovno provjerava dozvolu čitanja. Projekti učitani kroz fallback browse ili archive način obično prijavljuju da nijedan direktorij nije učitan.
- **Clear Project**: Zaustavlja praćenje datoteka i briše trenutačni payload, sažetak, execution cache i predmemorirane metapodatke payloada.
- **Reset to Defaults**: Resetira samo generičke kontrole čvora. Ne uklanja trenutačni projekt i nije zamjena za **Clear Project**.
- **Drop folder or .zip here**: Ulazna točka za povuci-i-ispusti koja prihvaća mape i arhive te ih vodi kroz isti pipeline učitavanja.

Izlazi:
- **project_out**: ProjectPayload sa skeniranim stablom, ravnim popisom datoteka, ukupnim veličinama i raščlambom tipova za nizvodne čvorove koji podržavaju projekte.
- **stats**: Dijagnostički izlaz samo za DEV.

Output

Prikuplja zavrsne rezultate i omogucuje preuzimanje optimiziranih podataka kao zasebnih datoteka, grupiranih skupova datoteka ili arhiva.

Svrha: Djeluje kao izvozno sredisce za optimizirani JSON, atlas podatke, teksture i spriteove. Moze sastaviti rezultate iz jednog skupa JSON/atlas/teksture, iz vise skupova datoteka ili samo iz spriteova kada zelite izlaz slika bez ponovne izgradnje cijelog Spine projekta.

Mogucnosti izvoza:
- Preuzimanje datoteka pojedinacno ili kao jedne arhive
- Preuzimanje zapakiranih rezultata ili arhive s raspakiranim datotekama
- Izvoz JSON-a u kompaktnom obliku ili u citljivom pretty-print obliku
- Izvoz potpunih podataka Spine projekta ili samo rezultata spriteova/slika

Lancani tijek rada: OutputNode ne mora biti apsolutni kraj grafa. Njegove izlaze mozete proslijediti u drugu fazu cjevovoda i iste datoteke provuci kroz dodatne prolaze optimizacije. U praksi je optimizacija key i curve testirana do 3 uzastopne iteracije.

Glavni izlazi:
- **reconstructed_json_out**: ponovno izgradeni Spine JSON
- **original_json_passthrough_out**: prosljedivanje izvornog JSON-a
- **payload_out**: payload za daljnje ulancavanje
- **changes**: prikupljene promjene optimizacije
- **atlas_assets**: atlas resursi spremni za izvoz

RDP

Pojednostavljuje krivulje animacije pomoću algoritma Ramer-Douglas-Peucker (RDP).

Svrha: Smanjuje broj ključnih kadrova u linearnim ili gotovo linearnim segmentima animacije uklanjanjem točaka koje leže na ravnoj liniji između dvije druge.

Zlatno pravilo: Onemogućeno prema zadanim postavkama. Štiti krivulje značajnog oblika (površina/zakrivljenost) od spljoštenosti u linearnost. Onemogućite ga samo za agresivniju kompresiju nakon vizualnog pregleda.

Ključevi utičnica: payload_in, payload_out, promjene

Spline

Uklapa glatke spline krivulje na ključne kadrove animacije, smanjujući nepotrebne međutočke.

Namjena: glatko uklapanje krivulje uz zadržavanje vizualne kvalitete.

Ključevi utičnica: payload_in, payload_out, promjene

Refit

Približava guste nizove ključnih kadrova s ​​manje Bezierovih krivulja radi smanjenja veličine.

Namjena: odgovara manjem broju krivulja unutar tolerancije.

Ključevi utičnica: payload_in, payload_out, promjene

Quantizer

Smanjuje preciznost numeričkih vrijednosti u ključnim okvirima i krivuljama.

Svrha: Jednostavan, ali učinkovit način smanjenja veličine datoteke zaokruživanjem brojeva na određeni broj decimalnih mjesta.

Upotreba: Može se primijeniti na gotovo sve animacijske podatke. Postaje učinkovitiji s većim brojem ključnih sličica.

Oprez: Preagresivna kvantizacija (niska preciznost) može uzrokovati podrhtavanje ili vizualne artefakte u animacijama.

Ključevi utičnica: payload_in, payload_out, promjene

Cleanup

Izvodi različite zadatke čišćenja kako bi uklonio suvišne ili nepotrebne podatke o animaciji.

Svrha: Specijalizirani alat za uklanjanje određenih vrsta suvišnih podataka koje bi drugi optimizatori mogli propustiti.

Upotreba: Povežite svoj korisni teret s 'payload_in' i uzmite rezultat iz 'payload_out'. Ako želite izvješće po promjenama, također koristite 'promjene'.

Ključevi utičnica:
- Ulazi: payload_in
- Izlazi: payload_out, promjene

Trenutačno podržana čišćenja:
1. **Ukloni neiskorištene trake u boji/alfa**: Uklanja vremenske trake u boji/alfa za utore koji nikada nisu vidljivi tijekom animacije.
2. **Ukloni suvišne IK rotacije**: Uklanja rotacijske ključne kadrove s kostiju koje su u potpunosti kontrolirane IK ograničenjem sa 100% mješavinom.
3. **Ukloni ključeve ograničenja putanje**: Uklanja ključne okvire za rotiranje/prevođenje iz kostiju potpuno kontroliranih ograničenjem putanje (vrijednosti miješanja na 100%).
4. **Sanitize Non-English Characters**: Zamjenjuje ne-engleske znakove u imenima/identifikatorima kako bi se izbjegli problemi u alatima nizvodno.

Scale

Skalira sve numeričke vrijednosti u ključnim okvirima animacije prema određenom faktoru.

Svrha: Jednoliko skalira podatke o animaciji, korisno za proporcionalnu promjenu veličine kostura ili podešavanje intenziteta animacije.

Upotreba: Povežite **payload_in** i preuzmite rezultat iz **payload_out**.

Ključevi utičnica: payload_in, payload_out

Schneider

Uklapa glatke Bezierove krivulje u ključne kadrove animacije pomoću algoritma za prilagođavanje Schneiderove krivulje.

Svrha: napredno prilagođavanje krivulje koje proizvodi Bezierove krivulje prirodnog izgleda iz gustih nizova ključnih kadrova.

Dostupnost: **Plus-only čvor**.

Kako radi: Schneiderov algoritam analizira položaje ključnih kadrova i tangente kako bi generirao optimalne Bezierove kontrolne točke koje se blisko podudaraju s izvornim kretanjem.

Parametri:
- **Tolerancija pogreške**: Maksimalno dopušteno odstupanje od izvornih ključnih sličica. Niže = točnije, više = glađe krivulje.
- **Kutni kut**: Kut praga (stupnjevi) pri kojem se krivulja dijeli na segmente.

Najbolje za:
- Ručno crtane ili uvezene animacije s mnogo ključnih kadrova
- Pretvaranje linearne interpolacije u glatke Bezierove krivulje
- Smanjenje broja ključnih sličica uz zadržavanje kvalitete krivulje

Napomena: računalno intenzivniji od jednostavnijih algoritama kao što je RDP, ali daje vrhunsku kvalitetu krivulje.

Ključevi utičnica: payload_in, payload_out, promjene

Physics Constraint Bake

Ugrađuje pokret Spine PhysicsConstraint u ključne kadrove rotacije/prevođenja kosti i uklanja vremenske trake fizike.

Svrha: Pretvara fizičku simulaciju tijekom izvođenja u eksplicitne ključne kadrove tako da su animacije determinističke i uređivačke bez fizičkih ograničenja. Nakon pečenja, fizička ograničenja i vremenske trake fizike uklanjaju se iz korisnog opterećenja.

Dostupnost: **Plus-only čvor**.

Ulazi/Izlazi:
- **payload_in** → **payload_out** (pečeno)
- **promjene** (neobavezna lista izmjena)

Kontrole:
- **Uzorak FPS**: Simulacija brzine uzorkovanja za pečenje.
- **Bake Rotation**: Napišite pečene ključeve rotacije.
- **Bake Translation**: Napišite pečene prijevodne ključeve.
- **Bake Translation (Children)**: Primijenite translate bake na dječje kosti koje se oslanjaju na fizičko kretanje.

Bilješke:
- Zahtijeva izvorni Spine JSON za rekonstrukciju podataka simulacije.
- Koristite kada želite ukloniti fizička ograničenja, ali zadržati kretanje.

Attachment Visibility

Optimizira prikazivanje postavljanjem privitka utora na nulu kada je alfa nula.

Svrha: Sprječava da motor igre obrađuje ili prikazuje nevidljive privitke.

Upotreba: Obrađuje **payload_in**, daje optimizirane **payload_out** i po izboru izvješćuje o **promjenama**.

Ključevi utičnica: payload_in, payload_out, promjene

Payload Merger

Spaja više obrađenih korisnih opterećenja animacije natrag u jedinstveni korisni teret.

Svrha: Neophodan za paralelne cjevovode obrade gdje se različite animacije ili grupe kostiju zasebno optimiziraju i trebaju se ponovno kombinirati.

Unosi:
- **baza**: Glavni korisni teret (kosturna struktura)
- **nadjačava**: jedan ili više tereta čije staze zamjenjuju osnovne staze

Izlaz:
- **merged_out**: Spojeni korisni teret

Ključevi utičnica: baza, nadjačava, merged_out

Animation Viewer

Vizualni alat za pregled i usporedbu krivulja animacije prije i poslije optimizacije.

Svrha: pruža grafički prikaz ključnih okvira i krivulja za odabranu stazu.

Upotreba: Povežite **before_in** i **after_in** za preklapanje originala u odnosu na optimizirano. Opcionalno povežite **promjene** da biste istaknuli zahvaćene pjesme.

Ključevi utičnica: before_in, after_in, promjene

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.

Animation Filter

Filtrira zapise animacije na temelju naziva animacije (npr. 'trčanje', 'mirovanje').

Svrha: Korisno za primjenu različitih optimizacijskih strategija na različite animacije.

Upotreba: Filtrira **payload_in** u **payload_out** i izlaže **animation_list** za odabir korisničkog sučelja.

Ključevi utičnica: payload_in, payload_out, animation_list

Asset Filter

Filtrira sredstva atlas po nazivu, radi u dva načina: prije raspakira (filtrira atlas tekst) ili nakon raspakira (filtrira spriteove).

Svrha: Kontrolira koja su sredstva uključena u tijek rada - bilo koja sredstva raspakirati iz atlas ili koje otpakirane spriteove uključiti u ponovno pakiranje.

Ulazi/Izlazi:
- Atlas način: **atlas_in** → **atlas_out**
- Način rada sprites: **sprites_in** → **sprites_out**

Ključevi utičnica: atlas_in, atlas_out, sprites_in, sprites_out

Bone Filter

Filtrira tragove animacije kosti na temelju naziva kosti.

Svrha: Omogućuje ciljanje ili isključivanje određenih kostiju iz procesa optimizacije.

Upotreba: Filtrira **payload_in** u **payload_out**.

Ključevi utičnica: payload_in, payload_out

Skin Filter

Filtrira animacije i podatke o imovini na temelju naziva skinova.

Svrha: obraditi samo određene skinove iz Spine projekta s više skinova.

Upotreba: Filtrira **payload_in** u **payload_out**.

Ključevi utičnica: payload_in, payload_out

Slot Filter

Filtrira zapise animacije utora na temelju naziva utora.

Svrha: Korisno za ciljanje ili izuzimanje određenih termina koji mogu imati posebne zahtjeve za vrijeme ili vidljivost.

Upotreba: Filtrira **payload_in** u **payload_out**.

Ključevi utičnica: payload_in, payload_out

Parameter Filter

Filtrira tragove animacije na temelju njihove vrste svojstva (npr. rotacija, skala, boja).

Svrha: Omogućuje primjenu naknadnih optimizacija samo na određene vrste animacijskih podataka.

Upotreba: Filtrira **payload_in** u **payload_out**.

Ključevi utičnica: payload_in, payload_out

Atlas Unpacker

Izdvaja pojedinačne spriteove iz Spine teksture atlas.

Svrha: rastavlja atlas datoteku na njezine sastavne spriteove, dopuštajući pojedinačnu analizu ili ponovno pakiranje.

Upotreba: Povežite **atlas_project** iz InputNode na **atlas_project** (ili naslijeđeni **atlas_project_in**) na ovom čvoru. Opcionalno povežite **skeleton_json_in** (iz InputNode **original_json**) da biste omogućili obrezivanje s obzirom na mrežu (podrezuje spriteove na granice trupa mreže umjesto na pravokutne granice, što može značajno smanjiti memoriju teksture za privitke mreže).

Izlazi:
- **sprites_out**: Standardizirani niz sprites (za preglednik/prepakir)
- **sprites_data_out**: Izdvojene slike/metapodaci spritea (strukturirani skup)
- **atlas_out**: Atlas prolaz projekta

Ključevi utičnice: atlas_project, atlas_project_in, skeleton_json_in, sprites_out, sprites_data_out, atlas_out

Atlas Repacker

Prepakira pojedinačne spriteove u jedan ili više novih, optimiziranih atlasa tekstura.

Svrha: Optimizira memoriju teksture i potencijalno smanjuje pozive crtanja stvaranjem učinkovitih listova spriteova.

Upotreba: prihvaća spriteove bilo putem **sprites_data_in** (strukturirani skup spritesova) ili putem **sprites_out** (standardizirani niz spritesova). Ako je potrebno za alfa rukovanje/pakiranje poligona, navedite izvorni kostur putem **original_json**. Ispisuje upakirani atlas kao **atlas_out**.

Ključevi utičnice: sprites_data_in, sprites_out, original_json, atlas_out

Atlas Viewer

Lagani atlas alat za vizualizaciju i analizu za pregled strukture atlas prije raspakiranja.

Svrha: Omogućuje brzi način pregleda atlas stranica i regija bez izvođenja teške operacije raspakiranja. Pomaže u provjeri valjanosti strukture atlas i identificiranju neiskorištenih regija.

Upotreba: povežite jedan projekt atlas s **atlas_project** (ili naslijeđenim **atlas_in** / **atlas**) ili pregledajte skupinu atlas projekata putem **atlas_projects**. Opcionalno povežite kostur JSON na **json** za analizu korištenja.

Ključevi utičnica: atlas_project, atlas_projects, atlas_in, atlas, json

Atlas Merger

Kombinira više atlas izvora u jedan jedinstveni atlas.

Svrha: Spajanje više atlas projekata u jedan.

unos:
- **atlas_inputs**: višeulazni niz atlas projekata

Izlazi:
- **atlas_out**: Spojeni projekt atlas
- **merged_out**: naslijeđeni spojeni izlaz
- **merged_atlas_out**: naslijeđeni spojeni izlaz

Ključevi utičnica: atlas_inputs, atlas_out, merged_out, merged_atlas_out

Tipični cjevovod:
```
InputA → Unpacker → Repacker ─┐
                               ├→ Atlas Merger → Unpacker → Repacker → Output
InputB → Unpacker → Repacker ─┘
```
Prije Repackera podaci su pojedinačni spriteovi; nakon Repackera postaje atlas projekt. Atlas Spajanje kombinira atlas projekte, a zatim završna propusnica za Unpacker → Repacker ponovno pakira sve čvrsto u jedan jedinstveni atlas.

Asset Viewer

Prikazuje pojedinačne spriteove iz otpakiranog atlas.

Svrha: Vizualni alat za otklanjanje pogrešaka za atlas manipulaciju.

Upotreba: prihvaća spriteove putem **sprites_out** (standardno) ili naslijeđenih **sprites_in** / **sprites_data**.

Ključevi utičnica: sprites_out, sprites_in, sprites_data