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

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

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

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

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

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

关于通用图片字库生成工具,我也早有一个制作思路。, P6 k* m* v. H% t& e8 _' i
0 F) t: Y5 {6 V1 l
先写出来,仅供大家参考。# F& ~0 M" {8 A; a; K  @5 N% G
其实,要把工具做得通用化,关键是要在字库定义文件上下功夫。/ w, H) R! }8 \7 k/ i. P
所以我设计了以下这样一个大致流程。0 t% M- f" {! m8 Z9 N4 Y5 c. o! E
+ l( @. O0 z+ o( Q$ y
1.图片字库的图片部分生成
* y0 ]. i3 B7 E  q) Z对于不同类型的图片字库,其核心是相同的,即定义了一个图片字符的集合,让游戏能根据图片字库定义文件从图片字库中找出对应的字符所7 C9 ^+ k% V- h
在的区域。
  N% `0 c+ ^: F7 s6 V! r2 ?
6 x" F. \/ v5 l# y$ F! \" `4 Q因此我设计了一种通用图片字库定义格式。
! i$ R* J2 S- a这个格式是一个类似csv文件的结构,每行用逗号分割,对应一个字符的所有属性。
- Y( y' d( L' k一个字符的所有属性有大约有20多种,比如字符的宽度,高度,间距等等,我们可以事先收集1批游戏的字库定义文件,
" C# l4 p3 R2 w" H把各种属性总结归纳出来即可。
" T; B2 b& d3 B5 f
) U6 V% {% R6 `7 a所以,第1步操作是这样的
+ J: U- f: H' T) Y* P4 w0 l+ W图形界面的主程序MakeFont.exe* V+ W3 J& V9 d" M2 i, `' @" P
输入:所有不重复的字符列表AllChars.txt,以及图片的大小,字符宽高等各种参数3 B4 E' \& b- }8 K( I7 c
输出:字库图片font.png,字库信息文件fontinfo.txt,通用图片字库字符定义文件define.txt/ E' p# A4 k# g& b
     字库信息文件fontinfo.txt保存了整个图片的信息,比如图片的宽度高度等等。2 u) q" ~. t, T1 t, l
     define.txt中以上面描述的格式保存了所有字符的所有可能的属性。# o8 q. f6 J+ k, E# F
     每行对应一个字符。由于要把工具做成通用的,我们无法预知最终需要哪些属性,, c) R1 n. v7 C
     所以只能把所有属性都生成出来。) K, X$ D, w) q* e6 z. N5 O
     如果完成了这1部,就已经是一个很强大的工具了。- I" w( Z. Q; \- p5 `
     会编成的朋友可以制作一个小程序,把define.txt转化成游戏需要的定义文件的格式。
2 L' e) x/ B/ S! ]/ N     当然,我们的目标是要制作出一个让不会编成的朋友也会轻易使用的工具,; l  ]* P% |9 b6 r6 d7 Z
     所以我们还需要制作一个define.txt到游戏需要的定义文件的格式的转换工具。6 `  G$ f! d5 i5 G- z  }

% ^/ Q# u5 S2 l1 _- d2.图片字库的定义文件文件生成
" X, c# t, g9 O9 V+ E  define.txt有了,下一步需要把它转换为游戏需要的定义文件的格式。
' ~) q6 y2 @6 F9 a  我们把图片字库的定义文件分成以下2类。
- W3 o: n+ G% V% s4 C! W5 f2 \8 i, L, b! }+ r2 u% \( f' _# {5 F( Q
  a.文本类型8 j- D; O  Q+ \$ x( M
    通常这一类型的定义文件用*.xml,*.txt等作为文件名.5 }# u2 v  c. t6 s  k/ a, N
   
* r, a0 H% E3 Y( P1 \    我们先取得游戏的定义文件,一般这个定义文件都有一定的格式。  m/ Q5 K, k: X% ]) I
    我们可以在这个格式的基础上做出1个模版template.txt。模版分固定部分和循环部分。
  |) n4 x6 v$ i; d# d. ?    循环部分定义了每个字符的属性,这些属性用活动的tag来表示.- o3 Z0 h, ?$ M  p8 d) l
    我们可以制作一个图形界面的工具map.exe,用这个工具可以设置活动的tag和define.txt的哪个属性相对应。
5 k" G- Z2 ?6 [/ T    然后生成一个map.txt。. Y1 X2 m9 h; S" T
    最后根据fontinfo.txt,define.txt,template.txt,map.txt 生成出我们需要的*.xml或*.txt定义文件。
. L* x3 C& _- X0 _$ v) P4 k8 w. o3 z' d, Q9 }/ t' O, U
  b.16进制文件类型
" ~. p- R7 I% I, P) ~9 d0 f$ e    通常这一类型的定义文件用*.fnt等作为文件名.9 B+ g1 q% I+ F. f
    制作过程也和文本类型的类似。只不过有些环节和文本类型略有不同。
" u( \: b" ^' T5 @) F: ^    我们把假定的文件名略微改一下。
4 P' K& D5 |5 d$ c. n$ W    map_bin.exe,template_bin.txt,map_bin.txt
5 Y6 D% E. k$ ]7 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发表的  :- H: h% D3 Z" P" K9 U
你说的生成define.txt这一步比较简单, 关键还是define.txt到字库定义这一步怎么做到通用的问题
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-7-10 13:27 | 只看该作者
引用第2楼shane007于2010-07-10 13:25发表的 : - t) @$ M& t  K/ x/ Y

" S* K% ^7 d1 Y+ b3 j# X2 I
, f' L  o) u: Z5 X
& _  y7 w4 q6 G8 ]3 Z: d3 R' @

8 K& t* P/ R+ F2 J$ G! @是的,这个map.exe的功能就比较难做了。3 S$ x6 \! H$ c1 y
我想可以先支持几种经常被使用的格式,然后慢慢增加。
' f+ i4 Y% W: K* j; i0 E  u要做成完全通用的估计很难。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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