
圆形的自定义画作
将你自己的自定义画作添加到Minecraft中。

将你自己的自定义画作添加到 Minecraft!想加多少就加多少,无需局限于重绘原版画作的纹理!每幅画都可以拥有自定义尺寸和纹理,甚至还有名称和作者标签。使用自定义“画作包”,即可将自定义画作添加到任意世界,甚至服务器!

开箱即用,你还会看到一个内置画作包,其中包含游戏资源中自带的四幅元素主题画作,这些画作原本通常无法放置。尽情享受你时尚的气、土、火、水画作吧!

为了更好地配合你游戏中的所有画作,本模组还创建了一个画作选择菜单。放置画作时不再由游戏随机选择,而是会打开一个菜单,让你选择画作包和画作,并附有搜索和过滤功能。现在你每次都能在第一时间放置你想要的那幅画!

本模组还为每幅画提供了专属的物品图标——既有来自你已安装画作包的,也有原版变体的!每幅画的艺术图都会被缩小,并加上挂架和阴影,以适配标准的 16×16 物品形状,这样你在物品栏、快捷栏和物品展示框中都能一眼分辨出每幅画。灵感大量来自 Vanilla Tweaks 的“Unique Painting Items”资源包。自定义画作包和原版画作的渲染在客户端配置中各自拥有独立的开关。

请注意,本模组不包含任何新画作。你需要自行提供! 你可以在不添加任何画作包的情况下使用本模组,它仍然会提供那些隐藏画作和全新的画作选择菜单。不过,如果你正在寻找支持本模组的画作包,不妨看看我的 Famous Real Paintings 画作包,它添加了现实中世界上一些最著名画作的风格化呈现!
将画作包添加到你的世界
将画作包添加到世界的最简单方法,是把它放进世界存档内的 custompaintings 文件夹,即 .minecraft/saves/My Awesome World/custompaintings/FamousPaintings-1.0.zip。画作包可以是 zip 或文件夹形式。
└── .minecraft/
├── config/
├── logs/
├── resourcepacks/
├── saves/
│ └── My Awesome World/
│ ├── advancements/
│ ├── custompaintings/
│ │ └── FamousPaintings-1.0.zip ᐊ
│ ├── data/
│ ├── datapacks/
│ ├── DIM1/
│ ├── DIM-1/
│ ├── entities/
│ ├── playerdata/
│ ├── poi/
│ ├── region/
│ ├── stats/
│ └── level.dat
├── options.txt
└── servers.dat
你也可以通过打开模组主菜单(见下文),进入“管理画作包”界面,然后将画作包的 zip 文件或文件夹拖拽到游戏窗口中来为世界添加画作包,操作方式与资源包类似。模组会自动完成文件复制,并自动刷新列表,让你知道操作已成功!

创造模式物品栏
与原版画作类似,你的所有自定义画作都会出现在创造模式物品栏的功能方块类别下。物品模型全部根据你提供的纹理和画作尺寸在运行时动态生成,呈现出令人惊讶的高质量画作近似效果!灵感大量来自 Vanilla Tweaks 的“Unique Painting Items”资源包。此功能可通过客户端配置和配置菜单切换。
切石机配方
基于 Vanilla Tweaks 的“Painting Picker”数据包,你自定义画作的所有独特物品也会以切石机配方的形式提供!只需在输入槽放入通用/随机画作物品,你就能制作绑定到特定画作的物品,放置时会跳过 UI,始终放置该变体!原版画作变体也同样适用——放入一幅通用画作,选择你想要的精准 Kebab、Aztec 等,包括原本无法放置的气、土、火、水元素画作。自定义画作包和原版画作的配方在服务端/每世界配置中各自拥有独立的开关。
将画作包添加到你的服务器
将画作包添加到服务器必须由具有服务器文件系统访问权限的服务器管理员完成。与在单人世界中安装类似,只需将画作包复制到服务器世界存档内的 custompaintings 文件夹中。
└── <server root> /
├── config/
├── logs/
├── world/
│ ├── advancements/
│ ├── custompaintings/
│ │ └── FamousPaintings-1.0.zip ᐊ
│ ├── data/
│ ├── datapacks/
│ ├── DIM1/
│ ├── DIM-1/
│ ├── entities/
│ ├── playerdata/
│ ├── poi/
│ ├── region/
│ ├── stats/
│ └── level.dat
├── banned-ips.json
├── banned-players.json
├── eula.txt
├── ops.json
├── server.properties
├── usercache.json
└── whitelist.json
从 3.0.0 之前的资源包迁移
如果你在 3.0.0 改用服务端驱动的自定义格式画作包之前就在使用 Custom Paintings(也就是说,你仍然有资源包形式的画作包),迁移到新版本最简单的方法就是直接安装新版本的模组并进入你的世界!然后,如果你打开模组主菜单(可以通过 Mod Menu(如果安装了)或通过按键绑定——关于模组主菜单的更多信息请见下文对应章节),并进入“转换旧版画作包”界面。你应该能在那里看到你的资源包形式的画作包,点击即可将每一个直接迁移为新格式并安装到当前世界中!
如果你想一次性为多个世界或服务器快速转换它们,请取消勾选顶部的开关(或者在不连接世界时访问同一界面),将转换后的画作包输出到一个通用临时目录,然后点击“打开输出文件夹”,在你的电脑文件浏览器中查看它们!
创建画作包——完整画作包格式
画作包格式
本模组的自定义画作由画作包驱动。要为模组创建画作包,请在你的电脑上某处为它创建一个文件夹,并给它取一个有用的名称,例如“Scott's Custom Paintings”。在该文件夹内,再创建一个名为“images”的文件夹,并将所有画作图片复制进去。确保它们都是 PNG 图像文件。如果你有其他格式,可以使用在线文件转换器进行转换(用你最喜欢的搜索引擎找一个;网上有很多很多)。然后,在画作包的根文件夹内,再创建一个名为 custompaintings.json 的文件。
.
└── Scott's Custom Paintings/
├── images/
│ ├── castlescape.png
│ ├── sunsetbeach.png
│ ├── worldmap.png
│ └── spookyforest.png
└── custompaintings.json
打开 custompaintings.json 文件,填入类似以下内容:
{
"id": "scottscustompaintings",
"name": "Scott's Custom Paintings",
"description": "Scott's Custom Paintings",
"paintings": [
{
"id": "castlescape",
"name": "Castle in the Mountains",
"artist": "Scott Lang",
"width": 2,
"height": 3
},
{
"id": "sunsetbeach",
"name": "Sunset at the Beach",
"artist": "Claude Monet",
"width": 2,
"height": 2
},
{
"id": "worldmap",
"name": "World Map",
"artist": "Scott Lang",
"width": 4,
"height": 3
},
{
"id": "spookyforest",
"name": "Nighttime Forest",
"artist": "Scott Lang",
"width": 3,
"height": 1
}
]
}
画作包属性
id: Text; alphanumeric, underscores, and dashes only - 画作包的唯一 ID。它必须与其他所有画作包不同(也不同于其他添加自定义画作的 Fabric 模组的模组 ID)。
name: Text (optional) - 在画作选择菜单中为此画作包显示的名称。如果省略,UI 将直接显示资源包的文件名。
description: Text (optional) - 在画作选择菜单中显示的画作包简短描述。
paintings: List[Painting] - 在画作选择 UI 中可供选择的所有画作的定义。每幅画的 id 应对应图像的 文件名(不含 '.png')。
migrations: List[Migration] - 与此画作包关联的自动迁移。你不太可能需要手动创建其中一个,但独立的画作包编辑器(即将推出)可以在你将大型画作包拆分为多个较小画作包时为你生成它们。
画作属性
每幅画都需要定义自己的属性,以告诉模组这些画作应如何在游戏中显示。
id: Text; alphanumeric, underscores, and dashes only - 画作的唯一 ID。它应对应画作包“images”文件夹中该画作 PNG 图像文件的名称(不含 '.png')。
name: Text (optional) - 画作的名称。
artist: Text (optional) - 画作的作者。
width: Integer - 此画作应占据的方块宽度。例如,原版 Donkey Kong 画作的值会是 4。
height: Integer - 此画作应占据的方块高度。例如,原版 Donkey Kong 画作的值会是 3。
模组主菜单
本模组自带一个主菜单,用于访问一整套处理本模组的实用工具。如果你安装了 Mod Menu,你可以在模组列表中找到本模组的配置按钮来打开主菜单。

否则,你可以在 Minecraft 的原版按键绑定菜单中配置一个按键绑定(默认是 U 键),按下时会打开 Custom Paintings 主菜单。

这两种方式都会打开模组主菜单,其中的按钮可导航到你使用 Custom Paintings 模组所需的全部配置、管理和实用工具!

每一项配置选项
管理模组配置(针对客户端/单人游戏设置)最简单的方式是通过 UI。从主菜单进入配置页面,即可在游戏内调整你的设置。

本模组有多个配置文件来调整模组行为。有些仅客户端配置位于 Minecraft 安装文件夹内的主 config 文件夹中,而世界专属配置则位于存档文件(服务器上为 world)文件夹内。
客户端/全局配置
你的客户端有一个“全局”配置文件,适用于你所有的单人世界。它位于 <minecraft directory>/config/custompaintings.toml。你也可以通过主菜单中的配置界面来修改它。
Override vanilla render distance (overrideRenderDistance): true|false - 是否覆盖游戏的默认画作渲染距离阈值。默认情况下,画作与其他所有实体以相同距离渲染,但启用此项将允许你强制游戏从更远处渲染它们。默认值为 false。
Render distance scale (renderDistanceScale): Integer; 1-64 - 用于缩放画作渲染距离阈值的倍数。数值越大表示从越远处渲染。仅在 overrideRenderDistance 为 true 时生效。默认值为 16。
Cache images from the server locally (cacheImages): true|false - 是否缓存从服务器下载的画作图像。这样做可以减少加载时间并节省网络/服务器资源,但意味着要将图像永久存储在磁盘上,可能会占用大量空间。默认值为 true。
Number of days to retain cached images (cacheTtl): Integer; 1-1000 - 缓存的画作图像在被标记为过期并自动删除之前,应在缓存中存储多长时间。默认值为 14。
Silence all legacy pack conversion prompts (silenceAllConvertPrompts): true|false - 是否静默关于将旧版(3.0.0 之前)资源包形式的画作包转换为新格式的提示。进入世界后,模组会检查你的 resourcepacks 文件夹中是否有任何旧式画作包,并提示你从模组主菜单转换它们。将此设为 true 可全局静默它们。默认值为 false。
Render the artwork on custom painting items (renderArtworkOnItems): true|false - 是否在每幅自定义画作的画作物品图标上渲染其艺术图(在物品栏、快捷栏、物品展示框等中)。当为 false 时,自定义画作物品会回退到通用原版画作图标。默认值为 true。
Render the artwork on vanilla painting items (renderVanillaArtworkOnItems): true|false - renderArtworkOnItems 的原版对应项:当物品堆叠标识了特定变体时(例如创造模式物品栏中的画作条目),是否在原版画作变体(Kebab、Aztec、Earth 等)的物品上渲染画作艺术图。当为 false 时,这些物品使用通用原版画作图标。默认值为 true。
单人游戏每世界配置
每个世界的存档文件夹中也有一个配置文件,即 <minecraft directory>/saves/My World/config/custompaintings.toml。如果你处于单人世界中,也可以从与客户端配置相同的游戏内菜单修改这些设置。
Silence legacy pack conversion prompts for this world (silenceConvertPrompt): true|false - 与客户端配置中的 silenceAllConvertPrompts 相同,只是针对当前世界。默认值为 false。
Use the stone cutter to choose specific paintings (pickPaintingWithStoneCutter): true|false - 是否为当前启用的自定义画作包中的每幅画添加切石机配方,从而可以将通用画作物品切割成绑定到特定自定义画作变体的物品(放置时跳过选择 UI)。默认值为 true。
Use the stone cutter to choose specific vanilla paintings (pickVanillaPaintingWithStoneCutter): true|false - pickPaintingWithStoneCutter 的原版对应项:是否为每种可放置的原版画作变体(Kebab、Aztec 等)添加切石机配方。默认值为 true。
服务端配置
最后,服务器上有一个配置文件,位于世界存档文件夹内,即 <server root>/world/config/custompaintings.toml。你需要访问服务器文件系统才能更改其中任何设置。
Throttle image transfers to clients (throttleImageDownloads): true|false - 是否限制玩家加入服务器时向其发送自定义画作图像的速率。强烈建议保持启用,尤其是当你有一个中到大型规模的服务器(10 名以上玩家)时。默认值为 true。
Maximum number of image packets per second (maxImagePacketsPerSecond): Integer; 0-∞ - 每秒发送给已连接客户端的图像网络数据包的最大数量。仅在 throttleImageDownloads 为 true 时生效。设为 0 可按数据包数量禁用限流。默认值为 40。
Maximum number of image packets per second per client (maxPerClientImagePacketsPerSecond): Integer; 0-∞ - 以每个客户端为单位,每秒发送给已连接客户端的图像网络数据包的最大数量。仅在 throttleImageDownloads 为 true 时生效。设为 0 可按每客户端的数据包数量禁用限流。
Maximum size for each image packet in KB (maxImagePacketSize): Integer; 0-∞:可发送给客户端的每个画作图像网络数据包的最大大小,单位为 KB。仅在 throttleImageDownloads 为 true 时生效。设为 0(不推荐)会将所有图像完整地以单个网络数据包发送。默认值为 256。
启用或禁用画作包,或将画作包添加到你的世界
打开画作包界面会向你显示世界/服务器中所有可用画作包的摘要。对于单人游戏,以及如果你在服务器上拥有 OP 权限,你会看到类似于资源包界面的内容,让你无需手动处理文件即可启用和禁用画作包。
在单人世界中,你还可以将画作包拖放到游戏上,直接将其添加到世界中。

将旧版(3.0.0 之前)画作包转换为新格式
如果你已经为模组旧版本(使用资源包系统)准备了画作包,本模组可以帮助你将这些画作包迁移到新格式,甚至直接将它们添加到你的世界中。

卸载本模组与数据完整性
从 v3.0.0 起,Custom Paintings 现在会将你的所有画作选择和相关数据存储在世界存档文件夹内的独立文件中。这意味着在未安装模组的情况下加载游戏(例如升级到新的 Minecraft 版本后)是安全的,不会有丢失数据的风险!当你决定再次安装模组时,所有数据都会被加载,你的画作也会被恢复。
3.0.0 之前(资源包)版本
在 3.0.0 之前,Custom Paintings 是基于资源包的,而非服务端驱动。如果你来自旧版本,或手头有旧的画作包,以下是那些工作方式不同的部分:
画作包就是 Minecraft 资源包。 不是将画作包放入世界的
custompaintings/文件夹,而是将其放在resourcepacks/中,并像其他任何资源包一样启用它——没有游戏内画作包管理或拖放安装,也没有服务端图像传输。在多人游戏中,每位玩家(以及服务器)都必须安装该模组,并拥有完全相同版本的相同画作包,否则画作将无法渲染。该模组实际上主要是为单人游戏设计的。纹理位于画作包的
assets目录树内。custompaintings.json放在资源包的根目录,而每幅画的 PNG 放在assets/<pack id>/textures/painting/<painting id>.png——画作包id决定了纹理目录。(3.0.0+ 格式改为使用带有images/子文件夹的独立画作包文件夹。)图像为 PNG,理想情况下每方块 16 像素。JSON 模式略有不同。 画作包
id只允许字母数字和下划线(不允许连字符),没有description字段,任何没有匹配条目的画作纹理都默认为 1×1。画作name和artist字段在 v2.0.0 中添加。除此之外,paintings和migrations列表的工作方式相同。管理通过命令/按键绑定驱动。 没有统一的主菜单。清理界面(未知画作、不匹配画作、运行迁移)通过
/custompaintings manage或“杂项”按键绑定部分中一个未绑定的按键绑定进入,而/custompaintings命令套件的其余部分(identify、count、fix、move、reassign、remove)则从聊天中处理针对性的修复。
链接
也可在 Modrinth · GitHub 上的源码 · 报告问题 上找到
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。