Skip to main content
Go to Editor

विकी

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

YouTubeanimationexportguideplaybackrecorderrecordingtimelinevideoviewerअनुकूलनअवधारणाएंआंकड़ेउदाहरणएफपीएसकंट्रोल्सकनेक्शनगाइडचार्टडेटातालिकापरफ़ॉर्मेंसपरिणामपाइपलाइन्सप्रकारप्रीमियमप्लसमूल्यमेट्रिक्समेमोरीयूआईलॉसलेसलॉसीवर्कफ़्लोवीडियोव्यूअरशुरुआतीसदस्यतासॉकेट

शुरुआत करना: बुनियादी वर्कफ़्लो

शुरुआतीवर्कफ़्लोगाइड

यह मार्गदर्शिका आपको JSON Optimizer के साथ जल्दी शुरुआत करने में मदद करेगी।

  1. प्रोजेक्ट लोड करें: अपने .json, .atlas, और .png फ़ाइलों को लोड करने के लिए InputNode का उपयोग करें।
  2. प्रिसेट चुनें (Plus मोड): Plus मोड में, दाएँ पैनल से किसी बिल्ट-इन प्रिसेट (जैसे "Basic Fallback") को चुनें। इससे आपके लिए अनुकूलन ग्राफ़ अपने-आप बन जाता है। Free मोड में, एक न्यूनतम मैनुअल ग्राफ़ बनाएँ: InputNodeQuantizerNodeOutputNode.
  3. ग्राफ़ चलाएँ: "ग्राफ़ चलाएँ" बटन पर क्लिक करें।
  4. परिणाम तुलना करें: मूल और ऑप्टिमाइज़्ड एनीमेशन की दृश्य तुलना के लिए "दृश्य" टैब पर जाएँ।
  5. बदलाव देखें: "परिणाम" और "आंकड़े" टैब में आपको किन कुंजियों को बदला या हटाया गया, इसका विस्तृत विवरण मिलेगा।

सॉकेट प्रकार और डेटा फ़्लो

सॉकेटप्रकारडेटाकनेक्शन

यह लेख नोड ग्राफ़ में सॉकेट्स द्वारा उपयोग किए जाने वाले डेटा प्रकारों और क्या कहाँ कनेक्ट किया जा सकता है, इसे समझाता है।

त्वरित नियम

अधिकांश प्रोसेसिंग नोड Spine Payload पर काम करते हैं। Atlas-संबंधित नोड Atlas Project या Sprites पर काम करते हैं। यदि आपको यह स्पष्ट नहीं है कि कोई सॉकेट क्या अपेक्षा करता है, तो ValidatorNode का उपयोग करें।

सॉकेट प्रकार

  • Spine Payload — रनटाइम के लिए उपयुक्त Spine प्रोजेक्ट का प्रतिनिधित्व, जो अधिकांश प्रोसेसिंग नोड्स द्वारा उपयोग होता है।
  • Atlas Project — atlas मेटाडेटा + पेज इमेजेज़, जिसे atlas नोड्स उपयोग करते हैं।
  • Sprites — अनपैक किए गए sprite/region (Atlas Unpacker → एसेट दृश्य / Atlas Repacker)।
  • JSON — डायग्नॉस्टिक्स/वैलिडेशन/diff के लिए मूल या पुनर्निर्मित Spine JSON।
  • बदलाव — कुछ ऑप्टिमाइज़र्स द्वारा बनाया गया बदलावों (diffs) का list/stream, जिसे दृश्य/रिपोर्टिंग नोड्स उपयोग करते हैं।

कुंजी → प्रकार → जोड़ें

सॉकेट कुंजी (उदाहरण)डेटा प्रकारकिसके द्वाराकनेक्ट करें
payload, payload_in, payload_outSpine PayloadInputNode, अधिकांश प्रोसेसिंग नोड्सप्रोसेसिंग नोड्स (RDP/Spline/Refit/Quantizer/Cleanup/etc.), फिर OutputNode.payload
original_jsonJSONInputNodeDiagnosticNode, JSONDiffNode.json_before, OutputNode.original_json, कुछ atlas नोड्स (जैसे repacker alpha mode)
reconstructed_json_outJSONOutputNodeJSONDiffNode.json_after, validators/डीबग
changesबदलाव सूचीकुछ प्रोसेसिंग नोड्स + OutputNodeAnimationViewerNode (वैकल्पिक), reports/डीबग
atlas_projectAtlas ProjectInputNode / एटलस दृश्यAtlasUnpackerNode.atlas_project, OutputNode.atlas_project, atlas फ़िल्टर्स
atlas_in, atlas_outAtlas Project (या atlas-related stream)Atlas nodes / फ़िल्टर्सAtlas nodes, AtlasViewerNode, AtlasMergerNode (multi-input के माध्यम से)
sprites_out, sprites_in, sprites_data_inSpritesAtlasUnpackerNode, फ़िल्टर्सAssetViewerNode.sprites_in, AtlasRepackerNode.sprites_data_in
atlas_inputsएकाधिक Atlas Projectsएकाधिक स्रोतAtlasMergerNode.atlas_inputs (कई atlases कनेक्ट करें)

व्यावहारिक पाइपलाइनें

  • बुनियादी JSON अनुकूलन: InputNode → (वैकल्पिक: DiagnosticNode / फ़िल्टर्स) → अनुकूलक (RDPNode, SplineNode, QuantizerNode, …) → OutputNode.
  • Atlas पुनर्पैकिंग: InputNode.atlas_projectAtlasUnpackerNode → (वैकल्पिक: AssetViewerNode) → AtlasRepackerNodeOutputNode.atlas_project/atlas_assets.

सदस्यता योजनाएँ और प्रीमियम फीचर्स

सदस्यताप्रीमियमप्लसमूल्य

re-polish अलग-अलग जरूरतों के लिए दो सब्सक्रिप्शन टियर प्रदान करता है.

Free प्लान

  • ✓ बुनियादी नोड ग्राफ
  • ✓ JSON व्यूअर
  • ✓ कई ट्रैक्स के साथ एनिमेशन प्लेबैक के लिए टाइमलाइन और एनिमेशन के बीच कस्टम मिक्स
  • ✓ सीमित अनुकूलन
  • ✓ Spine ससकरण: 4.2, 4.1, 4.0, 3.8, 3.7

Plus प्लान ($5/माह)

  • ✓ सभी निःशुल्क सुविधाएं
  • ✓ कीफ़्रेम, कर्व और टेक्सचर के लिए ऑप्टिमाइज़ेशन टूलकिट
  • ✓ फ़िज़िक्स को कीफ़्रेम्स में बेक करना
  • ✓ बेक किए गए कीफ़्रेम्स को कर्व्स में साफ़ करना
  • ✓ ग्राफ प्रीसेट
  • ✓ प्राथमिकता सहायता

Plus कैसे पाएं

शीर्ष नेविगेशन में Upgrade बटन पर क्लिक करें, फिर:

  • Get Plus चुनें
  • आपको Patreon पर रीडायरेक्ट किया जाएगा — सब्सक्रिप्शन पूरा करें
  • उसी Patreon खाते से लॉग इन रहकर नोड एडिटर पर लौटें ताकि सेवा लिंक सत्यापित करके Plus सक्षम कर सके
  • (वैकल्पिक) एक एक्टिवेशन कोड दर्ज करें (विशेष ऑफ़र्स के लिए)

मूल अवधारणाएं: हानिपूर्ण बनाम हानिरहित

अवधारणाएंलॉसीलॉसलेसशुरुआती

सभी अनुकूलन विधियाँ दो प्रकारों में बाँटी जाती हैं:

सिफ़ारिश: हमेशा हानिरहित अनुकूलन से शुरू करें। फ़ाइल आकार और कम करना ज़रूरी हो तभी हानिपूर्ण विधियाँ उपयोग करें, और परिणाम को हमेशा दृश्य रूप से जाँचें।

दक्षता कैसे मापें

गाइडमेट्रिक्सआंकड़े

अपने अनुकूलन की प्रभावशीलता को समझने के लिए, निम्नलिखित मेट्रिक्स पर ध्यान दें:

  • फ़ाइल आकार: .json फ़ाइल का अंतिम आकार अनुकूलन का मुख्य लक्ष्य है।
  • कीफ़्रेम की संख्या: "आंकड़े" टैब में, आपको तालिकाएं और ग्राफ़ मिलेंगे जो दिखाते हैं कि प्रत्येक एनीमेशन में कितने कीफ़्रेम हटाए गए थे।
  • दृश्य तुलना: "पहले" और "बाद" एनीमेशन की तुलना के लिए हमेशा "दृश्य" टैब का उपयोग करें। सुनिश्चित करें कि हानिपूर्ण अनुकूलन ने अस्वीकार्य दृश्य विकृतियां नहीं पेश की हैं।
  • "परिणाम" तालिका में रिपोर्ट: यहां आप अपने डेटा में किए गए प्रत्येक विशिष्ट परिवर्तन की विस्तार से जांच कर सकते हैं।

Viewer: कंट्रोल्स पैनल

व्यूअरकंट्रोल्सयूआई

दृश्य टैब कैनवस के ऊपर नियंत्रण पैनल दिखाता है। यह तीन समूहों में बंटा है:

एनीमेशन नियंत्रण

  • एनीमेशन — कौन-सा Spine एनीमेशन चल रहा है, चुनता है।
  • स्किन — कौन-सी स्किन लागू है, चुनता है।
  • गति — प्लेबैक स्पीड मल्टीप्लायर (0.1× → 3.0×)।

दृश्य नियंत्रण

  • दृश्य रीसेट — डिफ़ॉल्ट कैमरा/लेआउट पोज़िशन वापस लाता है।
  • दृश्य विकल्प — तुलना दृश्य की पोज़िशनिंग के लिए संख्यात्मक ऑफ़सेट: Spacing X / Spacing Y (Original/Optimized के बीच दूरी) और Offset X / Offset Y (कुल शिफ्ट)।

डीबग नियंत्रण

  • डीबग मोड — डीबग रेंडरिंग ओवरले सक्षम करता है (runtime support पर निर्भर)।
  • फिज़िक्स सक्षम करें — फिज़िक्स सिमुलेशन टॉगल करता है (यदि skeleton physics का उपयोग करता है)।
  • लेबल — लेबल ओवरले टॉगल करता है।

Viewer: परफ़ॉर्मेंस पैनल

परफ़ॉर्मेंसएफपीएसमेमोरीयूआई

Performance पैनल वर्तमान में चल रहे skeleton(s) के लिए रियल-टाइम runtime मेट्रिक्स दिखाता है।

रियल-टाइम

  • FPS — मॉनिटर द्वारा मापा गया frames per second।
  • Frame Time — प्रति फ्रेम समय (मिलीसेकंड में; कम बेहतर)।
  • FPS chart — पिछले 120 सैंपल्स बार्स के रूप में।

Skeleton मेट्रिक्स

  • Visible Slots — पिछली माप में कितने slots visible थे।
  • Avg. Visible — visible slots का rolling average (एक फ्रेम से अधिक स्थिर)।
  • Vertices — रेंडरिंग में उपयोग होने वाले वर्तमान vertices की संख्या।
  • Bounds (px) — वर्तमान skeleton bounds (चौड़ाई×ऊँचाई) पिक्सेल में।
  • Avg. Bounds — bounds का rolling average।
  • Largest Texture — skeleton के लिए (dimensions के आधार पर) सबसे बड़ा atlas page।
  • Texture Memory — लोड किए गए atlas pages के लिए अनुमानित कुल texture memory। उपलब्ध होने पर, पैनल per-page breakdown (फ़ाइल नाम, dimensions, और अनुमानित size) भी दिखाता है।

सुधार (जब Optimized उपलब्ध हो)

  • Slot Improvement — Original बनाम Optimized के बीच Avg. Visible की तुलना।
  • Memory Change — Original बनाम Optimized के बीच Texture Memory की तुलना।

Viewer: टाइमलाइन

viewertimelineanimationplaybackguide

टाइमलाइन पैनल Viewer के नीचे एक डॉकेबल एनिमेशन सीक्वेंसर है। यह आपको कई ट्रैक्स पर एनिमेशन क्लिप्स व्यवस्थित करने, प्लेबैक नियंत्रित करने और ट्रांजिशन का पूर्वावलोकन करने देता है।

ट्रैक्स और क्लिप्स

  • 4 एनिमेशन ट्रैक तक — प्रत्येक ट्रैक एक Spine trackIndex लेयर से मैप होता है। ऊपरी ट्रैक निचले ट्रैक्स पर ब्लेंड होते हैं।
  • एनिमेशन जोड़ें — किसी भी ट्रैक पर + बटन पर क्लिक करके एनिमेशन पिकर खोलें (खोज फ़िल्टर के साथ)।
  • क्लिप्स ड्रैग और रीसाइज़ करें — क्लिप बॉडी को ट्रैक पर ले जाने के लिए ड्रैग करें; प्रारंभ समय या अवधि बदलने के लिए बाएं/दाएं किनारे ड्रैग करें।
  • क्लिप्स हटाएं — क्लिप चुनें और Delete या Backspace दबाएं।
  • ओवरलैप डिटेक्शन — एक ही ट्रैक पर ओवरलैपिंग क्लिप्स लाल रंग में हाइलाइट होते हैं।

ट्रांसपोर्ट कंट्रोल्स

  • Play / Pause / Stop — मानक प्लेबैक नियंत्रण।
  • Previous / Next — पिछली या अगली क्लिप की शुरुआत पर जाएं।
  • एनिमेशन स्पीड — 0.1× से 3.0× तक स्लाइडर।
  • Auto-stop — टाइमलाइन के अंत में प्लेबैक स्वचालित रूप से रुक जाता है।

ट्रांजिशन मिक्सिंग

  • ग्लोबल मिक्स ड्यूरेशन — लगातार क्लिप्स के बीच डिफ़ॉल्ट क्रॉसफ़ेड समय सेट करता है।
  • प्रति-ट्रांजिशन ओवरराइड — कस्टम मिक्स ड्यूरेशन सेट करने के लिए दो क्लिप्स के बीच ट्रांजिशन बबल पर क्लिक करें। आप अलग-अलग ओवरराइड को ग्लोबल मान पर रीसेट कर सकते हैं।

सीकिंग और स्क्रबिंग

  • प्लेहेड — सीक करने के लिए टाइम रूलर पर हैंडल ड्रैग करें या रूलर पर क्लिक करें।
  • कर्सर टाइम प्रीव्यू — ट्रैक एरिया पर होवर करने पर कर्सर के नीचे का समय प्रदर्शित होता है।
  • Web Worker — सुचारू प्रदर्शन के लिए सीक और इवेंट गणना बैकग्राउंड वर्कर को ऑफ़लोड की जाती है।

फिज़िक्स-अवेयर प्लेबैक

  • Update (सक्रिय constraints) और None (निष्क्रिय) के बीच फिज़िक्स टॉगल करें।
  • सीक के दौरान, फिज़िक्स constraints को ठीक से settle करने के लिए स्केलेटन समय आगे बढ़ाया जाता है।

मल्टी-स्केलेटन सपोर्ट

  • टारगेट पेयर सिलेक्टर — प्रत्येक ट्रैक सभी पेयर्स (🌐 All pairs) या किसी विशिष्ट स्केलेटन को लक्षित कर सकता है।
  • प्रति-स्केलेटन पोज़िशन और स्केल — अलग-अलग स्केलेटन के लिए X/Y ऑफ़सेट और स्केल इनपुट।
  • ड्रॉ ऑर्डर — रेंडर लेयर प्राथमिकता नियंत्रित करने के लिए संख्यात्मक इनपुट।

डीबग ड्रॉ

Bones, Bone Names, Regions, Meshes, Hulls, Bounds, Paths, Clipping, Points के लिए दृश्यता टॉगल करें।

स्किन सिलेक्शन

लोड किए गए स्केलेटन में परिभाषित सभी स्किन के लिए मल्टी-सिलेक्ट चेकबॉक्स।

व्यू सेटिंग्स

  • Spacing X / Y — स्केलेटन पेयर्स के बीच गैप।
  • Offset X / Y — ग्लोबल व्यूपोर्ट शिफ्ट।
  • PMA टॉगल — premultiplied alpha मोड (Spine 3.x) या atlas alpha मोड (Spine 4.x: auto / pma / bleed / none)।
  • स्केलेटन लेबल — लेबल ओवरले टॉगल।

Viewer: रिकॉर्डर

viewerrecorderrecordingexportvideoguide

रिकॉर्डर Viewer से Spine एनिमेशन को वीडियो, एनिमेटेड इमेज या इमेज सीक्वेंस के रूप में कैप्चर करता है।

रिकॉर्डिंग मोड

  • ⚡ Quick RecordMediaRecorder + captureStream() का उपयोग करके रियल-टाइम कैप्चर। केवल WebM आउटपुट। तेज़ लेकिन रियल-टाइम फ्रेम रेट तक सीमित।
  • 🎬 HQ Export — WebCodecs VideoEncoder + readPixels() का उपयोग करके ऑफ़लाइन फ्रेम-बाय-फ्रेम रेंडरिंग। सभी फॉर्मेट सपोर्ट करता है और पिक्सेल-परफेक्ट आउटपुट देता है।

आउटपुट फॉर्मेट

  • वीडियो: WebM, MP4, AVI, MOV
  • एनिमेटेड इमेज: GIF, Animated PNG (APNG)
  • इमेज सीक्वेंस: PNG Sequence, WebP Sequence

कोडेक्स (HQ Export)

VP8, VP9, H.264 (AVC), AV1, ProRes — उपलब्ध कोडेक्स ब्राउज़र सपोर्ट के आधार पर स्वचालित रूप से डिटेक्ट होते हैं।

गुणवत्ता

  • प्रीसेट्स: Low (~1 Mbps), Medium (~3 Mbps), High (~5 Mbps), Lossless (~20 Mbps)।
  • कस्टम बिटरेट — सटीक नियंत्रण के लिए kbps में निर्दिष्ट करें।

टाइमिंग

  • FPS: 24, 30, 60, या कस्टम (1–120 fps)।
  • वार्म-अप — रिकॉर्डिंग शुरू होने से पहले फिज़िक्स/constraint settle होने के लिए सेकंड।
  • Pause-after — सेट अवधि के लिए अंतिम फ्रेम होल्ड करें।
  • अंतिम फ्रेम शामिल करें — टॉगल।

व्यूपोर्ट और क्रॉप

  • क्रॉप सक्षम/अक्षम करें — क्रॉप रीजन टॉगल।
  • क्रॉप रेक्टैंगल — Spine वर्ल्ड कोऑर्डिनेट्स में X, Y, चौड़ाई, ऊंचाई।
  • Snap to pair — कॉन्फ़िगर करने योग्य पैडिंग के साथ क्रॉप को स्केलेटन पेयर में ऑटो-फिट।
  • इंटरैक्टिव क्रॉप ओवरले — व्यूपोर्ट में सीधे कॉर्नर/एज ड्रैग करें।

रिज़ॉल्यूशन

  • स्केल मोड — प्रतिशत स्लाइडर (10%–400%)।
  • फिक्स्ड मोड — स्पष्ट पिक्सेल डाइमेंशन (4096px तक)।
  • गणना किया गया आउटपुट रिज़ॉल्यूशन लाइव प्रदर्शित होता है।

रेंडर विकल्प

  • Render bones — डीबग बोन ओवरले शामिल करें।
  • Render images — अटैचमेंट इमेज शामिल करें।
  • Render others — बाउंडिंग बॉक्सेज़, पथ।
  • MSAA — None / 2× / 4× एंटी-एलियासिंग।
  • Smoothing — 0–8 लेवल एल्गोरिथ्म चॉइस के साथ (Bicubic / Bilinear)।

बैकग्राउंड

  • पारदर्शी — अल्फा की कमी वाले फॉर्मेट (जैसे GIF, JPEG) के लिए स्वचालित रूप से अक्षम।
  • ठोस रंग — कस्टम कलर पिकर।
  • चेकरबोर्ड — विज़ुअल पारदर्शिता इंडिकेटर।
  • अल्फा चैनल सपोर्ट: VP9+WebM, AV1+MP4, PNG Sequence, APNG, WebP Sequence।

HUD ओवरले

  • टॉगल: ट्रैक जानकारी, समय, फ्रेम नंबर, FPS, स्केलेटन लेबल।
  • कस्टम टेक्स्ट — वॉटरमार्क स्ट्रिंग।
  • पोज़िशन — 4 कॉर्नर (ऊपर-बाएं, ऊपर-दाएं, नीचे-बाएं, नीचे-दाएं)।
  • फ़ॉन्ट साइज़ — 8–64px, साथ ही टेक्स्ट कलर पिकर।

रिपीट और मल्टी-स्केलेटन

  • रिपीट काउंट — 1–100 लूप इटरेशन।
  • टारगेट पेयर — विशिष्ट स्केलेटन या सभी रिकॉर्ड करें।
  • स्केलेटन मोड — Combined (एकल फ़ाइल) / Separate files (प्रति स्केलेटन एक फ़ाइल)।

फ़ाइलनेम टेम्पलेट

वेरिएबल्स के साथ टेम्पलेट स्ट्रिंग: {project}, {animation}, {W}, {H}, {fps}। रिज़ॉल्व किए गए फ़ाइलनेम का लाइव प्रीव्यू प्रदर्शित होता है।

टाइमलाइन इंटीग्रेशन

रिकॉर्डिंग रेंज टाइमलाइन पर लाल/नारंगी डैश्ड क्लिप के रूप में दिखाई देती है। रेंज को रीसाइज़ करने के लिए किनारे ड्रैग करें, पुनर्स्थित करने के लिए बॉडी ड्रैग करें, या पूर्ण रिकॉर्डिंग सेटिंग्स खोलने के लिए सेटिंग्स बटन (⚙️) का उपयोग करें।

परिणाम टैब

परिणामतालिकाअनुकूलन

परिणाम टैब विस्तृत अनुकूलन आउटपुट दिखाता है।

  • परिणाम तालिका — JSON अनुकूलन परिणामों का row-per-change व्यू (जैसे कौन-सा एनीमेशन/बोन/प्रॉपर्टी/कीफ़्रेम बदला या हटाया गया)।
  • Sprite/Atlas तुलना — जब टेक्सचर अनुकूलन उपयोग होता है, यह सेक्शन sprite आकार और पैकिंग परिणामों की तुलना करता है।

टिप: परिणाम व्यू का उपयोग यह जानने के लिए करें: असल में क्या बदला?

आंकड़े टैब

आंकड़ेचार्टमेट्रिक्स

आंकड़े टैब अनुकूलन परिणामों को चार्ट्स और समेकित मेट्रिक्स के रूप में संक्षेप में दिखाता है।

  • अनुकूलन चार्ट — dataset पर अनुकूलन प्रभाव को विज़ुअलाइज़ करता है (जब JSON अनुकूलनों ने बदलाव किए हों)।
  • मेट्रिक्स तालिका — मुख्य आंकड़े, जैसे original/new sizes और reduction percent.
  • Texture Packing आंकड़े — यदि atlas repacking उपयोग हुआ हो, तो pages, total/used area, efficiency, और per-page breakdown दिखाता है।

इस टैब का उपयोग यह जानने के लिए करें: कुल मिलाकर हमने कितना सुधार किया?

पाइपलाइन उदाहरण (वीडियो)

वीडियोउदाहरणपाइपलाइन्सYouTube

नीचे आधिकारिक YouTube प्लेलिस्ट से पूर्ण, वास्तविक पाइपलाइनें दी गई हैं।

पूरी प्लेलिस्ट खोलें

उदाहरण

Spine2D प्रयोग 1: RDP एल्गोरिथ्म के साथ कर्व अनुकूलन — आधारभूत Spine 2D अनुकूलन डेमो: Ramer–Douglas–Peucker (RDP) एल्गोरिथ्म अतिरिक्त कर्व/की डेटा हटाकर JSON छोटा करता है। RDP महत्वपूर्ण कुंजियाँ हटा सकता है, इसलिए हमेशा एनीमेशन की समीक्षा करें और RDP नोड से पहले फ़िल्टर नोड्स से संवेदनशील हड्डियों/स्लॉट्स को बाहर करें। YouTube पर देखें

Spine2D प्रयोग 2: क्वांटाइज़ेशन एल्गोरिथ्म के साथ कर्व अनुकूलन — क्वांटाइज़ेशन सबसे सुरक्षित कर्व अनुकूलक है: मानों को राउंड करना (अक्सर 1 दशमलव तक) तुरंत आकार घटाता है। उदाहरण: [0.115,14.5,0.222,-27.78] → [0.1,14.5,0.2,-27.8]. अनुकूलन को लॉक करने के लिए Quantizer नोड को आउटपुट नोड से पहले आख़िरी चरण रखें; वीडियो में लगभग बिना दिखने वाले दृश्य बदलाव के साथ पहले/बाद दिखाया गया है। YouTube पर देखें

Spine2D प्रयोग 3: Spline और Refit एल्गोरिथ्म से कर्व पुनर्निर्माण — Spline सीधे खंडों के लिए हानिरहित है (बीच की रिडंडेंट कुंजियाँ हटाता है), जबकि Refit हानिपूर्ण लेकिन बहुत शक्तिशाली है: यह जटिल हिस्सों को एकल Bézier कर्व में पुनर्निर्मित करता है। ये एल्गोरिथ्म फिज़िक्स बेकिंग और Schneider नोड से सफ़ाई के बाद उपयुक्त हैं। नोट: Refit के iterations 100 से ऊपर होने पर सर्वोत्तम कर्व खोजने में मिनट लग सकते हैं। वीडियो में दोनों विधियाँ और अनुकूलन % दिखाया गया है। YouTube पर देखें

Spine2D प्रयोग 4: अटैचमेंट दृश्यता और सफ़ाई नोड्स से रिडंडेंट डेटा हटाना — अटैचमेंट दृश्यता और सफ़ाई नोड्स से संरचनात्मक अनुकूलन। अटैचमेंट दृश्यता अल्फ़ा 0 होने पर अटैचमेंट निष्क्रिय करता है और fade‑in पर वापस restore करता है, ड्रॉ कॉल्स कम करता है और रिडंडेंट कुंजियाँ हटाता है। सफ़ाई तार्किक रिडंडेंसी हटाती है: unused color/alpha tracks, constraints द्वारा पूरी तरह नियंत्रित IK rotation keys, और path constraint keys। वीडियो दिखाता है कि ये तर्क‑आधारित अनुकूलन कर्व सरलीकरण से कैसे अलग हैं। YouTube पर देखें

Spine2D प्रयोग 5: नॉन‑लिनियर पाइपलाइनें बनाना (फ़िल्टर और मर्ज नोड) — नॉन‑लिनियर अनुकूलन: फ़िल्टर (एनीमेशन, बोन, स्लॉट, पैरामीटर, या स्किन) से डेटा प्रवाह को विभाजित करें, समानांतर शाखाओं पर अलग एल्गोरिथ्म चलाएँ (जैसे शरीर की हड्डियों के लिए आक्रामक संपीड़न जबकि चेहरे की एनीमेशन हानिरहित रहे), फिर मर्ज नोड से शाखाओं को एक कंकाल में जोड़ें। यह कार्यप्रवाह साधारण इनपुट → अनुकूलन → आउटपुट से आगे है और केवल ज़रूरी हिस्सों को अनुकूलित करने देता है। YouTube पर देखें

Spine2D प्रयोग 6: कस्टम नोड्स के साथ टेक्सचर रीपैकिंग और चयनात्मक स्केलिंग — उन्नत टेक्सचर अनुकूलन पाइपलाइनें: Atlas Unpacker/Repacker नोड्स एक ही ग्राफ़ में atlases को अनपैक, आकार बदलना/संपीड़ित करना और रीपैक करने देते हैं, जो मानक Spine कार्यप्रवाह से तेज़ है। नॉन‑लिनियर पाइपलाइन में आप एसेट्स को विभाजित कर सकते हैं, चरित्र टेक्सचर 100% पर रखें और दूसरों को 25% तक स्केल करें, फिर सब कुछ एक साझा एटलस में मर्ज करें। Atlas/Asset Viewer नोड्स हर चरण पर दृश्य निरीक्षण और फ़िल्टरिंग देते हैं। इससे आकार लक्ष्य तय करना, चयनात्मक प्रोसेसिंग करना और पुन: उपयोग योग्य टेम्पलेट के रूप में पुनः संयोजन आसान होता है। YouTube पर देखें

Spine2D प्रयोग 7: Scale नोड से तुरंत कंकाल रीसाइज़ — सिरे‑से‑सिरे Spine 2D अनुकूलन पाइपलाइन के साथ कंकाल स्केलिंग। Scale नोड थकाऊ Spine कार्यप्रवाह (export/import, repack/unpack, path fixes) की जगह एकल ग्राफ़ चरण देता है: लक्ष्य आकार सेट करें, दृश्य‑पट में तुरंत पूर्वावलोकन करें, और वास्तविक समय में दोहराएँ। वीडियो कर्व/की अनुकूलन, एसेट प्रोसेसिंग और कंकाल रीसाइज़िंग को एक सुगठित पाइपलाइन में जोड़ता है। YouTube पर देखें

Spine2D प्रयोग 8: पब्लिक बीटा नोड अवलोकन — पब्लिक बीटा में उपलब्ध सभी नोड्स का समग्र परिचय और re‑polish कैसे एनीमेटर व डेवलपर की जरूरतें जोड़ता है। इसमें रिडंडेंट कुंजी सफ़ाई, Bézier‑से‑रैखिक सरलीकरण, आकार घटाने के लिए राउंडिंग, अदृश्य अटैचमेंट हटाना, अनावश्यक प्रॉपर्टी सफ़ाई, गैर‑अंग्रेज़ी अक्षरों का पता लगाना, और atlas अनपैक/फ़िल्टर/स्केल/रीपैक शामिल हैं। दोहरा दृश्य साइड‑बाय‑साइड दृश्य और FPS तुलना से परिणाम सत्यापित करता है। पब्लिक बीटा लाइव: re-polish.com. YouTube पर देखें

Spine2D प्रयोग 9: फिज़िक्स constraints को keyframes में bake करना — इस वीडियो में मैं फिज़िक्स constraints को मानक keyframes में bake करने के अपने नवीनतम प्रयोग दिखाता हूँ। नया bake algorithm सुनिश्चित करता है: परफेक्ट लूप्स (start और end frames के बीच कोई jitter या jump नहीं), optimized file size (automatic curve cleanup से JSON size मूल के करीब रहता है), और backward compatibility (baked keys से Spine 4.2 physics animations को Spine 4.1 या 4.0 में भी इस्तेमाल किया जा सकता है)। YouTube पर देखें

Nodes

Input

Spine प्रोजेक्ट फाइलें, केवल-JSON इनपुट, डेमो एसेट्स और ZIP पैकेज को ग्राफ में आयात करता है।

उद्देश्य: यह अधिकांश वर्कफ्लो के लिए मुख्य एंट्री पॉइंट है। यह JSON, atlas और textures को पढ़ता है और उन्हें ऐसे आंतरिक डेटा में सामान्यीकृत करता है जिन्हें downstream nodes प्रोसेस कर सकें।

समर्थित मोड:
1. पूर्ण प्रोजेक्ट: JSON + atlas + textures
2. केवल JSON: atlas के बिना skeleton/animation डेटा प्रोसेस करें
3. ZIP पैकेज: एक पैक किया हुआ zip जिसमें पूरा प्रोजेक्ट हो
4. डेमो एसेट्स: त्वरित परीक्षण के लिए built-in sample डेटा

मुख्य आउटपुट:
- **payload_out**: optimization nodes के लिए सामान्यीकृत डेटा
- **original_json_out**: तुलना या पुनर्निर्माण के लिए source JSON
- **atlas_project_out**: textures मिलने पर parsed atlas project

Picture Input

स्टैंडअलोन PNG/JPEG इमेज को viewport में जोड़ता है ताकि आप अधिक साफ previews और presentation shots बना सकें।

उद्देश्य: इस node का उपयोग इमेज को सीधे viewport में presentation layers या visual helpers के रूप में रखने के लिए करें। यह तब उपयोगी है जब आप किसी scene को सजाना, सहायक graphics जोड़ना, और video या demo रिकॉर्ड करने से पहले project previews को अधिक polished बनाना चाहते हैं।

वर्कफ्लो: एक इमेज लोड करें, फिर viewport tools का उपयोग करके उसे scale करें, move करें, और उसका z-index समायोजित करें ताकि वह आपकी composition में सही जगह बैठे। इससे मुख्य Spine project data को छुए बिना आकर्षक showcase shots बनाना आसान हो जाता है।

यह node standalone है और कोई graph sockets expose नहीं करता।

Output

अंतिम परिणाम एकत्र करता है और आपको optimized data को अलग-अलग फाइलों, grouped file sets या archives के रूप में डाउनलोड करने देता है।

उद्देश्य: यह optimized JSON, atlas data, textures और sprites के लिए export hub की तरह काम करता है। यह एक single JSON/atlas/textures set, कई file sets, या सिर्फ sprites से परिणाम बना सकता है जब आप पूर्ण Spine project को फिर से बनाए बिना image output चाहते हैं।

Export options:
- फाइलों को अलग-अलग या एक single archive के रूप में डाउनलोड करें
- packed results या unpacked files वाले archive को डाउनलोड करें
- JSON को compact form या readable pretty-printed form में export करें
- पूरा Spine project data या केवल sprite/image results export करें

Chaining workflow: OutputNode को graph का बिल्कुल आखिरी सिरा होना जरूरी नहीं है। आप इसके outputs को किसी दूसरे pipeline stage में भेज सकते हैं और उन्हीं फाइलों पर अतिरिक्त optimization passes चला सकते हैं। व्यवहार में, key और curve optimization को लगातार 3 iterations तक test किया गया है।

मुख्य आउटपुट:
- **reconstructed_json_out**: rebuilt Spine JSON
- **original_json_passthrough_out**: original JSON का passthrough
- **payload_out**: आगे chaining के लिए payload
- **changes**: एकत्र किए गए optimization changes
- **atlas_assets**: export के लिए तैयार atlas resources

RDP

एनीमेशन कर्व्स को सरल करता है (RDP).

उद्देश्य: रैखिक या लगभग रैखिक एनीमेशन सेगमेंट में keyframes की संख्या घटाने के लिए उन बिंदुओं को हटाता है जो दो अन्य बिंदुओं के बीच सीधी रेखा पर होते हैं.

स्वर्ण नियम: डिफ़ॉल्ट रूप से अक्षम। यह स्पष्ट आकार (area/curvature) वाली कर्व्स को रैखिक बनने से बचाती है। इसे केवल विज़ुअल जाँच के बाद अधिक आक्रामक compression के लिए बंद करें।

सॉकेट कीज़: payload_in, payload_out, changes

Spline

स्प्लाइन-आधारित कर्व ऑप्टिमाइज़ेशन.

उद्देश्य: दृश्य गुणवत्ता बनाए रखते हुए स्मूद कर्व फिटिंग.

सॉकेट कीज़: payload_in, payload_out, changes

Refit

कर्व रीफिट (Bezier) से keyframes कम करता है.

उद्देश्य: सहनशीलता के भीतर रहते हुए कम कर्व फिट करता है.

सॉकेट कीज़: payload_in, payload_out, changes

Quantizer

कीफ़्रेम और वक्रों में संख्यात्मक मानों की सटीकता को कम करता है।

उद्देश्य: संख्याओं को निर्दिष्ट दशमलव स्थानों पर गोल करके फ़ाइल आकार को कम करने के लिए सरल लेकिन प्रभावी विधि।

उपयोग: लगभग सभी एनिमेशन डेटा पर लागू किया जा सकता है। उच्च कीफ़्रेम गणना के साथ अधिक प्रभावी हो जाता है।

सावधानी: बहुत आक्रामक क्वांटाइजेशन (कम सटीकता) एनिमेशन में कंपन या दृश्य विकृतियां पैदा कर सकता है।

Cleanup

अनावश्यक या अनावश्यक एनिमेशन डेटा को हटाने के लिए विभिन्न सफाई कार्य करता है।

उद्देश्य: कुछ ऐसे रिडंडेंट डेटा प्रकार हटाने के लिए विशेष टूल जिन्हें अन्य ऑप्टिमाइज़र मिस कर सकते हैं।

उपयोग: अपने payload को 'payload_in' से कनेक्ट करें और परिणाम 'payload_out' से लें। यदि आप per-change रिपोर्ट चाहते हैं, तो 'changes' भी उपयोग करें।

सॉकेट कीज़:
- इनपुट: payload_in
- आउटपुट: payload_out, changes

वर्तमान में समर्थित cleanups:
1. **Remove Unused Color/Alpha Tracks**: उन slots के color/alpha timelines हटाता है जो एनीमेशन के दौरान कभी visible नहीं होते।
2. **Remove Redundant IK Rotations**: 100% mix वाले IK constraint द्वारा पूरी तरह नियंत्रित bones से rotation keyframes हटाता है।
3. **Remove Path Constraint Keys**: path constraint (mix 100%) द्वारा पूरी तरह नियंत्रित bones से rotate/translate keyframes हटाता है।
4. **Sanitize Non-English Characters**: downstream टूल्स में समस्याओं से बचने के लिए नाम/identifiers में non-English characters को replace करता है。

Scale

निर्दिष्ट कारक द्वारा एनिमेशन कीफ़्रेम में सभी संख्यात्मक मानों को स्केल करता है।

उद्देश्य: एनिमेशन डेटा को समान रूप से स्केल करता है, आनुपातिक रूप से कंकाल का आकार बदलने या एनिमेशन तीव्रता को समायोजित करने के लिए उपयोगी।

उपयोग: payload से कनेक्ट करें और स्केल कारक सेट करें। 1.0 से ऊपर के मान बड़ा करते हैं, 1.0 से नीचे के मान छोटा करते हैं।

पैरामीटर:
- **Scale Factor**: सभी स्थिति और आकार मानों पर लागू गुणक।
- **Include Rotations**: क्या रोटेशन मानों को भी स्केल करना है (आमतौर पर अक्षम)।

उपयोग के मामले:
- आयातित एनिमेशन को नए कंकाल आयामों से मेल खाने के लिए आकार बदलना
- एनिमेशन के अतिरंजित या सूक्ष्म संस्करण बनाना
- विभिन्न चरित्र आकारों के लिए कई एनिमेशन का बैच स्केलिंग

Schneider

श्नाइडर कर्व फ़िटिंग एल्गोरिथ्म का उपयोग करके एनिमेशन कीफ़्रेम में चिकने बेज़ियर वक्र फ़िट करता है।

उद्देश्य: उन्नत वक्र फ़िटिंग जो घने कीफ़्रेम अनुक्रमों से प्राकृतिक दिखने वाले बेज़ियर वक्र उत्पन्न करती है।

उपलब्धता: **केवल Plus नोड**.

यह कैसे काम करता है: श्नाइडर एल्गोरिथ्म कीफ़्रेम स्थितियों और स्पर्शरेखाओं का विश्लेषण करता है ताकि इष्टतम बेज़ियर नियंत्रण बिंदु उत्पन्न किए जा सकें जो मूल गति से मेल खाते हों।

पैरामीटर:
- **Error Tolerance**: मूल कीफ़्रेम से अधिकतम स्वीकार्य विचलन। कम = अधिक सटीक, अधिक = चिकने वक्र।
- **Corner Angle**: थ्रेशहोल्ड कोण (डिग्री) जिस पर वक्र को खंडों में विभाजित करना है।

सर्वश्रेष्ठ के लिए:
- कई कीफ़्रेम वाले हाथ से खींचे गए या आयातित एनिमेशन
- रैखिक इंटरपोलेशन को चिकने बेज़ियर वक्रों में परिवर्तित करना
- वक्र गुणवत्ता बनाए रखते हुए कीफ़्रेम की संख्या कम करना

नोट: RDP जैसे सरल एल्गोरिथ्म की तुलना में अधिक गणनात्मक रूप से गहन, लेकिन बेहतर वक्र गुणवत्ता उत्पन्न करता है।

Physics Constraint Bake

Bake Physics Constraints to Keys: PhysicsConstraint की गति को rotation/translation कीफ़्रेम में बदलता है और physics timelines हटाता है।

उद्देश्य: रनटाइम physics simulation को स्पष्ट कीफ़्रेम में बदलता है ताकि एनिमेशन deterministic रहें और PhysicsConstraints के बिना संपादन योग्य हों। Bake के बाद payload से PhysicsConstraints और physics timelines हटा दिए जाते हैं।

उपलब्धता: **केवल Plus नोड**.

इनपुट/आउटपुट:
- **payload_in** → **payload_out** (baked)
- **changes** (वैकल्पिक परिवर्तन सूची)

कंट्रोल्स:
- **Sample FPS**: simulation sampling rate.
- **Bake Rotation**: rotation कीफ़्रेम लिखता है।
- **Bake Translation**: translation कीफ़्रेम लिखता है।
- **Bake Translation (Children)**: physics motion पर निर्भर child bones पर translate bake लागू करता है।

नोट्स:
- simulation डेटा पुनर्निर्माण के लिए original Spine JSON चाहिए।
- जब PhysicsConstraints हटाने हों लेकिन गति बनाए रखनी हो, तब उपयोग करें।

Attachment Visibility

जब इसका अल्फा शून्य होता है तो स्लॉट के attachment को null पर सेट करके रेंडरिंग को अनुकूलित करता है।

उद्देश्य: गेम इंजन को अदृश्य attachments को संसाधित या रेंडर करने से रोकता है।

उपयोग: अल्फा/रंग ट्रैक का विश्लेषण करता है और स्वचालित रूप से संबंधित 'attachment' ट्रैक पर कीफ़्रेम जोड़ता या संशोधित करता है।

पैरामीटर:
- **Alpha Threshold**: अल्फा मूल्य जिसके नीचे एक attachment को अदृश्य माना जाता है।
- **Auto Restore**: यदि सक्षम है, तो नोड स्वचालित रूप से अंतिम दृश्य attachment को पुनर्स्थापित करेगा जब अल्फा मूल्य सीमा से अधिक हो जाता है।

Payload Merger

कई संसाधित एनिमेशन पेलोड को वापस एकल एकीकृत पेलोड में विलय करता है।

उद्देश्य: समानांतर प्रोसेसिंग पाइपलाइनों के लिए आवश्यक जहां विभिन्न एनिमेशन या बोन समूहों को अलग से अनुकूलित किया जाता है और पुनः संयोजित करने की आवश्यकता होती है।

विलय रणनीति:
1. **बेस इनपुट**: कंकाल संरचना प्रदान करता है (बोन, स्लॉट, स्किन आदि)
2. **ओवरराइड इनपुट**: संसाधित ट्रैक प्रदान करते हैं जो बेस ट्रैक को बदलते हैं
3. **अंतिम लिखने वाला जीतता है**: जब कई ओवरराइड एक ही ट्रैक प्रदान करते हैं, अंतिम को प्राथमिकता मिलती है

संघर्ष पहचान:
- ओवरराइड इनपुट के बीच संघर्षों का पता लगाया जाता है और रिपोर्ट किया जाता है
- बेस → ओवरराइड प्रतिस्थापन सामान्य व्यवहार है (संघर्ष नहीं)
- ट्रैक संघर्ष होने पर चेतावनी टोस्ट दिखाया जाता है

पाइपलाइन उदाहरण:
```
Input → AnimFilter('run') → Cleanup ───────┐
      → AnimFilter('idle') → Quantizer ────┤
      → (base) ────────────────────────────→ Merger → Output
```

उपयोग के मामले:
- विभिन्न एनिमेशन के लिए विभिन्न अनुकूलक
- पुनः संयोजन के साथ अलग बोन/स्लॉट प्रोसेसिंग
- विभिन्न अनुकूलन रणनीतियों का A/B परीक्षण

Animation Viewer

अनुकूलन से पहले और बाद एनिमेशन वक्रों का निरीक्षण और तुलना करने के लिए दृश्य उपकरण।

उद्देश्य: चयनित ट्रैक के लिए कीफ़्रेम और वक्रों का ग्राफिकल प्रतिनिधित्व प्रदान करता है।

उपयोग: दोनों इनपुट 'payload_before' और 'payload_after' को कनेक्ट करके, यह मूल और अनुकूलित वक्रों को ओवरले करेगा, जिससे आपके अनुकूलन के प्रभाव को visualize करना आसान हो जाएगा।

Animation Filter

एनिमेशन नाम (जैसे 'run', 'idle') के आधार पर एनिमेशन ट्रैक फ़िल्टर करता है।

उद्देश्य: विभिन्न एनिमेशन पर विभिन्न अनुकूलन रणनीतियों को लागू करने के लिए उपयोगी।

उपयोग: उदाहरण के लिए, आप पृष्ठभूमि चरित्र एनिमेशन पर आक्रामक हानिकारक अनुकूलन (जैसे DCT) लागू कर सकते हैं जबकि मुख्य चरित्र क्रियाओं के लिए हानिरहित अनुकूलन (जैसे Spline) का उपयोग कर सकते हैं।

Asset Filter

एटलस एसेट्स को नाम से फ़िल्टर करता है, दो मोड में काम करता है: अनपैक से पहले (एटलस टेक्स्ट फ़िल्टर) या अनपैक के बाद (स्प्राइट फ़िल्टर)।

उद्देश्य: नियंत्रित करता है कि वर्कफ़्लो में कौन से एसेट्स शामिल हैं - एटलस से कौन से एसेट्स अनपैक करें या रीपैकिंग में कौन से अनपैक किए गए स्प्राइट शामिल करें।

मोड:
1. प्री-अनपैक मोड (AtlasUnpacker से पहले):
   - इनपुट: atlas_in (atlas_project)
   - आउटपुट: atlas_out (फ़िल्टर किया गया atlas_project)
   - वर्कफ़्लो: InputNode → AssetFilter → AtlasUnpacker
   - उपयोग केस: एटलस से कौन से एसेट्स अनपैक करें फ़िल्टर करें (प्रोसेसिंग समय बचाता है)

2. पोस्ट-अनपैक मोड (AtlasUnpacker के बाद):
   - इनपुट: sprites_in (sprites)
   - आउटपुट: sprites_out (फ़िल्टर किए गए sprites)
   - वर्कफ़्लो: AtlasUnpacker → AssetFilter → AtlasRepacker
   - उपयोग केस: अंतिम एटलस में कौन से अनपैक किए गए स्प्राइट शामिल करें फ़िल्टर करें

UI व्यवहार:
- प्री-अनपैक मोड में: एसेट नाम खोजने के लिए एटलस टेक्स्ट को पार्स करता है
- पोस्ट-अनपैक मोड में: स्प्राइट सरणी से एसेट नाम खोजता है
- 'सभी की अनुमति दें' टॉगल: जब चेक किया जाता है, सभी एसेट्स को पास करता है (सूची दिखाई देती है लेकिन अक्षम)
- चेकबॉक्स: शामिल करने के लिए विशिष्ट एसेट्स चुनें (जब 'सभी की अनुमति दें' अनचेक हो)

उदाहरण:
- प्री-अनपैक: केवल कैरेक्टर स्प्राइट्स को अनपैक करने के लिए केवल 'char_*' एसेट्स चुनें
- पोस्ट-अनपैक: अंतिम रीपैक किए गए एटलस से 'background_*' स्प्राइट्स को बाहर करें
- 'weapon_*' पैटर्न चुनकर केवल हथियार एटलस बनाएं

Bone Filter

हड्डी के नाम के आधार पर हड्डी एनिमेशन ट्रैक फ़िल्टर करता है।

उद्देश्य: अनुकूलन प्रक्रिया से विशिष्ट हड्डियों को लक्षित या बाहर करने की अनुमति देता है।

उपयोग: आप संवेदनशील हड्डियों, जैसे चेहरे के भावों के लिए उपयोग की जाने वाली, को आक्रामक अनुकूलन से बाहर करना चाह सकते हैं ताकि प्रत्येक विवरण को संरक्षित किया जा सके जबकि कम महत्वपूर्ण हड्डियों को भारी रूप से अनुकूलित किया जा सके।

Skin Filter

स्किन नामों के आधार पर एनिमेशन और एसेट डेटा को फ़िल्टर करता है।

उद्देश्य: मल्टी-स्किन Spine प्रोजेक्ट से केवल विशिष्ट स्किन को प्रोसेस करता है।

उपयोग: जब Spine प्रोजेक्ट में कई स्किन हों (जैसे 'default', 'armor', 'casual'), यह नोड आपको फ़िल्टर करने देता है कि प्रोसेसिंग में कौन से स्किन शामिल करने हैं।

पैरामीटर:
- **Skins List**: प्रत्येक उपलब्ध स्किन के लिए चेकबॉक्स
- **Allow All**: सभी स्किन शामिल करने के लिए टॉगल (डिफ़ॉल्ट)

उपयोग के मामले:
- प्रति स्किन अलग एटलस बनाना
- विभिन्न स्किन पर विभिन्न अनुकूलन लागू करना
- अनुकूलित बिल्ड से शायद ही कभी उपयोग किए जाने वाले स्किन को बाहर करना

नोट: स्किन कंकाल संरचना साझा करते हैं लेकिन विभिन्न अटैचमेंट हो सकते हैं।

Slot Filter

स्लॉट नाम के आधार पर स्लॉट एनिमेशन ट्रैक फ़िल्टर करता है।

उद्देश्य: विशिष्ट स्लॉट को लक्षित या बाहर करने के लिए उपयोगी जिनकी विशेष समय या दृश्यता आवश्यकताएं हो सकती हैं।

उपयोग: आप इसका उपयोग हथियार या प्रभाव स्लॉट को बाहर करने के लिए कर सकते हैं जो कोड द्वारा स्विच किए जाते हैं, attachment दृश्यता अनुकूलन से प्रभावित होने से।

Parameter Filter

उनके गुण प्रकार (जैसे rotation, scale, color) के आधार पर एनिमेशन ट्रैक फ़िल्टर करता है।

उद्देश्य: निम्नलिखित अनुकूलन को केवल विशिष्ट प्रकार के एनिमेशन डेटा पर लागू करने की अनुमति देता है।

उपयोग: इसके दायरे को सीमित करने के लिए इस नोड को एक अनुकूलक से पहले रखें। उदाहरण के लिए, आप केवल 'translation' और 'scale' ट्रैक पर RDP अनुकूलन लागू कर सकते हैं।

Atlas Unpacker

Spine टेक्सचर एटलस से व्यक्तिगत sprites निकालता है।

उद्देश्य: एटलस फ़ाइल को उसके घटक sprites में विघटित करता है, व्यक्तिगत विश्लेषण या पुनर्पैकिंग की अनुमति देता है।

उपयोग: InputNode से 'atlas_project' आउटपुट को इस नोड के 'atlas_project_in' इनपुट से कनेक्ट करें। आउटपुट फिर निरीक्षण के लिए AssetViewer या अनुकूलन के लिए AtlasRepacker को भेजा जा सकता है।

⭐ मेश क्रॉपिंग: InputNode से 'Original JSON' आउटपुट को 'Skeleton JSON' इनपुट से कनेक्ट करें ताकि sprites को उनकी मेश सीमाओं (आयताकार सीमाओं के बजाय) में स्वचालित रूप से क्रॉप किया जा सके। यह मेश हल के बाहर पारदर्शी पिक्सेल को हटाकर मेश अटैचमेंट वाले sprites के लिए टेक्सचर मेमोरी उपयोग को महत्वपूर्ण रूप से कम करता है।

आउटपुट:
- **sprites_out**: मानकीकृत sprites array (viewer/repacker के लिए)
- **sprites_data_out**: निकाले गए sprite images/metadata (संरचित बंडल)
- **atlas_out**: Atlas project पासथ्रू

सॉकेट कीज़: atlas_project, atlas_project_in, skeleton_json_in, sprites_out, sprites_data_out, atlas_out

Atlas Repacker

व्यक्तिगत sprites को एक या अधिक नए, अनुकूलित टेक्सचर एटलस में पुनर्पैक करता है।

उद्देश्य: टेक्सचर मेमोरी को अनुकूलित करता है और कुशल स्प्राइट शीट बनाकर संभावित रूप से draw calls को कम करता है।

उपयोग: 'sprites_data' (आमतौर पर AtlasUnpacker से) स्वीकार करता है और एक नया एटलस लेआउट उत्पन्न करता है।

पैरामीटर:
- **Max Texture Size**: आउटपुट एटलस पृष्ठों की अधिकतम चौड़ाई/ऊंचाई।
- **Padding**: प्रत्येक sprite के बीच पिक्सेल में दूरी।
- **Scale**: पैकिंग से पहले सभी sprites को स्केल करता है।
- **Power of Two**: आउटपुट एटलस आयामों को दो की शक्तियां होने के लिए बाध्य करता है (जैसे 1024, 2048), कुछ प्लेटफार्मों द्वारा आवश्यक।
- **Allow Rotation**: बेहतर पैकिंग दक्षता के लिए sprites को 90 डिग्री घुमाने की अनुमति देता है।

Atlas Viewer

अनपैक करने से पहले एटलस संरचना का निरीक्षण करने के लिए हल्का एटलस विज़ुअलाइज़ेशन और विश्लेषण टूल।

उद्देश्य: भारी अनपैकिंग किए बिना एटलस पेज और क्षेत्रों का तेज़ पूर्वावलोकन करने का तरीका देता है। एटलस संरचना की पुष्टि करने और अप्रयुक्त क्षेत्रों की पहचान करने में मदद करता है।

उपयोग: InputNode से 'atlas_project' आउटपुट को 'atlas' इनपुट से जोड़ें। वैकल्पिक रूप से 'original_json_out' को 'json' इनपुट से जोड़ें ताकि क्षेत्र उपयोग का विश्लेषण हो सके।

विशेषताएं:
- क्षेत्र सीमाओं के साथ एटलस पेजों का दृश्य पूर्वावलोकन
- क्षेत्र हाइलाइटिंग: हरा = उपयोग में, लाल = कंकाल में अप्रयुक्त
- पेज नेविगेशन नियंत्रण
- कुल और अप्रयुक्त क्षेत्रों के आँकड़े

उपयोग के मामले:
- अनुकूलन से पहले एटलस की त्वरित जाँच
- अप्रयुक्त क्षेत्रों (डेड वेट) की पहचान
- एटलस पैकिंग समस्याओं का डीबग
- एसेट संरचना को समझना

सॉकेट कीज़: atlas_project, atlas_in, atlas, json

Atlas Merger

कई एटलस स्रोतों को एकल एकीकृत एटलस में जोड़ता है।

उद्देश्य: कई एटलस प्रोजेक्ट को एक में मर्ज करें।

इनपुट:
- **atlas_inputs**: एटलस प्रोजेक्ट का मल्टी-इनपुट ऐरे

आउटपुट:
- **atlas_out**: मर्ज किया गया एटलस प्रोजेक्ट
- **merged_out**: लीगेसी मर्ज आउटपुट
- **merged_atlas_out**: लीगेसी मर्ज आउटपुट

उपयोग के मामले:
- कैरेक्टर एटलस को वेपन एटलस के साथ जोड़ें
- बेस स्प्राइट को DLC कंटेंट के साथ मर्ज करें
- समानांतर एटलस प्रोसेसिंग के बाद पुनः संयोजित करें

सामान्य पाइपलाइन:
```
InputA → Unpacker → Repacker ─┐
                               ├→ Atlas Merger → Unpacker → Repacker → Output
InputB → Unpacker → Repacker ─┘
```
Repacker से पहले डेटा अलग-अलग स्प्राइट होते हैं; Repacker के बाद यह एटलस प्रोजेक्ट बन जाता है। Atlas Merger एटलस प्रोजेक्ट को जोड़ता है, फिर अंतिम Unpacker → Repacker पास सब कुछ एकल एटलस में कसकर पैक करता है।

Asset Viewer

अनपैक किए गए एटलस से व्यक्तिगत sprites प्रदर्शित करता है।

उद्देश्य: एटलस हेरफेर के लिए दृश्य डिबगिंग उपकरण।

उपयोग: Atlas Unpacker नोड से 'sprites_data' स्वीकार करता है और आपको प्रत्येक निकाली गई छवि को visualize करने, इसके गुणों (आयाम, रोटेशन, आदि) की जांच करने और अनपैकिंग के बाद दृश्य सटीकता सत्यापित करने की अनुमति देता है।