Input
Importiert Spine-Projektdateien, reine JSON-Eingaben, Demo-Assets und ZIP-Pakete in den Graphen.
Zweck: Dies ist der Haupteinstiegspunkt für die meisten Workflows. Der Knoten liest JSON, Atlas und Texturen ein und normalisiert sie zu internen Daten, die nachgelagerte Knoten verarbeiten können.
Unterstützte Modi:
1. Vollständiges Projekt: JSON + Atlas + Texturen
2. Nur JSON: Skelett-/Animationsdaten ohne Atlas verarbeiten
3. ZIP-Paket: ein gepacktes Zip mit einem vollständigen Projekt
4. Demo-Assets: integrierte Beispieldaten für schnelle Tests
Hauptausgaben:
- **payload_out**: normalisierte Daten für Optimierungsknoten
- **original_json_out**: Quell-JSON zum Vergleichen oder Rekonstruieren
- **atlas_project_out**: geparstes Atlas-Projekt, wenn Texturen bereitgestellt werden
Video To Png Sequence
Wandle einen Videoclip in eine PNG-Bildsequenz für Spine-Workflows um.
Dies ist ein kostenloses Eingabewerkzeug im Input-Menü für produktive Workflows. Es unterstützt Chroma Key für Greenscreen-Aufnahmen und eine matteartige Bereinigung im Stil von Unpremultiply für schwarze Hintergründe. Die Ausgaben gehen über payload_out und atlas_out.
Picture Input
Fügt eigenständige PNG/JPEG-Bilder dem Viewport hinzu, damit Sie sauberere Vorschauen und Präsentationsaufnahmen erstellen können.
Zweck: Verwenden Sie diesen Knoten, um Bilder direkt im Viewport als Präsentationsebenen oder visuelle Hilfselemente zu platzieren. Er ist nützlich, wenn Sie eine Szene dekorieren, unterstützende Grafiken hinzufügen und Projektvorschauen vor Video- oder Demoaufnahmen hochwertiger wirken lassen möchten.
Ablauf: Laden Sie ein Bild und verwenden Sie dann die Viewport-Werkzeuge, um es zu skalieren, zu verschieben und seinen Z-Index anzupassen, damit es korrekt in Ihrer Komposition sitzt. So lassen sich ansprechende Showcase-Aufnahmen erstellen, ohne die eigentlichen Spine-Projektdaten zu verändern.
Dieser Knoten ist eigenständig und stellt keine Graph-Sockets bereit.
Version: Spine-JSON-Versionsformat für das generierte Stub-Skelett.
Blending: Mischmodus für den generierten Anhang (normal, additiv, multiplizieren, überlagern).
Psd To Skeletons
Lädt geschichtete PSD/PSB-Dateien und erzeugt verknüpfte Spine-Skelette, die das Photoshop-Szenenlayout für präzise Vorschauen erhalten.
Zweck: Verwenden Sie diesen Node, wenn eine Szene bereits in Photoshop aufgebaut wurde und Sie diesen Ebenenstapel als Satz verknüpfter Spine-Skelette im Viewer übernehmen möchten. Jede sichtbare PSD-Ebene wird zu einem eigenen bildartigen Skelett anhand der PSD-Koordinaten, wodurch der Vorschauaufbau und die exakte Platzierung von Objekten deutlich einfacher werden.
Viewer-Workflow: Nach der Generierung können Sie im Viewer weiterhin die Draw Order ändern und andere Skelette zwischen importierten PSD-Ebenen platzieren, sodass zusätzliche Spine-Charaktere oder Props direkt in der Photoshop-Komposition sitzen.
Verfügbarkeit: Kostenloser Node. Dieser Node ist eigenständig und stellt keine Graph-Sockets bereit.
Version: Spine-JSON-Versionsformat für die generierten Ebenen-Skelette.
Blending: Mischmodus für die generierten Attachments.
Load PSD: Öffnet den PSD/PSB-Dateidialog und erzeugt verknüpfte Ebenen-Skelette aus der gewählten Datei.
File Info: Schreibgeschützte Zusammenfassung der aktuell geladenen PSD/PSB-Datei.
Layer Count: Schreibgeschützte Anzahl sichtbarer Ebenen, die in verknüpfte Skelette umgewandelt werden.
Preflight: Schreibgeschützter Bericht über erkannte Ebenennamen-Probleme vor der Generierung.
Project Input
Lädt einen Spine-Projektordner oder ein Archiv in den Graphen und stellt über den Socket project_out ein ProjectPayload für nachgelagerte projektfähige Knoten bereit.
Zweck: Einstiegspunkt für projektbasierte Workflows. Scannt einen Spine-Projektordner oder ein Archiv, erstellt ein ProjectPayload und hält gecachte Metadaten für nachgelagerte Knoten wie Project Viewer, Filter, Static Bake und Deduplicator bereit.
Steuerelemente:
- **Load Folder**: Öffnet den System-Ordnerdialog über die File System Access API, scannt das ausgewählte Verzeichnis, aktualisiert die Zusammenfassung, speichert Metadaten im Cache und startet eine Dateibeobachtung, damit spätere Änderungen erneut gescannt werden können.
- **Browse (Fallback)**: Verwendet ein verborgenes **webkitdirectory**-Input für Browser ohne **showDirectoryPicker()**. Das Projekt wird geladen, aber ohne persistentes Verzeichnis-Handle, daher stehen Live-Beobachtung und verlässliche Rescans nicht zur Verfügung.
- **Load Archive**: Lädt ein **.zip**- oder **.spine**-Archiv als virtuellen Projektbaum. Archivbasierte Projekte behalten kein Verzeichnis-Handle, daher ist **Rescan** absichtlich nicht verfügbar.
- **Rescan**: Scannt den zuvor geladenen Ordner erneut, wenn ein Verzeichnis-Handle vorhanden ist. Vor dem Scan wird die Leseberechtigung erneut geprüft. Projekte aus Fallback-Browse oder Archivmodus melden normalerweise, dass kein Verzeichnis geladen ist.
- **Clear Project**: Beendet die Dateibeobachtung und leert die aktuelle Payload, die Zusammenfassung, den Ausführungs-Cache und die gecachten Payload-Metadaten.
- **Reset to Defaults**: Setzt nur allgemeine Node-Steuerelemente zurück. Das aktuelle Projekt wird **nicht** entladen und dies ist kein Ersatz für **Clear Project**.
- **Drop folder or .zip here**: Drag-and-drop-Einstiegspunkt, der Ordner und Archive akzeptiert und durch dieselbe Ladepipeline führt.
Ausgaben:
- **project_out**: ProjectPayload mit gescanntem Baum, flacher Dateiliste, Größen-Summen und Typaufschlüsselung für nachgelagerte projektfähige Knoten.
- **stats**: Nur für DEV verfügbare Diagnoseausgabe.
Output
Sammelt das Endergebnis und erlaubt den Download optimierter Daten als Einzeldateien, Dateisets oder Archive.
Zweck: Dient als Export-Zentrale für optimiertes JSON, Atlas-Daten, Texturen und Sprites. Der Node kann sowohl ein einzelnes JSON/Atlas/Texturen-Set als auch mehrere Dateisets verarbeiten. Wenn nur Sprites anliegen, kann er auch ausschließlich Bildresultate ausgeben, ohne ein vollständiges Spine-Projekt neu aufzubauen.
Exportoptionen:
- Dateien einzeln oder als ein einziges Archiv herunterladen
- Gepackte Ergebnisse oder ein Archiv mit entpackten Dateien herunterladen
- JSON kompakt oder in lesbarer Form exportieren
- Vollständige Spine-Projektdaten oder nur Sprite-/Bildresultate exportieren
Verkettung: OutputNode muss nicht das absolute Ende des Graphen sein. Sie können die Ausgänge in eine weitere Pipeline-Stufe einspeisen und dieselben Dateien erneut optimieren. In der Praxis wurde die Optimierung von Keys und Kurven mit bis zu 3 aufeinanderfolgenden Iterationen getestet.
Wichtige Ausgänge:
- **reconstructed_json_out**: Neu aufgebautes Spine-JSON
- **original_json_passthrough_out**: Original-JSON-Passthrough
- **payload_out**: Payload-Passthrough für weitere Verkettung
- **changes**: Gesammelte Optimierungsänderungen
- **atlas_assets**: Exportbereite Atlas-Assets
RDP
Vereinfacht Animationskurven (RDP).
Zweck: Reduziert die Anzahl der Schlüsselbilder in linearen oder nahezu linearen Animationssegmenten, indem Punkte entfernt werden, die auf einer Geraden zwischen zwei anderen liegen.
Goldene Regel: Standardmäßig deaktiviert. Sie schützt Kurven mit ausgeprägter Form (Fläche/Krümmung) davor, zu linearisiert zu werden. Nur für aggressivere Komprimierung nach visueller Prüfung deaktivieren.
Socket-Keys: payload_in, payload_out, changes
Epsilon: Maximale Abweichung von der Originalkurve. Höhere Werte entfernen mehr Keyframes, können aber Kurvendetails verlieren.
Steep: Schwellenwert für Krümmungsempfindlichkeit. Schützt komplexe Kurven vor dem Abflachen zu linear.
Round Mode: Rundungsmodus für optimierte Werte: keine (Original beibehalten), Zehntel (1 Dezimalstelle), Ganzzahlen.
Golden Rule: Wenn aktiviert, schützt Kurven mit signifikanter Form/Fläche vor der Vereinfachung durch RDP.
S Run Length: Minimale Anzahl aufeinanderfolgender standardmäßiger Spine-S-Kurven, bevor die vorlagenbasierte Linearisierung aktiviert wird. Auf 0 setzen, um die Funktion zu deaktivieren.
S Deviation: Zulässige normalisierte Abweichung von der standardmäßigen Spine-S-Kurvenvorlage in Promille (0-300). Niedrigere Werte verlangen eine genauere Übereinstimmung; höhere Werte glätten mehr vorlagennahe Folgen.
Spline
Spline-Optimierung für Animationskurven.
Zweck: Glättende Kurvenanpassung bei gleichbleibender visueller Qualität.
Socket-Keys: payload_in, payload_out, changes
Max Error: Maximal zulässiger Approximationsfehler für Spline-Anpassung. Niedriger = engere Anpassung an das Original.
Min Group Size: Mindestanzahl aufeinanderfolgender linearer Keyframes, die eine entfernbare Gruppe bilden.
Refit
Bezier-Refit: reduziert Schlüsselbilder durch Kurvenapproximation.
Zweck: Passt weniger Kurven an und bleibt dabei innerhalb einer Toleranz.
Socket-Keys: payload_in, payload_out, changes
Error Tolerance: Maximal zulässige Abweichung zwischen Originalkurve und angepasster Bézier-Kurve. Niedriger = genauere Übereinstimmung.
Max Iterations: Anzahl der Optimierungsiterationen für Kurvenanpassung. Mehr Iterationen = bessere Anpassung, aber langsamer.
Quantizer
Reduziert die Genauigkeit numerischer Werte in Schlüsselbilder und Kurven.
Zweck: Einfache, aber effektive Methode zur Reduzierung der Dateigröße durch Runden von Zahlen auf eine bestimmte Anzahl von Dezimalstellen.
Verwendung: Kann auf fast alle Animationsdaten angewendet werden. Wird effektiver bei höherer Schlüsselbild-Anzahl.
Vorsicht: Zu aggressive Quantisierung (geringe Genauigkeit) kann Zittern oder visuelle Artefakte in Animationen verursachen.
Precision: Anzahl der Dezimalstellen für Keyframe-Werte. Weniger = kleinere Datei, aber geringere Genauigkeit.
Cleanup
Führt verschiedene Bereinigungsaufgaben durch, um redundante oder unnötige Animationsdaten zu entfernen.
Zweck: Spezielles Werkzeug zum Entfernen bestimmter Arten redundanter Daten, die andere Optimierer möglicherweise übersehen.
Verwendung: Verbinden Sie Ihr Payload mit 'payload_in' und nehmen Sie das Ergebnis von 'payload_out'. Wenn Sie zusätzlich einen Report pro Änderung möchten, nutzen Sie auch 'changes'.
Socket-Schlüssel:
- Eingänge: payload_in
- Ausgänge: payload_out, changes
Derzeit unterstützte Cleanups:
1. **Remove Unused Color/Alpha Tracks**: Entfernt Color-/Alpha-Timelines für Slots, die während der Animationssequenz nie sichtbar sind.
2. **Remove Redundant IK Rotations**: Entfernt Rotations-Schlüsselbilder von Bones, die vollständig von einer IK-Constraint mit 100% Mix gesteuert werden.
3. **Remove Path Constraint Keys**: Entfernt Rotate-/Translate-Schlüsselbilder von Bones, die vollständig von einer Path-Constraint gesteuert werden (Mix-Werte bei 100%).
4. **Sanitize Non-English Characters**: Ersetzt nicht-englische Zeichen in Namen/Bezeichnern, um Probleme in nachgelagerten Tools zu vermeiden.
Remove Unused Color Tracks: Farb-/Alpha-Komponenten entfernen, die sich nie vom Standardwert ändern.
Remove Redundant IKRotation: Knochenrotations-Keyframes entfernen, die vollständig durch IK-Constraints gesteuert werden.
Remove Redundant Path Constraint Keys: Pfad-Constraint-Keyframes entfernen, die Setup-Werte duplizieren.
Scale
Skaliert alle numerischen Werte in Animations-Schlüsselbilder um einen angegebenen Faktor.
Zweck: Skaliert Animationsdaten gleichmäßig, nützlich für proportionale Skelett-Größenänderung oder Anpassung der Animationsintensität.
Verwendung: Mit Payload verbinden und Skalierungsfaktor einstellen. Werte über 1.0 vergrößern, unter 1.0 verkleinern.
Parameter:
- **Scale Factor**: Multiplikator für alle Positions- und Größenwerte.
- **Include Rotations**: Ob auch Rotationswerte skaliert werden (normalerweise deaktiviert).
Anwendungsfälle:
- Größenanpassung importierter Animationen an neue Skelettdimensionen
- Erstellen übertriebener oder subtiler Animationsvarianten
- Stapel-Skalierung mehrerer Animationen für verschiedene Charaktergrößen
Scale Bones: Knochenpositionen und -größen skalieren.
Scale Attachments: Anhangspositionen und -größen skalieren.
Scale Animations: Animations-Keyframes skalieren.
Scale Constraints: Constraint-Parameter skalieren.
Scale Path: Pfaddaten skalieren.
Schneider
Passt glatte Bézier-Kurven an Animations-Schlüsselbilder mit dem Schneider-Kurvenanpassungsalgorithmus an.
Zweck: Fortgeschrittene Kurvenanpassung, die natürlich aussehende Bézier-Kurven aus dichten Schlüsselbild-Sequenzen erzeugt.
Verfügbarkeit: **Nur Plus-Knoten**.
Funktionsweise: Der Schneider-Algorithmus analysiert Schlüsselbild-Positionen und Tangenten, um optimale Bézier-Kontrollpunkte zu generieren, die der Originalbewegung entsprechen.
Parameter:
- **Error Tolerance**: Maximal zulässige Abweichung von Original-Schlüsselbilder. Niedriger = genauer, höher = glattere Kurven.
- **Corner Angle**: Schwellenwinkel (Grad), bei dem die Kurve in Segmente aufgeteilt wird.
Ideal für:
- Handgezeichnete oder importierte Animationen mit vielen Schlüsselbilder
- Konvertierung linearer Interpolation in glatte Bézier-Kurven
- Reduzierung der Schlüsselbild-Anzahl bei Erhaltung der Kurvenqualität
Hinweis: Rechenintensiver als einfachere Algorithmen wie RDP, erzeugt aber bessere Kurvenqualität.
Min Segment Size: Mindestanzahl von Keyframes in einem Segment zur Verarbeitung.
Physics Constraint Bake
Bake Physics Constraints to Keys: wandelt PhysicsConstraint-Bewegung in Rotations-/Translations-Schlüsselbilder um und entfernt Physik-Timelines.
Zweck: Wandelt Laufzeit-Physiksimulation in explizite Schlüsselbilder um, damit Animationen deterministisch und ohne PhysicsConstraints editierbar sind. Nach dem Bake werden PhysicsConstraints und Physik-Timelines aus dem Payload entfernt.
Verfügbarkeit: **Nur Plus-Knoten**.
Ein-/Ausgänge:
- **payload_in** → **payload_out** (gebacken)
- **changes** (optionale Änderungs-Liste)
Steuerungen:
- **Sample FPS**: Abtastrate der Simulation für das Bake.
- **Bake Rotation**: Schreibt Rotations-Keys.
- **Bake Translation**: Schreibt Translations-Keys.
- **Bake Translation (Children)**: Wendet Translation-Bake auf Kindknochen an, die von Physik abhängen.
Hinweise:
- Benötigt das ursprüngliche Spine-JSON zur Rekonstruktion der Simulation.
- Verwenden, wenn PhysicsConstraints entfernt werden sollen, die Bewegung aber erhalten bleiben soll.
Attachment Visibility
Optimiert das Rendering, indem der Attachment eines Slots auf null gesetzt wird, wenn sein Alpha null ist.
Zweck: Verhindert, dass die Game-Engine unsichtbare Attachments verarbeiten oder rendern muss.
Verwendung: Analysiert Alpha-/Farb-Tracks und fügt automatisch Schlüsselbilder auf dem entsprechenden 'attachment'-Track hinzu oder ändert diese.
Parameter:
- **Alpha Threshold**: Alpha-Wert, unter dem ein Attachment als unsichtbar betrachtet wird.
- **Auto Restore**: Wenn aktiviert, stellt der Node automatisch den letzten sichtbaren Attachment wieder her, wenn der Alpha-Wert den Schwellenwert überschreitet.
Payload Merger
Führt mehrere verarbeitete Animations-Payloads wieder zu einem einzigen vereinheitlichten Payload zusammen.
Zweck: Wesentlich für parallele Verarbeitungspipelines, bei denen verschiedene Animationen oder Knochengruppen separat optimiert werden und wieder zusammengeführt werden müssen.
Zusammenführungsstrategie:
1. **Basis-Eingang**: Liefert die Skelettstruktur (Knochen, Slots, Skins usw.)
2. **Override-Eingänge**: Liefern verarbeitete Tracks, die Basis-Tracks ersetzen
3. **Letzter Schreiber gewinnt**: Wenn mehrere Overrides denselben Track liefern, hat der letzte Priorität
Konflikterkennung:
- Konflikte zwischen Override-Eingängen werden erkannt und gemeldet
- Basis → Override-Ersetzung ist normales Verhalten (kein Konflikt)
- Warnmeldung bei Track-Konflikten
Beispiel-Pipeline:
```
Input → AnimFilter('run') → Cleanup ───────┐
→ AnimFilter('idle') → Quantizer ────┤
→ (base) ────────────────────────────→ Merger → Output
```
Anwendungsfälle:
- Verschiedene Optimierer für verschiedene Animationen
- Separate Knochen-/Slot-Verarbeitung mit Wiederzusammenführung
- A/B-Tests verschiedener Optimierungsstrategien
Warn conflicts: Warnungen bei Payload-Merge-Konflikten anzeigen.Animation Viewer
Visuelles Werkzeug zur Inspektion und zum Vergleich von Animationskurven vor und nach der Optimierung.
Zweck: Bietet eine grafische Darstellung von Schlüsselbilder und Kurven für den ausgewählten Track.
Verwendung: Durch Verbinden beider Eingänge 'payload_before' und 'payload_after' werden die Original- und optimierten Kurven überlagert, was die Visualisierung der Auswirkungen Ihrer Optimierungen erleichtert.
Show changed: Nur geänderte Animationen anzeigen.
Animation: Animationsauswahl zur Ansicht.
Target: Zielknochen/-slot zur Ansicht.
Property: Anzuzeigende Eigenschaft (Rotation, Translation usw.).
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: Neupack-Modus nach Deduplizierung.
Glow threshold: Schwellenwert für die Erkennung von Glow-Effekt-Sprites.
Solid threshold: Schwellenwert für die Erkennung von Vollfarb-Sprites.
Min sprite area: Minimale Sprite-Fläche für die Analyse (Pixel²).
Alpha hash threshold: Alpha-Hash-Schwellenwert für den Vergleich.
Verification threshold: Schwellenwert für die Duplikat-Verifizierung.
Color rmse threshold: Farb-RMSE-Schwellenwert für Duplikaterkennung.
Constrain canonical atlas size: Kanonische Atlas-Größe einschränken.
Max canonical atlas width: Maximale kanonische Atlas-Breite.
Max canonical atlas height: Maximale kanonische Atlas-Höhe.
Animation Filter
Filtert Animations-Tracks basierend auf dem Animationsnamen (z.B. 'run', 'idle').
Zweck: Nützlich für die Anwendung unterschiedlicher Optimierungsstrategien auf verschiedene Animationen.
Verwendung: Zum Beispiel können Sie aggressive verlustbehaftete Optimierungen (wie DCT) auf Hintergrund-Charakter-Animationen anwenden, während Sie verlustfreie Optimierungen (wie Spline) für Hauptcharakter-Aktionen verwenden.
Asset Filter
Filtert Atlas-Assets nach Namen, funktioniert in zwei Modi: vor dem Entpacken (filtert Atlas-Text) oder nach dem Entpacken (filtert Sprites).
Zweck: Steuert, welche Assets in den Arbeitsablauf einbezogen werden - welche Assets aus dem Atlas entpackt oder welche entpackten Sprites in das Repacken einbezogen werden.
Modi:
1. VOR-ENTPACK-MODUS (vor AtlasUnpacker):
- Eingang: atlas_in (atlas_project)
- Ausgang: atlas_out (gefiltertes atlas_project)
- Arbeitsablauf: InputNode → AssetFilter → AtlasUnpacker
- Anwendungsfall: Filtern, welche Assets aus dem Atlas entpackt werden (spart Verarbeitungszeit)
2. NACH-ENTPACK-MODUS (nach AtlasUnpacker):
- Eingang: sprites_in (sprites)
- Ausgang: sprites_out (gefilterte sprites)
- Arbeitsablauf: AtlasUnpacker → AssetFilter → AtlasRepacker
- Anwendungsfall: Filtern, welche entpackten Sprites in den endgültigen Atlas aufgenommen werden
UI-Verhalten:
- Im VOR-ENTPACK-MODUS: Analysiert Atlas-Text, um Asset-Namen zu erkennen
- Im NACH-ENTPACK-MODUS: Erkennt Asset-Namen aus dem Sprite-Array
- 'Alle zulassen'-Schalter: Wenn aktiviert, werden alle Assets durchgelassen (Liste angezeigt, aber deaktiviert)
- Kontrollkästchen: Wählen Sie bestimmte Assets aus (wenn 'Alle zulassen' deaktiviert ist)
Beispiele:
- Vor Entpacken: Nur 'char_*'-Assets auswählen, um nur Charakter-Sprites zu entpacken
- Nach Entpacken: 'background_*'-Sprites vom endgültigen neu verpackten Atlas ausschließen
- Nur-Waffen-Atlas erstellen, indem 'weapon_*'-Muster ausgewählt wird
Bone Filter
Filtert Knochen-Animations-Tracks basierend auf dem Knochennamen.
Zweck: Ermöglicht das Zielen oder Ausschließen spezifischer Knochen vom Optimierungsprozess.
Verwendung: Sie möchten möglicherweise sensible Knochen, wie die für Gesichtsausdrücke verwendeten, von aggressiver Optimierung ausschließen, um jedes Detail zu bewahren, während weniger wichtige Knochen stark optimiert werden.
Skin Filter
Filtert Animations- und Asset-Daten basierend auf Skin-Namen.
Zweck: Verarbeitet nur bestimmte Skins aus einem Multi-Skin Spine-Projekt.
Verwendung: Wenn ein Spine-Projekt mehrere Skins hat (z.B. 'default', 'armor', 'casual'), können Sie mit diesem Node filtern, welche Skins verarbeitet werden sollen.
Parameter:
- **Skins List**: Kontrollkästchen für jeden verfügbaren Skin
- **Allow All**: Schalter, um alle Skins einzubeziehen (Standard)
Anwendungsfälle:
- Separate Atlas pro Skin erstellen
- Verschiedene Optimierungen auf verschiedene Skins anwenden
- Selten verwendete Skins vom optimierten Build ausschließen
Hinweis: Skins teilen die Skelettstruktur, können aber unterschiedliche Attachments haben.
Slot Filter
Filtert Slot-Animations-Tracks basierend auf dem Slot-Namen.
Zweck: Nützlich zum Zielen oder Ausschließen spezifischer Slots, die besondere Timing- oder Sichtbarkeitsanforderungen haben können.
Verwendung: Sie können dies verwenden, um Waffen- oder Effekt-Slots, die per Code gewechselt werden, davon auszuschließen, von Attachment-Sichtbarkeitsoptimierungen betroffen zu werden.
Parameter Filter
Filtert Animations-Tracks basierend auf ihrem Eigenschaftstyp (z.B. Rotation, Scale, Color).
Zweck: Ermöglicht die Anwendung nachfolgender Optimierungen nur auf bestimmte Arten von Animationsdaten.
Verwendung: Platzieren Sie diesen Node vor einem Optimierer, um seinen Umfang zu begrenzen. Zum Beispiel können Sie RDP-Optimierung nur auf 'translation'- und 'scale'-Tracks anwenden.
Atlas Unpacker
Extrahiert einzelne Sprites aus einem Spine-Texturatlas.
Zweck: Zerlegt eine Atlas-Datei in ihre Einzelsprites, um individuelle Analyse oder Neupackung zu ermöglichen.
Verwendung: Verbinden Sie den 'atlas_project'-Ausgang vom InputNode mit dem 'atlas_project_in'-Eingang dieses Knotens. Die Ausgabe kann an AssetViewer zur Inspektion oder an AtlasRepacker zur Optimierung gesendet werden.
⭐ Mesh-Zuschnitt: Verbinden Sie den 'Original JSON'-Ausgang vom InputNode mit dem 'Skeleton JSON'-Eingang, um automatisches Zuschneiden von Sprites auf ihre Mesh-Grenzen (anstelle rechteckiger Grenzen) zu aktivieren. Dies reduziert den Texturspeicherverbrauch für Sprites mit Mesh-Anhängen erheblich, indem transparente Pixel außerhalb der Mesh-Hülle entfernt werden.
Ausgänge:
- **sprites_out**: Standardisiertes Sprite-Array (für Viewer/Repacker)
- **sprites_data_out**: Extrahierte Sprite-Bilder/Metadaten (strukturiertes Bundle)
- **atlas_out**: Atlas-Project-Durchleitung
Socket-Schlüssel: atlas_project, atlas_project_in, skeleton_json_in, sprites_out, sprites_data_out, atlas_out
Atlas Repacker
Packt einzelne Sprites in einen oder mehrere neue, optimierte Textur-Atlanten.
Zweck: Optimiert Texturspeicher und reduziert potenziell Draw Calls durch Erstellen effizienter Spritesheets.
Verwendung: Akzeptiert 'sprites_data' (normalerweise von AtlasUnpacker) und erzeugt ein neues Atlas-Layout.
Parameter:
- **Max Texture Size**: Maximale Breite/Höhe der Ausgabe-Atlas-Seiten.
- **Padding**: Abstand in Pixeln zwischen jedem Sprite.
- **Scale**: Skaliert alle Sprites vor dem Packen.
- **Power of Two**: Erzwingt, dass die Ausgabe-Atlas-Dimensionen Zweierpotenzen sind (z.B. 1024, 2048), von einigen Plattformen erforderlich.
- **Allow Rotation**: Erlaubt Sprites um 90 Grad zu drehen für bessere Packeffizienz.
Atlas Viewer
Leichtgewichtiges Atlas-Visualisierungs- und Analysewerkzeug zur Prüfung der Atlasstruktur vor dem Entpacken.
Zweck: Ermöglicht eine schnelle Vorschau von Atlas-Seiten und Regionen, ohne den aufwändigen Entpackvorgang auszuführen. Hilft, die Atlas-Struktur zu prüfen und ungenutzte Regionen zu erkennen.
Verwendung: Verbinden Sie den 'atlas_project'-Ausgang vom InputNode mit dem 'atlas'-Eingang. Optional den 'original_json_out'-Ausgang mit dem 'json'-Eingang verbinden, um die Regionsnutzung zu analysieren.
Funktionen:
- Visuelle Vorschau der Atlas-Seiten mit Regionsgrenzen
- Regionshervorhebung: Grün = genutzt, Rot = ungenutzt im Skeleton
- Seiten-Navigation
- Statistiken zu Gesamt- und ungenutzten Regionen
Einsatzfälle:
- Schnelle Atlas-Prüfung vor der Optimierung
- Erkennen von Ballast (ungenutzte Regionen)
- Fehlersuche bei Atlas-Packproblemen
- Verständnis der Asset-Struktur
Socket-Schlüssel: atlas_project, atlas_in, atlas, json
Page Info: Atlas-Seitenabmessungen und Informationen.
Stats: Speicherplatznutzungsstatistiken und Sprite-Anzahl.
Atlas Merger
Kombiniert mehrere Atlas-Quellen zu einem einzigen vereinheitlichten Atlas.
Zweck: Mehrere Atlas-Projekte zu einem zusammenführen.
Eingang:
- **atlas_inputs**: Multi-Input-Array von Atlas-Projekten
Ausgänge:
- **atlas_out**: Zusammengeführtes Atlas-Projekt
- **merged_out**: Veralteter zusammengeführter Ausgang
- **merged_atlas_out**: Veralteter zusammengeführter Ausgang
Anwendungsfälle:
- Charakter-Atlas mit Waffen-Atlas kombinieren
- Basis-Sprites mit DLC-Inhalten zusammenführen
- Nach paralleler Atlas-Verarbeitung wieder zusammenführen
Typische Pipeline:
```
InputA → Unpacker → Repacker ─┐
├→ Atlas Merger → Unpacker → Repacker → Output
InputB → Unpacker → Repacker ─┘
```
Vor dem Repacker sind die Daten einzelne Sprites; nach dem Repacker werden sie zu einem Atlas-Projekt. Atlas Merger kombiniert die Atlas-Projekte, und ein abschließender Unpacker → Repacker-Durchlauf packt alles dichter in einen einzigen Atlas.Asset Viewer
Zeigt einzelne Sprites aus einem entpackten Atlas an.
Zweck: Visuelles Debugging-Tool für Atlas-Manipulation.
Verwendung: Akzeptiert 'sprites_data' vom Atlas Unpacker-Node und ermöglicht es Ihnen, jedes extrahierte Bild zu visualisieren, seine Eigenschaften (Dimensionen, Rotation usw.) zu untersuchen und die visuelle Genauigkeit nach dem Entpacken zu überprüfen.
Asset select: Asset-Auswahl zur Ansicht.
Pixel stats: Pixelstatistiken für das Asset anzeigen.