Input
Importuje pliki projektu Spine, wejscia tylko w formacie JSON, zasoby demonstracyjne i pakiety ZIP do grafu.
Przeznaczenie: To glowny punkt wejscia dla wiekszosci przeplywow pracy. Odczytuje JSON, atlas i tekstury oraz normalizuje je do danych wewnetrznych, ktore moga przetwarzac kolejne wezly.
Obslugiwane tryby:
1. Pelny projekt: JSON + atlas + tekstury
2. Tylko JSON: przetwarzanie danych szkieletu/animacji bez atlasu
3. Pakiet ZIP: spakowany plik zip zawierajacy kompletny projekt
4. Zasoby demonstracyjne: wbudowane dane przykladowe do szybkich testow
Glowne wyjscia:
- **payload_out**: znormalizowane dane dla wezlow optymalizacji
- **original_json_out**: zrodlowy JSON do porownan lub rekonstrukcji
- **atlas_project_out**: sparsowany projekt atlasu, gdy dostarczono tekstury
Video To Png Sequence
Konwertuj klip wideo na sekwencję klatek PNG do workflow Spine.
To bezpłatne narzędzie wejściowe w menu Input, przygotowane do zastosowań produkcyjnych. Obsługuje chroma key dla green screena oraz czyszczenie matte w stylu unpremultiply dla czarnych teł. Wyniki trafiają do payload_out i atlas_out.
Picture Input
Dodaje niezalezne obrazy PNG/JPEG do obszaru widoku, aby mozna bylo tworzyc czystsze podglady i ujecia prezentacyjne.
Przeznaczenie: Uzyj tego wezla, aby umieszczac obrazy bezposrednio w obszarze widoku jako warstwy prezentacyjne lub pomoce wizualne. Przydaje sie, gdy chcesz ozdobic scene, dodac wspierajaca grafike i sprawic, by podglady projektu wygladaly bardziej dopracowanie przed nagraniem wideo lub demonstracji.
Przeplyw pracy: Wczytaj jeden obraz, a nastepnie uzyj narzedzi obszaru widoku, aby go skalowac, przesuwac i dostosowac jego indeks z, tak aby poprawnie ulozyc go w kompozycji. To wygodny sposob na budowanie atrakcyjnych ujec pokazowych bez ingerowania w glowne dane projektu Spine.
Ten wezel jest samodzielny i nie udostepnia gniazd grafu.
Version: Format wersji Spine JSON dla generowanego szkieletu stub.
Blending: Tryb mieszania dla wygenerowanego załącznika (normalny, addytywny, mnożenie, ekran).
Psd To Skeletons
Wczytuje warstwowe pliki PSD/PSB i generuje powiązane szkielety Spine, zachowując układ sceny z Photoshopa do precyzyjnych podglądów.
Cel: Użyj tego węzła, gdy scena została już rozplanowana w Photoshopie i chcesz zamienić stos warstw na zestaw powiązanych szkieletów Spine w viewerze. Każda widoczna warstwa PSD staje się własnym szkieletem w stylu obrazu ustawionym według współrzędnych PSD, co znacznie ułatwia budowanie preview i dokładne rozmieszczanie obiektów.
Workflow viewera: Po wygenerowaniu nadal możesz zmieniać draw order w viewerze i umieszczać inne szkielety pomiędzy zaimportowanymi warstwami PSD, dzięki czemu dodatkowe postacie lub propsy Spine można osadzić bezpośrednio w kompozycji Photoshopa.
Dostępność: Darmowy węzeł. Ten węzeł jest samodzielny i nie udostępnia socketów grafu.
Version: Format wersji Spine JSON używany dla wygenerowanych szkieletów warstw.
Blending: Tryb mieszania używany dla wygenerowanych attachmentów.
Load PSD: Otwiera wybór PSD/PSB i generuje powiązane szkielety warstw z wybranego pliku.
File Info: Podsumowanie tylko do odczytu aktualnie załadowanego pliku PSD/PSB.
Layer Count: Liczba tylko do odczytu widocznych warstw, które zostaną zamienione na powiązane szkielety.
Preflight: Raport tylko do odczytu o problemach z nazwami warstw wykrytych przed generowaniem.
Project Input
Wczytuje folder lub archiwum projektu Spine do grafu i udostępnia ProjectPayload przez socket project_out dla dalszych węzłów obsługujących projekty.
Cel: Punkt wejścia dla przepływów pracy opartych na projektach. Skanuje folder lub archiwum projektu Spine, buduje ProjectPayload i utrzymuje metadane w pamięci podręcznej, gotowe dla dalszych węzłów, takich jak Project Viewer, filtry, Static Bake i Deduplicator.
Kontrolki:
- **Load Folder**: Otwiera systemowy wybierak folderów przez File System Access API, skanuje wybrany katalog, aktualizuje podsumowanie, zapisuje metadane w pamięci podręcznej i uruchamia obserwację plików, aby późniejsze zmiany można było przeskanować ponownie.
- **Browse (Fallback)**: Używa ukrytego inputu **webkitdirectory** w przeglądarkach bez **showDirectoryPicker()**. Ładuje projekt, ale bez trwałego handle katalogu, więc monitoring na żywo i wiarygodne rescany nie są dostępne.
- **Load Archive**: Wczytuje archiwum **.zip** lub **.spine** jako wirtualne drzewo projektu. Projekty ładowane z archiwum nie zachowują handle katalogu, więc **Rescan** jest celowo niedostępny.
- **Rescan**: Ponownie skanuje wcześniej wczytany folder, gdy dostępny jest handle katalogu. Przed skanowaniem ponownie sprawdza uprawnienie do odczytu. Projekty wczytane przez fallback browse lub tryb archiwum zwykle zgłaszają, że żaden katalog nie jest załadowany.
- **Clear Project**: Zatrzymuje obserwację plików i czyści bieżący payload, podsumowanie, execution cache oraz metadane payloadu zapisane w pamięci podręcznej.
- **Reset to Defaults**: Resetuje tylko ogólne kontrolki węzła. **Nie** usuwa bieżącego projektu i nie zastępuje **Clear Project**.
- **Drop folder or .zip here**: Punkt wejścia przeciągnij-i-upuść dla folderów i archiwów, kierujący je do tego samego pipeline ładowania.
Wyjścia:
- **project_out**: ProjectPayload z przeskanowanym drzewem, płaską listą plików, sumami rozmiarów i rozbiciem typów dla dalszych węzłów obsługujących projekty.
- **stats**: Wyjście diagnostyczne dostępne tylko w DEV.
Output
Zbiera koncowe wyniki i pozwala pobierac zoptymalizowane dane jako osobne pliki, pogrupowane zestawy plikow lub archiwa.
Przeznaczenie: Dziala jako centrum eksportu dla zoptymalizowanego JSON-a, danych atlasu, tekstur i sprite'ow. Moze skladac wyniki z pojedynczego zestawu JSON/atlas/tekstury, z wielu zestawow plikow albo wylacznie ze sprite'ow, gdy potrzebujesz wyjscia obrazow bez przebudowy pelnego projektu Spine.
Opcje eksportu:
- Pobieranie plikow pojedynczo albo jako jedno archiwum
- Pobieranie spakowanych wynikow albo archiwum z rozpakowanymi plikami
- Eksport JSON-a w formie zwartej albo czytelnej, sformatowanej wersji
- Eksport pelnych danych projektu Spine albo tylko wynikow sprite/obrazow
Lancuchowy przeplyw pracy: OutputNode nie musi byc bezwzglednym koncem grafu. Mozesz przekazac jego wyjscia do kolejnego etapu pipeline'u i uruchomic te same pliki przez dodatkowe przebiegi optymalizacji. W praktyce optymalizacja kluczy i krzywych byla testowana do 3 kolejnych iteracji.
Glowne wyjscia:
- **reconstructed_json_out**: odbudowany JSON Spine
- **original_json_passthrough_out**: przekazanie oryginalnego JSON-a
- **payload_out**: payload do dalszego lancuchowania
- **changes**: zebrane zmiany optymalizacji
- **atlas_assets**: zasoby atlasu gotowe do eksportu
RDP
Upraszcza krzywe animacji (RDP).
Cel: Zmniejsza liczbę klatek kluczowych w odcinkach liniowych lub prawie liniowych, usuwając punkty leżące na prostej między dwoma innymi.
Złota zasada: Domyślnie wyłączona. Chroni krzywe o wyraźnym kształcie (pole/krzywizna) przed spłaszczeniem do linii prostej. Wyłączaj tylko dla bardziej agresywnej kompresji po kontroli wizualnej.
Klucze gniazd: payload_in, payload_out, changes
Epsilon: Maksymalne odchylenie od oryginalnej krzywej. Wyższe wartości usuwają więcej klatek kluczowych, ale mogą utracić szczegóły krzywej.
Steep: Próg czułości krzywizny. Chroni złożone krzywe przed spłaszczeniem do liniowych.
Round Mode: Tryb zaokrąglania zoptymalizowanych wartości: brak (zachowaj oryginał), dziesiąte (1 miejsce dziesiętne), liczby całkowite.
Golden Rule: Po włączeniu chroni krzywe o znaczącym kształcie/powierzchni przed uproszczeniem przez RDP.
S Run Length: Minimalna liczba kolejnych standardowych krzywych S Spine wymagana do uruchomienia spłaszczania opartego na wzorcu. Ustaw 0, aby wyłączyć tę funkcję.
S Deviation: Dopuszczalne znormalizowane odchylenie od standardowego wzorca krzywej S Spine w promilach (0-300). Niższe wartości wymagają bliższego dopasowania; wyższe spłaszczają więcej sekwencji zbliżonych do wzorca.
Spline
Optymalizacja krzywych metodą splajnów.
Cel: Wygładza dopasowanie krzywych przy zachowaniu jakości wizualnej.
Klucze gniazd: payload_in, payload_out, changes
Max Error: Maksymalny dopuszczalny błąd aproksymacji dla dopasowania splajnu. Mniejszy = dokładniejsze dopasowanie do oryginału.
Min Group Size: Minimalna liczba kolejnych liniowych klatek kluczowych wymagana do utworzenia usuwalnej grupy.
Refit
Refit krzywych (Bezier) w celu redukcji liczby klatek kluczowych.
Cel: Dopasowuje mniejszą liczbę krzywych, pozostając w granicach tolerancji.
Klucze gniazd: payload_in, payload_out, changes
Error Tolerance: Maksymalne dopuszczalne odchylenie między krzywą oryginalną a dopasowaną Béziera. Mniejsze = dokładniejsze dopasowanie.
Max Iterations: Liczba iteracji optymalizacji dopasowania krzywej. Więcej iteracji = lepsze dopasowanie, ale wolniejsze.
Quantizer
Redukuje precyzję wartości numerycznych w klatkach kluczowych i krzywych.
Cel: Prosta, ale skuteczna metoda redukcji rozmiaru pliku poprzez zaokrąglanie liczb do określonej liczby miejsc dziesiętnych.
Użycie: Może być zastosowany do prawie wszystkich danych animacji. Staje się bardziej efektywny przy większej liczbie klatek kluczowych.
Ostrożnie: Zbyt agresywna kwantyzacja (niska precyzja) może powodować drżenie lub artefakty wizualne w animacjach.
Precision: Liczba miejsc dziesiętnych dla wartości klatek kluczowych. Mniej = mniejszy plik, ale niższa dokładność.
Cleanup
Wykonuje różne zadania czyszczące w celu usunięcia redundantnych lub niepotrzebnych danych animacji.
Cel: Specjalistyczne narzędzie do usuwania konkretnych typów redundantnych danych, których inne optymalizatory mogą nie wykryć.
Użycie: Podłącz payload do 'payload_in' i odbierz wynik z 'payload_out'. Jeśli chcesz raport „zmiana po zmianie”, użyj również 'changes'.
Klucze gniazd:
- Wejścia: payload_in
- Wyjścia: payload_out, changes
Aktualnie wspierane czyszczenia:
1. **Usuwanie nieużywanych ścieżek Color/Alpha**: Usuwa timeline’y color/alpha dla slotów, które nigdy nie są widoczne podczas animacji.
2. **Usuwanie redundantnych rotacji IK**: Usuwa klatki kluczowe rotacji z kości, które są w pełni kontrolowane przez constraint IK z mix = 100%.
3. **Usuwanie kluczy Path Constraint**: Usuwa klatki kluczowe rotate/translate z kości w pełni kontrolowanych przez path constraint (wartości mix = 100%).
4. **Sanityzacja znaków nieangielskich**: Podmienia nieangielskie znaki w nazwach/identyfikatorach, aby uniknąć problemów w narzędziach downstream.
Remove Unused Color Tracks: Usuń komponenty koloru/alfa, które nigdy nie zmieniają się od wartości domyślnej.
Remove Redundant IKRotation: Usuń klatki kluczowe rotacji kości w pełni sterowane przez ograniczenia IK.
Remove Redundant Path Constraint Keys: Usuń klatki kluczowe ograniczeń ścieżki duplikujące wartości konfiguracji.
Sanitize Non English Characters: Zamień znaki inne niż ASCII w nazwach kości/slotów na bezpieczne odpowiedniki.
Scale
Skaluje wszystkie wartości numeryczne w klatkach kluczowych animacji o określony współczynnik.
Cel: Równomiernie skaluje dane animacji, przydatne do proporcjonalnej zmiany rozmiaru szkieletu lub dostosowania intensywności animacji.
Użycie: Podłącz do payload i ustaw współczynnik skalowania. Wartości powyżej 1.0 powiększają, poniżej 1.0 zmniejszają.
Parametry:
- **Scale Factor**: Mnożnik stosowany do wszystkich wartości pozycji i rozmiaru.
- **Include Rotations**: Czy skalować również wartości rotacji (zwykle wyłączone).
Przypadki użycia:
- Zmiana rozmiaru zaimportowanych animacji do dopasowania do nowych wymiarów szkieletu
- Tworzenie przerysowanych lub subtelnych wariantów animacji
- Wsadowe skalowanie wielu animacji dla różnych rozmiarów postaci
Scale Bones: Skaluj pozycje i rozmiary kości.
Scale Attachments: Skaluj pozycje i rozmiary załączników.
Scale Animations: Skaluj klatki kluczowe animacji.
Scale Constraints: Skaluj parametry ograniczeń.
Scale Path: Skaluj dane ścieżki.
Schneider
Dopasowuje gładkie krzywe Béziera do klatek kluczowych animacji przy użyciu algorytmu dopasowania krzywej Schneidera.
Cel: Zaawansowane dopasowanie krzywej, które produkuje naturalnie wyglądające krzywe Béziera z gęstych sekwencji klatek kluczowych.
Dostępność: **Tylko w Plus**.
Jak to działa: Algorytm Schneidera analizuje pozycje i tangenty klatek kluczowych, aby wygenerować optymalne punkty kontrolne Béziera, które ściśle odpowiadają oryginalnemu ruchowi.
Parametry:
- **Error Tolerance**: Maksymalne dopuszczalne odchylenie od oryginalnych klatek kluczowych. Niższe = dokładniejsze, wyższe = gładsze krzywe.
- **Corner Angle**: Kąt progowy (stopnie) przy którym dzielić krzywą na segmenty.
Najlepsze dla:
- Ręcznie rysowanych lub zaimportowanych animacji z wieloma klatkami kluczowymi
- Konwersji interpolacji liniowej na gładkie krzywe Béziera
- Redukcji liczby klatek kluczowych przy zachowaniu jakości krzywej
Uwaga: Bardziej wymagający obliczeniowo niż prostsze algorytmy jak RDP, ale produkuje lepszą jakość krzywej.
Min Segment Size: Minimalna liczba klatek kluczowych w segmencie do przetwarzania.
Physics Constraint Bake
Bake Physics Constraints to Keys: zamienia ruch PhysicsConstraint na klatki kluczowe obrotu/przesunięcia i usuwa timeliny fizyki.
Cel: Konwertuje symulację fizyki w czasie działania na jawne klatki kluczowe, dzięki czemu animacje są deterministyczne i edytowalne bez PhysicsConstraints. Po bake usuwa PhysicsConstraints i timeliny fizyki z payload.
Dostępność: **Tylko w Plus**.
Wejścia/Wyjścia:
- **payload_in** → **payload_out** (baked)
- **changes** (opcjonalna lista zmian)
Kontrolki:
- **Sample FPS**: Częstotliwość próbkowania symulacji.
- **Bake Rotation**: Zapisuje klatki kluczowe obrotu.
- **Bake Translation**: Zapisuje klatki kluczowe przesunięcia.
- **Bake Translation (Children)**: Stosuje bake przesunięcia do kości potomnych zależnych od ruchu fizyki.
Uwagi:
- Wymaga oryginalnego Spine JSON do rekonstrukcji danych symulacji.
- Użyj, gdy chcesz usunąć PhysicsConstraints, ale zachować ruch.
Attachment Visibility
Optymalizuje renderowanie ustawiając attachment slotu na null, gdy jego alpha wynosi zero.
Cel: Zapobiega konieczności przetwarzania lub renderowania niewidocznych attachmentów przez silnik gry.
Użycie: Analizuje ścieżki alpha/kolor i automatycznie dodaje lub modyfikuje klatki kluczowe na odpowiedniej ścieżce 'attachment'.
Parametry:
- **Alpha Threshold**: Wartość alpha, poniżej której attachment jest uważany za niewidoczny.
- **Auto Restore**: Jeśli włączone, węzeł automatycznie przywróci ostatni widoczny attachment, gdy wartość alpha przekroczy próg.
Payload Merger
Łączy wiele przetworzonych payloadów animacji z powrotem w pojedynczy zunifikowany payload.
Cel: Niezbędny dla pipeline'ów przetwarzania równoległego, gdzie różne animacje lub grupy kości są optymalizowane oddzielnie i muszą być ponownie połączone.
Strategia łączenia:
1. **Wejście bazowe**: Dostarcza strukturę szkieletu (kości, sloty, skiny itp.)
2. **Wejścia nadpisujące**: Dostarczają przetworzone ścieżki, które zastępują ścieżki bazowe
3. **Ostatni zapis wygrywa**: Gdy wiele nadpisań dostarcza tę samą ścieżkę, ostatnie ma priorytet
Wykrywanie konfliktów:
- Konflikty między wejściami nadpisującymi są wykrywane i raportowane
- Zamiana Bazowa → Nadpisująca to normalne zachowanie (nie konflikt)
- Toast ostrzegawczy pokazywany przy konfliktach ścieżek
Przykład pipeline'a:
```
Input → AnimFilter('run') → Cleanup ───────┐
→ AnimFilter('idle') → Quantizer ────┤
→ (base) ────────────────────────────→ Merger → Output
```
Przypadki użycia:
- Różne optymalizatory dla różnych animacji
- Oddzielne przetwarzanie kości/slotów z ponownym połączeniem
- Testy A/B różnych strategii optymalizacji
Warn conflicts: Pokaż ostrzeżenia przy konfliktach scalania payload.Animation Viewer
Wizualne narzędzie do inspekcji i porównywania krzywych animacji przed i po optymalizacji.
Cel: Zapewnia graficzną reprezentację klatek kluczowych i krzywych dla wybranej ścieżki.
Użycie: Podłączając oba wejścia 'payload_before' i 'payload_after', nałoży oryginalne i zoptymalizowane krzywe, ułatwiając wizualizację wpływu optymalizacji.
Show changed: Pokaż tylko zmienione animacje.
Animation: Wybór animacji do podglądu.
Target: Docelowa kość/slot do podglądu.
Property: Właściwość do wyświetlenia (rotacja, translacja itp.).
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: Tryb repakowania po deduplikacji.
Glow threshold: Próg wykrywania sprite'ów z efektem świecenia.
Solid threshold: Próg wykrywania sprite'ów jednolitych.
Min sprite area: Minimalna powierzchnia sprite'a do analizy (piksele²).
Alpha hash threshold: Próg hasha alfa do porównania.
Verification threshold: Próg weryfikacji duplikatów.
Color rmse threshold: Próg RMSE koloru do wykrywania duplikatów.
Constrain canonical atlas size: Ogranicz kanoniczną wielkość atlasu.
Max canonical atlas width: Maksymalna kanoniczna szerokość atlasu.
Max canonical atlas height: Maksymalna kanoniczna wysokość atlasu.
Animation Filter
Filtruje ścieżki animacji na podstawie nazwy animacji (np. 'run', 'idle').
Cel: Przydatny do stosowania różnych strategii optymalizacji do różnych animacji.
Użycie: Na przykład, możesz zastosować agresywne optymalizacje stratne (jak DCT) do animacji postaci w tle, jednocześnie używając optymalizacji bezstratnych (jak Spline) dla akcji głównej postaci.
Asset Filter
Filtruje zasoby atlasu według nazwy, działa w dwóch trybach: przed rozpakowaniem (filtrowanie tekstu atlasu) lub po rozpakowaniu (filtrowanie sprite'ów).
Cel: Kontroluje które zasoby są zawarte w przepływie pracy - które zasoby rozpakować z atlasu lub które rozpakowane sprite'y zawrzeć w przepakowaniu.
Tryby:
1. TRYB PRZED ROZPAKOWANIEM (przed AtlasUnpacker):
- Wejście: atlas_in (atlas_project)
- Wyjście: atlas_out (przefiltrowany atlas_project)
- Przepływ: InputNode → AssetFilter → AtlasUnpacker
- Zastosowanie: Filtrowanie które zasoby rozpakować z atlasu (oszczędza czas przetwarzania)
2. TRYB PO ROZPAKOWANIU (po AtlasUnpacker):
- Wejście: sprites_in (sprites)
- Wyjście: sprites_out (przefiltrowane sprites)
- Przepływ: AtlasUnpacker → AssetFilter → AtlasRepacker
- Zastosowanie: Filtrowanie które rozpakowane sprite'y zawrzeć w końcowym atlasie
Zachowanie UI:
- W trybie PRZED ROZPAKOWANIEM: Analizuje tekst atlasu aby odkryć nazwy zasobów
- W trybie PO ROZPAKOWANIU: Odkrywa nazwy zasobów z tablicy sprite'ów
- Przełącznik 'Zezwól na wszystko': Kiedy zaznaczony, przepuszcza wszystkie zasoby (lista pokazana ale wyłączona)
- Pola wyboru: Wybierz konkretne zasoby do uwzględnienia (gdy 'Zezwól na wszystko' odznaczone)
Przykłady:
- Przed rozpakowaniem: Wybierz tylko zasoby 'char_*' aby rozpakować tylko sprite'y postaci
- Po rozpakowaniu: Wyklucz sprite'y 'background_*' z końcowego przepakowanego atlasu
- Utwórz atlas tylko z bronią wybierając wzorzec 'weapon_*'
Bone Filter
Filtruje ścieżki animacji kości na podstawie nazwy kości.
Cel: Pozwala na celowanie lub wykluczanie określonych kości z procesu optymalizacji.
Użycie: Możesz chcieć wykluczyć wrażliwe kości, takie jak te używane do wyrażeń twarzy, z agresywnej optymalizacji, aby zachować każdy szczegół, jednocześnie mocno optymalizując mniej ważne kości.
Skin Filter
Filtruje dane animacji i zasobów na podstawie nazw skinów.
Cel: Przetwarzanie tylko określonych skinów z projektu Spine z wieloma skinami.
Użycie: Gdy projekt Spine ma wiele skinów (np. 'default', 'armor', 'casual'), ten węzeł pozwala filtrować, które skiny uwzględnić w przetwarzaniu.
Parametry:
- **Skins List**: Pola wyboru dla każdego dostępnego skina
- **Allow All**: Przełącznik do uwzględnienia wszystkich skinów (domyślnie)
Przypadki użycia:
- Tworzenie osobnego atlasu na skin
- Stosowanie różnych optymalizacji do różnych skinów
- Wykluczanie rzadko używanych skinów z zoptymalizowanej wersji
Uwaga: Skiny współdzielą strukturę szkieletu, ale mogą mieć różne attachmenty.
Slot Filter
Filtruje ścieżki animacji slotów na podstawie nazwy slotu.
Cel: Przydatny do celowania lub wykluczania określonych slotów, które mogą mieć szczególne wymagania dotyczące czasu lub widoczności.
Użycie: Możesz go użyć do wykluczenia slotów broni lub efektów, które są przełączane przez kod, przed wpływem optymalizacji widoczności attachmentów.
Parameter Filter
Filtruje ścieżki animacji na podstawie ich typu właściwości (np. rotation, scale, color).
Cel: Pozwala na stosowanie kolejnych optymalizacji tylko do określonych typów danych animacji.
Użycie: Umieść ten węzeł przed optymalizatorem, aby ograniczyć jego zakres. Na przykład, możesz zastosować optymalizację RDP tylko do ścieżek 'translation' i 'scale'.
Atlas Unpacker
Wyodrębnia pojedyncze sprite'y z atlasu tekstur Spine.
Cel: Rozkłada plik atlasu na jego składowe sprite'y, umożliwiając indywidualną analizę lub przepakowanie.
Użycie: Połącz wyjście 'atlas_project' z InputNode do wejścia 'atlas_project_in' tego węzła. Wyjście może być następnie wysłane do AssetViewer w celu inspekcji lub do AtlasRepacker w celu optymalizacji.
⭐ Przycinanie siatki: Połącz wyjście 'Original JSON' z InputNode do wejścia 'Skeleton JSON', aby włączyć automatyczne przycinanie sprite'ów do granic ich siatki (zamiast prostokątnych granic). To znacznie zmniejsza zużycie pamięci tekstur dla sprite'ów z załącznikami siatki, usuwając przezroczyste piksele poza kadłubem siatki.
Wyjścia:
- **sprites_out**: Ustandaryzowana tablica sprite'ów (dla viewer/repacker)
- **sprites_data_out**: Wyodrębnione obrazy/metadata sprite'ów (uporządkowany pakiet)
- **atlas_out**: Przekazanie Atlas Project (przelot)
Klucze socketów: atlas_project, atlas_project_in, skeleton_json_in, sprites_out, sprites_data_out, atlas_out
Atlas Repacker
Przepakowuje pojedyncze sprite'y w jeden lub więcej nowych, zoptymalizowanych atlasów tekstur.
Cel: Optymalizuje pamięć tekstur i potencjalnie redukuje wywołania rysowania poprzez tworzenie wydajnych arkuszy sprite'ów.
Użycie: Akceptuje 'sprites_data' (zazwyczaj z AtlasUnpacker) i generuje nowy układ atlasu.
Parametry:
- **Max Texture Size**: Maksymalna szerokość/wysokość stron atlasu wyjściowego.
- **Padding**: Odległość w pikselach między każdym sprite'em.
- **Scale**: Skaluje wszystkie sprite'y przed pakowaniem.
- **Power of Two**: Wymusza, aby wymiary atlasu wyjściowego były potęgami dwójki (np. 1024, 2048), wymagane przez niektóre platformy.
- **Allow Rotation**: Pozwala obracać sprite'y o 90 stopni dla lepszej wydajności pakowania.
Atlas Viewer
Wizualizuje układ atlasu tekstur i pozycjonowanie sprite'ów.
Cel: Narzędzie do debugowania i inspekcji do zrozumienia struktury atlasu.
Klucze socketów: atlas_project, atlas_in, atlas, json
Page Info: Wymiary i informacje o stronie atlasu.
Stats: Statystyki wykorzystania przestrzeni i liczba sprite'ów.
Atlas Merger
Łączy wiele źródeł atlasów w jeden zunifikowany atlas.
Cel: Scalanie wielu projektów atlasów w jeden.
Wejście:
- **atlas_inputs**: Tablica multi-wejściowa projektów atlasów
Wyjścia:
- **atlas_out**: Scalony projekt atlasu
- **merged_out**: Przestarzałe scalone wyjście
- **merged_atlas_out**: Przestarzałe scalone wyjście
Przypadki użycia:
- Łączenie atlasu postaci z atlasem broni
- Scalanie podstawowych sprite'ów z zawartością DLC
- Ponowne łączenie po równoległym przetwarzaniu atlasu
Typowy pipeline:
```
InputA → Unpacker → Repacker ─┐
├→ Atlas Merger → Unpacker → Repacker → Output
InputB → Unpacker → Repacker ─┘
```
Przed Repackerem dane to pojedyncze sprite'y; po Repackerze stają się projektem atlasu. Atlas Merger łączy projekty atlasów, a końcowy przebieg Unpacker → Repacker pakuje wszystko ciasno w jeden zunifikowany atlas.Asset Viewer
Wyświetla pojedyncze sprite'y z rozpakowanego atlasu.
Cel: Wizualne narzędzie debugowania do manipulacji atlasem.
Użycie: Akceptuje 'sprites_data' z węzła Atlas Unpacker i pozwala wizualizować każdy wyodrębniony obraz, badać jego właściwości (wymiary, rotację itp.) i weryfikować dokładność wizualną po rozpakowaniu.
Asset select: Wybór zasobu do podglądu.
Pixel stats: Pokaż statystyki pikseli dla zasobu.