看了一下Ankh - Heart of Osiris 这个游戏,觉得很适合用来作为第1个被汉化的大型图片字库AVG。 & a) L: j( h! i, n% [% C, v" y
下面对这个游戏做一下简单的汉化分析。
: H3 ~; y% ?# G3 ^. g6 c! ?! F' k t4 a/ C2 `
这是一个Directx9的游戏,用代理DLL已经试验过了,可以起作用。
% R0 {+ y- H1 n: l字幕文件在\media\shared\speech\english下面的各个目录里,都是.bin文件,里面保存的是明文的字幕ID和字幕文本。
' v0 n) D8 C! M) P, Y8 `
2 i& N5 P& a( J6 i这个游戏的各种字幕画面可以参考这个帖子。
+ ]) v y& A" E9 r( e) [https://www.chinaavg.com/read.php?tid=17368
& R% @3 A2 B- t" i- G, _; I下面简单说一下汉化字幕的方法。
9 I5 U: e m5 [2 B; [% n这个游戏有不少dat文件其实是zip文件,比如以下这个。
8 W7 c$ j$ Y. V' Z9 R3 p$ @ a4 B\media\shared\local.dat 解开后可以发现一些字体文件。
1 ?0 |) L& v& r4 a- @* A一般一个字体包括一个.tga 和2个同名的配置文件。 4 M1 N" X6 l' H
游戏中用的字体都是不等高和等宽的,我们要先修改配置文件,使其等高和等宽。 , w5 j, K& H+ n6 i6 z- C( ~
/ w+ z4 H* Q3 U' b/ O
菜单画面 $ Q4 F, S3 M2 t/ \. ? z
看了游戏字幕画面,我们发现,菜单是单独使用一种字体的,这样我们只要把tga中的字体样子修改一下就行了。
3 R, q I( K v
) Q+ L3 z0 [% w% P/ q" h! u底部多行对话选择画面, 底部单行对话画面,底部单行提示字幕画面
; z8 _5 b# |$ ~' w9 x6 \对于这3种字幕画面,由于背景是纯黑色的,比较简单,我们用像下面的这种变种条形码和自制的码表,配合图形识别技术就能显示出字幕。
6 @6 r( \1 G" b方块 空格 方块 方块 方块 空格 方块 空格 3 y% p- N0 s6 z, s
& R/ |3 s1 @/ k) R# [画面中部字幕
; E0 H# Z9 M* \$ l. x对于这种字幕,由于有背景,我们可以显示一个像素级的2维码,判断之后,显示字幕,并进行一些位置调整,让我们显示出来的字幕把像素级的2维码遮盖掉。
+ M2 O, R! @* u, ^4 M- M
7 I0 M: G( c: K像素级2维码大致是这样子的 ! t# x% w* N% J+ ?
& \+ }5 l# ?. F$ j+ X" b4 u# ?黄像素 透明像素 黄像素 ! ^. `) J' M! a. u' y
黄像素 黄像素 透明像素
& b: f9 C9 n4 I1 K黄像素 透明像素 透明像素 * E' i6 R# Z% K7 c0 S z
* \" n3 p2 q% N- u$ F
下面先放上这个游戏的部分字幕文件 ! A; p* I8 A2 r7 @1 t1 [( F4 `6 o
--------------------------------------------- 2 i4 t" B C7 @
2009.6.3 更新 3 }& B4 ~( ]- z e* i! z; |- j1 k
看了一下ANKH 1 ,的确字幕位置和ANKH 2完全一样。
' J. O: g" O: r/ a7 i5 T0 H5 S0 i. A
字幕文件TGA文件的格式如下 % H$ O/ ~( E. s$ w7 I
头部 18 字节 a7 Z+ X8 d3 \: n5 C" ]1 F2 I
数据部 宽X高X4 字节 BGRA 格式存放 5 X1 T4 c$ k$ h% J a
尾部 26 字节
g% B# b* W& e7 q& B& W5 [) U---------------------------------------------
0 f7 H5 c* T8 j0 |2009.6.3 第2次更新
- k/ _& n% k& I8 E Z1 `放上ANKH 2 的另一个字幕文件Interface_english.bin。
# O% W2 \, h- _0 |, r2 X5 z, i主菜单的字幕都在里面。 + |3 @* ~1 E; `! `$ L
以及ANKH 1 的字幕文件 ankhEnglishStringTable.bin。 6 ?+ J+ U' }8 n
---------------------------------------------
' X, O) ~* \8 M8 G; s: G2009.6.3 第3次更新
+ B. [$ e" y4 S# H7 I. t1 Q补上一个 ANKH 1 的字幕文件 conversations.bin
$ D6 _$ I- j9 }5 |. {6 c0 k8 E# k
字幕ID前缀说明
. W, C g0 _. N0 R! e- Q6 qCFG_CHAR ANKH 1 屏幕中央字幕
8 Z x6 ~3 V7 S( CID_MENU ANKH 1,2 主菜单字幕
3 [) e; @3 j" Z/ QCHAR_ ANKH 2 屏幕中央字幕 |