跳转到内容

导出位图字体

学习如何将位图字体导出为 PNG 文件,并附带文本(Text)、XML 或二进制(Binary)描述文件,以便在 Unity、Unreal 和 Godot 等游戏引擎中使用。

SnowB BMF 会将您的位图字体导出为一个纹理图集(.png 图像)和一个描述文件,用于告知您的应用程序如何使用它。描述文件包含了所有必要的数据,如字形位置、度量信息和字偶距配对。

您可以从多种标准格式中进行选择,以确保与大多数游戏引擎、框架和应用程序的兼容性。

  1. 打开导出对话框:点击顶部菜单栏中的 导出 (Export) 按钮或按 Ctrl+E
  2. 选择格式:从下拉菜单中选择最适合您需求的格式。
  3. 配置设置:根据需要调整文件名、纹理格式和其他选项。
  4. 下载文件:点击下载按钮,保存一个包含描述文件和 PNG 纹理图集(一个或多个)的 .zip 压缩包。

所有格式均基于官方的 AngelCode BMFont 规范。请根据您项目的兼容性、性能和易用性要求选择最合适的格式。

这是最常见且支持最广泛的格式。它是人类可读的,便于调试。

  • 最适用于:与 Unity、Unreal 和 Cocos2d-x 等引擎实现最大兼容性。
  • 特点:纯文本,易于解析,包含注释以提高可读性。
  • 规范:有关详细信息,请参阅文本格式文档

一种结构化的、易于解析的格式,非常适合具有内置 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>

最紧凑、最高效的格式,专为快速加载和最小化文件体积而设计。

  • 最适用于:对性能要求严苛的应用程序、手机游戏或有内存限制的项目。
  • 特点:文件体积最小,为快速解析而优化,遵循 BMFont v3 规范。
  • 规范:有关详细信息,请参阅二进制格式文档

结构: 二进制文件由类型化的数据块组成,分别用于信息、公共数据、页面、字符和字偶距配对,确保了快速的读取时间。

如果您的字符集太大,无法容纳在单个纹理上,SnowB BMF 会自动处理:

  • 自动分页:字形将被分割到多个纹理文件中(例如 font_0.pngfont_1.png)。
  • 统一描述文件:生成一个统一的描述文件,该文件引用所有纹理页面,以便您的应用程序可以轻松管理它们。

导出的文件会自动包含有用的元数据,例如字体名称、大小、生成日期和字符集详细信息,这对于调试和资产管理非常有帮助。

  • 字符不显示

    • 确保 .fnt 文件和所有 .png 纹理文件都位于您项目的正确路径中。
    • 确认您尝试显示的字符已在导出时包含在字体中。
  • 文本模糊或失真

    • 在您的游戏引擎中,将纹理的过滤模式设置为 点采样 (Point)最近邻 (Nearest Neighbor) 以防止模糊。
    • 确保您的游戏以 1:1 的像素比例渲染字体。
  • 导出失败

    • 如果导出超时或失败,可能是您的字符集对于单个纹理来说太大了。请尝试在 布局 (Layout) 设置中增加纹理尺寸,或减少字符数量。