Input
Mengimpor file proyek Spine, input khusus JSON, aset demo, dan paket ZIP ke dalam graf.
Tujuan: Ini adalah titik masuk utama untuk sebagian besar alur kerja. Node ini membaca JSON, atlas, dan tekstur lalu menormalkannya menjadi data internal yang dapat diproses node lanjutan.
Mode yang didukung:
1. Proyek lengkap: JSON + atlas + tekstur
2. Hanya JSON: memproses data skeleton/animasi tanpa atlas
3. Paket ZIP: file zip terkemas yang berisi proyek lengkap
4. Aset demo: data contoh bawaan untuk pengujian cepat
Output utama:
- **payload_out**: data yang dinormalisasi untuk node optimasi
- **original_json_out**: JSON sumber untuk perbandingan atau rekonstruksi
- **atlas_project_out**: proyek atlas yang sudah di-parse saat tekstur disediakan
Video To Png Sequence
Ubah klip video menjadi urutan frame PNG untuk alur kerja Spine.
Ini adalah alat input gratis di menu Input untuk alur kerja produksi. Fitur ini mendukung chroma key untuk green screen dan pembersihan matte gaya unpremultiply untuk latar belakang hitam. Hasil keluar melalui payload_out dan atlas_out.
Picture Input
Menambahkan gambar PNG/JPEG mandiri ke viewport agar Anda dapat membuat pratinjau dan shot presentasi yang lebih rapi.
Tujuan: Gunakan node ini untuk menempatkan gambar langsung ke viewport sebagai lapisan presentasi atau alat bantu visual. Node ini berguna saat Anda ingin menghias adegan, menambahkan grafis pendukung, dan membuat pratinjau proyek terlihat lebih matang sebelum merekam video atau demo.
Alur kerja: Muat satu gambar, lalu gunakan alat viewport untuk mengubah skalanya, memindahkannya, dan menyesuaikan z-index-nya agar posisinya pas di dalam komposisi. Ini memudahkan pembuatan shot showcase yang menarik tanpa menyentuh data utama proyek Spine.
Node ini bersifat mandiri dan tidak mengekspos soket graf.
Version: Format versi Spine JSON untuk skeleton stub yang dihasilkan.
Blending: Mode blending untuk attachment yang dihasilkan (normal, aditif, multiplikasi, layar).
Psd To Skeletons
Memuat file PSD/PSB berlapis dan menghasilkan skeleton Spine yang saling terhubung sambil mempertahankan tata letak scene Photoshop untuk preview yang akurat.
Tujuan: Gunakan node ini ketika scene sudah disusun di Photoshop dan Anda ingin mengubah tumpukan layer tersebut menjadi sekumpulan skeleton Spine yang saling terhubung di dalam viewer. Setiap layer PSD yang terlihat menjadi skeleton bergaya gambar dengan posisi berdasarkan koordinat PSD, sehingga proses menyusun preview dan menempatkan objek secara presisi menjadi jauh lebih mudah.
Alur kerja di viewer: Setelah hasil dibuat, Anda tetap bisa mengubah draw order di viewer dan menempatkan skeleton lain di antara layer PSD yang diimpor, sehingga karakter atau properti Spine tambahan dapat masuk ke dalam komposisi Photoshop.
Ketersediaan: Node gratis. Node ini bersifat mandiri dan tidak mengekspos socket graph.
Version: Format versi Spine JSON yang digunakan untuk skeleton layer yang dihasilkan.
Blending: Mode blending yang digunakan untuk attachment yang dihasilkan.
Load PSD: Membuka pemilih PSD/PSB dan menghasilkan skeleton layer terhubung dari file yang dipilih.
File Info: Ringkasan read-only dari file PSD/PSB yang sedang dimuat.
Layer Count: Jumlah read-only layer terlihat yang akan diubah menjadi skeleton terhubung.
Preflight: Laporan read-only tentang masalah nama layer yang terdeteksi sebelum proses generate.
Project Input
Memuat folder atau arsip proyek Spine ke graph dan mengekspos ProjectPayload melalui soket project_out untuk node lanjutan yang mendukung proyek.
Tujuan: Titik masuk untuk workflow berbasis proyek. Memindai folder atau arsip proyek Spine, membangun ProjectPayload, dan menjaga metadata yang di-cache tetap siap untuk node lanjutan seperti Project Viewer, filter, Static Bake, dan Deduplicator.
Kontrol:
- **Load Folder**: Membuka pemilih folder sistem melalui File System Access API, memindai direktori yang dipilih, memperbarui ringkasan, menyimpan metadata ke cache, dan memulai file watcher agar perubahan berikutnya bisa dipindai ulang.
- **Browse (Fallback)**: Menggunakan input **webkitdirectory** tersembunyi untuk browser tanpa **showDirectoryPicker()**. Mode ini memuat proyek, tetapi tanpa handle direktori persisten, sehingga live watching dan rescan yang andal tidak tersedia.
- **Load Archive**: Memuat arsip **.zip** atau **.spine** sebagai pohon proyek virtual. Proyek berbasis arsip tidak menyimpan handle direktori, jadi **Rescan** memang tidak tersedia.
- **Rescan**: Memindai ulang folder yang sebelumnya dimuat saat handle direktori tersedia. Mode ini memeriksa ulang izin baca sebelum pemindaian. Proyek yang dimuat lewat fallback browse atau mode arsip biasanya melaporkan bahwa tidak ada direktori yang dimuat.
- **Clear Project**: Menghentikan pemantauan file dan menghapus payload saat ini, ringkasan, execution cache, dan metadata payload yang di-cache.
- **Reset to Defaults**: Hanya mereset kontrol node generik. Ini **tidak** membongkar proyek saat ini dan bukan pengganti **Clear Project**.
- **Drop folder or .zip here**: Titik masuk drag-and-drop yang menerima folder dan arsip lalu meneruskannya ke pipeline pemuatan yang sama.
Output:
- **project_out**: ProjectPayload dengan pohon hasil pemindaian, daftar file datar, total ukuran, dan rincian tipe untuk node lanjutan yang memahami proyek.
- **stats**: Output diagnostik khusus DEV.
Output
Mengumpulkan hasil akhir dan memungkinkan Anda mengunduh data yang dioptimalkan sebagai file terpisah, kumpulan file yang dikelompokkan, atau arsip.
Tujuan: Bertindak sebagai pusat ekspor untuk JSON yang dioptimalkan, data atlas, tekstur, dan sprite. Node ini dapat merakit hasil dari satu set JSON/atlas/tekstur, dari beberapa set file, atau hanya dari sprite saat Anda menginginkan output gambar tanpa membangun ulang proyek Spine penuh.
Opsi ekspor:
- Unduh file satu per satu atau sebagai satu arsip
- Unduh hasil terkemas atau arsip dengan file yang tidak dikemas
- Ekspor JSON dalam bentuk ringkas atau bentuk pretty-print yang mudah dibaca
- Ekspor data proyek Spine lengkap atau hanya hasil sprite/gambar
Alur chaining: OutputNode tidak harus menjadi ujung mutlak graf. Anda dapat meneruskan outputnya ke tahap pipeline lain dan menjalankan file yang sama melalui pass optimasi tambahan. Dalam praktiknya, optimasi key dan curve diuji hingga 3 iterasi berturut-turut.
Output utama:
- **reconstructed_json_out**: JSON Spine yang dibangun ulang
- **original_json_passthrough_out**: passthrough JSON asli
- **payload_out**: payload untuk chaining lanjutan
- **changes**: perubahan optimasi yang terkumpul
- **atlas_assets**: sumber daya atlas yang siap diekspor
RDP
Menyederhanakan kurva animasi menggunakan algoritma Ramer-Douglas-Peucker (RDP).
Tujuan: Mengurangi jumlah keyframe dalam segmen animasi linier atau hampir linier dengan menghilangkan titik-titik yang terletak pada garis lurus di antara dua titik lainnya.
Aturan Emas: Dinonaktifkan secara default. Ini melindungi kurva dengan bentuk signifikan (luas/lengkungan) agar tidak rata menjadi linier. Nonaktifkan hanya untuk kompresi yang lebih agresif setelah tinjauan visual.
Kunci soket: payload_in, payload_out, perubahan
Epsilon: Deviasi maksimum dari kurva asli. Nilai lebih tinggi menghapus lebih banyak keyframe tetapi mungkin kehilangan detail kurva.
Steep: Ambang sensitivitas kelengkungan. Melindungi kurva kompleks dari diratakan menjadi linier.
Round Mode: Mode pembulatan untuk nilai yang dioptimalkan: tanpa (pertahankan asli), persepuluhan (1 desimal), bilangan bulat.
Golden Rule: Saat diaktifkan, melindungi kurva dengan bentuk/area signifikan dari penyederhanaan oleh RDP.
S Run Length: Jumlah minimum kurva S standar Spine yang berurutan sebelum perataan berbasis template ini aktif. Setel ke 0 untuk menonaktifkan fitur ini.
S Deviation: Deviasi ternormalisasi yang diizinkan dari template kurva S standar Spine, dalam permil (0-300). Nilai yang lebih rendah membutuhkan kecocokan yang lebih dekat; nilai yang lebih tinggi meratakan lebih banyak rangkaian yang mendekati template.
Spline
Menyesuaikan kurva spline halus ke bingkai utama animasi, mengurangi titik perantara yang tidak perlu.
Tujuan: Pemasangan kurva yang halus dengan tetap menjaga kualitas visual.
Kunci soket: payload_in, payload_out, perubahan
Max Error: Kesalahan aproksimasi maksimum yang diizinkan untuk fitting spline. Lebih rendah = lebih presisi ke aslinya.
Min Group Size: Jumlah minimum keyframe linier berurutan yang diperlukan untuk membentuk grup yang dapat dihapus.
Refit
Memperkirakan rangkaian bingkai utama yang padat dengan kurva Bezier yang lebih sedikit untuk mengurangi ukuran.
Tujuan: Menyesuaikan lebih sedikit kurva namun tetap dalam toleransi.
Kunci soket: payload_in, payload_out, perubahan
Error Tolerance: Deviasi maksimum yang diizinkan antara kurva asli dan Bézier yang di-fit. Lebih rendah = kecocokan lebih akurat.
Max Iterations: Jumlah iterasi optimasi untuk fitting kurva. Lebih banyak iterasi = fit lebih baik tetapi lebih lambat.
Quantizer
Mengurangi presisi nilai numerik dalam bingkai utama dan kurva.
Tujuan: Cara sederhana namun efektif untuk mengurangi ukuran file dengan membulatkan angka ke sejumlah tempat desimal tertentu.
Penggunaan: Dapat diterapkan ke hampir semua data animasi. Menjadi lebih efektif dengan jumlah bingkai utama yang lebih tinggi.
Perhatian: Kuantisasi yang terlalu agresif (presisi rendah) dapat menyebabkan jitter atau artefak visual dalam animasi.
Kunci soket: payload_in, payload_out, perubahan
Precision: Jumlah tempat desimal untuk nilai keyframe. Kurang = file lebih kecil tetapi akurasi lebih rendah.
Cleanup
Melakukan berbagai tugas pembersihan untuk menghapus data animasi yang berlebihan atau tidak perlu.
Tujuan: Alat khusus untuk menghapus jenis data berlebihan tertentu yang mungkin terlewatkan oleh pengoptimal lain.
Penggunaan: Hubungkan payload Anda ke 'payload_in' dan ambil hasilnya dari 'payload_out'. Jika Anda menginginkan laporan per perubahan, gunakan juga 'perubahan'.
Kunci soket:
- Masukan: payload_in
- Output: payload_out, berubah
Pembersihan yang didukung saat ini:
1. **Hapus Trek Warna/Alfa yang Tidak Digunakan**: Menghapus garis waktu warna/alfa untuk slot yang tidak pernah terlihat selama animasi.
2. **Hapus Rotasi IK yang Berlebihan**: Menghapus bingkai utama rotasi dari tulang yang sepenuhnya dikontrol oleh batasan IK dengan campuran 100%.
3. **Hapus Kunci Batasan Jalur**: Menghapus bingkai utama putar/terjemahkan dari tulang yang sepenuhnya dikontrol oleh batasan jalur (nilai campuran 100%).
4. **Sanitasi Karakter Non-Inggris**: Mengganti karakter non-Inggris pada nama/pengidentifikasi untuk menghindari masalah pada alat hilir.
Remove Unused Color Tracks: Hapus komponen warna/alpha yang tidak pernah berubah dari nilai default.
Remove Redundant IKRotation: Hapus keyframe rotasi tulang yang sepenuhnya dikendalikan oleh constraint IK.
Remove Redundant Path Constraint Keys: Hapus keyframe constraint path yang menduplikasi nilai setup.
Sanitize Non English Characters: Ganti karakter non-ASCII dalam nama tulang/slot dengan padanan yang aman.
Scale
Menskalakan semua nilai numerik dalam bingkai utama animasi berdasarkan faktor tertentu.
Tujuan: Menyeragamkan skala data animasi, berguna untuk mengubah ukuran kerangka secara proporsional atau menyesuaikan intensitas animasi.
Penggunaan: Hubungkan **payload_in** dan ambil hasilnya dari **payload_out**.
Kunci soket: payload_in, payload_out
Scale Factor: Pengali skala untuk skeleton (mis. 0.5 = setengah ukuran).
Scale Bones: Skalakan posisi dan ukuran tulang.
Scale Attachments: Skalakan posisi dan ukuran attachment.
Scale Animations: Skalakan keyframe animasi.
Scale Constraints: Skalakan parameter constraint.
Scale Path: Skalakan data path.
Schneider
Menyesuaikan kurva Bezier yang halus ke bingkai utama animasi menggunakan algoritma pemasangan kurva Schneider.
Tujuan: Pemasangan kurva tingkat lanjut yang menghasilkan kurva Bezier yang tampak alami dari rangkaian bingkai utama yang padat.
Ketersediaan: **Node khusus plus**.
Cara kerjanya: Algoritme Schneider menganalisis posisi keyframe dan garis singgung untuk menghasilkan titik kontrol Bezier optimal yang mendekati gerakan aslinya.
Parameter:
- **Toleransi Kesalahan**: Penyimpangan maksimum yang diperbolehkan dari bingkai utama asli. Lebih rendah = lebih akurat, lebih tinggi = kurva lebih halus.
- **Sudut Sudut**: Sudut ambang (derajat) untuk membagi kurva menjadi beberapa segmen.
Terbaik untuk:
- Animasi yang digambar tangan atau diimpor dengan banyak bingkai utama
- Mengubah interpolasi linier menjadi kurva Bezier yang halus
- Mengurangi jumlah keyframe dengan tetap menjaga kualitas kurva
Catatan: Lebih intensif secara komputasi dibandingkan algoritme yang lebih sederhana seperti RDP, namun menghasilkan kualitas kurva yang unggul.
Kunci soket: payload_in, payload_out, perubahan
Error Tolerance: Deviasi maksimum yang diizinkan antara kurva asli dan yang di-fit.
Min Segment Size: Jumlah minimum keyframe dalam segmen untuk pemrosesan.
Physics Constraint Bake
Memasukkan Spine gerakan PhysicsConstraint ke dalam bingkai utama putar/terjemahkan tulang dan hapus garis waktu fisika.
Tujuan: Mengubah simulasi fisika runtime menjadi bingkai utama eksplisit sehingga animasi bersifat deterministik dan dapat diedit tanpa batasan fisika. Setelah dipanggang, batasan fisika dan garis waktu fisika dihapus dari payload.
Ketersediaan: **Node khusus plus**.
Masukan/Keluaran:
- **payload_in** → **payload_out** (dipanggang)
- **perubahan** (daftar perubahan opsional)
Kontrol:
- **Sampel FPS**: Simulasi laju pengambilan sampel untuk pemanggangan.
- **Rotasi Panggang**: Menulis tombol rotasi yang dipanggang.
- **Terjemahan Panggang**: Tulis kunci terjemahan yang dipanggang.
- **Terjemahan Panggang (Anak-anak)**: Terapkan terjemahan panggang ke tulang anak yang mengandalkan gerakan fisika.
Catatan:
- Memerlukan Spine JSON asli untuk merekonstruksi data simulasi.
- Gunakan saat Anda ingin menghilangkan batasan fisika tetapi tetap mempertahankan gerakan.
Sample fps: Laju sampling untuk baking fisika (frame per detik).
Bake rotation: Bake rotasi dari constraint fisika.
Bake translation: Bake translasi dari constraint fisika.
Bake translation descendants: Bake translasi untuk tulang keturunan.
Attachment Visibility
Mengoptimalkan rendering dengan mengatur lampiran slot ke null ketika alpha-nya nol.
Tujuan: Mencegah mesin game memproses atau merender lampiran yang tidak terlihat.
Penggunaan: Memproses **payload_in**, menghasilkan output **payload_out** yang dioptimalkan, dan secara opsional melaporkan **perubahan**.
Kunci soket: payload_in, payload_out, perubahan
Alpha Threshold: Ambang alpha untuk deteksi visibilitas attachment.
Auto Restore: Pulihkan visibilitas secara otomatis setelah pemrosesan.
Payload Merger
Menggabungkan kembali beberapa payload animasi yang diproses menjadi satu payload terpadu.
Tujuan: Penting untuk alur pemrosesan paralel di mana animasi atau kelompok tulang yang berbeda dioptimalkan secara terpisah dan perlu digabungkan kembali.
Masukan:
- **basis**: Muatan utama (struktur kerangka)
- **override**: Satu atau lebih muatan yang lintasannya menggantikan lintasan dasar
Keluaran:
- **merged_out**: Gabungan muatan
Kunci soket: base, override, merge_out
Warn conflicts: Tampilkan peringatan pada konflik penggabungan payload.
Animation Viewer
Alat visual untuk memeriksa dan membandingkan kurva animasi sebelum dan sesudah pengoptimalan.
Tujuan: Memberikan representasi grafis dari bingkai utama dan kurva untuk trek yang dipilih.
Penggunaan: Hubungkan **before_in** dan **after_in** untuk melapisi yang asli vs yang dioptimalkan. Secara opsional, sambungkan **perubahan** untuk menyorot trek yang terkena dampak.
Kunci soket: sebelum_masuk, setelah_masuk, berubah
Show changed: Tampilkan hanya animasi yang berubah.
Animation: Pilihan animasi untuk dilihat.
Target: Tulang/slot target untuk dilihat.
Property: Properti untuk ditampilkan (rotasi, translasi, dll.).
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: Mode repack setelah deduplikasi.
Glow threshold: Ambang untuk mendeteksi sprite efek glow.
Solid threshold: Ambang untuk mendeteksi sprite solid.
Min sprite area: Area sprite minimum untuk analisis (piksel²).
Alpha hash threshold: Ambang hash alpha untuk perbandingan.
Verification threshold: Ambang verifikasi duplikat.
Color rmse threshold: Ambang RMSE warna untuk deteksi duplikat.
Constrain canonical atlas size: Batasi ukuran atlas kanonis.
Max canonical atlas width: Lebar maksimum atlas kanonis.
Max canonical atlas height: Tinggi maksimum atlas kanonis.
Animation Filter
Memfilter trek animasi berdasarkan nama animasi (misalnya, 'run', 'idle').
Tujuan: Berguna untuk menerapkan strategi pengoptimalan yang berbeda pada animasi yang berbeda.
Penggunaan: Memfilter **payload_in** ke dalam **payload_out** dan menampilkan **animation_list** untuk pemilihan UI.
Kunci soket: payload_in, payload_out, animation_list
Asset Filter
Memfilter aset atlas berdasarkan nama, bekerja dalam dua mode: sebelum unpacker (memfilter atlas teks) atau setelah unpacker (memfilter sprite).
Tujuan: Mengontrol aset mana yang disertakan dalam alur kerja - baik aset mana yang akan dibongkar dari atlas, atau sprite mana yang sudah dibongkar untuk disertakan dalam pengemasan ulang.
Masukan/Keluaran:
- Mode Atlas: **atlas_in** → **atlas_out**
- Mode sprite: **sprite_in** → **sprite_out**
Kunci soket: atlas_in, atlas_out, sprites_in, sprites_out
Bone Filter
Memfilter trek animasi tulang berdasarkan nama tulang.
Tujuan: Memungkinkan penargetan atau pengecualian tulang tertentu dari proses pengoptimalan.
Penggunaan: Memfilter **payload_in** menjadi **payload_out**.
Kunci soket: payload_in, payload_out
Skin Filter
Memfilter animasi dan data aset berdasarkan nama skin.
Tujuan: Memproses hanya skin tertentu dari proyek Spine multi-skin.
Penggunaan: Memfilter **payload_in** menjadi **payload_out**.
Kunci soket: payload_in, payload_out
Slot Filter
Memfilter trek animasi slot berdasarkan nama slot.
Tujuan: Berguna untuk menargetkan atau mengecualikan slot tertentu yang mungkin memiliki persyaratan waktu atau visibilitas khusus.
Penggunaan: Memfilter **payload_in** menjadi **payload_out**.
Kunci soket: payload_in, payload_out
Parameter Filter
Memfilter trek animasi berdasarkan jenis propertinya (misalnya rotasi, skala, warna).
Tujuan: Memungkinkan penerapan pengoptimalan berikutnya hanya pada jenis data animasi tertentu.
Penggunaan: Memfilter **payload_in** menjadi **payload_out**.
Kunci soket: payload_in, payload_out
Rotation: Sertakan/kecualikan track rotasi dari pemrosesan.
Translation: Sertakan/kecualikan track translasi dari pemrosesan.
Scale: Sertakan/kecualikan track skala dari pemrosesan.
Shear: Sertakan/kecualikan track geser dari pemrosesan.
Color: Sertakan/kecualikan track warna dari pemrosesan.
Attachment: Sertakan/kecualikan track attachment dari pemrosesan.
Deform: Sertakan/kecualikan track deformasi (mesh) dari pemrosesan.
Atlas Unpacker
Mengekstrak sprite individual dari tekstur Spine atlas.
Tujuan: Memecah file atlas menjadi sprite komponennya, sehingga memungkinkan analisis atau pengemasan ulang individual.
Penggunaan: Hubungkan **atlas_project** dari InputNode ke **atlas_project** (atau **atlas_project_in** yang lama) pada node ini. Secara opsional, sambungkan **skeleton_json_in** (dari **original_json** InputNode) untuk mengaktifkan pemotongan mesh-aware (memotong sprite ke batas lambung mesh, bukan batas persegi panjang, yang secara signifikan dapat mengurangi memori tekstur untuk lampiran mesh).
Keluaran:
- **sprite_out**: Array sprite terstandarisasi (untuk viewer/repacker)
- **sprite_data_out**: Gambar/metadata sprite yang diekstraksi (paket terstruktur)
- **atlas_out**: passthrough proyek Atlas
Kunci soket: atlas_project, atlas_project_in, skeleton_json_in, sprites_out, sprites_data_out, atlas_out
Atlas Repacker
Mengemas ulang masing-masing sprite menjadi satu atau lebih atlas tekstur baru yang dioptimalkan.
Tujuan: Mengoptimalkan memori tekstur dan berpotensi mengurangi panggilan penarikan dengan membuat sprite sheet yang efisien.
Penggunaan: Menerima sprite melalui **sprites_data_in** (paket sprite terstruktur) atau melalui **sprites_out** (array sprite standar). Jika diperlukan untuk penanganan alfa/pengemasan poligon, berikan kerangka asli melalui **original_json**. Menghasilkan atlas yang dikemas sebagai **atlas_out**.
Kunci soket: sprites_data_in, sprites_out, original_json, atlas_out
Min Page Width: Lebar minimum halaman atlas dalam piksel.
Min Page Height: Tinggi minimum halaman atlas dalam piksel.
Max Page Width: Lebar maksimum halaman atlas dalam piksel.
Max Page Height: Tinggi maksimum halaman atlas dalam piksel.
Padding X: Padding horizontal antara sprite dalam piksel.
Padding Y: Padding vertikal antara sprite dalam piksel.
Edge Padding: Padding dari tepi halaman atlas.
Duplicate Padding: Duplikasi piksel tepi untuk mencegah artefak filtering.
Alpha Mode: Mode alpha: PMA (premultiplied alpha) atau langsung.
Alpha Threshold: Ambang alpha untuk memotong piksel tak terlihat.
Strip Whitespace X: Potong piksel kosong secara horizontal.
Strip Whitespace Y: Potong piksel kosong secara vertikal.
Color Bleed Radius: Radius bleed warna untuk mencegah sambungan saat filtering.
Scale: Faktor skala yang diterapkan ke semua sprite sebelum packing.
Power Of Two: Bulatkan dimensi halaman ke pangkat dua.
Divisible By4: Bulatkan dimensi halaman ke kelipatan 4 (untuk kompresi tekstur).
Square: Paksa halaman menjadi persegi.
Allow Rotation: Izinkan rotasi 90° sprite untuk packing yang lebih baik.
Packer Type: Algoritma packing: MaxRects atau Shelf.
Atlas Viewer
Alat visualisasi dan analisis atlas yang ringan untuk memeriksa struktur atlas sebelum membongkar.
Tujuan: Menyediakan cara cepat untuk melihat pratinjau halaman dan region atlas tanpa melakukan operasi pembongkaran yang berat. Membantu memvalidasi struktur atlas dan mengidentifikasi region yang tidak digunakan.
Penggunaan: Hubungkan satu proyek atlas ke **atlas_project** (atau **atlas_in** / **atlas** lama), atau periksa sekumpulan proyek atlas melalui **atlas_projects**. Secara opsional, sambungkan kerangka JSON ke **json** untuk analisis penggunaan.
Kunci soket: atlas_project, atlas_projects, atlas_in, atlas, json
Page Info: Dimensi dan informasi halaman atlas.
Stats: Statistik penggunaan ruang dan jumlah sprite.
Atlas Merger
Menggabungkan beberapa sumber atlas menjadi satu atlas terpadu.
Tujuan: Menggabungkan beberapa proyek atlas menjadi satu.
Masukan:
- **atlas_inputs**: Array multi-input dari proyek atlas
Keluaran:
- **atlas_out**: Proyek atlas digabungkan
- **merged_out**: Output gabungan lama
- **merged_atlas_out**: Output gabungan lama
Kunci soket: atlas_inputs, atlas_out, merge_out, merge_atlas_out
Saluran pipa yang umum:
```
InputA → Unpacker → Repacker ─┐
├→ Atlas Merger → Unpacker → Repacker → Output
InputB → Unpacker → Repacker ─┘
```
Sebelum Repacker, datanya adalah sprite individual; setelah Repacker, proyek ini menjadi proyek atlas. Atlas Penggabungan menggabungkan proyek atlas, lalu pass Unpacker → Repacker final akan mengemas ulang semuanya menjadi satu atlas yang terpadu.Asset Viewer
Menampilkan sprite individual dari atlas yang belum dibongkar.
Tujuan: Alat debugging visual untuk manipulasi atlas.
Penggunaan: Menerima sprite melalui **sprites_out** (standar) atau **sprites_in** / **sprites_data** lama.
Kunci soket: sprites_out, sprites_in, sprites_data
Asset select: Pilihan aset untuk dilihat.
Pixel stats: Tampilkan statistik piksel untuk aset.