设为首页收藏本站官方微博

汉化资料 通用图片字库生成工具制作思路

[复制链接]
查看: 2637|回复: 3
打印 上一主题 下一主题

[汉化资料] 通用图片字库生成工具制作思路

跳转到指定楼层
楼主
发表于 2010-7-10 08:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

通用图片字库生成工具制作思路

关于通用图片字库生成工具,我也早有一个制作思路。+ {2 ]+ r+ C9 B

/ S" R8 U6 t8 [* }: [( I先写出来,仅供大家参考。
9 \) W6 O. Z  O9 {其实,要把工具做得通用化,关键是要在字库定义文件上下功夫。1 D! P2 k7 _" F
所以我设计了以下这样一个大致流程。
/ x/ c8 Z; ^( e$ V
5 D! N2 R+ }: d' ~8 G+ X1.图片字库的图片部分生成
5 G. m' m+ h: N, B* |: w5 v对于不同类型的图片字库,其核心是相同的,即定义了一个图片字符的集合,让游戏能根据图片字库定义文件从图片字库中找出对应的字符所2 v* y0 H& c6 n4 A
在的区域。
( @: ^$ E( S* A" J$ k
: J! |; L$ J% n" V0 s* a5 z因此我设计了一种通用图片字库定义格式。3 x6 ]& x! K' _* m1 k- |0 b
这个格式是一个类似csv文件的结构,每行用逗号分割,对应一个字符的所有属性。+ {; m' a# a3 w0 h$ ^
一个字符的所有属性有大约有20多种,比如字符的宽度,高度,间距等等,我们可以事先收集1批游戏的字库定义文件,2 b0 S% W  O! i  h% Q) ^2 I, m
把各种属性总结归纳出来即可。) W' u, e5 |  ~, a- O

4 N7 S, c# o0 d3 ~+ u$ s) ]) i  p所以,第1步操作是这样的
  o3 i6 x3 ]% l1 A图形界面的主程序MakeFont.exe
* N5 o! z  h' s1 {2 N输入:所有不重复的字符列表AllChars.txt,以及图片的大小,字符宽高等各种参数
$ U5 ~6 q3 D2 I( o! P输出:字库图片font.png,字库信息文件fontinfo.txt,通用图片字库字符定义文件define.txt
3 [7 n( ^' X& W8 C" D0 K# M     字库信息文件fontinfo.txt保存了整个图片的信息,比如图片的宽度高度等等。, K! U5 `: _5 M6 w9 i$ ^7 q
     define.txt中以上面描述的格式保存了所有字符的所有可能的属性。
( E/ @' I6 _5 i& r( N  @7 d" j' q     每行对应一个字符。由于要把工具做成通用的,我们无法预知最终需要哪些属性,
5 Q' X+ U2 t' s1 N" ^4 Z+ R' p     所以只能把所有属性都生成出来。
* }2 [6 g0 `/ {2 U: X1 [% U     如果完成了这1部,就已经是一个很强大的工具了。2 y$ s$ ]) ^0 d- {
     会编成的朋友可以制作一个小程序,把define.txt转化成游戏需要的定义文件的格式。
/ A5 _! q, i0 t8 Q3 u% p' G( ^6 L     当然,我们的目标是要制作出一个让不会编成的朋友也会轻易使用的工具,
, M7 {8 m$ P& G& ]5 O     所以我们还需要制作一个define.txt到游戏需要的定义文件的格式的转换工具。5 M  v7 d; D2 z6 k' W/ H. l4 V

' g1 C* K  q) I' f9 |2.图片字库的定义文件文件生成
+ T3 r0 m1 V1 E! Z8 [  define.txt有了,下一步需要把它转换为游戏需要的定义文件的格式。
4 X* `! o8 d' D- K  我们把图片字库的定义文件分成以下2类。
& M. _6 R" z- s; o! j* ^& U
9 z; d' y$ Y$ h$ m+ a  a.文本类型( j5 A. y0 c0 A0 g1 @8 N
    通常这一类型的定义文件用*.xml,*.txt等作为文件名.$ f9 c- \4 a0 w! k" X5 k' @
   
5 `0 d3 `# a. H1 t+ X2 |! ]    我们先取得游戏的定义文件,一般这个定义文件都有一定的格式。0 t  U0 P( @8 Z" L7 I$ e- @: @5 m3 T
    我们可以在这个格式的基础上做出1个模版template.txt。模版分固定部分和循环部分。
) i1 n  m+ I# j9 z    循环部分定义了每个字符的属性,这些属性用活动的tag来表示.! z6 D1 F. V( |0 a' o
    我们可以制作一个图形界面的工具map.exe,用这个工具可以设置活动的tag和define.txt的哪个属性相对应。
0 J* C" q6 U" z5 s    然后生成一个map.txt。, V- q! E  O4 `  y' g
    最后根据fontinfo.txt,define.txt,template.txt,map.txt 生成出我们需要的*.xml或*.txt定义文件。
+ R/ M9 O9 |" U; c3 l7 E9 u) M6 X$ O9 W0 ^3 W' H1 T7 ^: _
  b.16进制文件类型! n4 T  O! p5 C) H% i
    通常这一类型的定义文件用*.fnt等作为文件名.. n: W* i0 R9 u' ~. @' O6 \' o7 Z
    制作过程也和文本类型的类似。只不过有些环节和文本类型略有不同。
/ X) Q+ A" a! S; o8 B8 J! D    我们把假定的文件名略微改一下。
% b% l9 }2 V5 |7 {: l# u" T, A- N    map_bin.exe,template_bin.txt,map_bin.txt/ u# h  S5 T  h1 D3 ?
    最后根据fontinfo.txt,define.txt,template_bin.txt,map_bin.txt 生成出我们需要的*.fnt等定义文件。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-7-10 12:57 | 只看该作者
你说的生成define.txt这一步比较简单, 关键还是define.txt到字库定义这一步怎么做到通用的问题
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-7-10 13:25 | 只看该作者
引用第1楼bandaot于2010-07-10 12:57发表的  :: o3 c6 @, Y( f  e6 t+ ~
你说的生成define.txt这一步比较简单, 关键还是define.txt到字库定义这一步怎么做到通用的问题
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-7-10 13:27 | 只看该作者
引用第2楼shane007于2010-07-10 13:25发表的 :
/ e* r$ r% l. M0 @: r  l) _- ]' L! \2 z; ~" o/ T4 o

3 o+ m% W! d: ^9 B+ L  M3 K. O! O* w4 q! B1 [# }6 K

  U" k$ ]- r  W( j0 b是的,这个map.exe的功能就比较难做了。
9 ]3 J8 {$ l. Y, `' V9 h5 j我想可以先支持几种经常被使用的格式,然后慢慢增加。
- r7 o/ R( o# ~4 ~7 X0 w* V要做成完全通用的估计很难。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表