看了一下Ankh - Heart of Osiris 这个游戏,觉得很适合用来作为第1个被汉化的大型图片字库AVG。
8 q( _1 N7 O. g# d/ D9 e下面对这个游戏做一下简单的汉化分析。 6 i4 f# h8 ~* a) {
) B3 `9 J' D2 m' C5 @
这是一个Directx9的游戏,用代理DLL已经试验过了,可以起作用。
6 _( W5 P* F& m' _' ]' p% C* ]' W字幕文件在\media\shared\speech\english下面的各个目录里,都是.bin文件,里面保存的是明文的字幕ID和字幕文本。 ! n7 ^, v) S4 u
. u; d" L0 Y# S- v" ?这个游戏的各种字幕画面可以参考这个帖子。
& z* r3 L$ S' D0 chttps://www.chinaavg.com/read.php?tid=17368 5 E& a$ ?1 e0 F/ W8 ?
下面简单说一下汉化字幕的方法。
8 V; F/ a2 _6 k: Y( e' A8 f这个游戏有不少dat文件其实是zip文件,比如以下这个。
9 k/ O g1 R6 k [2 M* w+ t\media\shared\local.dat 解开后可以发现一些字体文件。 # X+ W2 o6 ~8 h$ H% o& b
一般一个字体包括一个.tga 和2个同名的配置文件。
& I6 B+ l$ M# A# |: u游戏中用的字体都是不等高和等宽的,我们要先修改配置文件,使其等高和等宽。
& s; T5 Q+ B; g; [5 g* J- _- E6 X; c" e m: L! E
菜单画面 1 Y3 G% R$ l+ g; F
看了游戏字幕画面,我们发现,菜单是单独使用一种字体的,这样我们只要把tga中的字体样子修改一下就行了。 . H5 e+ F9 D& r! _# c. I
8 h9 \9 C7 Y8 ] @) `8 o; X! c底部多行对话选择画面, 底部单行对话画面,底部单行提示字幕画面 ! `/ [, O% B/ m" c' M5 q, ]! V
对于这3种字幕画面,由于背景是纯黑色的,比较简单,我们用像下面的这种变种条形码和自制的码表,配合图形识别技术就能显示出字幕。 $ L, p5 T' m/ A- x8 L5 Z, [. U
方块 空格 方块 方块 方块 空格 方块 空格 * r# E4 Q7 L# Z; F
6 V2 m; S0 a) G0 n
画面中部字幕 # `- u2 y2 L9 o. t" L+ S! B' L
对于这种字幕,由于有背景,我们可以显示一个像素级的2维码,判断之后,显示字幕,并进行一些位置调整,让我们显示出来的字幕把像素级的2维码遮盖掉。 4 B, R9 U; R- h
G. _* c X, p3 k
像素级2维码大致是这样子的 & c7 a. B" P2 R0 O
8 {4 d1 H/ G( X
黄像素 透明像素 黄像素 ! p8 S C7 g, `, \& E
黄像素 黄像素 透明像素 . y, Z9 ~0 j0 l, X! S
黄像素 透明像素 透明像素 ; N: ^& I7 p+ X+ q8 o
: T! e5 V0 {3 y+ H
下面先放上这个游戏的部分字幕文件
9 v) _% q- _2 S2 Q---------------------------------------------
% B: L$ L2 p3 [, l% j% q, _+ T2009.6.3 更新 & w Z' e6 b+ e. R
看了一下ANKH 1 ,的确字幕位置和ANKH 2完全一样。 3 [1 b+ O/ Y9 n4 n
! \, i/ [& V0 G' g5 L; _% R' d
字幕文件TGA文件的格式如下 - h5 ^; P2 B. o) v
头部 18 字节 % b2 P; W: J6 w" e
数据部 宽X高X4 字节 BGRA 格式存放
0 @, v4 \% w) H2 h3 x: s+ D, C8 w尾部 26 字节
0 u/ O/ D( W# e% u; p. @---------------------------------------------
: b8 a+ D/ M2 w0 [2 G% H& ~2009.6.3 第2次更新
( Z% C6 X- l; T0 ]3 o放上ANKH 2 的另一个字幕文件Interface_english.bin。
" u, a, R* e+ U& k& S主菜单的字幕都在里面。
5 L. k' I x) C; F8 f以及ANKH 1 的字幕文件 ankhEnglishStringTable.bin。
4 ~# j% c' w4 l( ?7 @--------------------------------------------- 2 o' U: S9 }7 b4 |% l! F6 V
2009.6.3 第3次更新 ) J5 _+ g' L+ y
补上一个 ANKH 1 的字幕文件 conversations.bin' d; _* G' D$ ^) ~' t
; b0 k/ _, o# m6 C' Y% s字幕ID前缀说明
! c3 l& z9 i3 U, P4 GCFG_CHAR ANKH 1 屏幕中央字幕' r) y/ C1 k# f, g! C; p2 L
ID_MENU ANKH 1,2 主菜单字幕
& S( h V2 r+ c; k" sCHAR_ ANKH 2 屏幕中央字幕 |