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

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

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

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

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

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

关于通用图片字库生成工具,我也早有一个制作思路。3 F* s' O( j6 M! P3 ^8 f1 K6 ^7 u
  u! W5 F- v8 A3 z
先写出来,仅供大家参考。+ [5 w5 y- q$ `! G+ P9 U
其实,要把工具做得通用化,关键是要在字库定义文件上下功夫。
( W, {& s- g+ s" I所以我设计了以下这样一个大致流程。" @9 Q8 F$ k7 S9 S7 ~
8 T' y* o, d, y- C9 T
1.图片字库的图片部分生成
, N) I( C0 W' q( P% \2 n对于不同类型的图片字库,其核心是相同的,即定义了一个图片字符的集合,让游戏能根据图片字库定义文件从图片字库中找出对应的字符所# j; P- T: D3 F4 l5 m+ R
在的区域。7 h2 R7 E, V5 `6 b- A

: D: F1 j, u" p+ Q. y因此我设计了一种通用图片字库定义格式。
% U4 ?+ m; v* @这个格式是一个类似csv文件的结构,每行用逗号分割,对应一个字符的所有属性。
2 o4 Z: y. t( ^; G1 v一个字符的所有属性有大约有20多种,比如字符的宽度,高度,间距等等,我们可以事先收集1批游戏的字库定义文件,
# \7 i7 R& }6 O5 W0 e$ B把各种属性总结归纳出来即可。
/ N/ y; c( c0 p" |( B8 W* {8 F; X$ ^9 x/ l. _$ _0 g0 g0 w3 S" t
所以,第1步操作是这样的
6 }- @) r' A& [8 F% l  G& M2 c图形界面的主程序MakeFont.exe1 _% {/ |/ d' o) o
输入:所有不重复的字符列表AllChars.txt,以及图片的大小,字符宽高等各种参数
  r5 Q) W% B! ?8 ]7 y  n输出:字库图片font.png,字库信息文件fontinfo.txt,通用图片字库字符定义文件define.txt
/ D' |! L$ a" t0 Z0 y) g0 C, M" u- H     字库信息文件fontinfo.txt保存了整个图片的信息,比如图片的宽度高度等等。
2 D4 D9 a. L/ C8 ~: n) a     define.txt中以上面描述的格式保存了所有字符的所有可能的属性。
, t( w/ M7 u2 U; L4 N     每行对应一个字符。由于要把工具做成通用的,我们无法预知最终需要哪些属性,
+ T4 F; Q' y0 v! d! H     所以只能把所有属性都生成出来。* _! Q( T1 j+ G9 O% t
     如果完成了这1部,就已经是一个很强大的工具了。
) X5 F* d7 |  f% b4 Z" S4 z0 Q" ~     会编成的朋友可以制作一个小程序,把define.txt转化成游戏需要的定义文件的格式。& W3 ]* E) E* t5 W& ]  @) y
     当然,我们的目标是要制作出一个让不会编成的朋友也会轻易使用的工具,) z! n) S( \  W# N
     所以我们还需要制作一个define.txt到游戏需要的定义文件的格式的转换工具。
$ g  V9 O$ B+ w9 F2 R# }/ H: z
% l8 {; F. a: r- k! p1 n6 N. _2.图片字库的定义文件文件生成7 C, M( A) N0 g
  define.txt有了,下一步需要把它转换为游戏需要的定义文件的格式。' P9 D3 v3 u  g
  我们把图片字库的定义文件分成以下2类。
9 b' G4 M3 |/ U0 d) j- d( c; j7 f) o
  a.文本类型* P1 B7 f  q9 D$ r
    通常这一类型的定义文件用*.xml,*.txt等作为文件名.1 m; w% A# L3 d, D
    ( H2 m+ [! U2 ?; S) e6 d& b
    我们先取得游戏的定义文件,一般这个定义文件都有一定的格式。
6 @4 J/ I; F, B* |4 Q    我们可以在这个格式的基础上做出1个模版template.txt。模版分固定部分和循环部分。
9 }  M9 h; b5 ]3 ~    循环部分定义了每个字符的属性,这些属性用活动的tag来表示., I9 e# |4 I- e% s, E% q
    我们可以制作一个图形界面的工具map.exe,用这个工具可以设置活动的tag和define.txt的哪个属性相对应。5 p1 S3 \) D6 _( M
    然后生成一个map.txt。7 f! U& X+ k# w! e. f% {
    最后根据fontinfo.txt,define.txt,template.txt,map.txt 生成出我们需要的*.xml或*.txt定义文件。# E5 E/ v. ?# D4 q" M0 T( v! B
1 E& O2 z8 L$ j! h3 G0 u" _/ ~
  b.16进制文件类型
$ y2 N# l- v; O    通常这一类型的定义文件用*.fnt等作为文件名.; Q& g( L# x# x, G! }
    制作过程也和文本类型的类似。只不过有些环节和文本类型略有不同。
! Q) p0 f0 a  v7 L6 Q( n/ Z& k* |7 i6 T    我们把假定的文件名略微改一下。' w5 s% ^. n$ U: B, _" a( C
    map_bin.exe,template_bin.txt,map_bin.txt* H- Z  T$ k. T" f0 w4 H
    最后根据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发表的  :
1 b$ J+ k# M9 _1 J你说的生成define.txt这一步比较简单, 关键还是define.txt到字库定义这一步怎么做到通用的问题
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-7-10 13:27 | 只看该作者
引用第2楼shane007于2010-07-10 13:25发表的 :
0 x9 ]/ k$ Y: c8 ?( ]. W1 \" b. g# m3 M$ d& \$ V) a7 t) A

( b/ w2 d' L2 ~+ t" u' t
& R5 M( I9 d; e1 Q  Q0 c" X4 G- z
是的,这个map.exe的功能就比较难做了。/ ~8 d* v" k- ]% G3 U
我想可以先支持几种经常被使用的格式,然后慢慢增加。7 f2 K: `: M' g+ c
要做成完全通用的估计很难。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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