详解利用ShoeBox制作位图字体
http://childhood.logdown.com/posts/190580/-details-using-shoebox-produce-bitmap-fonts?utm_source=tuicool
1 ShoeBox 简介

ShoeBox是一个基于AdobeAIR实现的免费跨平台的工具。这个工具使用拖放、剪切板的工作流程方式,能够很方便的处理游戏图片、创建位图字体等。
- 支持引擎

2 功能概括介绍
ShoeBox虽小,五脏俱全。作者做这个工具足见是用了心,如果各位想捐款,官网右上角:)。写这篇文字的时候,笔者用的版本是最新版3.4.2。官网的一些图片说明不少是老版本的,注意下就可以了。
Sprites
- 打包位图(Sprite Sheet)
![]()
这个功能非常强大。我们在游戏制作中,经常利用TexturePacker等工具,将一些碎图图片合成一个精灵表单(spritesheet),好处不言而喻。ShoeBox的这个功能,在一些方面并没有TP工具那么强大,但却有自己的特色功能。TA可以将多个图片,SWF(AS1,AS2,AS3版本)动画或者GIF动画合成到一个纹理图上,强大吧,支持SWF/GIF哦。
- 读取精灵(Read Sprites)
![]()
读取一个精灵表单或者位图字体集,并将他们单独导出为精灵图片。要求图片文件和查找索引文本文件(即图片描述数据文件)。
- 提取精灵(Extract Sprites)
![]()
上图是我拿FlappyBird的精灵表单做的试验。
检测具有alpha通道的图片的精灵图片并一次标上序号导出。这个功能可以在你丢失了图片描述文件的情况下,用作精灵表单反向导出精灵图片。同一个物体如果在图片上有透明间隙,会被表上多个序号,这里不是很理想,朋友们如果要用这个功能的话注意下。
- 设定锚点(Sprite Pivots)
![]()
这个我们在Cocos2D里面用的不多,starling里面倒是有设置pivot的。
GUI
- 位图字体(Bitmap Font)

这个就是我们今天介绍的重点了。见后面的详细介绍。
- 拆分PSD文件(Split PSD)

这个功能绝对是美术人员的福利。强烈建议朋友们推荐给自己公司的MM们,给她们介绍下这个ShoeBox,并握着她们的小手手,手把手教她们如何使用这个功能。如果美术是GG,不管了。我不知道其他美术是怎么做的,作为非美术的我,但经常使用Photoshop,我在导出图片的时候,如果图层过多,通过隐藏其他图层,将图层的图片一个个单独导出,其中还要涉及裁剪或者新建文档导出。麻烦不?当然了。所以,这个功能能高效的导出PSD中的图片。
- Slice 9

顾名思义,这个功能处理的是九宫格图片。因为在Cocos2D中有自己的九宫图类,这里就不介绍了。
Animation
- 动画帧(Ani Frames)


将GIF或者SWF动画导出为帧序列图。异常强大!将上面的GIF动画图片拖放到AniFrames上后,保存会导出该动画的序列帧。SWF同理。这个功能通常用来解析资源。
- 帧表单(FrameSheet)

这个功能集合了动画帧序列导出(AniFrames)以及打包精灵图片(Pack Sprites)功能,将GIF或者SWF动画文件拖放到上面后,可以保存为一个精灵表单,内容包含了动画的帧序列图。
Bitmaps
- JPNG位图(JPNG Bitmap)

将32位RGBA位图转成24位的JPG格式图,附带一个alpha通道组。引擎解析需要加载JPG图片,然后通过复制右边的alpha通道并应用到左侧的颜色区域来重新组成32位的RGBA图。貌似这种做法现在很少用了。
- Mask Image


将JPG图片进行遮罩和羽化,合成了一张复杂的图。还不清楚这个具体怎么使用。
Misc
- Flickr Upload
- Clean Up Text
- Mac to PC url
这三个游戏基本用不到。就不介绍了。想要进一步了解的,可以深入官网探个究竟。
3 言归正传 创建位图字体
通常情况下,Windows下我们可以使用免费的Bitmap Font Generator,mac下可以使用付费的Glyph Designer。有了这款跨平台的ShoeBox,美术人员可以完全按照自己的设计,做出一套位图字体,支持中文。
工作流程

1.右键打开设置面板,在Txt Chars输入你要制作的字体,如我这里输入abcdefghijklmnopqrstuvwxyz这些字体,最后给大家呈现一个cocos quick的美术效果。FollowMe!

2.按住BitmapFont图标2s左右,会复制我们的字符集到剪切板上,这时候打开Photoshop,新建一个文件,用文本输入工具或者热键T点击画布,然后粘帖剪切板上的字符到画布上。如下图所示

字体毫无美感可言,不是么?
3.下面是发挥设计能力的时候了。让美术尽情设计字体吧。我随便给文字加了个描边、外发光、投影,如下图

4.保存刚才的设计,导出为PNG图片。这里需要注意下,在设计的时候字体的间距不要太靠近,否则ShoeBox在后面识别的过程,会将太过于靠近的字体识别为一个字体。
5.拖放上步保存的图片到BitmapFont图标上,这时候会有流动的虚线表示可以拖放有效。如果你拖个JPG图片的,是无效的。

6.见证奇迹的时刻到了!

在设置面板的 Message 一栏里面,我们输入cocos quick,设定字符间距(KerningValue)为合适的值比如-2,空格宽度(TxtSpaceWidth)为5,然后apply应用确定,可以看到文字的预览效果。

7.参数调整合适后,保存字体(SaveFont),会在原始图片目录下生成一个PNG图片和FNT数据文件。这时候引擎就可以直接使用这两个文件了。
如果大家觉得看着文字麻烦,可以先看下视频。
Happy Designing!
Posted by ChildhoodAndy March 26, 2014 ShoeBox BMFont 位图字体 Bitmap Font Generator Glyph Designer
Comments
详解利用ShoeBox制作位图字体的更多相关文章
- 详解用CSS3制作圆形滚动进度条动画效果
主 题 今天手把手教大家用CSS3制作圆形滚动进度条动画,想不会都难!那么,到底是什么东东呢?先不急,之前我分享了一个css实现进度条效果的博客<CSS实现进度条和订单进度条>,但是呢, ...
- 详解利用ELK搭建Docker容器化应用日志中心
概述 应用一旦容器化以后,需要考虑的就是如何采集位于Docker容器中的应用程序的打印日志供运维分析.典型的比如SpringBoot应用的日志 收集.本文即将阐述如何利用ELK日志中心来收集容器化应用 ...
- 详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置
本文提要 本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动MySQL服务接受外部连接,主要是通过Docker ...
- 前端跨域问题相关知识详解(原生js和jquery两种方法实现jsonp跨域)
1.同源策略 同源策略(Same origin policy),它是由Netscape提出的一个著名的安全策略.同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正 ...
- Dockerfile详解
Dockerfile详解 利用Dockerfile文件,可以构建docker的image镜像 命令使用 通过-f参数指定Dockerfile路径,进行构建image docker build -f / ...
- 【咸鱼教程】BitmapLabel位图字体使用
引擎版本3.2.6 教程目录一 为什么要使用位图字体二 如何使用位图字体2.1 TextureMerger制作位图字体2.2 exml中使用位图字体三 Demo源码 一 为什么要使用位图字体egre ...
- 转载 JS组件Bootstrap Select2使用方法详解
JS组件Bootstrap Select2使用方法详解 作者:懒得安分 字体:[增加 减小] 类型:转载 时间:2016-01-26我要评论 这篇文章主要为大家介绍了JS组件Bootstrap Sel ...
- EUI组件之BitmapLabel 位图字体
一.制作文图字体文件 使用TextureMerger制作位图字体,具体查看 官方教程. 我们这里制作了一组位图字体. 二.导入位图字体 位图字体素材放入资源配置文件default.res.json 三 ...
- JS hashMap实例详解
链接:http://www.jb51.net/article/85111.htm JS hashMap实例详解 作者:囧侠 字体:[增加 减小] 类型:转载 时间:2016-05-26我要评论 这篇文 ...
随机推荐
- Pandas库入门
pandas库的series类型
- Kali2017 Metasploit连接postgresql数据库
msfdb:msf数据库管理命令 1.查看msf数据库连接状态 msf > db_status [*] postgresql selected, no connection //未连接 2.ms ...
- fromkeys语法/set集合/深浅拷贝/列表/字典的删除
fromkeys语法: dic = {"apple":"苹果", "banana":"香蕉"} 返回新字典. 和原来的没 ...
- 分别用反射、编程接口的方式创建DataFrame
1.通过反射的方式 使用反射来推断包含特定数据类型的RDD,这种方式代码比较少,简洁,只要你会知道元数据信息时什么样,就可以使用了 代码如下: import org.apache.spark.sql. ...
- MySQL高可用之MHA安装
Preface MasterHA is a tool which can be used in MySQL HA architecture.I'm gonna implement it ...
- python练习题及实现--文件处理、date日期
练习题作者:Vamei 出处:http://www.cnblogs.com/vamei http://www.cnblogs.com/vamei/archive/2012/07/19/2600135. ...
- navmesh自动寻路
一个导航网格(也就是Navmesh)是世界几何体简化的表示法,被游戏代理用于在世界中进行导航.通常,代理(agent )有一个目标,或一个目的地,它试图找到一个路径,然后沿路径导航到达目标.这个过程被 ...
- ThreadLocal 学习
JDK 1.2版本就已经提供了java.lang.ThreadLocal.其为多线程程序的并发问题提供了一种新的思路.使用该工具类可以简洁地编写出优美的多线程程序. 当使用ThreadLocal维护变 ...
- mysql Access denied for user 'root'@'localhost'问题解决
问题描述: 系统安装mysql的过程中,没有提示配置用户名和密码相关的信息,安装完毕后,登录报错. 表现现象为: mysql -u root -p [输入root密码] 界面提示: ERROR 169 ...
- 重复造轮子系列--字符串处理(C语言)
这些字符代码是以前写的,源于很久很久以前的一个VC++项目,在当时的部门编程比赛里因为用了项目代码的xsplit函数,万万没想到,那个做了几年的项目里面居然有坑..xsplit函数居然不能split连 ...