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

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

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

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

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

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

关于通用图片字库生成工具,我也早有一个制作思路。
8 j4 n, v* v3 R- y6 p% H  |' o% {" |. r+ ^2 o
先写出来,仅供大家参考。
' c% Z" g; ?1 Q# P其实,要把工具做得通用化,关键是要在字库定义文件上下功夫。
# ?% w% v! h- t" E所以我设计了以下这样一个大致流程。
" e5 Z5 Y; M1 q1 r$ D+ A3 K7 L" i) G. L* N6 \
1.图片字库的图片部分生成! |( {5 s6 `  E  N2 V& s. t
对于不同类型的图片字库,其核心是相同的,即定义了一个图片字符的集合,让游戏能根据图片字库定义文件从图片字库中找出对应的字符所3 k0 D" U4 @/ o) V* A: ~
在的区域。# Y! n( D: N6 H2 v

6 w+ G, T0 W% {0 i1 [  S3 g因此我设计了一种通用图片字库定义格式。
, D5 o: Z2 n2 y这个格式是一个类似csv文件的结构,每行用逗号分割,对应一个字符的所有属性。( c( ~. h0 ~" D2 O  h/ `; ^
一个字符的所有属性有大约有20多种,比如字符的宽度,高度,间距等等,我们可以事先收集1批游戏的字库定义文件,
$ R7 k; k( Q0 V8 x1 @& k把各种属性总结归纳出来即可。8 ~1 l; a9 X* [- H8 g; Q
( G7 ]" N+ g2 P* r
所以,第1步操作是这样的
( C6 O5 L) v, f" y2 o/ l图形界面的主程序MakeFont.exe
5 v- A: ^: F, H6 \输入:所有不重复的字符列表AllChars.txt,以及图片的大小,字符宽高等各种参数/ Z6 c2 G, w$ N- d$ f6 b$ |
输出:字库图片font.png,字库信息文件fontinfo.txt,通用图片字库字符定义文件define.txt
4 D7 {" ]0 X5 c( g; {     字库信息文件fontinfo.txt保存了整个图片的信息,比如图片的宽度高度等等。
* e5 r, M2 P7 p5 S5 \     define.txt中以上面描述的格式保存了所有字符的所有可能的属性。1 Y+ n% w, Q% d
     每行对应一个字符。由于要把工具做成通用的,我们无法预知最终需要哪些属性,
" I, F" d% U. r, l$ c     所以只能把所有属性都生成出来。
5 z4 L/ K, w+ M$ J# Z) ^2 D     如果完成了这1部,就已经是一个很强大的工具了。
8 ]3 u  N) A1 O& z* ~     会编成的朋友可以制作一个小程序,把define.txt转化成游戏需要的定义文件的格式。
9 v. E2 j' l  ^0 Z+ {1 W     当然,我们的目标是要制作出一个让不会编成的朋友也会轻易使用的工具,2 o. @# c5 A0 N8 F: Y% F' L, o
     所以我们还需要制作一个define.txt到游戏需要的定义文件的格式的转换工具。
' d5 X, o! J( L, {
7 ]: i8 P& B  g. w4 {- w5 |  ]1 i* v2.图片字库的定义文件文件生成% {! Y7 H# O, X% r( ?& c% z6 e3 R
  define.txt有了,下一步需要把它转换为游戏需要的定义文件的格式。5 v/ h) x1 N: o+ s; J
  我们把图片字库的定义文件分成以下2类。( @# ], O4 o  w$ U/ w# m) N4 U

# m7 b8 l# g; \9 s: G6 E  a.文本类型6 ?6 d" D! A4 Y. @
    通常这一类型的定义文件用*.xml,*.txt等作为文件名.
' K- O, R; Q5 V, v% V) k; u: G$ W    - A9 o) d$ i# D0 _1 E
    我们先取得游戏的定义文件,一般这个定义文件都有一定的格式。7 I% k8 r+ a0 B# Y' }
    我们可以在这个格式的基础上做出1个模版template.txt。模版分固定部分和循环部分。: m6 n! P+ t4 a: Z8 S3 k  s; X
    循环部分定义了每个字符的属性,这些属性用活动的tag来表示.1 ~4 ]. r+ t# T4 [
    我们可以制作一个图形界面的工具map.exe,用这个工具可以设置活动的tag和define.txt的哪个属性相对应。! N3 p! ?' S6 k- k
    然后生成一个map.txt。' ~! R) V" |! U% U/ Z# u3 E
    最后根据fontinfo.txt,define.txt,template.txt,map.txt 生成出我们需要的*.xml或*.txt定义文件。
" _3 f' G2 m) S# B6 w$ @6 |, F# l4 C" q
9 t/ U+ H  Y% A  b.16进制文件类型% v  p; Q( x2 l  ~, C
    通常这一类型的定义文件用*.fnt等作为文件名.
5 _+ @  W: }3 C9 J! i) @1 l, w( Q    制作过程也和文本类型的类似。只不过有些环节和文本类型略有不同。
, h8 @' t. y, b( Y0 y) O. s: `/ q    我们把假定的文件名略微改一下。
' J/ I3 z1 A# N$ y- o7 j6 ~3 @    map_bin.exe,template_bin.txt,map_bin.txt
+ M+ g2 {. {) M- s6 u# W( h    最后根据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发表的  :; ?) {# c; \2 V! p5 D
你说的生成define.txt这一步比较简单, 关键还是define.txt到字库定义这一步怎么做到通用的问题
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-7-10 13:27 | 只看该作者
引用第2楼shane007于2010-07-10 13:25发表的 :
8 v: a9 b8 |7 Q5 ~& j5 p2 p; b4 B
! R9 g. d/ v, z
; d- X; S* \$ m
4 K+ h; `& R2 G# \

" R4 `$ }* |/ D0 }) }是的,这个map.exe的功能就比较难做了。
* w( f& A) w4 v7 e( ^3 o  J' I我想可以先支持几种经常被使用的格式,然后慢慢增加。
: Z, S* n9 g3 q* O0 H! s& O要做成完全通用的估计很难。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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