看了一下Ankh - Heart of Osiris 这个游戏,觉得很适合用来作为第1个被汉化的大型图片字库AVG。 % B$ Z# ]$ F: {! m, G3 s: N
下面对这个游戏做一下简单的汉化分析。
. B: ]$ d: s6 u, v# u, T8 o& F1 I+ P9 @/ O B% u
这是一个Directx9的游戏,用代理DLL已经试验过了,可以起作用。
' L' e6 a1 Z; K& Z- C9 ~/ v字幕文件在\media\shared\speech\english下面的各个目录里,都是.bin文件,里面保存的是明文的字幕ID和字幕文本。
& e. q$ U8 `3 x9 S
2 T$ T0 @9 P$ Z( H$ q1 z9 ], M这个游戏的各种字幕画面可以参考这个帖子。
/ q' @9 k5 e+ G) M/ [6 y( w0 Phttps://www.chinaavg.com/read.php?tid=17368 ! p! _( ~7 W( N( i
下面简单说一下汉化字幕的方法。
3 G- B5 x+ i% H( G, |这个游戏有不少dat文件其实是zip文件,比如以下这个。
% s' B2 a8 x# [6 {9 N! f }\media\shared\local.dat 解开后可以发现一些字体文件。
# B( q. r7 d! A" `; V. i一般一个字体包括一个.tga 和2个同名的配置文件。
: K/ R; s8 u* G游戏中用的字体都是不等高和等宽的,我们要先修改配置文件,使其等高和等宽。
4 y& q8 e3 @- c9 e) {$ T& k& B8 s
菜单画面
2 W$ v, }* f' Q$ A看了游戏字幕画面,我们发现,菜单是单独使用一种字体的,这样我们只要把tga中的字体样子修改一下就行了。 3 ^( o- g! y7 v' y6 B9 w
0 L& M8 S# w z1 P' f0 |$ g3 t8 T
底部多行对话选择画面, 底部单行对话画面,底部单行提示字幕画面 2 _4 ?" ~0 R/ l! e/ V" t
对于这3种字幕画面,由于背景是纯黑色的,比较简单,我们用像下面的这种变种条形码和自制的码表,配合图形识别技术就能显示出字幕。
2 i' H6 O* P# B方块 空格 方块 方块 方块 空格 方块 空格
# a: ~- G" P J, S/ _, T
7 t" k7 d- ~$ I* ^画面中部字幕 6 n; f+ N* k |$ H
对于这种字幕,由于有背景,我们可以显示一个像素级的2维码,判断之后,显示字幕,并进行一些位置调整,让我们显示出来的字幕把像素级的2维码遮盖掉。
* @9 A+ x. C2 U6 J8 Z+ u$ N" v' E) J3 {2 r! r0 ?% V
像素级2维码大致是这样子的 7 S9 T2 O- O- d2 V) p1 x/ _) A
% c! \ F; M6 ^4 p+ n黄像素 透明像素 黄像素
& V9 B- z& i1 W' Z! m9 b* T2 H黄像素 黄像素 透明像素 - y: U0 @9 e3 @: Q) L3 [
黄像素 透明像素 透明像素 : y1 G. h% t5 W/ ]
: `5 L6 x9 |8 N; W. N7 e+ ?
下面先放上这个游戏的部分字幕文件
: N) ~, l6 @2 L--------------------------------------------- ! Z/ t* S, _2 J" f6 @
2009.6.3 更新
" D. H$ @) e. @6 `. t0 l看了一下ANKH 1 ,的确字幕位置和ANKH 2完全一样。
8 k, J; Y( L- a) N1 i x5 p+ Z0 Z3 V! Z
字幕文件TGA文件的格式如下
& Z; C4 J, R+ V" H* t: d8 R+ j. T" B头部 18 字节 / N* V/ J! u0 n8 p! z+ [4 _* M
数据部 宽X高X4 字节 BGRA 格式存放 , A- [# J$ ]1 x8 M: K$ u! T. M
尾部 26 字节 - T7 K) g$ { U
--------------------------------------------- q7 @( }; M8 j6 X# \2 P# s) U$ Q
2009.6.3 第2次更新 ( k: }$ M4 ^0 O0 V4 Q1 X
放上ANKH 2 的另一个字幕文件Interface_english.bin。
! V, t& K7 K7 {2 D N0 {( S主菜单的字幕都在里面。
* C; [9 C) h" x% V$ V/ L. i5 @: e以及ANKH 1 的字幕文件 ankhEnglishStringTable.bin。 & Y0 c/ a9 B0 f. Z, ?) ]5 I
--------------------------------------------- 0 P: E* w! s( K
2009.6.3 第3次更新
) l4 I3 `, i5 j4 Y" O补上一个 ANKH 1 的字幕文件 conversations.bin
{8 {6 s2 R) a
9 ?, X3 E4 C9 m% Y0 _字幕ID前缀说明+ ]$ w E" s s, I
CFG_CHAR ANKH 1 屏幕中央字幕
/ _ ?* }2 N0 u: I7 j* ^0 [$ o4 xID_MENU ANKH 1,2 主菜单字幕' Q/ A5 p8 h9 }( K% o
CHAR_ ANKH 2 屏幕中央字幕 |