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

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

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

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

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

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

关于通用图片字库生成工具,我也早有一个制作思路。
7 G" X" C+ q: i, ~
) F. Y# H) k6 f. W; @. |. C; Q先写出来,仅供大家参考。1 U0 @4 @) q, |+ e4 i1 L3 P. d
其实,要把工具做得通用化,关键是要在字库定义文件上下功夫。
) j# s0 V, C4 |) p* ?所以我设计了以下这样一个大致流程。( N9 ?0 m  F( e6 I. v

7 w3 w3 x1 ]/ D$ x: o1.图片字库的图片部分生成
4 y* ~% l% W# o: [" g- n- e对于不同类型的图片字库,其核心是相同的,即定义了一个图片字符的集合,让游戏能根据图片字库定义文件从图片字库中找出对应的字符所- j/ I4 J* H/ o( _* ^) \5 d$ l. B
在的区域。
  v1 ^6 R' c% e2 w9 a8 m- N8 o) n# u: ~
因此我设计了一种通用图片字库定义格式。
: R/ g& w  t2 r- ?6 k: f这个格式是一个类似csv文件的结构,每行用逗号分割,对应一个字符的所有属性。1 g+ s& l. V! \
一个字符的所有属性有大约有20多种,比如字符的宽度,高度,间距等等,我们可以事先收集1批游戏的字库定义文件,
8 x) U1 D+ \, @/ o, u+ w+ Y把各种属性总结归纳出来即可。) w! h6 b  A7 ~+ L0 ?
. m% C. }4 l- ~" {/ Z
所以,第1步操作是这样的
& q& y- i5 ?: ^5 O: p& X2 E) o图形界面的主程序MakeFont.exe
* K9 U6 Z& W; W$ ^# n# P6 c  t输入:所有不重复的字符列表AllChars.txt,以及图片的大小,字符宽高等各种参数
- e. l! E; u0 I  C输出:字库图片font.png,字库信息文件fontinfo.txt,通用图片字库字符定义文件define.txt5 w# H  V( e% E1 o- K3 g
     字库信息文件fontinfo.txt保存了整个图片的信息,比如图片的宽度高度等等。
2 z7 f' G+ w; M8 c8 j     define.txt中以上面描述的格式保存了所有字符的所有可能的属性。$ w* V" J) V! L6 m1 s  F8 O& p) x/ l
     每行对应一个字符。由于要把工具做成通用的,我们无法预知最终需要哪些属性,. o$ _! j+ O# G5 H
     所以只能把所有属性都生成出来。
+ d0 w. @2 \$ Q     如果完成了这1部,就已经是一个很强大的工具了。. C  H+ S8 |1 F. ~
     会编成的朋友可以制作一个小程序,把define.txt转化成游戏需要的定义文件的格式。. J# ~& n; ~0 v$ g4 |4 e: J" H* c
     当然,我们的目标是要制作出一个让不会编成的朋友也会轻易使用的工具,
5 b; u) @3 c0 a" n% o9 v5 l0 O  Q     所以我们还需要制作一个define.txt到游戏需要的定义文件的格式的转换工具。! P. I. }- q8 m0 J0 |

, t8 X3 y9 W$ X2.图片字库的定义文件文件生成; U3 `/ T, d) o" t
  define.txt有了,下一步需要把它转换为游戏需要的定义文件的格式。
  T1 C$ l4 x/ g/ q6 ^  我们把图片字库的定义文件分成以下2类。
) T9 D9 A6 i" G' Q( H9 u/ |8 \5 f0 O% ]' y1 U3 o
  a.文本类型
  t5 x0 k( Q0 K/ z2 ]) y    通常这一类型的定义文件用*.xml,*.txt等作为文件名.' b' P  n, }: s0 u! Z
   
) B5 E' R+ I1 Z+ z' a/ |* T. m1 R    我们先取得游戏的定义文件,一般这个定义文件都有一定的格式。
3 M4 a$ l4 R; i9 Q' _8 |$ q    我们可以在这个格式的基础上做出1个模版template.txt。模版分固定部分和循环部分。4 H9 i. f% t2 D. I. z" j$ q
    循环部分定义了每个字符的属性,这些属性用活动的tag来表示.4 y$ y& k0 d* C& X
    我们可以制作一个图形界面的工具map.exe,用这个工具可以设置活动的tag和define.txt的哪个属性相对应。
! Z( a2 ~7 {/ v8 q3 l6 y4 [2 q$ n    然后生成一个map.txt。
1 z; k8 k7 _  I8 H    最后根据fontinfo.txt,define.txt,template.txt,map.txt 生成出我们需要的*.xml或*.txt定义文件。- G1 z  p% n& W# S9 R. }3 J8 o
5 R2 I* r+ e' _0 ?6 }; {
  b.16进制文件类型: O* J# b. J7 b  d* A- s0 h0 u
    通常这一类型的定义文件用*.fnt等作为文件名.
) C+ R/ u7 s2 Y, }. _" k4 \" M    制作过程也和文本类型的类似。只不过有些环节和文本类型略有不同。
! u( x, A) n3 l( u; `! f    我们把假定的文件名略微改一下。
: ]9 o! f0 i* z' b* @/ Y    map_bin.exe,template_bin.txt,map_bin.txt
3 ?5 n9 E$ y* ?2 l9 S. A    最后根据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发表的  :
. A6 X9 m- L: i( J' A你说的生成define.txt这一步比较简单, 关键还是define.txt到字库定义这一步怎么做到通用的问题
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-7-10 13:27 | 只看该作者
引用第2楼shane007于2010-07-10 13:25发表的 : % ]/ X& ^7 ^, E3 a8 t

4 x" T( _8 a% s' X0 Z4 s

+ W! p+ a( }/ S6 g3 [1 d
+ M  m, U3 t* R& ^5 f/ m* H/ Y# L" ^0 G% f
是的,这个map.exe的功能就比较难做了。' R) O, Y& Y: a( _
我想可以先支持几种经常被使用的格式,然后慢慢增加。
% ^: |1 R  L+ h" m5 V  e6 b要做成完全通用的估计很难。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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