看了一下Ankh - Heart of Osiris 这个游戏,觉得很适合用来作为第1个被汉化的大型图片字库AVG。 & u3 A9 ]" t' s- c* o
下面对这个游戏做一下简单的汉化分析。
: c7 ~5 F5 f9 D8 |) l$ J0 [+ {
1 N& I8 _' g0 c v! N这是一个Directx9的游戏,用代理DLL已经试验过了,可以起作用。 ' m. ?8 v6 {( `) C; y
字幕文件在\media\shared\speech\english下面的各个目录里,都是.bin文件,里面保存的是明文的字幕ID和字幕文本。
2 v5 v) k+ T( `
# [- ^0 c3 ~& w6 U' n! N这个游戏的各种字幕画面可以参考这个帖子。 0 C1 x* R. x; U4 y% i$ g
https://www.chinaavg.com/read.php?tid=17368
' D$ A6 ~, }: [下面简单说一下汉化字幕的方法。 : t' h6 E5 b; d5 }0 ^+ ~
这个游戏有不少dat文件其实是zip文件,比如以下这个。 , G. V4 r5 d+ m" s3 |1 @
\media\shared\local.dat 解开后可以发现一些字体文件。
6 c) C7 o) u2 ]! Q5 D% u一般一个字体包括一个.tga 和2个同名的配置文件。 9 D5 T$ u% X6 q( W8 z) Y
游戏中用的字体都是不等高和等宽的,我们要先修改配置文件,使其等高和等宽。
! q% I: |! S5 Q0 T( `# q, c; q9 Z
菜单画面 , [5 {% b' B" l8 Y$ ]
看了游戏字幕画面,我们发现,菜单是单独使用一种字体的,这样我们只要把tga中的字体样子修改一下就行了。 2 f& [5 e# J" t3 A0 }6 h
5 i3 B0 U, j+ p9 U* ?1 P
底部多行对话选择画面, 底部单行对话画面,底部单行提示字幕画面 9 s4 i) e* x3 w! o& b
对于这3种字幕画面,由于背景是纯黑色的,比较简单,我们用像下面的这种变种条形码和自制的码表,配合图形识别技术就能显示出字幕。 7 Z! }9 f+ J% ^: Q1 e# f: S$ s
方块 空格 方块 方块 方块 空格 方块 空格
' l3 T: q. [2 a- G% {
, B* ~! {6 r3 B7 V9 A画面中部字幕 F) Q7 c& h8 c/ R1 Y
对于这种字幕,由于有背景,我们可以显示一个像素级的2维码,判断之后,显示字幕,并进行一些位置调整,让我们显示出来的字幕把像素级的2维码遮盖掉。
0 j8 t4 }: `/ `1 W( W6 P
& R' `7 x5 G a& R, W& N1 F像素级2维码大致是这样子的 2 v# Q9 Y. j9 ^3 t3 p6 d9 r2 v: a
. }" }& H ^2 E- ?, ~- s
黄像素 透明像素 黄像素
6 d2 n7 B H, c% J7 s) B( V黄像素 黄像素 透明像素 4 } W' L9 w% P& t$ c0 I) V
黄像素 透明像素 透明像素 $ @: |/ a" N4 d
3 V6 @; o0 o. f& O; a下面先放上这个游戏的部分字幕文件 . P1 H" m* [1 Q3 N
--------------------------------------------- 0 E. \+ O0 z* x% Q
2009.6.3 更新
) B+ j/ E) p- y( _4 ]' x看了一下ANKH 1 ,的确字幕位置和ANKH 2完全一样。 # Y# e# I3 l! y$ i7 m3 A
' |) _5 |$ Q ~' [+ O: X7 p字幕文件TGA文件的格式如下
! O/ D5 j9 D9 U: X' Z* r: T0 T6 r头部 18 字节 ! {0 Q" g+ D6 s3 W
数据部 宽X高X4 字节 BGRA 格式存放
0 s* ~, M; U5 J* h: b尾部 26 字节 5 w. b% H9 D; ~, d$ p, P! q
--------------------------------------------- , }) ?8 d6 o- x+ a: @
2009.6.3 第2次更新
9 a) }- p& M" C2 a放上ANKH 2 的另一个字幕文件Interface_english.bin。 ! U9 z. e. @3 ~% B- B
主菜单的字幕都在里面。 & z1 ~9 H2 t$ S+ `
以及ANKH 1 的字幕文件 ankhEnglishStringTable.bin。 3 l; `0 }! q; d) r5 F
--------------------------------------------- 9 X/ j9 n& r F5 I" _
2009.6.3 第3次更新 & P" z2 F2 D+ n6 ^! {/ p
补上一个 ANKH 1 的字幕文件 conversations.bin
0 r8 Y' @) L8 @6 B! B- [4 f/ n& [, j4 \4 i3 S/ H
字幕ID前缀说明9 B5 B3 u( ~+ {. B0 B, ?- w" k5 ^+ s
CFG_CHAR ANKH 1 屏幕中央字幕
- d) p# B# n% x4 g# b* i% bID_MENU ANKH 1,2 主菜单字幕" d/ z* K) a$ w; d( v; _5 M
CHAR_ ANKH 2 屏幕中央字幕 |