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

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

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

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

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

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

关于通用图片字库生成工具,我也早有一个制作思路。9 I. u$ a- T" i4 H9 \5 `/ b/ u

' X+ x( E& G$ k7 O& q先写出来,仅供大家参考。
( p1 B7 `; t0 _  e% u8 V其实,要把工具做得通用化,关键是要在字库定义文件上下功夫。" d3 z( R8 V' d  e& M
所以我设计了以下这样一个大致流程。
: M0 m+ d9 \) {' f/ g3 y8 s" X* s, N, B% s
1.图片字库的图片部分生成
% c/ k* x2 i* T, d- ?- y& d对于不同类型的图片字库,其核心是相同的,即定义了一个图片字符的集合,让游戏能根据图片字库定义文件从图片字库中找出对应的字符所
" k( R4 ]1 Y+ G! h3 P* m在的区域。  L! W, m# g+ E! C/ c! `

7 m) c' I' @8 x" {2 t4 @因此我设计了一种通用图片字库定义格式。
' T! k! `8 P7 b1 s4 p, y这个格式是一个类似csv文件的结构,每行用逗号分割,对应一个字符的所有属性。6 D0 N2 ?- Z- t1 j
一个字符的所有属性有大约有20多种,比如字符的宽度,高度,间距等等,我们可以事先收集1批游戏的字库定义文件,
0 S$ w+ b: ?! c0 n1 c把各种属性总结归纳出来即可。9 s$ C" L  x7 |/ O$ z

2 ?4 v/ H( M( I所以,第1步操作是这样的2 p  F( V1 R" r2 k: f- F
图形界面的主程序MakeFont.exe" k" I( d! z* s. q
输入:所有不重复的字符列表AllChars.txt,以及图片的大小,字符宽高等各种参数
4 ?! Q8 H* W! J! e1 N7 d0 X, B输出:字库图片font.png,字库信息文件fontinfo.txt,通用图片字库字符定义文件define.txt
+ W5 N, r3 c2 H, Y2 _* r     字库信息文件fontinfo.txt保存了整个图片的信息,比如图片的宽度高度等等。
) D: J: |* F' B* R2 j     define.txt中以上面描述的格式保存了所有字符的所有可能的属性。! p+ s# v7 p: T2 q  x
     每行对应一个字符。由于要把工具做成通用的,我们无法预知最终需要哪些属性,
4 d8 U- q; C6 D- o     所以只能把所有属性都生成出来。& l( M6 F" x4 N4 S0 p
     如果完成了这1部,就已经是一个很强大的工具了。. |% Q8 t8 E! [" e
     会编成的朋友可以制作一个小程序,把define.txt转化成游戏需要的定义文件的格式。4 q: Q5 z+ z4 g- H& w5 X0 n
     当然,我们的目标是要制作出一个让不会编成的朋友也会轻易使用的工具,
/ G# y  e) r, f7 d( @' e     所以我们还需要制作一个define.txt到游戏需要的定义文件的格式的转换工具。& O# ^6 U2 t) ^
7 U5 ~# V: w. Y5 B, I3 n: \% e
2.图片字库的定义文件文件生成
* ?3 j4 j" x" M  define.txt有了,下一步需要把它转换为游戏需要的定义文件的格式。
2 w& U: ~5 p- R4 s8 U1 E) z  我们把图片字库的定义文件分成以下2类。
( m- q2 ~# k1 f9 x
( Y) n) S3 X3 v# c  a.文本类型" r+ T* P5 K6 A  w9 P" ]6 F
    通常这一类型的定义文件用*.xml,*.txt等作为文件名.5 k! [" b5 p; q& W8 n/ G0 q
   
( `4 ~! @9 E+ [# L    我们先取得游戏的定义文件,一般这个定义文件都有一定的格式。) V% A- r0 i# @
    我们可以在这个格式的基础上做出1个模版template.txt。模版分固定部分和循环部分。
# m7 y! T, d  w$ }, }2 e7 z    循环部分定义了每个字符的属性,这些属性用活动的tag来表示.7 u/ x- b4 d# K! D7 X
    我们可以制作一个图形界面的工具map.exe,用这个工具可以设置活动的tag和define.txt的哪个属性相对应。. L& c0 v3 w  J
    然后生成一个map.txt。' G7 n* @( T" {( s: o* F
    最后根据fontinfo.txt,define.txt,template.txt,map.txt 生成出我们需要的*.xml或*.txt定义文件。; F8 |  d0 s3 `" `

6 X/ O; Q; l& a' m  C8 v  b.16进制文件类型1 ]8 B! A3 f! X. h, f
    通常这一类型的定义文件用*.fnt等作为文件名.& I9 Z, v5 k6 S- T7 e( r+ Y2 ^! v! t5 Y2 `
    制作过程也和文本类型的类似。只不过有些环节和文本类型略有不同。
: L. k5 e% G% n  N. B    我们把假定的文件名略微改一下。
" t1 b9 l; w6 ?- d0 |  x    map_bin.exe,template_bin.txt,map_bin.txt* T- b8 {0 {" `3 v0 k8 w' y6 F
    最后根据fontinfo.txt,define.txt,template_bin.txt,map_bin.txt 生成出我们需要的*.fnt等定义文件。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

地板
 楼主| 发表于 2010-7-10 13:27 | 只看该作者
引用第2楼shane007于2010-07-10 13:25发表的 : 3 N4 X/ E# k1 M0 o; V, v

) z( g+ F. F. [$ z  @: r) d" B3 Q

) \4 ~+ D3 c  l$ m. _( \# P- H5 N% d7 o8 h% P# ^
5 t2 H. x. R! s  Q  ^$ E1 Z
是的,这个map.exe的功能就比较难做了。" O& \0 f$ I  k5 N' v8 V
我想可以先支持几种经常被使用的格式,然后慢慢增加。0 M% V5 K: b8 u2 j9 E& q! |+ A
要做成完全通用的估计很难。
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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