Hướng dẫn / Xây dựng & tài nguyên
Bộ giáp bạn đang thay texture không phải là bộ bạn nghĩ
Giáp được chia lớp và tách riêng theo từng chất liệu, nên nếu tô nhầm file, gói texture của bạn sẽ trông như chưa hề thay đổi trong game.
Giáp là dự án đầu tiên phổ biến nhất khi làm gói texture, và cũng là thất bại đầu tiên phổ biến nhất. Bạn tô một chiếc áo giáp, nạp gói vào, và không có gì thay đổi — vì file bạn sửa không phải là file mà game đọc cho món đó.
Mỗi chất liệu giáp là một file riêng
Không có một file armor.png duy nhất nào cả. Giáp xích, đồng, sắt, vàng, kim cương, netherite, da thuộc và vảy rùa mỗi loại đều có file riêng (da thuộc thêm một leather_overlay cho thuốc nhuộm), và mỗi lớp là một ảnh riêng. Một bộ đầy đủ không phải là một texture; nó là cả một họ texture nhỏ, được tách theo ô trang bị và theo lớp.
Hệ quả thực tế: một gói đổi màu giáp kim cương sẽ không làm gì với giáp sắt. Nếu mục tiêu của bạn là "làm cho mọi bộ giáp trông giống X", bạn đang sửa một file cho mỗi chất liệu, chứ không phải một file tổng.
Việc tách lớp, và tại sao nó quan trọng
Giáp của người chơi đọc hai file cho mỗi chất liệu:
| File | Phần nó bao phủ |
|---|---|
humanoid/<material>.png | Mũ, áo giáp, ủng |
humanoid_leggings/<material>.png | Chỉ quần giáp |
Quần giáp có file riêng vì chúng dùng cùng vùng thân và chân của bản trải phẳng như áo giáp và ủng, được vẽ trên một mô hình nhỏ hơn một chút bên dưới chúng. Tô humanoid/ rồi tự hỏi tại sao quần giáp không đổi, và bạn đã tự mình phát hiện ra sự tách lớp theo cách khó nhằn nhất. Động vật con đọc file thứ ba, humanoid_baby/<material>.png.
Cánh cứng và cái bẫy trim
Cánh cứng không phải là giáp theo nghĩa file — nó có texture riêng, và không kế thừa chất liệu giáp. Một gói thay diện mạo áo giáp sẽ để cánh cứng y nguyên.
Trim còn tệ hơn. Họa tiết trim và chất liệu trim là những registry riêng, và một trim hiển thị như một lớp phủ dịch bảng màu đè lên texture giáp gốc. Bạn không thể tô một trim vào file giáp; game sẽ ghép nó lại lúc chạy. Đổi màu giáp bên dưới một trim sẽ thay đổi phần gốc, chứ không phải trim.
Java và Bedrock khác nhau ở điểm này
Java đọc giáp từ assets/minecraft/textures/entity/equipment/humanoid/<material>.png và .../humanoid_leggings/<material>.png, và assets/minecraft/equipment/<material>.json cho biết một chất liệu dùng những file nào. Thư mục textures/models/armor/ cũ, vẫn còn trong nhiều bài hướng dẫn, đã không còn được đọc kể từ 1.21.2. Bedrock dùng bố cục riêng và cách đặt tên riêng, và một gói dựng cho bản này sẽ không nạp được vào bản kia. Nếu bạn nhắm đến cả hai, bạn đang dựng hai gói.
Làm việc ở kích thước thật
Texture giáp không phải 16×16. Chúng là 64×32, được bố trí như một mô hình trải phẳng — đầu, thân, tay và chân trong một ảnh, ở những vùng cố định. Tô một ô vuông 16×16 rồi phóng to sẽ cho ra kết quả nhem nhuốc, vì bạn đang kéo giãn một vùng ra khắp bản trải phẳng.
Cách làm đáng tin cậy là bắt đầu từ chính file vanilla, ở kích thước gốc của nó, rồi tô đè lên. Như vậy các vùng sẽ khớp nhau, kênh alpha được giữ nguyên, và đường dẫn đầu ra khớp với thứ mà game thay thế.
Texture Maker bao quát các texture khối và vật phẩm vuông; còn với giáp, hãy mở file vanilla 64×32 trong trình chỉnh sửa ảnh và tô đè lên ở đúng kích thước đó.