Cách biến GIF thành bảng sprite không khung bóng ma
Bạn trích xuất GIF và một số khung chứa các phần của tư thế trước. Điều đó thường nghĩa là bản xuất đã lưu các hình chữ nhật cập nhật GIF như thể chúng là ảnh đầy đủ. Đây là cách lấy khung hoàn chỉnh và chọn đầu ra game của bạn dùng được.
Vì sao lưu từng khối ảnh GIF là chưa đủ
Hoạt ảnh GIF không phải lúc nào cũng là chồng ảnh đầy đủ kích thước. Khung sau có thể chỉ lưu hình chữ nhật đã thay đổi. Nó cũng mang chỉ dẫn xử lý khung cũ, cho trình phát biết phải làm gì với hình vẽ trước khi áp dụng khung tiếp theo. Nếu công cụ trích xuất bỏ qua chỉ dẫn đó, tay, chân hoặc bóng cũ vẫn hiện thành vệt. Nếu chỉ lưu hình chữ nhật, PNG xuất ra có kích thước khác nhau.
Với bảng sprite, mỗi ô cần ảnh hoàn chỉnh trên canvas nhất quán. Thứ tự đúng: áp dụng quy tắc xử lý khung trước, vẽ cập nhật hiện tại rồi chép canvas đầy đủ thành PNG cho thời điểm đó. Công cụ GIF ImageMint ghép trước xuất; không cần đặt khung mảng thủ công.

Ví dụ chuyển đổi cụ thể 12 khung
- Mở GIF nguồn trong GIF thành bảng sprite. Kiểm tra số khung hình và kích thước canvas được báo cáo. Mười hai khung hình 64 × 64 pixel phải cho mười hai đầu ra đầy đủ 64 × 64, kể cả khi các vùng cập nhật bên trong GIF nhỏ hơn.
- Với PNG lưới, đặt Ảnh mỗi hàng thành 4. Sheet kết quả có bốn cột và ba hàng, nên kích thước dự kiến là 256 × 192 pixel. Kiểm tra kích thước đơn giản này phát hiện nhiều bản xuất sai hơn bạn tưởng.
- Lưu PNG lưới nếu engine cần sheet đều. Lưu ZIP nếu muốn PNG riêng đánh số. ZIP còn chứa
frame-delays.json; giữ lại nếu GIF gốc dừng ở một số tư thế lâu hơn các tư thế khác. - Mở kết quả trong trình chỉnh sửa đích và kiểm tra khung đầu, giữa và cuối. Kiểm tra không có tư thế trước đó lưu lại và nhân vật vẫn nằm trong cùng vùng 64 × 64.
Bẫy thời gian: sheet không cho biết phát nhanh bao nhiêu
Bảng PNG lưu pixel, không lưu thời lượng khung. Hãy tưởng tượng GIF 12 khung, trong đó mười một khung kéo dài 80 ms nhưng khung cuối giữ 400 ms. Phát bảng đã xuất ở 12 fps cố định khiến mỗi khung khoảng 83 ms, nên khoảng dừng biến mất. Đó không phải lỗi trích xuất: thời gian đơn giản nằm ngoài PNG. Đọc độ trễ trong ZIP và tái tạo khung giữ trong engine, hoặc lặp khung cuối như một phép xấp xỉ có chủ ý.
Chọn đầu ra cho bước tiếp theo
| Bạn cần | Lưu | Ghi nhớ |
|---|---|---|
| Một kết cấu đồng đều cho engine | PNG lưới | Giữ số cột, kích thước ô để nhập. |
| Khung chỉnh được hoặc thời gian không đồng đều | ZIP chứa PNG | Giữ frame-delays.json cùng ảnh. |
| Số tư thế được chọn ít hơn | ZIP, rồi chỉnh sửa khung hình | Bỏ khung thay thời lượng vòng nếu không chỉnh thời gian. |
ImageMint giới hạn GIF đầu vào 20 MB, 100 khung, 1024 pixel mỗi cạnh và 20 triệu pixel khung tổng để bảo vệ thẻ. Nguồn lớn cần xử lý trước bằng editor máy tính. Chỉ tái dùng hoạt ảnh bạn sở hữu hoặc được phép.
Giữ khoảng dừng không đều khi tái tạo
Với ví dụ mười hai khung, tổng thời lượng là 11 × 80 + 400 = 1280 ms. Nếu đích chỉ hỗ trợ một thời lượng cố định, xấp xỉ tư thế giữ bằng lặp năm lần ở 80 ms. Tạo mười sáu mục timeline từ mười hai ảnh riêng và giữ tổng thời lượng. Đây là chỉnh timeline có chủ ý, không tùy chọn tự áp bởi công cụ trích.
Đừng nhầm ảnh lặp với bản trùng không muốn. Hai khung giống trực quan có thể mã hóa khoảng giữ có chủ ý. Xóa một mà không chuyển độ trễ làm hoạt ảnh ngắn. Lưu trích xuất nguyên vẹn trước rồi chỉnh bản sao khi tối ưu.
Nhập bảng không phát ô trống cuối
Nếu mười khung 64 × 64 đặt bốn cột, đầu ra 256 × 192: mười hai vị trí nhưng chỉ mười khung thật. Hai ô cuối trống. Ghi kích thước ô, cột và số khung thực cạnh tệp. Importer suy số khung chỉ từ rộng/cao cần sửa phạm vi hoạt ảnh.
Khi bản xuất sheet vượt giới hạn một cạnh, đổi số cột có thể làm hình dạng vừa giới hạn, nhưng không giảm số khung đã giải mã. Mười hai khung 64 × 64 chiếm 49,152 pixel khung trước khi tính ô không dùng. Một GIF nén rất nhỏ vẫn có thể giải mã thành chuỗi lớn, nên hãy giảm độ phân giải hoặc số khung trong trình biên tập khi vấn đề là giới hạn tổng pixel.
Danh sách kiểm tra trích cuối
- Các khung hình đầu ra có kích thước toàn bộ canvas như đã báo.
- Khung giữa và cuối không chứa tư thế trước ngoài ý muốn.
- Ứng dụng nhận dùng số khung thật, không mọi ô sheet.
- Giữ độ trễ không đều hoặc xấp xỉ có chủ ý.
- GIF gốc và quyền dùng được giữ.
Thử quy trình
Mở GIF cục bộ, rồi lưu bảng PNG đồng đều hoặc ZIP chứa các khung đầy đủ và dữ liệu thời gian.
Trích khung GIF →