看了一下Ankh - Heart of Osiris 这个游戏,觉得很适合用来作为第1个被汉化的大型图片字库AVG。 1 f. {4 }* q$ V& W C
下面对这个游戏做一下简单的汉化分析。 @* U6 a# S2 \1 \% Y7 ~! D/ J
$ a0 p7 i7 o( W1 ~- U' y# ~9 e这是一个Directx9的游戏,用代理DLL已经试验过了,可以起作用。
- r! V5 B8 s& l& a' c字幕文件在\media\shared\speech\english下面的各个目录里,都是.bin文件,里面保存的是明文的字幕ID和字幕文本。 0 l- I* @+ |4 J8 _2 I4 m
; _1 z" S: u t
这个游戏的各种字幕画面可以参考这个帖子。
# P' o+ _! ?; @/ I) F' X! }https://www.chinaavg.com/read.php?tid=17368 . g9 _! w8 v& {' \7 X4 s
下面简单说一下汉化字幕的方法。
+ ^5 U, V9 z2 m: g- L这个游戏有不少dat文件其实是zip文件,比如以下这个。
4 _. T2 i% x) J+ [- N" S& b\media\shared\local.dat 解开后可以发现一些字体文件。 # u$ N' F( z) f, K; c$ G& o1 ^
一般一个字体包括一个.tga 和2个同名的配置文件。
$ u7 `, d: S! Z! q$ b: Q7 c游戏中用的字体都是不等高和等宽的,我们要先修改配置文件,使其等高和等宽。 ' O! Y. {; k# M6 k9 i+ d: D
+ _# L4 a/ O$ t8 W/ |' |$ g8 N
菜单画面 3 u' B) O. m+ E% c% H; S& o# o
看了游戏字幕画面,我们发现,菜单是单独使用一种字体的,这样我们只要把tga中的字体样子修改一下就行了。 - B4 @8 \ ?% p' i7 x) \- `
% p! X J' N }( }7 I
底部多行对话选择画面, 底部单行对话画面,底部单行提示字幕画面
( {, X0 G. n% a1 ]" [( Z对于这3种字幕画面,由于背景是纯黑色的,比较简单,我们用像下面的这种变种条形码和自制的码表,配合图形识别技术就能显示出字幕。 ! ^4 ^4 J7 k! h2 o
方块 空格 方块 方块 方块 空格 方块 空格 3 L4 s5 ]- D# Z8 u3 {9 c
& j3 f4 D' J" U- p6 a. Q8 `& G画面中部字幕
2 T+ ~3 i `# j对于这种字幕,由于有背景,我们可以显示一个像素级的2维码,判断之后,显示字幕,并进行一些位置调整,让我们显示出来的字幕把像素级的2维码遮盖掉。 * O1 e2 c* Z3 S0 \
! v0 N- E2 d+ D- t& S像素级2维码大致是这样子的 % q8 x i! j2 p% q3 r" r
, D w7 ^) D0 I5 y% X/ n* A
黄像素 透明像素 黄像素
P3 W0 G. [7 z3 [8 d/ A5 Y黄像素 黄像素 透明像素 * F4 J- t7 S$ `* A L; {: [
黄像素 透明像素 透明像素
9 J9 B4 E# T& D# J9 O) e* J( C3 k& e2 L
下面先放上这个游戏的部分字幕文件 # B4 m3 F$ |- H- g
---------------------------------------------
9 c0 ] p6 f' N/ I. l7 W2009.6.3 更新 # x, U. w9 k1 a4 _# S' K r5 { u
看了一下ANKH 1 ,的确字幕位置和ANKH 2完全一样。 / o8 l) |1 S/ B; k
+ T' V8 V/ V. s8 K, X k( M7 r字幕文件TGA文件的格式如下
8 _; S9 B2 o' j" s头部 18 字节 % O7 a- Y) Z. ]! P! F
数据部 宽X高X4 字节 BGRA 格式存放 $ n _) y0 O2 R( Z" b" r* I
尾部 26 字节
; q1 o7 x9 |9 z+ I9 ^--------------------------------------------- / L4 y; Y* Y4 f8 B
2009.6.3 第2次更新 $ ]) i; Z/ a; @. q: V% z. _. Q
放上ANKH 2 的另一个字幕文件Interface_english.bin。 5 u& H7 N$ i1 @# _9 Q4 b
主菜单的字幕都在里面。 ) M V- F- j( P" f" e# X3 S
以及ANKH 1 的字幕文件 ankhEnglishStringTable.bin。 % P. n: h, P- t3 a
--------------------------------------------- ' g7 y% i" h9 w( y) B
2009.6.3 第3次更新 E8 g6 |, Q8 s% g/ U& k5 _
补上一个 ANKH 1 的字幕文件 conversations.bin
9 o( F+ ` E) ^# [' a: W) {4 Y2 \& ^# c J
字幕ID前缀说明
) `/ t# L1 {9 tCFG_CHAR ANKH 1 屏幕中央字幕
, ~( I, X% N. c4 g8 b; wID_MENU ANKH 1,2 主菜单字幕
2 x- y3 p* ~" }CHAR_ ANKH 2 屏幕中央字幕 |