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制作位图字体的更多相关文章

  1. 详解用CSS3制作圆形滚动进度条动画效果

    主  题 今天手把手教大家用CSS3制作圆形滚动进度条动画,想不会都难!那么,到底是什么东东呢?先不急,之前我分享了一个css实现进度条效果的博客<CSS实现进度条和订单进度条>,但是呢, ...

  2. 详解利用ELK搭建Docker容器化应用日志中心

    概述 应用一旦容器化以后,需要考虑的就是如何采集位于Docker容器中的应用程序的打印日志供运维分析.典型的比如SpringBoot应用的日志 收集.本文即将阐述如何利用ELK日志中心来收集容器化应用 ...

  3. 详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置

    本文提要 本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动MySQL服务接受外部连接,主要是通过Docker ...

  4. 前端跨域问题相关知识详解(原生js和jquery两种方法实现jsonp跨域)

    1.同源策略 同源策略(Same origin policy),它是由Netscape提出的一个著名的安全策略.同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正 ...

  5. Dockerfile详解

    Dockerfile详解 利用Dockerfile文件,可以构建docker的image镜像 命令使用 通过-f参数指定Dockerfile路径,进行构建image docker build -f / ...

  6. 【咸鱼教程】BitmapLabel位图字体使用

    引擎版本3.2.6 教程目录一 为什么要使用位图字体二 如何使用位图字体2.1 TextureMerger制作位图字体2.2 exml中使用位图字体三 Demo源码 一  为什么要使用位图字体egre ...

  7. 转载 JS组件Bootstrap Select2使用方法详解

    JS组件Bootstrap Select2使用方法详解 作者:懒得安分 字体:[增加 减小] 类型:转载 时间:2016-01-26我要评论 这篇文章主要为大家介绍了JS组件Bootstrap Sel ...

  8. EUI组件之BitmapLabel 位图字体

    一.制作文图字体文件 使用TextureMerger制作位图字体,具体查看 官方教程. 我们这里制作了一组位图字体. 二.导入位图字体 位图字体素材放入资源配置文件default.res.json 三 ...

  9. JS hashMap实例详解

    链接:http://www.jb51.net/article/85111.htm JS hashMap实例详解 作者:囧侠 字体:[增加 减小] 类型:转载 时间:2016-05-26我要评论 这篇文 ...

随机推荐

  1. python基础之内置函数补充、匿名函数、递归函数

    内置函数补充 python divmod()函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) 语法: 1 divmod(a, b) #a.b为数字,a为除数 ...

  2. JAVA-数组或集合

    哈哈,今天我们来讲解一下有关于一些数组 或者是集合的知识点 1.ArrayList,LinkedList,Vector的区别 ArrayList,LinkedList,Vector都是实现List接口 ...

  3. Best Practices in JavaScript

    Some items you should konw : Graceful degradation : ensuring that your web pages still work without ...

  4. 4x4矩阵键盘 扫描程序

    一:不排除第四位异常处理 uchar JuzhenkeyScan() { // P3=0xfe; // temp=P3; // while(temp!=0xfe) // { // temp=P3; / ...

  5. 使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码 (jvm性能调优)

    技术交流群:233513714 本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 ...

  6. android 管理Touch事件

    The onInterceptTouchEvent() method gives a parent the chance to see any touch event before its child ...

  7. 梆梆加固还原DEX文件

    0x01 先说总结: 参照https://www.cnblogs.com/jiaoxiake/p/6818786.html 最后说的步骤, 参考:https://www.52pojie.cn/thre ...

  8. 条件随机场(Conditional random field)

    条件随机场真是把我给折磨坏了啊,本以为一本小小的<统计学习方法>攻坚剩下最后一章,心情还是十分愉悦的,打算一口气把它看完,结果真正啃起来真是无比的艰难啊,每一句对我都好像是天书一般,怎么这 ...

  9. 替换Fragment 报错 The specified child already has a parent. You must call removeView() on the child's parent first.

    在将一个fragment替换到一个frameLayout的时候报错: code: transaction.replace(R.id.fragment_container, fragment2); 错误 ...

  10. Scrapy 学习笔记(一)数据提取

    Scrapy 中常用的数据提取方式有三种:Css 选择器.XPath.正则表达式. Css 选择器 Web 中的 Css 选择器,本来是用于实现在特定 DOM 元素上应用花括号内的样式这样一个功能的. ...