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

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

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

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

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

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

关于通用图片字库生成工具,我也早有一个制作思路。) d9 T' l3 W9 @6 k/ P

( b8 T/ L4 K& F0 z+ G! [$ l3 ?( j先写出来,仅供大家参考。
7 p5 B" G3 n: k4 e; z7 D6 i其实,要把工具做得通用化,关键是要在字库定义文件上下功夫。$ e! y/ z# q4 X2 R2 G8 q
所以我设计了以下这样一个大致流程。
2 e2 D' {& `# w4 E
/ f# F" {& b; P( u. K( [& F1.图片字库的图片部分生成6 j* y+ X2 r2 W6 s( V
对于不同类型的图片字库,其核心是相同的,即定义了一个图片字符的集合,让游戏能根据图片字库定义文件从图片字库中找出对应的字符所
; t) x" u4 D. X0 K在的区域。
0 T( i; T. H2 S* m* O. f+ b: v! }! ?6 q7 c( D( h1 T
因此我设计了一种通用图片字库定义格式。
% s) A$ r" a  g6 N! w这个格式是一个类似csv文件的结构,每行用逗号分割,对应一个字符的所有属性。. V4 o+ l$ t" M- S8 [. F8 f  W
一个字符的所有属性有大约有20多种,比如字符的宽度,高度,间距等等,我们可以事先收集1批游戏的字库定义文件,
0 V3 p' o/ A$ V% @. I& ]3 w把各种属性总结归纳出来即可。$ n% R6 [) K6 A( E9 X* B
: ~" K, ^0 s5 g& ^
所以,第1步操作是这样的) d% T5 b: f% ]5 O
图形界面的主程序MakeFont.exe. `( {: x/ r. n+ Z
输入:所有不重复的字符列表AllChars.txt,以及图片的大小,字符宽高等各种参数! F' C' K1 N2 b5 R, F" ^
输出:字库图片font.png,字库信息文件fontinfo.txt,通用图片字库字符定义文件define.txt! c$ I, T/ L7 W1 J: p9 A& [
     字库信息文件fontinfo.txt保存了整个图片的信息,比如图片的宽度高度等等。
3 N3 [  Q$ i6 P7 ?9 v) C3 p     define.txt中以上面描述的格式保存了所有字符的所有可能的属性。% v: g* F9 l: U& r
     每行对应一个字符。由于要把工具做成通用的,我们无法预知最终需要哪些属性,7 o# {4 d- x6 p* K* Q/ c
     所以只能把所有属性都生成出来。3 c. E+ W+ i* W6 J
     如果完成了这1部,就已经是一个很强大的工具了。
, J; \' P6 p; e- F) G     会编成的朋友可以制作一个小程序,把define.txt转化成游戏需要的定义文件的格式。$ p: g1 e! w/ H
     当然,我们的目标是要制作出一个让不会编成的朋友也会轻易使用的工具,
  y. g/ b' v6 H/ O: W0 @" y( P6 [: E     所以我们还需要制作一个define.txt到游戏需要的定义文件的格式的转换工具。' A3 f/ u, M! s6 e/ x
7 b" ~- E; j5 Q1 \" C4 B
2.图片字库的定义文件文件生成
0 C+ F' w* R' A* t" J  define.txt有了,下一步需要把它转换为游戏需要的定义文件的格式。
7 ~% T) X( C5 `. n; ?" {- X  我们把图片字库的定义文件分成以下2类。/ k- `8 S  d; q% N  Y  o+ }- }; F8 w
/ x/ ^+ u. v7 I: Y9 A) y
  a.文本类型
) U0 j& e8 T8 s) {2 I    通常这一类型的定义文件用*.xml,*.txt等作为文件名.0 A7 v$ F0 Z' T. d) \, q0 d' q
   
  K" _  G  d3 r# `7 Y4 ^    我们先取得游戏的定义文件,一般这个定义文件都有一定的格式。
$ M9 F; Z& [) l% F/ H" ?; K( k    我们可以在这个格式的基础上做出1个模版template.txt。模版分固定部分和循环部分。
3 s& n- b; |# ^5 p, m9 ]! k    循环部分定义了每个字符的属性,这些属性用活动的tag来表示.
# y2 F8 t/ p; x3 X    我们可以制作一个图形界面的工具map.exe,用这个工具可以设置活动的tag和define.txt的哪个属性相对应。
) Z0 k4 ~4 g/ _5 \7 `    然后生成一个map.txt。! B8 `$ |- l0 A- p+ ?6 E6 x, V
    最后根据fontinfo.txt,define.txt,template.txt,map.txt 生成出我们需要的*.xml或*.txt定义文件。
/ {0 J( P, Q# n7 s8 g
- o. c& `9 J( c  b.16进制文件类型
1 {0 Y3 \- j3 N6 s1 I/ Z9 ^2 M    通常这一类型的定义文件用*.fnt等作为文件名.- R: O, |6 {. k2 Y! q3 B9 {+ A' I
    制作过程也和文本类型的类似。只不过有些环节和文本类型略有不同。
& h5 ]. r7 W3 T8 g) q+ g    我们把假定的文件名略微改一下。6 f7 `2 M6 |% k
    map_bin.exe,template_bin.txt,map_bin.txt: c0 w0 e+ ?( F" w
    最后根据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发表的  :4 P" o' z$ ~- Z$ |) a9 w! r/ L
你说的生成define.txt这一步比较简单, 关键还是define.txt到字库定义这一步怎么做到通用的问题
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-7-10 13:27 | 只看该作者
引用第2楼shane007于2010-07-10 13:25发表的 : 0 r) V$ g* @3 ~3 u+ O5 f
6 q2 M- j/ w2 h; D3 M7 x% A

3 ?) @2 F. A- @( L7 H! P
$ k. H$ N5 O) M4 ^3 O2 _# g3 v* X( q) S2 f! v
是的,这个map.exe的功能就比较难做了。
' s. |* c  z, j: |, T0 @' z% y# D/ v我想可以先支持几种经常被使用的格式,然后慢慢增加。
9 d4 E3 S/ m. V; Z5 J0 \要做成完全通用的估计很难。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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