位图字体制作工具
位图字体因何而生?优缺点是什么?
位图字体的出现是为了处理像TTF一类的字体文件在不同平台显示有差异的问题。
因为可以由美术出图,所以呈现出的效果能够比字体文件更美观。
不需要用户去安装某个字体,就能够达到设计者想要呈现的效果。从游戏开发的角度来讲,也缩小了安装包的体积。
但是只适用于文本复杂度不高的情况,像文本无法固定的聊天内容,就不适用了。
制作位图的工具有哪些?
工具 | 平台限制 | 官网 | 下载地址 | 是否免费 | 备注 |
---|---|---|---|---|---|
BMFont | 仅Windows | 链接 | 前边链接上有 | 免费 | 这个用得比较多 |
Glyph Designer | 仅MacOS | 链接 | 前边链接上有 | 60块一个月 | 功能比BMFont更强,但需要付费 |
Littera | 跨平台(在线工具) | 链接 | 不用下载,浏览器打开这个网址就行 | 免费 | 这个还蛮好用的,但需要安装Flash。Littera在油管上的视频。 |
SnowBamboo | 跨平台(在线工具) | 链接 | 不用下载,浏览器打开这个网址就行 | 免费 | 这个类似Littera,但不需要Flash。github仓库,给作者加星。 |
Hiero | 跨平台的(因为是Java做的) | 链接 | 前边链接上有 | 免费 | 这个我没用过 |
convert2fnt | 仅Windows | 没得 | 去搜嘛 | 免费 | 这是我之前在网上找到的一个小众软件,易用,功能较弱 |
2023/03/23更新:Littera这个网址挂了。
设置 BMFont
在使用之前,需要设置软件,其中许多设置我不懂,还是去看看官方文档吧。
网上搜索到的另一篇博客说到了这些设置的含义。
我们可以把这些设置保存成一个.bmfc
文件。下次使用时可以直接加载这个配置文件,不用每次都去设置一遍。
开始使用
有两种制作方式,第一种是使用某个字体,然后选中某些字符,然后导出。第二种是提供图片给BMFont,然后设定好图片和字符的对应关系,然后导出。
1.使用字体
我们通常是采用读取文本文件的方式来选择字符。
这里需要特别注意文本的编码,比方说在Windows系统上,用记事本保存文件时,有ANSI、UTF-16 LE、UTF-16 BE、UTF-8、带有BOM的UTF-8,我测试了一下,ANSI和UTF-8是不行的。
2.使用图片
Edit->Open Image Manager->Image->Import image,Id那里填上数字,这个数字就对应着ASCII码里的某个字符,绑定成功后就会显示一个蓝色的小点。
生成的fnt文件说明
第一行是对字体的介绍。info 开头:
字段 | 说明 | BMFont设置 | 备注 |
---|---|---|---|
face | 字体 | Font Settings -> Font graphics -> Font | |
size | 字号 | Font Settings -> Font graphics -> Size | |
bold | 是否加粗 | Font Settings -> Font graphics -> Bold | |
italic | 是否斜体 | Font Settings -> Font graphics -> Italic | |
charset | 字符集 | ||
unicode | 是否unicode | ||
stretchH | 纵向缩放百分比 | horizontal表示水平,vertical表示水平。那为啥这个叫纵向缩放百分比呢? | |
smooth | 是否开启平滑 | ||
aa | 是否开启抗锯齿 | ||
padding | 内边距 | ||
spacing | 外边距 | ||
outline | 描边 | Font Settings -> Effects -> Outline thickness |
第二行是对应所有字贴图的公共信息。common 开头:
字段 | 说明 | BMFont设置 | 备注 |
---|---|---|---|
lineHeight | 行高 | Font Settings -> Font graphics -> Font | |
base | 字的基本大小 | 没搞懂这个是在哪里设置的,有什么用 | |
scaleW | 合图的宽 | Export Options -> Texture -> Width | |
scaleH | 合图的高 | Export Options -> Texture -> Height | |
pages | 合图有几张 | ||
packed | 图片是否压缩 | ||
alphaChnl | 透明度 | ||
redChnl | 红色 | ||
greenChnl | 绿色 | ||
blueChnl | 蓝色 |
第三行是对应当前字贴图的信息
字段 | 说明 | BMFont设置 | 备注 |
---|---|---|---|
id | |||
file | 合图名字 |
第四行是当前贴图中所容纳的文字数量
字段 | 说明 | BMFont设置 | 备注 |
---|---|---|---|
chars count | 文字数量 |
第五行起把当前贴图中所用到的所有文字的编码以及对应在图片上的矩形位置,偏移等列出来
如何添加描边
把BMFont生成的png拖入PS里,右键图层,点混合选项,那里可以加描边,然后保存图片就行。
使用SnowBamboo时的常用字符
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()-+=_`|{}\[]:";'<>?,./1234567890