BMFont 快速入门教程
简介
什么是BMFont?这是个软件,全称Bitmap font generator,顾名思义,位图文字生成器。这个工具就是用来生成位图文字字体配置文件的,.fnt文件。
这里介绍是因为游戏开发中经常用到这个,主流的各大游戏引擎都支持使用BMFont字体格式,如Cocos、Unity3D等。
优劣势
- 较之使用TTF(TrueTypeFont),生成文字的速度更快。
- 可批渲染,这个很重要,降低DC。
- 值得注意的是,如果字体文件(配置文件+合图)过大,首次加载的速度较慢,占用内存较大。
- 可自定义,美术可定制任意字体。
下载安装
BMFont是个免费软件,界面简单干净,上手容易。
http://www.angelcode.com/products/bmfont/
入门教程(快速导出一个字体文件)
一、字体设置
- Options – font settings 进入字体设置界面
- Font:选择系统已安装的字体库(TTF),这里可以理解为我们可以根据矢量字体画出一张张文字纹理,最后转换保存为我们需要导出的位图字体文件。
- Add font file:可以选择.ttf字体文件进行加载
- Charset:字符编码,我们通常选择Unicode
- Size:位图文字的大小,也就是最后我们保存文字在合图中的大小。
- Bold,Italic:粗体,斜体。
- 最后我们点Ok保存。
二、输出设置
- Options – export options 进入输出设置界面
- Texture:
- Width,Height:生成合图的长宽,需要自己调整,太小文字放不下到一张图里,会创建多个分图(filename_0,filename_1…);太大则浪费空间。
- Bit depth:合图位数,这里我们选32位。
- File format – Textures:这里我们选择用png格式保存合图。
- 保存设置。
三、选择字符
- 现在我们开始选择需要处理的字符了。
- 界面右侧是各个字符编码集合区域,所有字符按照编码被划分为一个个字符集,我们可以点击某个字符集去挑选里面的字符。
- 界面左侧就是某个字符集里对应的所有字符了,点击某个字符既可以选择。
- 红框中的9和右下角的57,表示了“9”这个字符的ID是57,这个ID唯一映射对应的字符。
四、快速选择字符
一个个挑实在是太慢了,BMFont提供了快速选择字符的方法。
- Edit – Select chars from file
- 选择一个文件,如test_font.txt,注意,文件编码得用utf-8,不然读取到的字符是乱的。
五、使用自定义图片替换某个字符
- Edit – Open Image Manager
- 点击 Import image 导入图片,这里的Id就是上面我们提高了字符索引ID,相当于我们会用导入的这张图片替换对应ID的字符。
点击OK进行保存。
六、输出
- Options – Save bitmap font as …,或者直接Ctrl+S
- 成功输出后,我们将得到一个{name}.fnt文件和一张{name}.png合图
- 查看.fnt的文件格式,我们可以看到:
- 第一行定义了字体相关的配置。
- 第二行定义了合图的相关配置,如长宽、各个通道。
- 第三行定义了合图的文件路径。
- 第四行开始,描述了各个字符索引所对应在合图中的位置和偏移。