看了一下Ankh - Heart of Osiris 这个游戏,觉得很适合用来作为第1个被汉化的大型图片字库AVG。
& \" v* ?6 o9 ^& A1 \# |! C& W下面对这个游戏做一下简单的汉化分析。 5 t/ Z0 A* r6 Y2 ?# N
& U p' T0 c n. ?# L, x+ D这是一个Directx9的游戏,用代理DLL已经试验过了,可以起作用。
7 L3 v, k3 D7 H7 T字幕文件在\media\shared\speech\english下面的各个目录里,都是.bin文件,里面保存的是明文的字幕ID和字幕文本。
5 O- s1 { k" @6 p/ c1 R4 L' R1 y% ]: u
这个游戏的各种字幕画面可以参考这个帖子。
0 K- J' s' N' Q3 L9 |$ V* n3 t. Uhttps://www.chinaavg.com/read.php?tid=17368
+ |8 z- T# L/ }( X+ N! {下面简单说一下汉化字幕的方法。
" z% z; a" l" ~, ?4 ^* X这个游戏有不少dat文件其实是zip文件,比如以下这个。 & I* G2 l9 X* ?
\media\shared\local.dat 解开后可以发现一些字体文件。
4 b6 d( p$ I3 Z一般一个字体包括一个.tga 和2个同名的配置文件。
* s( i9 L- k* x2 _' }; x游戏中用的字体都是不等高和等宽的,我们要先修改配置文件,使其等高和等宽。
; B- h) R4 v) x& ?7 ]% v4 \" K/ v) u" F& I- S$ @" }) A1 J" A+ X
菜单画面 0 J" L( D; C6 B. Y
看了游戏字幕画面,我们发现,菜单是单独使用一种字体的,这样我们只要把tga中的字体样子修改一下就行了。
% O4 w( V& V; R J. d% l) F3 f9 K
底部多行对话选择画面, 底部单行对话画面,底部单行提示字幕画面
' r1 E3 `' M7 `9 f2 w5 x7 u* |6 @对于这3种字幕画面,由于背景是纯黑色的,比较简单,我们用像下面的这种变种条形码和自制的码表,配合图形识别技术就能显示出字幕。
8 l/ r6 o6 m: A6 [& Y6 ^方块 空格 方块 方块 方块 空格 方块 空格 4 [5 L% a6 Y, N( w3 C& _
$ }0 f T% W; `: B' C
画面中部字幕 : S! \4 T7 S9 j$ `! L
对于这种字幕,由于有背景,我们可以显示一个像素级的2维码,判断之后,显示字幕,并进行一些位置调整,让我们显示出来的字幕把像素级的2维码遮盖掉。 $ @8 O. m3 W5 G- T) r5 n$ w" Q2 u
) z6 q, x% Y# Z: O7 e2 K
像素级2维码大致是这样子的 : S2 {6 M0 Q! x, O6 f
; u* q$ ]& j, a3 S$ r0 k黄像素 透明像素 黄像素 5 ?# P8 ?5 ^' |/ N& P
黄像素 黄像素 透明像素 % W+ U5 ^* F3 r( v0 x. r
黄像素 透明像素 透明像素 ; R/ e: J8 u" B
0 J& Y# p$ f5 e2 m2 x下面先放上这个游戏的部分字幕文件
" H4 O# `6 ~8 g- p3 T6 h3 v--------------------------------------------- ' k! A1 ^1 O9 l4 u2 {3 n
2009.6.3 更新 3 j/ B2 F7 P8 }# S0 n* l
看了一下ANKH 1 ,的确字幕位置和ANKH 2完全一样。
) R' F6 E0 k( t5 Y
( P8 Z) D- J8 q9 c7 ~, b3 a字幕文件TGA文件的格式如下 " I$ _ o) q% ~
头部 18 字节 ; |( I$ X [4 F" N: S7 k0 u3 t" i
数据部 宽X高X4 字节 BGRA 格式存放 7 _6 y/ r C, D2 e
尾部 26 字节
2 S& L1 m; W7 E7 H--------------------------------------------- ! d) o) a0 r- Q0 g( t( O. X2 D
2009.6.3 第2次更新 7 n* Q' N- d' R$ l6 f4 b
放上ANKH 2 的另一个字幕文件Interface_english.bin。
3 Y" y4 x# d% U$ B主菜单的字幕都在里面。 " X# a0 f/ H$ m* R$ |" p
以及ANKH 1 的字幕文件 ankhEnglishStringTable.bin。 : c: p& d0 b3 a: K6 u) t
--------------------------------------------- * F& t. `* d5 Z( V4 R8 {7 c+ `
2009.6.3 第3次更新
7 r. B! f) ]7 N补上一个 ANKH 1 的字幕文件 conversations.bin5 X( K( B4 G5 J5 D: j) t+ D
8 L) [& Z, J9 J; y' I* L; E- L$ G
字幕ID前缀说明" U! J' A, s. e$ E7 p p; U, `) V
CFG_CHAR ANKH 1 屏幕中央字幕
' F5 R; Z! |" @ID_MENU ANKH 1,2 主菜单字幕7 W1 R* `5 e- @6 g. C9 j( i$ f
CHAR_ ANKH 2 屏幕中央字幕 |