字符集:自定义位图字体的 Unicode 字形
配置位图字体中需要包含哪些字符。免费使用,无需下载。
字符集决定位图字体里有哪些字符(字形)。你可以随时添加或删除字符,SnowB BMF 支持完整的 Unicode,重复字符会自动过滤。
字符集就是你希望渲染成位图字形的那些字符。纹理图集里,每个字符只出现一次。
新项目自带一组默认字符:
- 数字:
0123456789 - 小写字母:
abcdefghijklmnopqrstuvwxyz - 大写字母:
ABCDEFGHIJKLMNOPQRSTUVWXYZ - 常用符号:
!№;%:?*()_+-=.,/|"'@#$^&{}
这组字符覆盖了常见的西文排版场景。
“字形”输入字段
Section titled ““字形”输入字段”在左侧”字体配置”面板的字形 (Glyphs) 输入字段中配置字符集:
- 在”字体配置”面板中找到”字形”部分。
- 在多行文本字段中输入或粘贴你需要的字符。
- 输入后立即生效,工作区预览同步更新。
同一字符输入多次也只保留一份,自动去重。
输入框支持完整的 Unicode,可以包含国际字符(如 é, ñ, ü)、非拉丁文字、Emoji、特殊符号和数学符号。
输入框也支持输入法 (IME),输入中日韩等复杂文字没有问题。
空格字符 ( ) 始终包含在字符集中,不能移除。没有空格的话,应用程序无法正确处理文本间距。
仅基本拉丁字符
Section titled “仅基本拉丁字符”abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789游戏 HUD
Section titled “游戏 HUD”0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZHP:MP/+-%国际文本 (简体中文)
Section titled “国际文本 (简体中文)”你好世界0123456789★☆♫♪⚡⭐🎮🎯←→↑↓⬆⬇⬅➡字符集尽量精简。字符越多纹理越大,内存和加载时间都会增加。先看看应用里实际用到哪些文本,只保留必要的字符。
- 按逻辑分组:在输入字段中按语言或功能分组,方便管理。
- 测试覆盖率:跑一遍应用中所有文本,包括 UI 元素、对话框和动态内容,别漏掉字符。
输入字符后,处理流程是这样的:
- Unicode 解析:把输入拆成独立的 Unicode 码点。
- 去重:移除重复项。
- 补充空格:如果没有空格字符,自动加上。
- 字形生成:按当前字体和样式,把每个字符渲染成位图字形。
字形渲染优先级
Section titled “字形渲染优先级”渲染时按这个顺序查找字形:
- 导入的字体:优先用导入的 TTF/OTF 文件中的字形。
- 系统回退:找不到的话,用浏览器默认字体渲染。
- 缺失字形:都不支持的字符,生成空字形。
与字体导出集成
Section titled “与字体导出集成”字符集直接决定导出内容:
字体描述文件
Section titled “字体描述文件”- 文本格式:列出所有字符和纹理坐标。
- XML 格式:包含字符代码和字形信息。
- 二进制格式:运行时优化的字符数据。
- 每个字符在纹理中占据空间。
- 打包算法自动优化排列位置。
- 空格字符不占纹理空间,但度量信息照常导出。
字符缺失或不正确
Section titled “字符缺失或不正确”- 字体支持:确认导入的字体文件包含对应字形。
- 系统回退:导入字体缺少某个字符时,会回退到浏览器默认字体,样式可能不一致。
- 编码问题:检查输入文本的 Unicode 编码是否正确。
纹理尺寸过大或性能不佳
Section titled “纹理尺寸过大或性能不佳”- 减少字符数量:多数情况是字符集太大了。去掉应用中用不到的字符。
- 优化布局:用自动打包,调整间距和填充设置来缩小纹理。
- 复杂字形:笔画多的字符处理更慢,也占更多纹理空间。