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

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

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

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

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

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

关于通用图片字库生成工具,我也早有一个制作思路。
7 u0 b2 e: w" @
2 Y: i% o: R* T& K先写出来,仅供大家参考。7 W5 ]6 |7 i  P6 y6 r
其实,要把工具做得通用化,关键是要在字库定义文件上下功夫。' ~% X3 i, [$ O4 t9 f; \1 I
所以我设计了以下这样一个大致流程。' O: a9 W* F; P% `# j& B+ h

0 e4 Z# c6 z0 g. v- @& c" t; q1 b0 {1 E1.图片字库的图片部分生成1 C4 X, a! y4 z, s' u$ ]
对于不同类型的图片字库,其核心是相同的,即定义了一个图片字符的集合,让游戏能根据图片字库定义文件从图片字库中找出对应的字符所- g9 K. h, n: _# X1 n5 ~2 o/ q( V
在的区域。
/ F5 ]/ H2 R6 ]& n3 B' ]9 s
/ }6 D, {( _8 }6 h/ B0 G因此我设计了一种通用图片字库定义格式。
) z- w) d% E( v7 c" K! K这个格式是一个类似csv文件的结构,每行用逗号分割,对应一个字符的所有属性。( c& R' L( K, q% ~3 I+ c$ M1 ?
一个字符的所有属性有大约有20多种,比如字符的宽度,高度,间距等等,我们可以事先收集1批游戏的字库定义文件,$ ?6 p. R) ]5 ~' L$ |7 ?, Z
把各种属性总结归纳出来即可。0 d0 t0 L1 [7 v3 K1 X& }  h

. w& ]$ v# d- u5 I. j$ T  U2 n9 a所以,第1步操作是这样的
) e' M/ I  j, k' k, J+ s7 p1 Z* d图形界面的主程序MakeFont.exe% @2 Q# W" V4 w
输入:所有不重复的字符列表AllChars.txt,以及图片的大小,字符宽高等各种参数
' E3 \) d. u' {: J8 w- i输出:字库图片font.png,字库信息文件fontinfo.txt,通用图片字库字符定义文件define.txt% n2 A9 y* W* p) p
     字库信息文件fontinfo.txt保存了整个图片的信息,比如图片的宽度高度等等。# d# z1 ~& X) g- j
     define.txt中以上面描述的格式保存了所有字符的所有可能的属性。
! A) y" Y0 z) q0 z+ n  G4 Z     每行对应一个字符。由于要把工具做成通用的,我们无法预知最终需要哪些属性,# X5 s& f; L+ j, ?3 ~
     所以只能把所有属性都生成出来。
% }- j5 [8 m% h( a, D3 y* S     如果完成了这1部,就已经是一个很强大的工具了。
& _& e" m# V( B3 ?) U     会编成的朋友可以制作一个小程序,把define.txt转化成游戏需要的定义文件的格式。
5 p1 F0 I) H& o& j8 s( A     当然,我们的目标是要制作出一个让不会编成的朋友也会轻易使用的工具,$ n# c* H* z) b5 r8 @5 t
     所以我们还需要制作一个define.txt到游戏需要的定义文件的格式的转换工具。! F7 j9 @6 n* c6 q

" ], v8 N8 U& d2.图片字库的定义文件文件生成
* w) H6 w& K. {  define.txt有了,下一步需要把它转换为游戏需要的定义文件的格式。  P4 ?, c6 F7 P% R2 m
  我们把图片字库的定义文件分成以下2类。
- j- h. h, }9 q: }7 A+ b7 V- N& y
+ f# [/ R( p* m# L/ j  a.文本类型
" u. M+ ?+ x( R    通常这一类型的定义文件用*.xml,*.txt等作为文件名.
  c- o9 E2 N5 P. S& Q3 I   
9 a1 z' e8 G' _5 u7 @3 C1 U    我们先取得游戏的定义文件,一般这个定义文件都有一定的格式。, b) m( G- R! S) G
    我们可以在这个格式的基础上做出1个模版template.txt。模版分固定部分和循环部分。4 _1 n9 c, M2 F* W8 h& n
    循环部分定义了每个字符的属性,这些属性用活动的tag来表示.4 a0 O; u4 U8 m2 l0 N9 v# t; C
    我们可以制作一个图形界面的工具map.exe,用这个工具可以设置活动的tag和define.txt的哪个属性相对应。
0 W9 N5 h/ b. D    然后生成一个map.txt。
" m& o) ^# L: P! z8 v    最后根据fontinfo.txt,define.txt,template.txt,map.txt 生成出我们需要的*.xml或*.txt定义文件。
+ W+ s2 O7 m; W: H% W- @
; G+ e1 r/ I2 y. O6 S( r- n4 u: U  b.16进制文件类型* D- `/ s( _& s/ a1 x, ]6 P8 Y$ _
    通常这一类型的定义文件用*.fnt等作为文件名.
4 A. Q2 }2 t, U3 I    制作过程也和文本类型的类似。只不过有些环节和文本类型略有不同。
+ z; x+ }) c6 o2 q2 k) t2 }    我们把假定的文件名略微改一下。
8 |5 D% a8 D. E& v) v4 R' l    map_bin.exe,template_bin.txt,map_bin.txt
% m8 W- A3 e( Z' K    最后根据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发表的  :9 p% p) I7 ^8 o3 Q# w" N
你说的生成define.txt这一步比较简单, 关键还是define.txt到字库定义这一步怎么做到通用的问题
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-7-10 13:27 | 只看该作者
引用第2楼shane007于2010-07-10 13:25发表的 : . K! L3 V9 u3 d& [& I# _4 s
  J: D0 S6 x7 y! i8 j

: _& `$ g( o# }- k
, I* {  I- a5 x: `# }) m. e2 Y
  \% y) l9 p9 ~  U是的,这个map.exe的功能就比较难做了。6 y5 a3 }8 a2 n# l& N
我想可以先支持几种经常被使用的格式,然后慢慢增加。
3 D  X0 @+ @$ \; `; e+ ?要做成完全通用的估计很难。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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