Input
يستورد ملفات مشروع Spine ومدخلات JSON فقط وموارد العرض التجريبي وحزم ZIP إلى المخطط.
الغرض: هذه هي نقطة الإدخال الرئيسية لمعظم سير العمل. يقرأ JSON وatlas وtextures ويحوّلها إلى بيانات داخلية موحّدة يمكن للعقد اللاحقة معالجتها.
الأوضاع المدعومة:
1. مشروع كامل: JSON + atlas + textures
2. JSON فقط: معالجة بيانات skeleton/animation من دون atlas
3. حزمة ZIP: ملف zip معبأ يحتوي على مشروع كامل
4. موارد تجريبية: بيانات نموذجية مدمجة للاختبار السريع
المخرجات الرئيسية:
- **payload_out**: بيانات موحّدة لعقد التحسين
- **original_json_out**: ملف JSON الأصلي للمقارنة أو إعادة البناء
- **atlas_project_out**: مشروع atlas محلل عند توفير textures
Picture Input
يضيف صور PNG/JPEG مستقلة إلى مساحة العرض حتى تتمكن من إنشاء معاينات ولقطات عرض أكثر نظافة.
الغرض: استخدم هذه العقدة لوضع الصور مباشرة داخل مساحة العرض كطبقات عرض أو وسائل مساعدة بصرية. وهي مفيدة عندما تريد تزيين مشهد، وإضافة رسومات داعمة، وجعل معاينات المشروع تبدو أكثر صقلا قبل تسجيل فيديوهات أو عروض توضيحية.
سير العمل: حمّل صورة واحدة، ثم استخدم أدوات مساحة العرض لتكبيرها أو تصغيرها وتحريكها وضبط قيمة z-index الخاصة بها حتى تستقر بشكل صحيح داخل التكوين. يجعل ذلك بناء لقطات عرض جذابة أمرا مريحا من دون لمس بيانات مشروع Spine الأساسية.
هذه العقدة مستقلة ولا تعرض مقابس للرسم البياني.
Output
يجمع النتائج النهائية ويتيح لك تنزيل البيانات المحسنة كملفات منفصلة أو مجموعات ملفات مجمعة أو أرشيفات.
الغرض: يعمل كمحور تصدير لملفات JSON المحسنة وبيانات atlas وtextures وsprites. يمكنه تجميع النتائج من مجموعة JSON/atlas/textures واحدة، أو من مجموعات ملفات متعددة، أو من sprites فقط عندما تريد إخراجا للصور من دون إعادة بناء مشروع Spine كامل.
خيارات التصدير:
- تنزيل الملفات بشكل فردي أو كأرشيف واحد
- تنزيل النتائج المعبأة أو أرشيف يحتوي على ملفات غير معبأة
- تصدير JSON بصيغة مضغوطة أو بصيغة مقروءة ومنسقة
- تصدير بيانات مشروع Spine كاملة أو نتائج sprite/image فقط
سير العمل المتسلسل: لا يجب أن تكون OutputNode النهاية المطلقة للمخطط. يمكنك تمرير مخرجاتها إلى مرحلة أخرى من خط المعالجة وتشغيل الملفات نفسها عبر جولات إضافية من التحسين. عمليا، تم اختبار تحسين key وcurve حتى 3 تكرارات متتالية.
المخرجات الرئيسية:
- **reconstructed_json_out**: JSON Spine المعاد بناؤه
- **original_json_passthrough_out**: تمرير مباشر لملف JSON الأصلي
- **payload_out**: payload لمزيد من التسلسل
- **changes**: تغييرات التحسين المجمعة
- **atlas_assets**: موارد atlas الجاهزة للتصدير
RDP
تبسيط منحنيات الرسوم المتحركة باستخدام خوارزمية Ramer-Douglas-Peucker (RDP).
الغرض: تقليل عدد الإطارات الرئيسية في مقاطع الرسوم المتحركة الخطية أو شبه الخطية عن طريق إزالة النقاط التي تقع على خط مستقيم بين نقطتين أخريين.
القاعدة الذهبية: معطل افتراضيًا. إنه يحمي المنحنيات ذات الشكل الكبير (المساحة/الانحناء) من أن تكون مسطحة إلى خطية. قم بتعطيله فقط للضغط الأكثر قوة بعد المراجعة المرئية.
مفاتيح المقبس: payload_in، payload_out، التغييرات
Spline
يناسب منحنيات الخطوط الملساء مع الإطارات الرئيسية للرسوم المتحركة، مما يقلل من النقاط المتوسطة غير الضرورية.
الغرض: تركيب منحنى سلس مع الحفاظ على الجودة البصرية.
مفاتيح المقبس: payload_in، payload_out، التغييرات
Refit
يقارب تسلسلات الإطارات الرئيسية الكثيفة مع عدد أقل من منحنيات Bezier لتقليل الحجم.
الغرض: يناسب عددًا أقل من المنحنيات مع البقاء ضمن حدود التسامح.
مفاتيح المقبس: payload_in، payload_out، التغييرات
Quantizer
يقلل من دقة القيم الرقمية في الإطارات الرئيسية والمنحنيات.
الغرض: طريقة بسيطة ولكنها فعالة لتقليل حجم الملف عن طريق تقريب الأرقام إلى عدد محدد من المنازل العشرية.
الاستخدام: يمكن تطبيقه على أي بيانات رسوم متحركة تقريبًا. يصبح أكثر فعالية مع ارتفاع عدد الإطارات الرئيسية.
تنبيه: يمكن أن يؤدي التكميم الشديد جدًا (دقة منخفضة) إلى حدوث تشويش أو تشويش بصري في الرسوم المتحركة.
مفاتيح المقبس: payload_in، payload_out، التغييرات
Cleanup
ينفذ مهام تنظيف متنوعة لإزالة بيانات الرسوم المتحركة الزائدة أو غير الضرورية.
الغرض: أداة متخصصة لإزالة أنواع معينة من البيانات الزائدة عن الحاجة والتي قد يفتقدها أدوات تحسين الأداء الأخرى.
الاستخدام: قم بتوصيل حمولتك بـ "payload_in" واحصل على النتيجة من "payload_out". إذا كنت تريد تقريرًا لكل تغيير، فاستخدم أيضًا "التغييرات".
مفاتيح المقبس:
- المدخلات: payload_in
- النواتج: payload_out، التغييرات
عمليات التنظيف المدعومة حاليًا:
1. **إزالة مسارات الألوان/ألفا غير المستخدمة**: إزالة الخطوط الزمنية للألوان/ألفا للفتحات التي لا تكون مرئية أبدًا أثناء الرسوم المتحركة.
2. **إزالة دورات IK المتكررة**: إزالة الإطارات الرئيسية للتدوير من العظام التي يتم التحكم فيها بالكامل بواسطة قيد IK بمزيج 100%.
3. **إزالة مفاتيح قيد المسار**: إزالة الإطارات الرئيسية للتدوير/الترجمة من العظام التي يتم التحكم فيها بالكامل بواسطة قيد المسار (مزيج القيم بنسبة 100%).
4. **تطهير الأحرف غير الإنجليزية**: يستبدل الأحرف غير الإنجليزية في الأسماء/المعرفات لتجنب المشكلات في أدوات المصب.
Scale
يقيس كل القيم الرقمية في الإطارات الرئيسية للرسوم المتحركة بعامل محدد.
الغرض: قياس بيانات الرسوم المتحركة بشكل موحد، وهو مفيد لتغيير حجم الهيكل العظمي بشكل متناسب أو ضبط كثافة الرسوم المتحركة.
الاستخدام: قم بتوصيل **payload_in** وأخذ النتيجة من **payload_out**.
مفاتيح المقبس: payload_in، payload_out
Schneider
يناسب منحنيات Bezier الناعمة مع الإطارات الرئيسية للرسوم المتحركة باستخدام خوارزمية تركيب منحنى Schneider.
الغرض: تركيب منحنى متقدم ينتج منحنيات Bezier ذات مظهر طبيعي من تسلسلات الإطارات الرئيسية الكثيفة.
التوفر: **عقدة Plus-only**.
كيف يعمل: تقوم خوارزمية شنايدر بتحليل مواضع الإطار الرئيسي والظلال لإنشاء نقاط تحكم بيزيير مثالية تتطابق بشكل وثيق مع الحركة الأصلية.
المعلمات:
- **التسامح مع الأخطاء**: الحد الأقصى المسموح به للانحراف عن الإطارات الرئيسية الأصلية. أقل = أكثر دقة، أعلى = منحنيات أكثر سلاسة.
- **زاوية الزاوية**: زاوية العتبة (بالدرجات) التي يمكن عندها تقسيم المنحنى إلى أجزاء.
الأفضل لـ:
- رسوم متحركة مرسومة باليد أو مستوردة تحتوي على العديد من الإطارات الرئيسية
- تحويل الاستيفاء الخطي إلى منحنيات بيزييه ناعمة
- تقليل عدد الإطارات الرئيسية مع الحفاظ على جودة المنحنى
ملاحظة: أكثر كثافة من الناحية الحسابية من الخوارزميات الأبسط مثل RDP، ولكنها تنتج جودة منحنى فائقة.
مفاتيح المقبس: payload_in، payload_out، التغييرات
Physics Constraint Bake
يخبز Spine الفيزياء تقييد الحركة في تدوير/ترجمة الإطارات الرئيسية وإزالة الجداول الزمنية الفيزيائية.
الغرض: تحويل محاكاة الفيزياء في وقت التشغيل إلى إطارات رئيسية واضحة بحيث تكون الرسوم المتحركة حتمية وقابلة للتحرير دون قيود فيزيائية. بعد الخبز، تتم إزالة القيود الفيزيائية والجداول الزمنية الفيزيائية من الحمولة.
التوفر: **عقدة Plus-only**.
المدخلات / المخرجات:
- **payload_in** → **payload_out** (مخبوز)
- **التغييرات** (قائمة التغييرات الاختيارية)
الضوابط:
- **نموذج FPS**: محاكاة معدل أخذ العينات للمخبوزات.
- **دوران الخبز**: اكتب مفاتيح الدوران المخبوزة.
- **الترجمة المخبوزة**: اكتب مفاتيح الترجمة المخبوزة.
- **ترجمة الخبز (الأطفال)**: تطبيق ترجمة الخبز على عظام الأطفال التي تعتمد على الحركة الفيزيائية.
ملاحظات:
- يتطلب Spine JSON الأصلي لإعادة بناء بيانات المحاكاة.
- استخدمه عندما تريد إزالة القيود الفيزيائية مع الحفاظ على الحركة.
Attachment Visibility
يعمل على تحسين العرض من خلال تعيين مرفق الفتحة على قيمة فارغة عندما تكون ألفا الخاصة بها صفرًا.
الغرض: منع محرك اللعبة من الاضطرار إلى معالجة المرفقات غير المرئية أو عرضها.
الاستخدام: العمليات **payload_in**، والمخرجات المحسنة **payload_out**، والتقارير الاختيارية **التغييرات**.
مفاتيح المقبس: payload_in، payload_out، التغييرات
Payload Merger
يدمج حمولات الرسوم المتحركة المتعددة المعالجة مرة أخرى في حمولة موحدة واحدة.
الغرض: ضروري لخطوط المعالجة المتوازية حيث يتم تحسين الرسوم المتحركة المختلفة أو مجموعات العظام بشكل منفصل وتحتاج إلى إعادة دمجها.
المدخلات:
- **القاعدة**: الحمولة الرئيسية (الهيكل العظمي)
- **التجاوزات**: حمولة واحدة أو أكثر تحل مساراتها محل المسارات الأساسية
الإخراج:
- **merged_out**: الحمولة المدمجة
مفاتيح المقبس: القاعدة، التجاوزات، merged_out
Animation Viewer
أداة مرئية لفحص ومقارنة منحنيات الرسوم المتحركة قبل وبعد التحسين.
الغرض: توفير تمثيل رسومي للإطارات الرئيسية والمنحنيات للمسار المحدد.
الاستخدام: قم بتوصيل **before_in** و**after_in** لتراكب النسخة الأصلية مع النسخة المحسنة. قم بتوصيل **التغييرات** بشكل اختياري لتسليط الضوء على المسارات المتأثرة.
مفاتيح المقبس: before_in، after_in، التغييرات
Animation Filter
يقوم بتصفية مسارات الرسوم المتحركة بناءً على اسم الرسوم المتحركة (على سبيل المثال، "تشغيل"، "خامل").
الغرض: مفيد لتطبيق استراتيجيات التحسين المختلفة على الرسوم المتحركة المختلفة.
الاستخدام: يقوم بتصفية **payload_in** إلى **payload_out** ويكشف **animation_list** لاختيار واجهة المستخدم.
مفاتيح المقبس: payload_in، payload_out، Animation_list
Asset Filter
تعمل عوامل التصفية atlas على الأصول حسب الاسم، في وضعين: قبل أداة فك الحزم (مرشحات atlas text) أو بعد أداة فك الحزم (عناصر التصفية).
الغرض: التحكم في الأصول التي يتم تضمينها في سير العمل - إما الأصول التي سيتم فك حزمتها من atlas، أو الكائنات التي تم فك حزمتها والتي سيتم تضمينها في إعادة التعبئة.
المدخلات / المخرجات:
- وضع Atlas: **atlas_in** → **atlas_out**
- وضع الصور المتحركة: **sprites_in** → **sprites_out**
مفاتيح المقبس: atlas_in، atlas_out، sprites_in، sprites_out
Bone Filter
يقوم بتصفية مسارات الرسوم المتحركة للعظام بناءً على اسم العظام.
الغرض: السماح باستهداف أو استبعاد عظام معينة من عملية التحسين.
الاستخدام: يقوم بتصفية **payload_in** إلى **payload_out**.
مفاتيح المقبس: payload_in، payload_out
Skin Filter
يقوم بتصفية الرسوم المتحركة وبيانات الأصول بناءً على أسماء الأسطح.
الغرض: معالجة أسطح محددة فقط من مشروع Spine متعدد الأسطح.
الاستخدام: يقوم بتصفية **payload_in** إلى **payload_out**.
مفاتيح المقبس: payload_in، payload_out
Slot Filter
يقوم بتصفية مسارات الرسوم المتحركة للفتحة بناءً على اسم الفتحة.
الغرض: مفيد لاستهداف أو استبعاد فترات معينة قد يكون لها توقيت خاص أو متطلبات رؤية.
الاستخدام: يقوم بتصفية **payload_in** إلى **payload_out**.
مفاتيح المقبس: payload_in، payload_out
Parameter Filter
يقوم بتصفية مسارات الرسوم المتحركة بناءً على نوع الخاصية الخاصة بها (على سبيل المثال، التدوير، القياس، اللون).
الغرض: يسمح بتطبيق التحسينات اللاحقة فقط على أنواع محددة من بيانات الرسوم المتحركة.
الاستخدام: يقوم بتصفية **payload_in** إلى **payload_out**.
مفاتيح المقبس: payload_in، payload_out
Atlas Unpacker
يستخرج النقوش المتحركة الفردية من نسيج Spine atlas.
الغرض: تقسيم ملف atlas إلى كائنات مكونة له، مما يسمح بالتحليل الفردي أو إعادة التعبئة.
الاستخدام: قم بتوصيل **atlas_project** من InputNode إلى **atlas_project** (أو **atlas_project_in** القديم) على هذه العقدة. قم بتوصيل **skeleton_json_in** بشكل اختياري (من **original_json** الخاص بـ InputNode) لتمكين الاقتصاص المدرك للشبكة (قص الكائنات المتحركة إلى حدود الهيكل الشبكي بدلاً من الحدود المستطيلة، مما قد يقلل بشكل كبير من ذاكرة النسيج لمرفقات الشبكة).
النواتج:
- **sprites_out**: مصفوفة موحدة من النقوش المتحركة (للعارض/أداة إعادة التعبئة)
- **sprites_data_out**: صور/بيانات التعريف المستخرجة (حزمة منظمة)
- **atlas_out**: Atlas عبور المشروع
مفاتيح المقبس: atlas_project، atlas_project_in، Skeleton_json_in، sprites_out، sprites_data_out، atlas_out
Atlas Repacker
يعيد تجميع النقوش المتحركة الفردية في واحد أو أكثر من أطالس النسيج المحسنة الجديدة.
الغرض: تحسين ذاكرة النسيج ومن المحتمل أن يقلل من استدعاءات السحب عن طريق إنشاء أوراق رموز متحركة فعالة.
الاستخدام: يقبل النقوش المتحركة إما عبر **sprites_data_in** (حزمة النقوش المتحركة المهيكلة) أو عبر **sprites_out** (مصفوفة النقوش المتحركة القياسية). إذا لزم الأمر لمعالجة ألفا/التعبئة المضلعة، فقدم الهيكل الأصلي عبر **original_json**. يتم إخراج atlas المعبأ كـ **atlas_out**.
مفاتيح المقبس: sprites_data_in، sprites_out، original_json، atlas_out
Atlas Viewer
أداة atlas خفيفة الوزن للتصور والتحليل لفحص بنية atlas قبل التفريغ.
الغرض: توفير طريقة سريعة لمعاينة صفحات ومناطق atlas دون إجراء عملية تفريغ كثيفة. يساعد في التحقق من صحة بنية atlas وتحديد المناطق غير المستخدمة.
الاستخدام: قم بتوصيل مشروع atlas واحد بـ **atlas_project** (أو **atlas_in** القديم / **atlas**)، أو افحص مجموعة من مشاريع atlas عبر **atlas_projects**. يمكنك اختياريًا توصيل الهيكل العظمي JSON بـ **json** لتحليل الاستخدام.
مفاتيح المقبس: atlas_project، atlas_projects، atlas_in، atlas، json
Atlas Merger
يجمع مصادر atlas المتعددة في atlas واحد موحد.
الغرض: دمج مشاريع atlas المتعددة في مشروع واحد.
الإدخال:
- **atlas_inputs**: مصفوفة متعددة المدخلات لمشاريع atlas
النواتج:
- **atlas_out**: مشروع atlas مدمج
- **merged_out**: المخرجات المدمجة القديمة
- **merged_atlas_out**: المخرجات المدمجة القديمة
مفاتيح المقبس: atlas_inputs، atlas_out، merged_out، merged_atlas_out
خط أنابيب نموذجي:
```
InputA → Unpacker → Repacker ─┐
├→ Atlas Merger → Unpacker → Repacker → Output
InputB → Unpacker → Repacker ─┘
```
قبل Repacker، كانت البيانات عبارة عن نقوش متحركة فردية؛ بعد Repacker يصبح مشروع atlas. Atlas يجمع برنامج الدمج بين مشاريع atlas، ثم يقوم Unpacker النهائي → يعيد ممر Repacker حزم كل شيء بإحكام في atlas موحد واحد.Asset Viewer
يعرض كائنات فردية من atlas غير المعبأ.
الغرض: أداة تصحيح الأخطاء المرئية لمعالجة atlas.
الاستخدام: يقبل الكائنات عبر **sprites_out** (قياسي) أو **sprites_in** / **sprites_data** القديمة.
مفاتيح المقبس: sprites_out، sprites_in، sprites_data