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

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

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

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

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

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

关于通用图片字库生成工具,我也早有一个制作思路。. \3 G7 S0 y. D1 t" g5 r

# q9 }3 b) I% n: p+ O+ r" e& t先写出来,仅供大家参考。
& k# \% ]: v0 O  _/ D其实,要把工具做得通用化,关键是要在字库定义文件上下功夫。1 P1 h9 F& w" t" v1 Q4 ]4 `, Y8 \
所以我设计了以下这样一个大致流程。
2 q! \6 X7 H' l
; g* V0 x  A/ c! X1.图片字库的图片部分生成( ^% ^+ Y6 \  l8 F
对于不同类型的图片字库,其核心是相同的,即定义了一个图片字符的集合,让游戏能根据图片字库定义文件从图片字库中找出对应的字符所# I( y0 k8 f7 X, q! \
在的区域。
9 o5 p; Y; F: q3 H, v; Z
+ c2 `& @' X5 r. D- W2 L* z因此我设计了一种通用图片字库定义格式。" a( Q' @( x7 O5 S/ ]5 o. G+ w
这个格式是一个类似csv文件的结构,每行用逗号分割,对应一个字符的所有属性。- P. O5 _" M3 J6 J' o6 d# Z
一个字符的所有属性有大约有20多种,比如字符的宽度,高度,间距等等,我们可以事先收集1批游戏的字库定义文件,7 {! K. U: c4 c5 ~" L8 K% s
把各种属性总结归纳出来即可。5 e; a2 C2 ^# f) I/ Q

3 I$ O8 g* d& P6 j1 x所以,第1步操作是这样的! M/ [6 v- [! X8 h, E( d" c
图形界面的主程序MakeFont.exe
- t( v# a, Z+ k) U( v- p/ V输入:所有不重复的字符列表AllChars.txt,以及图片的大小,字符宽高等各种参数
. l. o$ Q- `5 D. Z" X$ Q输出:字库图片font.png,字库信息文件fontinfo.txt,通用图片字库字符定义文件define.txt
, P2 F4 }! v5 B; v) p/ R! u     字库信息文件fontinfo.txt保存了整个图片的信息,比如图片的宽度高度等等。6 y3 V9 J4 w4 M8 E
     define.txt中以上面描述的格式保存了所有字符的所有可能的属性。4 z2 |* O; M1 e- v
     每行对应一个字符。由于要把工具做成通用的,我们无法预知最终需要哪些属性,. p8 L  T( y! F: f/ {
     所以只能把所有属性都生成出来。
7 [( N0 E0 Z+ J0 ~     如果完成了这1部,就已经是一个很强大的工具了。
) l+ ?6 @' W2 l- U! W3 Q* |     会编成的朋友可以制作一个小程序,把define.txt转化成游戏需要的定义文件的格式。; M( ]' o: S+ p" a" R: v
     当然,我们的目标是要制作出一个让不会编成的朋友也会轻易使用的工具,) A* |0 D$ K: x# F* }, g
     所以我们还需要制作一个define.txt到游戏需要的定义文件的格式的转换工具。
5 V, O6 Y6 R+ o, I/ i- a7 S- T- A& \5 j7 I" I1 n
2.图片字库的定义文件文件生成. S' n# d8 k/ d
  define.txt有了,下一步需要把它转换为游戏需要的定义文件的格式。8 c1 [  R' ?8 Y' b$ |; D) R6 b/ q
  我们把图片字库的定义文件分成以下2类。0 L& m6 a* ^) F% @( `& M; j

; l4 U# J# N& s( c2 a$ m7 J  a.文本类型9 \, T! n! k3 B7 S
    通常这一类型的定义文件用*.xml,*.txt等作为文件名.
1 q) Z9 i& m7 z' x& J    5 j% M+ [" o1 `
    我们先取得游戏的定义文件,一般这个定义文件都有一定的格式。  {: q$ w- y  ~$ |  L
    我们可以在这个格式的基础上做出1个模版template.txt。模版分固定部分和循环部分。
, _* Z4 C: j; G' ]    循环部分定义了每个字符的属性,这些属性用活动的tag来表示.
% s) [0 s7 Q7 H0 s# s* V    我们可以制作一个图形界面的工具map.exe,用这个工具可以设置活动的tag和define.txt的哪个属性相对应。) _+ p; D3 i) a0 O8 n
    然后生成一个map.txt。3 W" x6 g8 S3 U
    最后根据fontinfo.txt,define.txt,template.txt,map.txt 生成出我们需要的*.xml或*.txt定义文件。- n$ _. Q4 ~  ~
; O) u# W- F& {4 j4 ]* n' |" w
  b.16进制文件类型% k4 E0 {& q( K$ K$ \2 A& r
    通常这一类型的定义文件用*.fnt等作为文件名.+ \* \* J4 ~$ A
    制作过程也和文本类型的类似。只不过有些环节和文本类型略有不同。
% _; g, H# ]* l% ~6 w    我们把假定的文件名略微改一下。
2 l$ v8 T+ d5 M$ E0 F    map_bin.exe,template_bin.txt,map_bin.txt
' ?, N% h/ P& @    最后根据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发表的  :
0 h: X9 @! A  n" E0 s你说的生成define.txt这一步比较简单, 关键还是define.txt到字库定义这一步怎么做到通用的问题
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-7-10 13:27 | 只看该作者
引用第2楼shane007于2010-07-10 13:25发表的 :
; e4 l1 U1 h) F& c% u9 [  d' a
5 k) [2 d  s8 |( Q( u' _. @

4 b% F6 i. Q" B, L5 }/ z
: c* f- _- u1 k+ Z: L, i; M6 r9 T+ R6 H4 L% n. m7 n/ g
是的,这个map.exe的功能就比较难做了。
; y1 a$ o3 W3 L我想可以先支持几种经常被使用的格式,然后慢慢增加。
: e* W7 n+ X' I& u/ _- A, S要做成完全通用的估计很难。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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