跳转到内容

字符集:自定义位图字体的 Unicode 字形

配置位图字体中需要包含哪些字符。免费使用,无需下载。

字符集决定位图字体里有哪些字符(字形)。你可以随时添加或删除字符,SnowB BMF 支持完整的 Unicode,重复字符会自动过滤。

字符集就是你希望渲染成位图字形的那些字符。纹理图集里,每个字符只出现一次。

新项目自带一组默认字符:

  • 数字: 0123456789
  • 小写字母: abcdefghijklmnopqrstuvwxyz
  • 大写字母: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • 常用符号: !№;%:?*()_+-=.,/|"'@#$^&{}

这组字符覆盖了常见的西文排版场景。

在左侧”字体配置”面板的字形 (Glyphs) 输入字段中配置字符集:

  1. 在”字体配置”面板中找到”字形”部分。
  2. 在多行文本字段中输入或粘贴你需要的字符。
  3. 输入后立即生效,工作区预览同步更新。

同一字符输入多次也只保留一份,自动去重。

输入框支持完整的 Unicode,可以包含国际字符(如 é, ñ, ü)、非拉丁文字、Emoji、特殊符号和数学符号。

输入框也支持输入法 (IME),输入中日韩等复杂文字没有问题。

空格字符 ( ) 始终包含在字符集中,不能移除。没有空格的话,应用程序无法正确处理文本间距。

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
HP:MP/+-%
你好世界
0123456789
★☆♫♪⚡⭐🎮🎯
←→↑↓⬆⬇⬅➡

字符集尽量精简。字符越多纹理越大,内存和加载时间都会增加。先看看应用里实际用到哪些文本,只保留必要的字符。

  • 按逻辑分组:在输入字段中按语言或功能分组,方便管理。
  • 测试覆盖率:跑一遍应用中所有文本,包括 UI 元素、对话框和动态内容,别漏掉字符。

输入字符后,处理流程是这样的:

  1. Unicode 解析:把输入拆成独立的 Unicode 码点。
  2. 去重:移除重复项。
  3. 补充空格:如果没有空格字符,自动加上。
  4. 字形生成:按当前字体和样式,把每个字符渲染成位图字形。

渲染时按这个顺序查找字形:

  1. 导入的字体:优先用导入的 TTF/OTF 文件中的字形。
  2. 系统回退:找不到的话,用浏览器默认字体渲染。
  3. 缺失字形:都不支持的字符,生成空字形。

字符集直接决定导出内容:

  • 文本格式:列出所有字符和纹理坐标。
  • XML 格式:包含字符代码和字形信息。
  • 二进制格式:运行时优化的字符数据。
  • 每个字符在纹理中占据空间。
  • 打包算法自动优化排列位置。
  • 空格字符不占纹理空间,但度量信息照常导出。
  • 字体支持:确认导入的字体文件包含对应字形。
  • 系统回退:导入字体缺少某个字符时,会回退到浏览器默认字体,样式可能不一致。
  • 编码问题:检查输入文本的 Unicode 编码是否正确。
  • 减少字符数量:多数情况是字符集太大了。去掉应用中用不到的字符。
  • 优化布局:用自动打包,调整间距和填充设置来缩小纹理。
  • 复杂字形:笔画多的字符处理更慢,也占更多纹理空间。