看了一下Ankh - Heart of Osiris 这个游戏,觉得很适合用来作为第1个被汉化的大型图片字库AVG。 : h2 _: Z t @+ ?# s
下面对这个游戏做一下简单的汉化分析。
4 u1 D2 h% }' U: y+ q' o( V% I
这是一个Directx9的游戏,用代理DLL已经试验过了,可以起作用。 6 }* c' g) A2 ]' x. P. U
字幕文件在\media\shared\speech\english下面的各个目录里,都是.bin文件,里面保存的是明文的字幕ID和字幕文本。
% d' V4 J4 k9 }8 T/ Q2 a7 q, Z3 Q$ Q
这个游戏的各种字幕画面可以参考这个帖子。
1 j+ D8 s0 u u7 b$ E% u! {5 @https://www.chinaavg.com/read.php?tid=17368
( }0 F! l/ g: ^* y% r3 U$ F下面简单说一下汉化字幕的方法。 z4 V/ U2 K- {% p( j+ f" b
这个游戏有不少dat文件其实是zip文件,比如以下这个。
7 s* `2 G X' d3 S; N\media\shared\local.dat 解开后可以发现一些字体文件。 3 j. u2 C# J- `: p! D7 I: h
一般一个字体包括一个.tga 和2个同名的配置文件。
9 m* }, m- q: a% s9 n1 v% {游戏中用的字体都是不等高和等宽的,我们要先修改配置文件,使其等高和等宽。 + {) v. N$ i# d/ T
, e, L; G, o1 r/ A菜单画面 / ~2 t7 N) D& j* l
看了游戏字幕画面,我们发现,菜单是单独使用一种字体的,这样我们只要把tga中的字体样子修改一下就行了。
( o: g1 n0 L M
" `7 _* E& |4 ?5 |9 k* e底部多行对话选择画面, 底部单行对话画面,底部单行提示字幕画面 ( M- d, v9 t1 U7 A5 y
对于这3种字幕画面,由于背景是纯黑色的,比较简单,我们用像下面的这种变种条形码和自制的码表,配合图形识别技术就能显示出字幕。
/ J' ~% Q3 o2 h( q方块 空格 方块 方块 方块 空格 方块 空格 2 N9 j. ~+ Q1 o1 c1 J! H# z0 C
, K6 |$ }4 e" a4 x+ c
画面中部字幕
- ^. h- S& _' f: R% Q对于这种字幕,由于有背景,我们可以显示一个像素级的2维码,判断之后,显示字幕,并进行一些位置调整,让我们显示出来的字幕把像素级的2维码遮盖掉。
5 N- L8 l/ F1 m- S' q) N6 R
7 K2 c5 q' S$ P0 O& Y+ L像素级2维码大致是这样子的
( D! x& @" [8 ^ r9 ]9 s) d/ F' v1 `0 b- f+ k
黄像素 透明像素 黄像素 8 m4 g4 J& g8 b
黄像素 黄像素 透明像素
9 |$ k7 E& z0 F黄像素 透明像素 透明像素
+ Y" d+ j* D2 m# K5 o) [% k1 U: v3 }+ b
下面先放上这个游戏的部分字幕文件 $ {. N) F5 I9 e8 f9 ]
---------------------------------------------
9 A/ Y) f9 I- @& ~0 t! p2009.6.3 更新 ( B) [! ]) }4 K; x
看了一下ANKH 1 ,的确字幕位置和ANKH 2完全一样。
6 X/ i0 _$ L" g$ V2 }8 R4 h7 s- [% n3 S0 A; n" H; z) ~3 @# h
字幕文件TGA文件的格式如下 5 ?3 K0 u* f* b! Z4 h$ o0 F
头部 18 字节
! @, w- n. F9 S$ Q数据部 宽X高X4 字节 BGRA 格式存放
- F: `7 c! s3 R9 x d8 ]尾部 26 字节 0 s: u4 d# J! {% L1 o
--------------------------------------------- 0 }6 {1 [0 F; ?
2009.6.3 第2次更新
& ^* ]; @! C6 }. C+ w$ w放上ANKH 2 的另一个字幕文件Interface_english.bin。 4 g& c7 a' Y; H- o$ Z/ p% e& W
主菜单的字幕都在里面。
3 d5 v0 T8 b1 v: d6 @以及ANKH 1 的字幕文件 ankhEnglishStringTable.bin。 2 J6 ?: x& C2 w6 _4 w' N
--------------------------------------------- 7 Z. O) Z3 R2 U! z n) I6 j
2009.6.3 第3次更新
5 U" Q# J$ R* k7 j补上一个 ANKH 1 的字幕文件 conversations.bin
& \$ P: q: N0 f) Y3 ^9 @: t
, M8 m" A& o9 [ K f3 r) ?% ~; g字幕ID前缀说明
- M& P) x5 ^8 |3 m6 @CFG_CHAR ANKH 1 屏幕中央字幕
H! q4 f: W! g+ u0 h" u0 l. f! {ID_MENU ANKH 1,2 主菜单字幕7 F3 z2 X4 b+ }
CHAR_ ANKH 2 屏幕中央字幕 |