跳到正文

Round’s Custom Paintings

作者:Roundaround

将自定义画作添加到 Minecraft 中。

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

Custom Paintings


在 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”数据包,自定义画作的所有独特物品也都可以通过切石机配方获得!只需将通用/随机画作物品放入输入槽,就能制作绑定到特定画作的物品;它们会跳过选择界面,始终放置对应的画作变体!原版画作变体也一样——放入通用画作,就能挑选你想要的确切画作,例如 Kebab、Aztec 等,还包括原本无法放置的 Air、Earth、Fire 和 Water 元素画作。自定义整合包与原版画作的配方可以分别在服务端/每个世界的配置中启用或禁用。

将画作整合包添加到服务器

将整合包添加到服务器,需要由能够访问服务器文件系统的服务器管理员操作。与在单人游戏世界中安装类似,只需将整合包复制到服务器世界存档中的 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,可以通过它打开;也可以使用按键绑定——更多信息请参阅下文有关模组主菜单的部分),再进入“Convert Legacy Packs”界面。你应该会看到列出的资源包风格画作整合包,点击即可逐个将其转换为新格式,并直接安装到当前世界!

如果你想一次性快速转换多个世界或服务器所用的整合包,请取消勾选顶部的开关(也可以在未连接到世界时打开同一界面),将转换后的整合包输出到通用临时目录,然后点击“Open Output Folder”,即可在电脑的文件浏览器中查看!

创建画作整合包——完整格式说明

整合包格式

此模组的自定义画作由画作整合包提供。要为模组创建画作整合包,请在电脑上的某个位置为它创建一个文件夹,并取一个便于识别的名称,例如“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。它必须与所有其他画作整合包的 ID 不同(也不能与其他添加自定义画作的 Fabric 模组 ID 相同)。

name:Text (optional) – 在画作选择器中显示的整合包名称。如果省略,界面将直接显示资源包的文件名。

description:Text (optional) – 在画作选择器中显示的整合包简短描述。

paintings:List[Painting] – 画作选择器界面中可选的所有画作定义。每幅画作的 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。

模组主菜单

本模组附带一个主菜单,可用于访问一系列模组相关工具。如果你安装了模组菜单,可以在模组列表中通过本模组的配置按钮打开主菜单。

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

这两种方式都会打开本模组的主菜单,其中包含用于前往各项配置、管理和实用工具的按钮,满足你使用 Custom Paintings 模组时的需要!

所有配置选项

管理模组配置(客户端/单人游戏设置)最简单的方式是使用界面。在主菜单中前往配置页面,即可在游戏内调整设置。

本模组有多个配置文件,可用于调整模组行为。部分仅限客户端的配置位于 Minecraft 安装文件夹中的主配置文件夹内;此外,还有针对特定世界的配置,位于存档文件(服务器上为world)文件夹中。

客户端/全局配置

客户端有一个“全局”配置文件,会应用于你的所有单人游戏世界。文件位于
<minecraft directory>/config/custompaintings.toml。你也可以通过主菜单中的配置界面进行修改。

覆盖原版渲染距离(overrideRenderDistance):true|false – 是否覆盖游戏默认的画作渲染距离阈值。默认情况下,画作与其他实体的渲染距离相同;启用此选项后,你可以强制游戏在更远的距离渲染画作。默认值为 false。

渲染距离倍率(renderDistanceScale):Integer; 1-64 – 用于缩放画作渲染距离阈值的数值。数值越高,画作渲染距离越远。仅当 overrideRenderDistance 为 true 时生效。默认值为 16。

在本地缓存服务器上的图片(cacheImages):true|false – 是否缓存从服务器下载的画作图片。这样可以缩短加载时间,并节省网络和服务器资源;但图片会永久存储在磁盘上,可能占用大量空间。默认值为 true。

缓存图片的保留天数(cacheTtl):Integer; 1-1000 – 缓存中的画作图片应保留多长时间,之后会被标记为过期并自动删除。默认值为 14。

静默所有旧版资源包转换提示(silenceAllConvertPrompts):true|false – 是否静默提示将旧版(3.0.0 之前)资源包格式的画作包转换为新格式。加入世界后,模组会检查你的 resourcepacks 文件夹中是否有旧格式的画作包,并在模组主菜单中提示你进行转换。将此项设为 true 可在全局范围内静默这些提示。默认值为 false。

在自定义画作物品上渲染画作图案(renderArtworkOnItems):true|false – 是否在每个自定义画作物品的图标上渲染对应的画作图案(例如在物品栏、快捷栏、物品展示框中)。当 false 时,自定义画作物品会使用通用的原版画作图标。默认值为 true。

在原版画作物品上渲染画作图案(renderVanillaArtworkOnItems):true|false – 这是 renderArtworkOnItems 的原版对应选项:当物品堆叠标识了具体变体时,是否在原版画作变体(Kebab、Aztec、Earth 等)的物品上渲染对应的画作图案,例如创造模式物品栏中的画作条目。当 false 时,这些物品会使用通用的原版画作图标。默认值为 true。

单人游戏的世界专属配置

每个世界的存档文件夹中也有一个配置文件,例如
<minecraft directory>/saves/My World/config/custompaintings.toml。如果你正在游玩单人游戏世界,也可以在与客户端配置相同的游戏内菜单中修改这些设置。

对此世界静默旧版资源包转换提示(silenceConvertPrompt):true|false – 与客户端配置中的 silenceAllConvertPrompts 相同,但仅对当前世界生效。默认值为 false。

使用切石机选择特定画作(pickPaintingWithStoneCutter):true|false – 是否为当前启用的自定义资源包中的每幅画作添加切石机配方,让通用画作物品可以切割成绑定特定自定义画作变体的物品(放置时跳过选择界面)。默认值为 true。

使用切石机选择特定的原版画作 (pickVanillaPaintingWithStoneCutter):true|false – pickPaintingWithStoneCutter 的原版对应项:是否为每种可放置的原版画作变体(Kebab、Aztec 等)添加切石机配方。默认为 true。

服务器端配置

最后,服务器上还有一个配置文件,位于世界存档文件夹内,即 <server root>/world/config/custompaintings.toml。你需要访问服务器的文件系统才能更改这些设置。

限制向客户端传输图像 (throttleImageDownloads):true|false – 玩家加入服务器时,是否限制向客户端发送自定义画作图像的速率。强烈建议启用此选项,尤其是对于中大型服务器(10 名以上玩家)。默认为 true。

每秒图像数据包的最大数量 (maxImagePacketsPerSecond):Integer; 0-∞ – 每秒向已连接的客户端发送的图像网络数据包的最大数量。仅当 throttleImageDownloads 为 true 时生效。设为 0 可禁用按数据包数量限制。默认为 40。

每个客户端每秒图像数据包的最大数量 (maxPerClientImagePacketsPerSecond):Integer; 0-∞ – 按客户端分别计算时,每秒向已连接客户端发送的图像网络数据包的最大数量。仅当 throttleImageDownloads 为 true 时生效。设为 0 可禁用按客户端分别进行的数据包数量限制。

每个图像数据包的最大大小(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 上的源代码 · 报告问题

Support me on Ko-fi

常见问题

Round’s Custom Paintings 支持哪些 Minecraft 版本?

Round’s Custom Paintings 支持 Minecraft Java 版 1.19–26.3,共 29 个版本,可用的加载器:Fabric / Forge / NeoForge / Quilt。下载时注意选择和你游戏版本一致的文件。

Round’s Custom Paintings 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge / Quilt,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

Roundaround 的其他作品

查看全部 →