Guides / Building & Resources

不替换原版,也能拥有自定义画和音乐唱片

画和音乐唱片现在都成了数据包注册表,你可以添加新的,而不是覆盖原版。这里介绍了它们各自所需的文件,以及画必须遵循的尺寸规则。

以前,要获得自定义画,你必须覆盖 paintings_kristoffer_zetterstrand.png,从而失去一幅原版画。现在,画和音乐唱片都成了注册表,所以你可以添加,而不是替换。

画需要两个文件

一个定义画的数据包条目:

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

以及一个提供图像的资源包:

assets/my_pack/textures/painting/my_art.png

widthheight 的单位是方块,并且纹理必须以每方块 16 像素的比例匹配该尺寸。一幅 2×1 的画需要 32×16 的纹理。如果比例不正确,它就会被拉伸;没有自动适应功能。

原版画的尺寸从 1×1 到 4×4 不等。更大的尺寸也可以,但需要一面匹配的墙。

如何获取

添加变体并不会将其放入游戏中。有两种途径:

  • 放置标签 — 将其添加到 #minecraft:placeable,这样普通的画物品就有可能随机变成它。
  • 直接获取/give @p painting[entity_data={id:"minecraft:painting",variant:"my_pack:my_art"}]

大多数地图制作者想要第二种方式:一幅特定的画,而不是随机的。

音乐唱片需要三个文件

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
}

再加上将该声音 ID 映射到文件的 sounds.json,以及 .ogg 本身:

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

有三个细节很重要:

  • length_in_seconds 必须正确。 它决定了唱片机何时停止以及粒子流何时结束,而不是音频。错误的值意味着结尾处一片寂静或被截断。
  • comparator_output 的值是 1-15,是比较器读取的值。原版唱片都有一个独特的值;如果重复使用一个值,红石就无法区分它们。
  • 流式传输 ogg 文件。 对于任何音乐长度的音频,请在 sounds.json 中使用 "stream": true

然后给予它:

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

任何唱片物品都可以作为载体——组件决定播放什么。

为什么这比覆盖更好

替换原版资源的包会与所有其他做同样事情的包发生冲突,并且当 Mojang 重命名文件时会损坏。注册表添加是带命名空间的,所以两个添加画的包可以共存。这也是唯一一种无需编辑即可在版本更新后继续使用的方法。

将画的变体、唱片机歌曲、图腾和聊天表情符号构建到一个准备好的资源包 zip 文件中,请使用 Custom Content Pack Makers

自定义内容包生成器 →

More guides

Browse all →

还想找别的我的世界工具?

一整套在浏览器里运行的生成器、查看器和转换器,全部免费。