MC Toolkit

Hướng dẫn / Xây dựng & tài nguyên

Ẩn và thay đổi kích thước các thành phần HUD bằng resource pack

Thanh hotbar, tâm ngắm và thanh XP đều nằm trong một texture atlas. Đây là cách làm cho từng phần của nó trở nên vô hình, những gì không thể di chuyển, và thủ thuật font để tạo chữ HUD tùy chỉnh.

Không có tệp cấu hình nào để ẩn thanh hotbar. Thứ tồn tại là một texture — và làm cho một phần của nó trở nên trong suốt sẽ khiến nó biến mất khỏi tầm nhìn trong khi mọi thứ vẫn hoạt động bình thường.

Mọi thứ đều nằm trong một thư mục

assets/minecraft/textures/gui/sprites/hud/

Các phiên bản hiện đại đã tách atlas widgets.png cũ thành từng sprite riêng lẻ: hotbar.png, crosshair.png, experience_bar_background.png, heart/full.png, v.v. Thay thế bất kỳ sprite nào bằng một tệp PNG hoàn toàn trong suốt có cùng kích thước sẽ ẩn nó đi.

Cùng kích thước là điều quan trọng đối với bất cứ thứ gì bạn vẽ. Theo mặc định, sprite sẽ giãn ra để lấp đầy ô của nó, nên một khung vẽ nhỏ hơn có hình vẽ bên trong sẽ bị kéo mờ nhem nhuốc. Một sprite hoàn toàn trong suốt thì ẩn được ở bất kỳ kích thước nào — vì đâu có gì để kéo mờ.

Những gì bạn có thể và không thể làm

Có thể:

  • ẩn bất kỳ thành phần nào bằng cách làm cho sprite của nó trở nên trong suốt
  • thay đổi diện mạo mọi thứ — tim khác đi, tâm ngắm tối giản, hotbar theo chủ đề
  • thay đổi kích thước biểu kiến bằng cách vẽ nội dung nhỏ hơn bên trong một khung vẽ cùng kích thước

Không thể:

  • di chuyển một thành phần. Vị trí được lập trình cứng; chỉ có phần hình vẽ là dữ liệu.
  • ẩn các ô của hotbar tách rời khỏi khung — chúng là một sprite duy nhất.
  • thay đổi chức năng của một ô. Việc này chỉ mang tính hình thức, và vật phẩm vẫn có thể chọn được.

Điểm cuối cùng này đáng nói rõ: một hotbar bị ẩn vẫn là một hotbar. Đây không phải là giới hạn túi đồ, và Người chơi vẫn có thể sử dụng các ô đó.

Cái bẫy nine-slice

Một số sprite GUI là nine-sliced — các góc cố định, các cạnh giãn ra. Trong HUD thì chỉ có nền của thanh locator bar là như vậy; còn hầu hết các nút và hộp ở nơi khác trong gui/sprites/ thì đều vậy. Một tệp .mcmeta nằm cạnh tệp PNG sẽ khai báo các đường viền:

{ "gui": { "scaling": { "type": "nine_slice", "width": 200, "height": 20,
  "border": { "left": 2, "top": 2, "right": 2, "bottom": 2 } } } }

Thay thế một sprite như vậy mà không khớp với tệp mcmeta thì nó sẽ giãn sai. Khi không chắc chắn, hãy sao chép tệp .mcmeta gốc đi kèm với tệp PNG của bạn.

Chữ HUD tùy chỉnh thông qua font

Thủ thuật thực sự mạnh mẽ: định nghĩa một font provider mà các glyph của nó là hình ảnh, rồi in những ký tự đó bằng /title hoặc một bossbar. Văn bản sẽ hiển thị dưới dạng hình vẽ của bạn.

assets/minecraft/font/default.json

Đặt nó trong namespace minecraft thì các provider của bạn sẽ được gộp chung với font mặc định gốc. Nếu giữ namespace riêng của mình thì mọi thành phần văn bản sử dụng nó đều phải khai báo rõ, bằng "font":"my_pack:default".

{ "providers": [
  { "type": "bitmap", "file": "my_pack:font/icons.png", "ascent": 8, "height": 9,
    "chars": [""] }
] }

Hãy dùng các codepoint dành riêng cho mục đích cá nhân ( trở lên) để không xung đột với văn bản thật. Sau đó /title @a actionbar {"text":""} sẽ vẽ hình ảnh của bạn lên action bar.

Đây là cách các server hiển thị thanh máu tùy chỉnh, biểu tượng tiền tệ và thước đo tiến trình mà không cần mod phía client — chỉ cần một resource pack.

Font khoảng trắng âm

Định nghĩa một glyph với advances âm và bạn có thể di chuyển con trỏ ngược lại, xếp chồng các hình ảnh lên nhau. Đó chính là kỹ thuật đằng sau những HUD server trông như giao diện chỉnh chu. Nó khá rắc rối, và đây là cách duy nhất để định vị bất cứ thứ gì.

Hãy ẩn hoặc thay đổi diện mạo các thành phần HUD và tạo font provider với các codepoint được phân bổ sẵn cho bạn trong HUD Customizer & Font Pack Maker.

Trình tùy chỉnh HUD & tạo gói phông chữ →

Hướng dẫn khác

Xem tất cả →