研究了一下失忆症:黑暗后裔,很容易就实现了汉化。汉化方法和半影系列是一样的。
: x8 j" m9 v8 H6 f% m
# ^9 N$ V/ _8 W" q5 F+ p* ]4 s# b下面说一下汉化方法 + Q( W1 P( g; Q- w
( y1 G% W# H( f- O% y! ]
字幕文件
+ N6 k, i" j. J, G3 u4 K1 ~, e- J3 V
游戏的字幕文件是\redist\config和\redist\config\lang_main目录下的一些.lang文件,翻译以后用utf-8编码写入即可。写入以后是无法直
t0 C: t+ `* N6 c( K1 W! ~( |
- B# U% o% v& q1 ]: Y$ X# `接显示的,我们需要做一个小的变换,这需要用一个小工具来完成。
$ r4 h$ I. K7 H& `2 e9 `$ c0 X
" i0 u, A( O8 Y2 t0 s6 o8 ?" G比如说,我们要把游戏的字幕这样转换。uXXXXX中的XXXXX部分是这个汉字的utf-16编码的10进制数值。
* |( b2 l5 F( R9 c
- w7 e3 W+ ?3 h$ {, b6 ?转换前 8 b" V# ~2 P& z9 [: x
<Entry Name="Start Game">开始游戏</Entry> 6 n, A4 R7 I1 T5 b; H% X
转换后
* ? E0 U/ a; r<Entry Name="Start Game">[u24320][u22987][u28216][u25103]</Entry>
& ^9 w+ Z: s0 W p' h k+ p3 T3 f% h$ k: t6 }% b+ e; a5 N
这个游戏是支持多语言的,所以我们可以仿照这些文件的样式,在原来的基础上追加一种语种:中文。 , J5 ]% Q% j+ i: ~* s& `. i
我们暂时不考虑如何追加,而是按直接把英语改为中文的来说明。
# p8 B8 k m% Q
5 r. ^% \! {0 L字库文件 5 I3 V8 d* ^, d7 H( |4 B. F: P; M" D
( u2 y% [) e* i0 N" L6 d( X字库文件在redist\fonts\eng下面,是一个.fnt文件,对应多个.dds文件的形式。 & O8 p3 ~2 h( I# C& I* t; ^
游戏的字体分为多种,比如主菜单就是对应menu.fnt,menu_0.dds,menu_1.dds。 . c* B% \$ f4 I0 Z0 |1 \# s9 p
我们如果需要增加汉字的话,可以追加一个menu_2.dds的中文图片字库。 - \9 O4 [' B* [- V8 ]
menu.fnt做相应修改即可。 4 `* }7 J7 v* z0 c$ y; c
3 P: p/ a! a- Q* g" j, w比如说我们翻译了<Entry Name="Start Game">开始游戏</Entry>
8 e+ f4 u B* m1 W. G& D, {6 ]为
; R5 x0 I) N) f* r9 g$ D! [6 v<Entry Name="Start Game">[u24320][u22987][u28216][u25103]</Entry> ( L& `9 k0 M1 l1 s8 Q5 o2 {
7 x/ s6 K1 H# x1 l7 i
我们需要做如下修改
* g5 z; J. j5 t
$ u8 T& D& G; k$ Y7 e我们把在菜单中用到的所有的不重复的字都提取出来,保存在一个文本文件里。
|" b. k I$ e( C2 k" W! O这个工具如下 , K9 J) q$ T' X0 d7 W8 @8 d, {4 J- H" _
https://www.chinaavg.com/read.php?tid=21959
8 N1 S3 M0 R* s6 E: D然后用一个工具把这些字生成一个menu_2.dds的中文图片字库。 * Z1 A, f. Q' t* i- ^
5 \) @- [ p! \对menu.fnt,我们需要做如下修改
, d8 N7 Q2 z0 C- N( ?4 w# s+ `/ S) e& Z; o2 G4 v8 `
把
D" Q8 g& o3 h. n" H- M <common lineHeight="40" base="33" scaleW="256" scaleH="256" pages="2" packed="0" alphaChnl="0" redChnl="4" greenChnl="4"
4 N9 ~' k/ Q j1 A
x# m6 ~$ U: K, xblueChnl="4"/> 0 P' @% ?% z% g7 f1 m2 w6 ~: m
改为
' @2 |8 h1 O* Q- H" {* P$ B! g9 g <common lineHeight="40" base="33" scaleW="256" scaleH="256" pages="3" packed="0" alphaChnl="0" redChnl="4" greenChnl="4"
' W$ F9 J( y/ o8 p& A+ k) p6 j. W" o3 _0 E! K
blueChnl="4"/> , M/ p! ~, o) ?; a6 ]. }9 I
* g# B6 x6 G8 i把 D) p, E. H1 ^
<pages>
: j6 X# S6 F9 ]; p <page id="0" file="menu_0.dds" /> . s9 _0 p4 e2 w5 U1 _& `5 e
<page id="1" file="menu_1.dds" />
( h; _+ i1 M# e8 u$ v </pages> ' d0 d* n5 F& e0 U' s: D9 v, E! v
改为 " Z! @3 F& j. `) W
<pages> ! { w! ?& G, ~/ X
<page id="0" file="menu_0.dds" />
1 o" Y& G3 ~! \5 Y9 z4 t. ~ <page id="1" file="menu_1.dds" /> ! x3 \" I1 ?) d0 k. U B
<page id="2" file="menu_2.dds" /> : [* X9 L% X o6 S# L5 K; b3 p
</pages>
% w+ s1 @- q) w9 v% v# s2 R) l q; n6 Z" b& U* D
把 ! h+ j! e! i# p( z H: o
<chars count="190">
8 Q! O# t8 o6 j3 b! m& Q* h( E- m改为
+ m; |& S6 g5 `) a- h" J3 Z3 O <chars count="194">
0 L1 B- Z. t g7 Z1 e
. s9 p! h& s. [) |在字符定义的最后加上
: ?9 y4 `7 I' u% y <char id="22987" x="31" y="0" width="30" height="29" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" />
; @# E* R& b' [; `! p <char id="24320" x="93" y="0" width="28" height="27" xoffset="2" yoffset="4" xadvance="32" page="2" chnl="15" /> ( K6 I' F* f: P1 `3 s1 B$ P2 u! o
<char id="25103" x="62" y="0" width="30" height="29" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" />
" h7 L! L' o7 @4 v" F <char id="28216" x="0" y="0" width="30" height="30" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" />
( ], i }% `) f4 ~- O/ w
2 E0 Z& F* _9 A: i) Z8 E) u这4行是开始游戏这4个字在图片字库中的位置定义。 " O! {5 d1 k4 [. j1 N4 W
在用字体工具生成menu_2.dds的时候,会生成一个.fnt文件,这4行可以从这里面复制。
" B* r* a. }* V当然,字体工具生成的图片名不会是menu_2.dds,而是XXXX_0.dds,这需要我们改名的。
1 v" J) N1 S K5 H
, k1 O. `' }! @/ t. q- M; x字库生成
. ?2 Y3 l9 V- ?% @; b2 \4 t* v字库可以用Bitmap Font Generator这个工具生成。
/ i* D3 a4 p! M, |7 q: d2 Y( j$ o下载
1 h- x$ a$ u& m1 S1 H; e- ~$ xhttp://www.angelcode.com/products/bmfont/ 8 g5 O) \2 W$ C/ h% h
, j% {7 b# G1 K+ o$ S1 M' J字体定义文件要选xml格式,材质要选dds格式,位深度要选32(缺省是8) 9 y4 s" f t3 F$ R1 w7 M1 s
大小选256X256,一张图片不够,这个工具会自动生成好多张的。
. }- y- u/ k' q3 A如果想把尺寸设大一点应该也是可以的,我没有试验过,其他地方可能要相应修改。
. ^: K: `' f% E4 n, R+ d1 E- E5 `2 t. o- I$ ?/ n; Z8 V
注意点
: [8 q- K% F- t* n1.这个游戏使用了多种不同的字体,所以需要把字幕整理一下,整理出哪些字幕是对应哪个字体文件的。 - q0 g% F9 ~( \# b
这样才能筛选出不重复的汉字来生成字库。
* B9 x) L7 W B. s' P2.需要制作一个工具,把字幕文件里的汉字转换为[u25103]的形式。
' q) R- N- l3 A) j& y. L. n: e, B* y- I) Y3 D F: S
以上就是这个游戏的全部汉化方法。
$ A9 P' E- ]: G- v" J: Q4 L5 c! s# @5 `) t2 M2 a3 _/ }
|