Cách tạo một sprite sheet cho unity để làm game
Định dạng bảng Sprite
- Quy trình công việc bảng sprite đơn giản
- Xem trước hình ảnh động
một tấm sprite là gì?
Các tấm ma đã tồn tại từ những ngày đầu tiên của trò chơi máy tính. Ý tưởng là tạo một hình ảnh lớn chứa tất cả hoạt ảnh của một nhân vật thay vì xử lý nhiều tệp đơn lẻ.
Các loại tấm sprite
Dải Sprite và dải hoạt hình
Một dải hoạt hình là hình thức đơn giản nhất của một trang tính ma: Nó chỉ đặt từng khung hình động cạnh nhau. Tất cả các khung có cùng kích thước và hoạt ảnh được căn chỉnh trong mỗi khung.
bộ ngói
Nó cũng có thể chứa nhiều dòng nếu hoạt ảnh dài hơn – hoặc nếu một số hoạt ảnh được kết hợp.
Một bộ ô vuông không khác với một trang tính ma: Nó chứa các khối xây dựng cho các cấp trò chơi. Đây là một ví dụ cho bản đồ ô vuông:
Trò chơi có thể dễ dàng truy xuất các họa tiết vì tất cả chúng đều có cùng chiều rộng và chiều cao. Nhược điểm là các họa tiết lãng phí rất nhiều bộ nhớ vì tất cả độ trong suốt bổ sung.
Tối ưu hóa sprite sheet
Các nhà phát triển công cụ trò chơi nhận thức được bộ nhớ bị lãng phí trong các trang sprite đơn giản và bắt đầu tối ưu hóa không gian. Cách dễ nhất là loại bỏ độ trong suốt xung quanh sprite và thu nhỏ nó vào hộp giới hạn.
Cách hiệu quả hơn nữa là sử dụng các đường viền đa giác để cắt các họa tiết.
Công cụ trò chơi hiện cần thêm thông tin để vẽ nhân vật: Nó cần biết vị trí của nhân vật và mức độ trong suốt đã bị loại bỏ.
Thông tin này có thể được lưu trữ trong một tệp dữ liệu được gửi cùng với trang tính ma. Nó không chỉ chứa tọa độ mà còn có thể chứa tên cho các họa tiết và thông tin meta khác.
Với tệp dữ liệu này, việc nói với công cụ trò chơi rằng bạn muốn vẽ nhân vật Banana sẽ dễ dàng hơn nhiều — thay vì vẽ nhân vật ở vị trí (299,192) .
Đây là một ví dụ về trang tính ma được tối ưu hóa và tệp dữ liệu của nó có thể trông giống như:
"Apple.png": {
"frame": {"x":292,"y":304,"w":60,"h":61},
"rotated": false,
"trimmed": true,
"spriteSourceSize": {"x":23,"y":29,"w":60,"h":61},
"sourceSize": {"w":90,"h":90},
"pivot": {"x":0.5,"y":0.5}
},
"Banana.png": {
"frame": {"x":299,"y":192,"w":99,"h":113},
"rotated": false,
"trimmed": true,
"spriteSourceSize": {"x":14,"y":15,"w":99,"h":113},
"sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5}
},
...
Tạo một trang tính ma
Cách dễ nhất để tạo các trang sprite được tối ưu hóa là sử dụng TexturePacker. TexturePacker là một công cụ chuyên tạo các sprite sheet. phiên bản miễn phí cho phép bạn tạo các dải sprite và bản đồ ô vuông.
Tải xuống TexturePacker từ đây — nó có sẵn cho Windows, macOS và Linux:
Cách tạo một dải sprite
Tạo một trang sprite không yêu cầu gì hơn là kéo các sprite của bạn vào TexturePacker:

TexturePacker lấy tất cả các tệp hình ảnh trong thư mục và đóng gói trang tính cho bạn. Nó hỗ trợ nhiều định dạng hình ảnh bao gồm các tệp psd của PhotoShop và thậm chí cả phim Flash (.swf).
Khi bạn đang sử dụng phiên bản miễn phí, bạn sẽ phải thay đổi 3 tùy chọn từ các giá trị mặc định. Đây không phải là hạn chế vì bạn cần thiết lập chúng để tạo dải sprite:
- Thuật toán: Cơ bản
- Chế độ cắt: Không có
- Cấp độ tùy chọn Png: 0 (đó là trên Cài đặt nâng cao)
Nhấn nút Xuất bản – và bạn đã hoàn tất.
Cách tạo một bảng sprite được tối ưu hóa
Các dải Sprite là một khởi đầu tốt — nhưng cũng gây lãng phí bộ nhớ trong nhiều trường hợp. Nếu bạn dự định tạo một trò chơi, bạn nên tối ưu hóa trang sprite.
Điều đầu tiên là chọn công cụ trò chơi bạn định sử dụng. TexturePacker hỗ trợ hơn 30 công cụ và có thể được mở rộng để hỗ trợ bất kỳ công cụ mới nào.
Nhấp vào nút Định dạng dữ liệu trong cài đặt. Chọn công cụ bạn định sử dụng từ danh sách thả xuống:

TexturePacker tự động áp dụng các cài đặt mặc định được tối ưu hóa cho công cụ trò chơi. Nó cũng ghi một tệp dữ liệu với thông tin sprite cần thiết khi bạn nhấn Xuất bản.
Truy cập phần hướng dẫn của chúng tôi để được hướng dẫn chi tiết cách sử dụng bảng ma trận cho trò chơi.
Nguồn:https://www.codeandweb.com/texturepacker/tutorials/how-to-create-a-sprite-sheet