MC Toolkit

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

Tranh vẽ và đĩa nhạc tùy chỉnh mà không ghi đè bản gốc

Cả hai giờ đây đều là registry của datapack, nên bạn có thể thêm mới thay vì ghi đè bản vanilla. Đây là hai tệp mà mỗi loại cần và quy tắc kích thước mà tranh vẽ phải tuân theo.

Cách cũ để có một bức tranh vẽ tùy chỉnh là ghi đè paintings_kristoffer_zetterstrand.png và làm mất một bức tranh vanilla. Cả tranh vẽ lẫn đĩa nhạc giờ đây đều là registry, nên bạn thêm vào chứ không phải thay thế.

Tranh vẽ cần hai tệp

Một mục trong datapack định nghĩa bức tranh:

data/<namespace>/painting_variant/my_art.json
{
  "asset_id": "my_pack:my_art",
  "width": 2,
  "height": 2,
  "title": { "text": "My Art" },
  "author": { "text": "Me" }
}

Và một resource pack cung cấp hình ảnh:

assets/my_pack/textures/painting/my_art.png

width và height tính theo khối, và texture phải khớp đúng tỉ lệ đó. Vanilla vẽ 16 pixel mỗi khối, nên một bức tranh 2×1 là 32×16 — nhưng 64×32 cũng hoạt động tốt tương tự. Sai tỉ lệ thì nó sẽ bị kéo giãn; không có cơ chế tự động căn chỉnh.

Kích thước vanilla từ 1×1 đến 4×4. Lớn hơn vẫn được nhưng cần một bức tường tương xứng.

Làm cho nó có thể nhận được

Thêm biến thể không tự đưa nó vào game. Có hai cách:

  • Thẻ placement — thêm nó vào #minecraft:placeable để một vật phẩm tranh vẽ thông thường có thể ngẫu nhiên trở thành nó.
  • Trực tiếp — /give @p painting[entity_data={id:"minecraft:painting",variant:"my_pack:my_art"}]

Hầu hết người làm map muốn cách thứ hai: một bức tranh cụ thể, không phải ngẫu nhiên.

Đĩa nhạc cần ba tệp

data/<namespace>/jukebox_song/my_song.json
{
  "sound_event": { "sound_id": "my_pack:music/my_song" },
  "description": { "text": "My Artist - My Song" },
  "length_in_seconds": 154,
  "comparator_output": 12
}

Cộng thêm sounds.json ánh xạ sound id đó tới một tệp, cùng với chính .ogg:

assets/my_pack/sounds.json
assets/my_pack/sounds/music/my_song.ogg

Ba chi tiết quan trọng:

  • length_in_seconds phải đúng. Nó quyết định thời điểm hộp chơi nhạc dừng — các hạt (particles), tín hiệu redstone của nó, và âm thanh, vốn bị cắt tại thời điểm đó. Quá dài nghĩa là im lặng ở cuối; quá ngắn thì cắt cụt bản nhạc.
  • comparator_output nằm trong khoảng 0–15 và là giá trị mà comparator đọc. Vanilla có 22 đĩa và chỉ có 15 giá trị, nên đã có bảy cặp dùng chung một giá trị; hãy chọn một giá trị mà không đĩa nào trong số những đĩa mà redstone của bạn cần phân biệt đang dùng.
  • Phát trực tuyến tệp ogg. Dùng "stream": true trong sounds.json cho bất cứ thứ gì dài cỡ một bản nhạc.

Sau đó gán cho nó:

/give @p music_disc_13[jukebox_playable="my_pack:my_song"]

Bất kỳ vật phẩm đĩa nào cũng dùng làm vật mang — component quyết định phát gì.

Vì sao cách này tốt hơn ghi đè

Một pack thay thế tài nguyên vanilla sẽ xung đột với mọi pack khác làm điều tương tự, và hỏng khi Mojang đổi tên tệp. Các mục thêm vào registry được đặt namespace, nên hai pack thêm tranh vẽ có thể cùng tồn tại. Đây cũng là cách duy nhất trụ được qua một lần tăng phiên bản mà không cần chỉnh sửa.

Hãy tạo các biến thể tranh vẽ, bài hát cho hộp chơi nhạc, totem và emoji chat vào một tệp zip resource pack hoàn chỉnh với Custom Content Pack Makers.

Trình tạo gói nội dung riêng →

Hướng dẫn khác

Xem tất cả →