看了一下Ankh - Heart of Osiris 这个游戏,觉得很适合用来作为第1个被汉化的大型图片字库AVG。
8 ^7 b; I0 m4 H/ s! C下面对这个游戏做一下简单的汉化分析。
2 L9 T8 x5 i3 u) _* V }0 E# ^) Z6 A9 W4 [- e2 U8 G
这是一个Directx9的游戏,用代理DLL已经试验过了,可以起作用。
7 k; v: Q$ |. Q. f4 n) Y字幕文件在\media\shared\speech\english下面的各个目录里,都是.bin文件,里面保存的是明文的字幕ID和字幕文本。 ! q* I& ^( g% J# k- q8 o
% C' u0 m H: D% n2 M9 H9 M( [
这个游戏的各种字幕画面可以参考这个帖子。
& l3 _ B. M% uhttps://www.chinaavg.com/read.php?tid=17368
! V7 X; q0 f( m1 U下面简单说一下汉化字幕的方法。
; J# N0 w1 E4 X这个游戏有不少dat文件其实是zip文件,比如以下这个。
4 W1 [$ k. Z* {\media\shared\local.dat 解开后可以发现一些字体文件。 0 K8 G9 k. R- p% q8 a: w" q
一般一个字体包括一个.tga 和2个同名的配置文件。 4 I( W" d$ m4 w% Q8 p1 |
游戏中用的字体都是不等高和等宽的,我们要先修改配置文件,使其等高和等宽。
7 s+ l' K. i. h1 _- L- [
% W' o( v2 s* K0 v! L! |$ Q菜单画面
$ g% J0 V) F) h" u1 {* G看了游戏字幕画面,我们发现,菜单是单独使用一种字体的,这样我们只要把tga中的字体样子修改一下就行了。
& h3 O& ^7 \9 n2 Y- H7 W6 p2 B' b6 S6 C# l( q) G
底部多行对话选择画面, 底部单行对话画面,底部单行提示字幕画面 + E3 k, ~% j1 P* ?2 M4 {0 b
对于这3种字幕画面,由于背景是纯黑色的,比较简单,我们用像下面的这种变种条形码和自制的码表,配合图形识别技术就能显示出字幕。
: n, ^7 P- d( j. }4 E方块 空格 方块 方块 方块 空格 方块 空格 ! u* G, r& p4 T+ \% L
8 r; {$ `7 _) R% c7 }7 T画面中部字幕
! P3 y# X: B% u1 K+ p对于这种字幕,由于有背景,我们可以显示一个像素级的2维码,判断之后,显示字幕,并进行一些位置调整,让我们显示出来的字幕把像素级的2维码遮盖掉。
4 s3 N3 k7 L5 z% |2 A
, E& o# m+ I* S7 e6 S像素级2维码大致是这样子的
( |, r0 ~2 T d6 A& d9 ]! W1 z6 v8 I* m+ j$ x% `
黄像素 透明像素 黄像素 ; ~8 z: c |2 q& Z) H' ?7 J
黄像素 黄像素 透明像素 y3 U" u) q7 f( s
黄像素 透明像素 透明像素
; A0 H) c( v) C$ Z' m$ v' i3 p; ?0 i8 u
下面先放上这个游戏的部分字幕文件 $ f1 a% I6 g0 c
---------------------------------------------
. V; z. P5 l" [- a9 o2009.6.3 更新 - v1 v$ }. H1 }2 m; i% G
看了一下ANKH 1 ,的确字幕位置和ANKH 2完全一样。 / j; j: S D- ~% v# j! p9 g$ c
8 B ]% |- X" o4 G ?字幕文件TGA文件的格式如下 : F# F. c& @8 R# t
头部 18 字节 8 `: a( c) W7 Q% U2 A+ `) F+ M/ L
数据部 宽X高X4 字节 BGRA 格式存放 4 o" l* @* Y* {) ~/ N6 j/ ^$ F
尾部 26 字节 F" q7 v: q O5 l& E
---------------------------------------------
1 g6 U7 L" ] j( S8 d6 [" z. }2009.6.3 第2次更新
2 s. L" Z/ e7 \. K2 [放上ANKH 2 的另一个字幕文件Interface_english.bin。
, t" b% } ]" r2 ~( x+ D1 T: @主菜单的字幕都在里面。
0 Q h. I( ]! P) W) b以及ANKH 1 的字幕文件 ankhEnglishStringTable.bin。
9 g/ ]8 ?* _/ s x% N2 ?) q+ H--------------------------------------------- 0 M0 {5 j# f; _- ?( ]
2009.6.3 第3次更新 / S9 ]6 H" G+ K: a4 P% d" q
补上一个 ANKH 1 的字幕文件 conversations.bin
5 m6 p) D5 z, }6 b1 S j* A
/ W7 a H' |8 E0 A- h字幕ID前缀说明; ~9 u/ s& H5 s5 Y6 V8 l, }
CFG_CHAR ANKH 1 屏幕中央字幕. S9 w, \% O2 u. P5 k x: B) o
ID_MENU ANKH 1,2 主菜单字幕 B$ S3 b: W5 J0 {+ j5 N
CHAR_ ANKH 2 屏幕中央字幕 |