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

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

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

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

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

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

关于通用图片字库生成工具,我也早有一个制作思路。! x/ e0 l8 O" R4 q; ?
) d4 F2 c6 e" H. N) ~- `
先写出来,仅供大家参考。
+ I+ I, L7 A" q9 M其实,要把工具做得通用化,关键是要在字库定义文件上下功夫。6 H( r1 N) H' `' k' @6 B# B
所以我设计了以下这样一个大致流程。) P/ R7 K. A' ?0 }( \! u

/ g  ?, s- v4 h: l1.图片字库的图片部分生成2 v! P/ x" A1 |& V: T+ _
对于不同类型的图片字库,其核心是相同的,即定义了一个图片字符的集合,让游戏能根据图片字库定义文件从图片字库中找出对应的字符所
. y9 n' V, p' P% y% ~在的区域。. N. j# l) _$ w: Z+ M) l8 L
, ~3 m: i! e' ?! h: C
因此我设计了一种通用图片字库定义格式。* `5 G' L* r; e% P+ X8 t
这个格式是一个类似csv文件的结构,每行用逗号分割,对应一个字符的所有属性。
: A% U: `+ b6 |! O一个字符的所有属性有大约有20多种,比如字符的宽度,高度,间距等等,我们可以事先收集1批游戏的字库定义文件,, L) Q- W7 U  ~0 v6 [" q. y
把各种属性总结归纳出来即可。
4 ~# |  V" T0 L: c4 V; ?& Y. a$ G& f7 n5 f
所以,第1步操作是这样的
( w+ T, P# d6 U) J: H1 [# D* N图形界面的主程序MakeFont.exe0 m, I9 N* ^4 ]* Y) ^
输入:所有不重复的字符列表AllChars.txt,以及图片的大小,字符宽高等各种参数
8 I( h* v( r% p9 x& l+ M输出:字库图片font.png,字库信息文件fontinfo.txt,通用图片字库字符定义文件define.txt' z9 M, {$ u- d* W0 t) p: Y- `
     字库信息文件fontinfo.txt保存了整个图片的信息,比如图片的宽度高度等等。' I% a! R7 q) L$ V: \" M- o5 z
     define.txt中以上面描述的格式保存了所有字符的所有可能的属性。! l6 m5 K' d1 o8 H+ L9 |8 v/ C1 Z
     每行对应一个字符。由于要把工具做成通用的,我们无法预知最终需要哪些属性,) \( l& P+ z# W. J
     所以只能把所有属性都生成出来。
% d+ A+ G' C7 J$ m9 e     如果完成了这1部,就已经是一个很强大的工具了。
6 q" O& J9 U# `/ ^     会编成的朋友可以制作一个小程序,把define.txt转化成游戏需要的定义文件的格式。
- c# Q  q, K9 N  g; P8 Q     当然,我们的目标是要制作出一个让不会编成的朋友也会轻易使用的工具,
- k( C. o" ]& u# E$ g+ z; n7 }, g5 R     所以我们还需要制作一个define.txt到游戏需要的定义文件的格式的转换工具。- ^" x7 D  c6 S+ e8 l& [; a
2 h/ d# c: H; @7 J" H
2.图片字库的定义文件文件生成
" q# }- a; `, i: E, ]" v  define.txt有了,下一步需要把它转换为游戏需要的定义文件的格式。$ y+ B3 H9 U' M7 S
  我们把图片字库的定义文件分成以下2类。- c3 u3 t! \6 `  o* H: L' a

% q( U, A: @8 I$ B+ p  a.文本类型5 B9 Z: p; W7 ~* F! ~% l' z
    通常这一类型的定义文件用*.xml,*.txt等作为文件名.
" n5 G4 h0 `; Q5 _& J   
1 ]9 X% B- a% n# D  p6 |2 x8 S3 @& E& \/ m    我们先取得游戏的定义文件,一般这个定义文件都有一定的格式。. H- A8 L0 N; B, t
    我们可以在这个格式的基础上做出1个模版template.txt。模版分固定部分和循环部分。
0 @# n9 E' i5 Q& L* m    循环部分定义了每个字符的属性,这些属性用活动的tag来表示.
4 k; E6 w1 I0 B% h& X) ]( P% u/ g    我们可以制作一个图形界面的工具map.exe,用这个工具可以设置活动的tag和define.txt的哪个属性相对应。% e; \; P4 N/ S. m7 c3 B" X
    然后生成一个map.txt。5 g. Q  |/ W! Z3 k' j- c( @) ~
    最后根据fontinfo.txt,define.txt,template.txt,map.txt 生成出我们需要的*.xml或*.txt定义文件。( R" i$ Q: b  J3 g
; {3 y$ p0 {, W0 o  g! d/ `( q
  b.16进制文件类型
8 ?3 y3 O$ Y. ~4 k5 @4 W; c2 F    通常这一类型的定义文件用*.fnt等作为文件名.  e( p7 Z4 P* q: ~- z: D" ^
    制作过程也和文本类型的类似。只不过有些环节和文本类型略有不同。
9 g* g$ U9 d# f6 b# a    我们把假定的文件名略微改一下。) p5 L* U' K( n
    map_bin.exe,template_bin.txt,map_bin.txt
( ]4 R- V- D; `! O' F' E    最后根据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发表的  :
) t% g- d* z. T9 A# x$ p: j你说的生成define.txt这一步比较简单, 关键还是define.txt到字库定义这一步怎么做到通用的问题
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-7-10 13:27 | 只看该作者
引用第2楼shane007于2010-07-10 13:25发表的 :
# k+ b+ K3 Q* _5 A
/ t' m7 V6 G8 ~) T4 X/ ?" d

* m+ t  C) X+ q4 z( d" p& M; L- z% b+ n- p

/ |. r* ^7 Z, b# D- A7 R% s# p是的,这个map.exe的功能就比较难做了。
9 ~5 D7 w7 S8 R% l$ U7 e+ b- e我想可以先支持几种经常被使用的格式,然后慢慢增加。
2 |3 A* Q; w: O6 d! B; G要做成完全通用的估计很难。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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