【MCBE】通过特殊字符在游戏内显示任意图片的大致原理及实现参考
昕辰是鸽子
编辑于 2025年05月17日 10:14
收录于文集
共1篇

效果参考

你可以看到左上角标有“R”的原版图标和一个我自定义的图片。

大致原理

在MCBE原版资源包的font目录下,你可以看到许多以glyph开头的图片,

当我们找到glyph_E0.png和glyph_E1.png时,你可能可以看到一些比较熟悉的图标。

glyph_E0.png

glyph_E1.png

你可能已经注意到这些图片的文件名中都包含两位的16进制数,而这些16进制数其实就代表了这些图标的Unicode码的前两位。举个例子,glyph_E0.png的第一个图标的Unicode码为\ue000,第二个图标的Unicode码为\ue001,glyph_E1.png的第一个图标的Unicode码为\ue100。其他图片也同理,你可以使用这样的规则去访问font目录下任一个图标,只需要将这里的Unicode码通过一些工具转换为字符,输入到游戏中即可直接显示。

在这里,每个这样的图片文件中,可以存储256个不同的图标。

我这里将\ue100转换为字符,既""。你可以尝试将英文双引号的内容复制到MC聊天栏中,应该可以看到类似鸡腿的图标。由于该码位在UTF-8中是由MC定义的字符,所以在这里并不会显示出来。

实现参考

前置知识

在这里,你可能需要MCBE附加包的相关知识,请自行参考

【https://zh.minecraft.wiki/w/Tutorial:制作资源附加包】

正式开始

首先,在你的资源包目录下创建一个名为font的目录。然后你可以在本文章末尾的相关资源中找到MCBE原版资源包,找到font目录,将该目录中的glyph_E1.png文件复制到你的资源包目录的font目录下。

然后,编辑你的资源包中的glyph_E1.png文件,你会发现这张图片的大小为256*256像素。

当MC读取这些文件时,它会将这些文件的横轴与纵轴都分为16份,形成一个有256个格子的网格,每个网格中都对应一个图标。例如,在原版的glyph_E1.png文件中,每个图标的分辨率都为16*16像素。

现在,你可以尝试将任意一个16*16像素的图片覆盖在鸡腿图标的位置上,保存。然后加载你的资源包,在聊天栏输入上文提到的字符,你就应该可以看到你编辑的图片了。

扩展

如果你想显示更大的图片,不妨将glyph_E1.png的大小设置的更大。这样,一个网格中就可以有更多的像素。

如果你想显示更多的图片,你当然可以创建新的glyph_E2.png,以此类推。

参考资料

  1. 【MCWiki】https://zh.minecraft.wiki/w/Tutorial:基岩版开发指南

  2. 【Unicode标准中定义的3个私有使用区域-一个基本区域+两个补充区域】https://blog.csdn.net/booynal/article/details/127175804

  3. 【【Minecraft】基岩版 表情符号Addons,在MC里发送Emoji符号~-哔哩哔哩】 网页链接​

  4. 【什么?在mc里居然能发表情包?什么操作?-哔哩哔哩】 网页链接​

相关资源

  1. 【Unicode码转换】https://www.jyshare.com/front-end/3602/

  2. 【MCBE原版资源包】https://github.com/Mojang/bedrock-samples/releases