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

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

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

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

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

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

关于通用图片字库生成工具,我也早有一个制作思路。
6 T/ K# z9 c, B% P# D# G% k; e6 w& l: i
先写出来,仅供大家参考。
9 w; x/ E) [. g其实,要把工具做得通用化,关键是要在字库定义文件上下功夫。& o) z4 X' T' i) c9 e( k- Q
所以我设计了以下这样一个大致流程。3 v5 E3 ^* {: j& [

3 X6 O; @/ h: g* k& P! C7 A1.图片字库的图片部分生成
) V, u0 p1 Z6 n+ |对于不同类型的图片字库,其核心是相同的,即定义了一个图片字符的集合,让游戏能根据图片字库定义文件从图片字库中找出对应的字符所4 A$ L7 \+ T6 S
在的区域。) r1 L8 S7 L  ^- E
4 |9 o+ W# {. _3 p- ?) }
因此我设计了一种通用图片字库定义格式。3 I- d0 h. U8 h$ P& `4 D. \
这个格式是一个类似csv文件的结构,每行用逗号分割,对应一个字符的所有属性。8 L) e) d2 H" Y9 F
一个字符的所有属性有大约有20多种,比如字符的宽度,高度,间距等等,我们可以事先收集1批游戏的字库定义文件,
5 L7 |( S0 J9 }1 x. k把各种属性总结归纳出来即可。
! U/ f$ u5 |( i# a! z4 e
# X  R& U8 Y' n4 d( p7 u/ E4 B所以,第1步操作是这样的0 k, E' L8 ]1 W" B% z% ^
图形界面的主程序MakeFont.exe! {" O' J0 |9 D' u
输入:所有不重复的字符列表AllChars.txt,以及图片的大小,字符宽高等各种参数
, V5 T0 Y$ N6 m2 n8 }4 p+ R* Q输出:字库图片font.png,字库信息文件fontinfo.txt,通用图片字库字符定义文件define.txt/ \) a& J# D% \3 B/ a6 v% T; y
     字库信息文件fontinfo.txt保存了整个图片的信息,比如图片的宽度高度等等。
+ ]1 @& L* K8 O) {( f1 w2 r     define.txt中以上面描述的格式保存了所有字符的所有可能的属性。* K. b* b1 [8 {+ B
     每行对应一个字符。由于要把工具做成通用的,我们无法预知最终需要哪些属性,
% r$ s/ m" e1 B+ J; l$ f2 {     所以只能把所有属性都生成出来。9 m5 K2 w) [9 S( K8 J. l
     如果完成了这1部,就已经是一个很强大的工具了。) a$ W2 _, W# q0 }" \
     会编成的朋友可以制作一个小程序,把define.txt转化成游戏需要的定义文件的格式。; q0 M5 _7 s/ _" A- \; E
     当然,我们的目标是要制作出一个让不会编成的朋友也会轻易使用的工具,- G  d: N% g8 e* [( F5 @
     所以我们还需要制作一个define.txt到游戏需要的定义文件的格式的转换工具。
* }( E  {! _3 {! i9 f; T* V% f& D: l% |9 f/ R9 s
2.图片字库的定义文件文件生成
4 ^5 ^2 @1 f2 Z6 R  Y1 I2 c  define.txt有了,下一步需要把它转换为游戏需要的定义文件的格式。/ `5 w. N9 C1 Y7 Y& ~, s% `8 `
  我们把图片字库的定义文件分成以下2类。3 O6 K) g3 a3 Z" j

, v8 X9 v) D- s; E  a.文本类型2 g! w1 X. N  v5 [% y1 m
    通常这一类型的定义文件用*.xml,*.txt等作为文件名.$ S2 M/ T0 u1 ~3 T0 [$ d& I3 I7 }
   
% {; O3 I# Y  s6 [    我们先取得游戏的定义文件,一般这个定义文件都有一定的格式。
3 \3 F2 J0 y/ g3 K' {  ?    我们可以在这个格式的基础上做出1个模版template.txt。模版分固定部分和循环部分。
$ |/ |. M! Y' P, s) Y    循环部分定义了每个字符的属性,这些属性用活动的tag来表示.
$ C3 K7 S3 A+ \5 t    我们可以制作一个图形界面的工具map.exe,用这个工具可以设置活动的tag和define.txt的哪个属性相对应。2 ^% R" H2 `' h( L
    然后生成一个map.txt。' R9 x; ~* Y+ B" R# t# {1 y
    最后根据fontinfo.txt,define.txt,template.txt,map.txt 生成出我们需要的*.xml或*.txt定义文件。0 a( A! l: T+ o' O- J, j" ~

/ ^8 e% u* _- j2 q- t% v4 w  b.16进制文件类型6 A% I1 b) t* j/ I1 H( y9 H  _
    通常这一类型的定义文件用*.fnt等作为文件名.
' K) l# |! g5 p    制作过程也和文本类型的类似。只不过有些环节和文本类型略有不同。, e. D5 ]& m* ?9 `. B
    我们把假定的文件名略微改一下。& z6 c# Q+ ~4 P9 l8 e) x
    map_bin.exe,template_bin.txt,map_bin.txt
  m- L+ D  W* j    最后根据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发表的 :
+ G4 _0 l! m& B( c3 @) f# B- X, T9 k: o6 g
; }* _4 ^  N  v4 B, ^! l6 H
; }# d! D1 i( _' v: P. l

  D" v/ T8 c; t# k) n是的,这个map.exe的功能就比较难做了。1 L6 q2 A' ^6 t
我想可以先支持几种经常被使用的格式,然后慢慢增加。
) [+ l3 }$ d6 {" g要做成完全通用的估计很难。
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-7-10 13:25 | 只看该作者
引用第1楼bandaot于2010-07-10 12:57发表的  :8 L8 e$ E4 s$ s! J; O
你说的生成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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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