看了一下Ankh - Heart of Osiris 这个游戏,觉得很适合用来作为第1个被汉化的大型图片字库AVG。
. Z( v7 y: s2 L- [下面对这个游戏做一下简单的汉化分析。
8 t0 [4 Q T9 y% w6 n
! C* z/ [4 ^1 O6 f; m2 o这是一个Directx9的游戏,用代理DLL已经试验过了,可以起作用。 - T8 R$ D. P( s" N. C
字幕文件在\media\shared\speech\english下面的各个目录里,都是.bin文件,里面保存的是明文的字幕ID和字幕文本。
# q+ h1 H5 j, r: u( y5 T- ]( Y$ c3 m
这个游戏的各种字幕画面可以参考这个帖子。 6 _* m5 D- ^6 @9 S3 e
https://www.chinaavg.com/read.php?tid=17368 7 R; k0 F4 i B+ n4 ^/ r( w
下面简单说一下汉化字幕的方法。
6 Y0 x1 Z% |( U这个游戏有不少dat文件其实是zip文件,比如以下这个。 ! W+ g3 [# y, U! q( ^* |
\media\shared\local.dat 解开后可以发现一些字体文件。 3 S% Z- a3 g* J* X. W) a: L* e* m
一般一个字体包括一个.tga 和2个同名的配置文件。 9 u9 m2 l1 H" _. M8 i3 ?" B, C
游戏中用的字体都是不等高和等宽的,我们要先修改配置文件,使其等高和等宽。 & N! k, O4 y; A |; `8 ~8 j6 ]
5 N" i1 R* t' Z* A6 Y
菜单画面
: D6 I+ k6 p1 W9 u4 w看了游戏字幕画面,我们发现,菜单是单独使用一种字体的,这样我们只要把tga中的字体样子修改一下就行了。 9 s* Z+ U& }, K. U5 }, P
; w! S' |3 e; O0 z
底部多行对话选择画面, 底部单行对话画面,底部单行提示字幕画面
& `6 ~6 V- a8 P# n8 c8 c5 q对于这3种字幕画面,由于背景是纯黑色的,比较简单,我们用像下面的这种变种条形码和自制的码表,配合图形识别技术就能显示出字幕。 5 e% S1 N# Z, C
方块 空格 方块 方块 方块 空格 方块 空格 % G( J8 E( M6 }
* R6 V- O4 r! H z. U画面中部字幕 4 v5 f* w% y2 v( D7 B. M! @+ j
对于这种字幕,由于有背景,我们可以显示一个像素级的2维码,判断之后,显示字幕,并进行一些位置调整,让我们显示出来的字幕把像素级的2维码遮盖掉。 , c0 |/ Q/ }: l0 d6 R4 b% f
9 Z8 o7 Z7 ~4 g/ o像素级2维码大致是这样子的
5 _4 H3 ?) V# V( O5 v; B- e+ h& {
) }2 D5 W' i/ w$ o) ?3 k9 r) t黄像素 透明像素 黄像素
8 t; ~: j/ @: M# K黄像素 黄像素 透明像素
2 H/ b9 r/ ^+ d4 u; t( L4 T* T黄像素 透明像素 透明像素 3 N C$ J& G$ B4 p2 H* ^" `
- L H; ?/ m4 W& Q: t0 h3 ^4 g下面先放上这个游戏的部分字幕文件 # j0 }5 m' ?: R# z, g
--------------------------------------------- # q- I! A7 o1 a' u ]6 a# k
2009.6.3 更新
) I9 ]" k% H. K1 l8 W看了一下ANKH 1 ,的确字幕位置和ANKH 2完全一样。
2 O% w6 [3 B& n- l9 Q; Y4 ~: w. J4 S
字幕文件TGA文件的格式如下
0 n7 ~$ _8 T: l6 x& B" P% k, p头部 18 字节 3 {3 z( U& G+ \- t: D) m& u ~
数据部 宽X高X4 字节 BGRA 格式存放
4 S$ ]& l! t* u1 G尾部 26 字节
& F: N5 A5 a Q+ v& R8 d% E/ x---------------------------------------------
; f0 X0 J' v% t( {! R. w2009.6.3 第2次更新
' j1 `9 j0 h. |% p: K" \* d* Q放上ANKH 2 的另一个字幕文件Interface_english.bin。
; k) P1 [! Z. b& l4 e" N/ j主菜单的字幕都在里面。
% K2 a, u; E, L- S- B# a$ V+ Q* }以及ANKH 1 的字幕文件 ankhEnglishStringTable.bin。 5 }6 n( M5 l5 m6 |$ |- o* H" X- S
---------------------------------------------
* u6 C* A& f9 y6 y2009.6.3 第3次更新 ( F! F/ Y) P. V5 I9 \
补上一个 ANKH 1 的字幕文件 conversations.bin
; x1 @7 ~+ f* z# V: H! |* F& O S: @
字幕ID前缀说明. c8 h9 o& J! D$ [+ s& R7 X
CFG_CHAR ANKH 1 屏幕中央字幕! w# e0 c; h- P- `/ {# Q# E
ID_MENU ANKH 1,2 主菜单字幕* z9 `! U' P$ j1 ?$ Z
CHAR_ ANKH 2 屏幕中央字幕 |