🖼️ 第一张图片
使用 <image:tutorial:star> 标签,可以在物品名、聊天消息和 GUI 中插入 PNG 图标。
原理
CraftEngine 会将 PNG 注册为字体中的一个字符,再通过 <image:命名空间:ID> 标签显示。玩家看到的是图标,而游戏会将其作为文字处理。
第 1 步:存放 PNG 文件
⬇ 下载星星图标,并将其放入 textures/font/。与模型贴图不同,字体图片不限尺寸,也不要求边长为 2 的幂:
resourcepack/assets/tutorial/textures/font/star.png
textures
⚠️ 不要将字体图片放入
textures/item/或textures/block/。 这些目录由贴图图集管理,字体图片被纳入图集后可能导致 mipmap 意外降级。
第 2 步:定义图片
在 configuration/ 下新建 images.yml:
images:
tutorial:star:
height: 10
ascent: 9
font: tutorial:ui
file: tutorial:font/star
字段说明
| 字段 | 必需 | 说明 |
|---|---|---|
| file | 是 | PNG 路径。.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 三种格式,并提供可点击复制的按钮。