Pulihkan Bingkai Aseprite Terpangkas dari Lembar Sprite dan JSON

Lembar sprite Aseprite yang dikemas menghemat ruang tekstur dengan memangkas piksel kosong di sekitar setiap pose. Jika Anda langsung memotong area-area persegi panjang itu tanpa memperhitungkan posisinya, karakter akan tampak melompat-lompat karena setiap potongan memiliki titik asal yang berbeda. JSON yang menyertainya menyediakan peta yang diperlukan untuk menempatkan kembali setiap potongan pada kanvas asli.

Ekspor dua berkas dari sesi Aseprite yang sama

  1. Buka animasi di Aseprite dan gunakan File → Export Sprite Sheet. Ekspor lembar PNG dan aktifkan keluaran data JSON. Format hash dan array JSON sama-sama diterima oleh pembongkar ImageMint.
  2. Simpan lembar dan JSON bersama. JSON dari ekspor sebelumnya dapat menunjuk persegi panjang yang tidak lagi sesuai lembar, meskipun nama kedua berkas mirip.
  3. Jika mengaktifkan pemangkasan atau tata letak terkemas, simpan JSON. Pemotong sel sama besar sederhana tidak dapat menyimpulkan posisi asli bingkai yang dipangkas berbeda hanya dari lembar.
  4. Unggah sheet dan JSON hasil ekspor ke pembongkar. Pratinjau beberapa pose sebelum mengunduh ZIP; jangan mengandalkan bingkai pertama saja.

Tiga persegi panjang, tiga tugas berbeda

Bayangkan karakter yang digambar pada kanvas 64 × 64. Satu pose yang dipangkas menempati persegi panjang 22 × 38, berjarak 19 piksel dari kiri dan 20 dari atas kanvas asli. Pengemasan dapat menempatkan pangkasan itu pada x=128, y=0 dalam lembar hasil ekspor. JSON memerlukan ketiga informasi tersebut:

Kolom JSONContohArtinya
framex=128, y=0, w=22, h=38Dari mana piksel dipotong pada sheet hasil ekspor.
spriteSourceSizex=19, y=20, w=22, h=38Di mana potongan ditempatkan pada kanvas bingkai asli.
sourceSizew=64, h=64Ukuran kanvas penuh yang dipulihkan.

Pembongkar membuat bingkai transparan 64 × 64, menyalin pangkasan 22 × 38 dari lembar, dan menggambar pada (19, 20). Mengulang setiap pose mempertahankan garis dasar karakter. Peran kolom ini sesuai dengan Dokumentasi ekspor lembar/JSON Aseprite; posisi tepatnya berasal dari JSON Anda sendiri.

Petualang berjubah hijau yang dipangkas rapat di samping kanvas dengan ruang tambahan yang menunjukkan offset atas dan kiri aslinya.
Pemangkasan menghapus bagian kanvas yang kosong, tetapi tidak menghilangkan kebutuhan akan informasi penempatan. Tempatkan kembali potongan pada posisi offset aslinya. Ilustrasi konseptual ini tidak dibuat sesuai skala; pemulihan tersebut tidak mengubah ukuran piksel karakter. Buka gambar ukuran penuh

Apa yang perlu diperiksa dalam ZIP yang diunduh

Setiap bingkai yang dipulihkan adalah PNG bernomor. manifest.json mencantumkan nama bingkai sumber, durasi dalam milidetik, dimensi, dan tag bingkai. Buka pose diam dan pose serangan paling ekstrem berdampingan: kanvas harus sama dan kaki atau jangkar pilihan harus tetap stabil. Jika pemutaran masih melompat, gambar mungkin tidak sejajar dalam proyek Aseprite asli; pemulihan offset potongan tidak dapat memperbaiki masalah gambar itu.

Batas: pembongkar tidak membaca format bawaan .aseprite file atau bingkai hasil pengepakan yang diputar. Alat mendukung hingga 100 bingkai, 1024 piksel per sisi bingkai yang dipulihkan, dan 20 juta total piksel bingkai. Jika muncul kesalahan terkait rotasi, ekspor tanpa rotasi lalu coba lagi.

Jika hanya memerlukan sel berjarak merata, alat biasa Pemotong Lembar Sprite lebih sederhana. Gunakan pemulihan JSON ketika pengepakan atau pemangkasan telah merusak kisi sel yang sama besar.

Diagnosis pasangan yang sesuai tetapi tetap tampak salah

GejalaPeriksa terlebih dahuluPerbaikan aman
meta.size tidak cocokApakah ukuran sheet diubah setelah ekspor?Ekspor ulang kedua berkas dari proyek sama.
Pose yang salah muncul dalam bingkaiApakah JSON berasal dari proses pengemasan lain?Ganti pasangan meskipun dimensinya sama.
Kanvas benar tetapi karakter bergeserBandingkan pose asli Aseprite.Perbaiki kesejajaran sumber; jangan hapus offset pemangkasan.
Kesalahan rotasiApakah rotasi saat pengepakan diaktifkan?Ekspor bingkai tanpa rotasi.

Nama berkas yang cocok bukan validasi, dan ukuran yang cocok saja tidak membuktikan bahwa koordinat pangkasan menggambarkan gambar yang diunggah. Dua atlas dapat memiliki ukuran sama tetapi menyusun pose secara berbeda. Periksa pose yang khas, misalnya serangan dengan senjata terentang, bukan hanya menilai bingkai diam yang hampir identik.

Bawa durasi dan tag ke aplikasi berikutnya

Bingkai berdurasi 200 ms seharusnya tetap ditahan lebih lama daripada bingkai 80 ms. PNG yang dipulihkan menyimpan piksel, sedangkan manifest.json menyimpan durationMs dan tag bingkai. Simpan keduanya. Jika Anda menguji PNG dalam pemutar FPS seragam, ritmenya memang akan berbeda meskipun penempatannya sempurna.

Tag mengidentifikasi rentang seperti idle dan walk, tetapi mempertahankan tag tidak sama dengan mengonfigurasi status animasi engine. Periksa rentang dan arah pemutaran dalam aplikasi penerima. Pratinjau ImageMint berguna untuk kesejajaran; bukan ekspor otomatis pengendali animasi engine Anda.

Simpan dua versi untuk dua tugas: gunakan sheet yang dikemas asli dan JSON untuk penyimpanan atlas ringkas; gunakan PNG kanvas penuh yang dipulihkan untuk pengeditan, perbandingan bingkai, dan alur kerja yang memerlukan gambar sama besar. Pemulihan padding menukar efisiensi tekstur dengan penyelarasan yang mudah.

Coba alur kerjanya

Muat lembar beserta JSON yang sesuai untuk mempratinjau bingkai sejajar dan mengunduh PNG ukuran penuh.

Pulihkan bingkai Aseprite →