看了一下Ankh - Heart of Osiris 这个游戏,觉得很适合用来作为第1个被汉化的大型图片字库AVG。
4 F; m+ X( i# S6 b" n6 w' W下面对这个游戏做一下简单的汉化分析。
`9 ~0 J- D/ d: h% ~7 @' p5 ]
( n7 m' j1 a2 p O) y5 j; s' W& Z这是一个Directx9的游戏,用代理DLL已经试验过了,可以起作用。 % @2 C T1 \ t8 `+ ~) }+ x
字幕文件在\media\shared\speech\english下面的各个目录里,都是.bin文件,里面保存的是明文的字幕ID和字幕文本。 % ?* b9 i9 Y( r8 O
( ? N1 E* G! g2 S6 Z+ r! a ~
这个游戏的各种字幕画面可以参考这个帖子。 + h3 r5 \5 N7 [/ R z P4 t" e
https://www.chinaavg.com/read.php?tid=17368
/ t" {7 @0 ]1 J/ _( F; J下面简单说一下汉化字幕的方法。
8 \+ ^0 k# U' P/ U n这个游戏有不少dat文件其实是zip文件,比如以下这个。
8 K7 a7 g* G9 u6 D\media\shared\local.dat 解开后可以发现一些字体文件。 ; ]( T* R( i9 t2 w$ Q+ I
一般一个字体包括一个.tga 和2个同名的配置文件。 $ H2 t8 C( C2 `/ G* U2 z
游戏中用的字体都是不等高和等宽的,我们要先修改配置文件,使其等高和等宽。
6 W% J1 i; F' C1 q9 L0 y" G6 w! O5 s) r- h4 o! f* c0 z
菜单画面
8 B$ I0 T2 h, J5 N2 c看了游戏字幕画面,我们发现,菜单是单独使用一种字体的,这样我们只要把tga中的字体样子修改一下就行了。 " p( l3 {* x: I$ `
# K: _/ j3 U& ?# B" ^; Y4 ~
底部多行对话选择画面, 底部单行对话画面,底部单行提示字幕画面
2 o3 k4 ^7 O/ z( c6 {+ d# |对于这3种字幕画面,由于背景是纯黑色的,比较简单,我们用像下面的这种变种条形码和自制的码表,配合图形识别技术就能显示出字幕。
w5 M/ t r0 Y- L& |3 B方块 空格 方块 方块 方块 空格 方块 空格 # [( r. w5 f. I$ o. G
`4 \7 i0 P' z0 c5 `画面中部字幕
% j! z* p9 O; |$ _, J2 X对于这种字幕,由于有背景,我们可以显示一个像素级的2维码,判断之后,显示字幕,并进行一些位置调整,让我们显示出来的字幕把像素级的2维码遮盖掉。
' R7 g$ ]7 h/ D- c" @7 _
; Z3 b# w+ g$ ]! U Z) m像素级2维码大致是这样子的 ) X y7 d1 z5 @$ _
2 I6 n7 B( n; I1 ~
黄像素 透明像素 黄像素
, z3 `4 H4 r6 X" J& q3 p* H7 Y黄像素 黄像素 透明像素 8 W4 @9 _$ i" A+ }0 c8 z
黄像素 透明像素 透明像素
0 b9 ~3 }/ h8 R$ `* x: }4 Q" y% R6 \. v# f) r
下面先放上这个游戏的部分字幕文件 + E' A# B& M, B: h6 I3 K# K
--------------------------------------------- ; e% H4 I+ w0 p6 E6 ^0 p
2009.6.3 更新 , s: l- M/ F6 {
看了一下ANKH 1 ,的确字幕位置和ANKH 2完全一样。
3 d/ @$ A, {- U) @8 r, `9 y# i& h. M
字幕文件TGA文件的格式如下 0 K, W6 m7 s9 a7 Z1 z4 _$ N
头部 18 字节
! }5 F& e6 S! I数据部 宽X高X4 字节 BGRA 格式存放 - Y& E- G" G9 v" s
尾部 26 字节
2 p9 S) [1 u& _0 ]9 D- W1 c--------------------------------------------- % n* P% ]" h$ w8 J7 w9 m" A1 N
2009.6.3 第2次更新
$ ]0 q$ b& P1 W+ A; a放上ANKH 2 的另一个字幕文件Interface_english.bin。 2 o. F( M! j: J2 m$ H5 i7 ~
主菜单的字幕都在里面。 / I2 u/ M9 ~- E" U
以及ANKH 1 的字幕文件 ankhEnglishStringTable.bin。
s9 d+ D2 `. V---------------------------------------------
8 q4 w! c7 H* ^* w) o: p5 M" r1 C7 Q2009.6.3 第3次更新 ' r2 a/ E( Y% x, q: `/ q+ ~
补上一个 ANKH 1 的字幕文件 conversations.bin' `* ]% o) E4 J5 w+ S
7 {* w q1 N6 q9 D
字幕ID前缀说明
+ P$ B4 H" X& l0 n" ~1 x5 ]CFG_CHAR ANKH 1 屏幕中央字幕1 N+ ]& L/ N' \+ z4 m4 C7 P2 l; @
ID_MENU ANKH 1,2 主菜单字幕5 o- A. q& a; P( ~8 \
CHAR_ ANKH 2 屏幕中央字幕 |