跳到主要内容

🖼️ 第一张图片

使用 <image:tutorial:star> 标签,可以在物品名、聊天消息和 GUI 中插入 PNG 图标。

原理

CraftEngine 会将 PNG 注册为字体中的一个字符,再通过 <image:命名空间:ID> 标签显示。玩家看到的是图标,而游戏会将其作为文字处理。

第 1 步:存放 PNG 文件

⬇ 下载星星图标,并将其放入 textures/font/。与模型贴图不同,字体图片不限尺寸,也不要求边长为 2 的幂:

resourcepack/assets/tutorial/textures/font/star.png
resourcepack/assets/tutorial
textures

⚠️ 不要将字体图片放入 textures/item/textures/block/ 这些目录由贴图图集管理,字体图片被纳入图集后可能导致 mipmap 意外降级。

第 2 步:定义图片

configuration/ 下新建 images.yml

images:
tutorial:star:
height: 10
ascent: 9
font: tutorial:ui
file: tutorial:font/star

字段说明

字段必需说明
filePNG 路径。.png 后缀自动补。对应 textures/font/star.png
height字形高度(像素)。省略则自动读取 PNG 高度
ascent基线偏移。越大越靠上。默认 height - 1
font所属字体。默认 命名空间:default
char映射到的码点。建议留空,由 CraftEngine 自动分配空闲码点,避免冲突

⚠️ 受 Minecraft 限制,height 必须大于或等于 ascent。如果需要提高 ascent,可以在 PNG 底部添加透明像素来增大 height

⚠️ 单个字形不超过 256×256 像素。

💡 为什么使用自定义字体? 使用 minecraft:default 时,玩家可以在聊天框中直接输入图标对应的原始字符。改用自定义字体(如 tutorial:ui)后,只有加载了资源包的客户端才能将这些字符渲染为图标,能避免玩家直接输入。

第 3 步:在物品名中使用图片

items:
tutorial:star_sword:
material: diamond_sword
data:
item_name: "<!i><white><image:tutorial:star> 星之剑"

依次运行 /ce reload all/ce item get tutorial:star_sword,剑的名称前便会出现星星图标。

带星标的剑

<image:命名空间:ID> 在任何解析 MiniMessage 的地方都能用——物品名、lore、聊天、GUI、告示牌。

预览调试

/ce debug image tutorial:star

该命令会输出 MiniMessage、MineDown 和原始 JSON 三种格式,并提供可点击复制的按钮。