导出位图字体
学习如何将位图字体导出为 PNG 文件,并附带文本(Text)、XML 或二进制(Binary)描述文件,以便在 Unity、Unreal 和 Godot 等游戏引擎中使用。
SnowB BMF 会将您的位图字体导出为一个纹理图集(.png
图像)和一个描述文件,用于告知您的应用程序如何使用它。描述文件包含了所有必要的数据,如字形位置、度量信息和字偶距配对。
您可以从多种标准格式中进行选择,以确保与大多数游戏引擎、框架和应用程序的兼容性。
如何导出字体
Section titled “如何导出字体”- 打开导出对话框:点击顶部菜单栏中的 导出 (Export) 按钮或按
Ctrl+E
。 - 选择格式:从下拉菜单中选择最适合您需求的格式。
- 配置设置:根据需要调整文件名、纹理格式和其他选项。
- 下载文件:点击下载按钮,保存一个包含描述文件和 PNG 纹理图集(一个或多个)的
.zip
压缩包。
支持的导出格式
Section titled “支持的导出格式”所有格式均基于官方的 AngelCode BMFont 规范。请根据您项目的兼容性、性能和易用性要求选择最合适的格式。
文本格式 (.fnt
, .txt
)
Section titled “文本格式 (.fnt, .txt)”这是最常见且支持最广泛的格式。它是人类可读的,便于调试。
- 最适用于:与 Unity、Unreal 和 Cocos2d-x 等引擎实现最大兼容性。
- 特点:纯文本,易于解析,包含注释以提高可读性。
- 规范:有关详细信息,请参阅文本格式文档。
XML 格式 (.xml
, .fnt
)
Section titled “XML 格式 (.xml, .fnt)”一种结构化的、易于解析的格式,非常适合具有内置 XML 支持的应用程序。
- 最适用于:Web 应用程序或使用可轻松处理 XML 的自定义工具的项目。
- 特点:标准 XML 结构,自描述标签。
示例:
<?xml version="1.0"?><font> <info face="Arial" size="32" ... /> <common lineHeight="38" base="26" scaleW="512" scaleH="512" pages="1" ... /> <pages> <page id="0" file="font_0.png" /> </pages> <chars count="95"> <char id="65" x="10" y="0" width="18" height="20" xoffset="0" yoffset="6" ... /> </chars></font>
二进制格式 (.fnt
)
Section titled “二进制格式 (.fnt)”最紧凑、最高效的格式,专为快速加载和最小化文件体积而设计。
- 最适用于:对性能要求严苛的应用程序、手机游戏或有内存限制的项目。
- 特点:文件体积最小,为快速解析而优化,遵循 BMFont v3 规范。
- 规范:有关详细信息,请参阅二进制格式文档。
结构: 二进制文件由类型化的数据块组成,分别用于信息、公共数据、页面、字符和字偶距配对,确保了快速的读取时间。
如果您的字符集太大,无法容纳在单个纹理上,SnowB BMF 会自动处理:
- 自动分页:字形将被分割到多个纹理文件中(例如
font_0.png
、font_1.png
)。 - 统一描述文件:生成一个统一的描述文件,该文件引用所有纹理页面,以便您的应用程序可以轻松管理它们。
导出的文件会自动包含有用的元数据,例如字体名称、大小、生成日期和字符集详细信息,这对于调试和资产管理非常有帮助。
常见问题排查
Section titled “常见问题排查”-
字符不显示:
- 确保
.fnt
文件和所有.png
纹理文件都位于您项目的正确路径中。 - 确认您尝试显示的字符已在导出时包含在字体中。
- 确保
-
文本模糊或失真:
- 在您的游戏引擎中,将纹理的过滤模式设置为 点采样 (Point) 或 最近邻 (Nearest Neighbor) 以防止模糊。
- 确保您的游戏以 1:1 的像素比例渲染字体。
-
导出失败:
- 如果导出超时或失败,可能是您的字符集对于单个纹理来说太大了。请尝试在 布局 (Layout) 设置中增加纹理尺寸,或减少字符数量。