研究了一下失忆症:黑暗后裔,很容易就实现了汉化。汉化方法和半影系列是一样的。
0 m5 E# \( }7 W% A6 b1 L2 `0 S) \, v; D1 c! F
下面说一下汉化方法
) H- V1 V3 J0 I7 g3 N2 s' h" @& L9 o5 H+ l
字幕文件 / w6 ~2 ]; Y2 L1 l
2 r- t/ l2 K$ a% r! P& O" q& U
游戏的字幕文件是\redist\config和\redist\config\lang_main目录下的一些.lang文件,翻译以后用utf-8编码写入即可。写入以后是无法直 0 H0 [5 m5 x" c3 H( U: u
$ N# U4 \6 l% z; A# {" g8 a
接显示的,我们需要做一个小的变换,这需要用一个小工具来完成。 % W5 j7 k! g6 A: W) }5 U
6 `, ]6 U1 ~8 B; X" y2 t9 A) n比如说,我们要把游戏的字幕这样转换。uXXXXX中的XXXXX部分是这个汉字的utf-16编码的10进制数值。 ; Q3 }, n% z8 G7 \0 e! I
/ }' l4 m( |1 m: x Q& O% P1 v: R$ `转换前 4 a) g, c) i* D9 l+ c2 X# _( K
<Entry Name="Start Game">开始游戏</Entry> / ?% k9 Z8 y& D3 a5 p+ u
转换后 - ~1 \, N$ q7 a+ w" K+ J
<Entry Name="Start Game">[u24320][u22987][u28216][u25103]</Entry> 6 r5 X# D: p' u& u7 l
1 o/ Q9 K/ \$ s9 a" \/ j- c9 i- q这个游戏是支持多语言的,所以我们可以仿照这些文件的样式,在原来的基础上追加一种语种:中文。
, T5 R- Z. [* y% o9 C我们暂时不考虑如何追加,而是按直接把英语改为中文的来说明。
) o% }8 g- c. d% r* K1 n+ {7 b" c; h3 J+ p( u% l' X2 F/ K9 {
字库文件 ; d9 f: v* }9 m* ]2 x
' p1 u3 p- Q8 C( e7 ~字库文件在redist\fonts\eng下面,是一个.fnt文件,对应多个.dds文件的形式。 7 q) Z3 Z. Q1 }) B$ ]( W
游戏的字体分为多种,比如主菜单就是对应menu.fnt,menu_0.dds,menu_1.dds。
# [2 g3 K* S! a我们如果需要增加汉字的话,可以追加一个menu_2.dds的中文图片字库。
* d) W" j m/ a! ~6 C/ A% Cmenu.fnt做相应修改即可。
' D4 t0 H5 G' T; a7 A; b% \3 t
9 j$ A+ z# D" a) {* U比如说我们翻译了<Entry Name="Start Game">开始游戏</Entry>
% `# b% a6 b7 H, d+ _为 3 n+ O4 O6 X: k- }7 r3 Z, {, ^' L2 G
<Entry Name="Start Game">[u24320][u22987][u28216][u25103]</Entry> O* ]) s! V9 g
0 d: i0 T0 D' F9 Z3 H3 K& Q# Z我们需要做如下修改 - t7 j3 Y9 D- W
( k! U3 y( |3 Q我们把在菜单中用到的所有的不重复的字都提取出来,保存在一个文本文件里。 0 b, R+ Z( z( |) `2 B D: l. c
这个工具如下 : D3 I( c& W$ j
https://www.chinaavg.com/read.php?tid=21959
; ?( z) w3 }( J$ O( N5 r1 i; z3 u然后用一个工具把这些字生成一个menu_2.dds的中文图片字库。 - @/ R: F8 M" I v
, c" m1 ]" a. A6 v# `
对menu.fnt,我们需要做如下修改
9 y' G! \: ~. H: {! L/ z% s: U! }: a- Z9 G) A
把 " U$ L$ {: |$ D+ F, g! z( O* p
<common lineHeight="40" base="33" scaleW="256" scaleH="256" pages="2" packed="0" alphaChnl="0" redChnl="4" greenChnl="4" 6 T8 I* a0 i3 |% {7 o4 |* h
6 M4 E2 Y/ f/ ]) F* |blueChnl="4"/>
2 x1 Y0 Y* P2 V; `' x3 P: {0 Z' q改为
. f6 U7 w8 F( {' I <common lineHeight="40" base="33" scaleW="256" scaleH="256" pages="3" packed="0" alphaChnl="0" redChnl="4" greenChnl="4"
: L- M. y/ _- x0 j+ l1 X7 n7 |) R% d- N4 i; {3 a. P, e7 M
blueChnl="4"/> * l2 I( t. P0 r, W/ y
3 F& @! V+ o3 b
把 0 N, o: }: s+ Q
<pages> / g y ]( U% g
<page id="0" file="menu_0.dds" />
# G ?7 R! h8 ?; L: |# X <page id="1" file="menu_1.dds" />
( u! e8 B2 g6 S. f </pages> 6 s+ K' }; u6 I1 m6 r$ s7 Q
改为 9 d5 p# ]( D9 D/ S3 E# G- c4 r; G8 n
<pages> ! e% J( K, A+ c, X% v# y
<page id="0" file="menu_0.dds" />
5 T. T* u/ m1 r <page id="1" file="menu_1.dds" />
& s( N6 S* h D" {( ] <page id="2" file="menu_2.dds" />
* U# G7 Z7 \6 m9 P# x# ]# O3 h </pages> o3 n, z4 T' r1 X( B8 Z
, [4 z: X. w) C4 f/ O
把 ) H- S9 x% i0 Z0 w. z
<chars count="190"> 9 E+ T6 p& ]3 a" `/ K/ `
改为
7 {$ c1 Z1 R* ^3 `' [5 ~ <chars count="194">
: t; H, c. |" L
/ F) `) O3 |, ~% J" g在字符定义的最后加上 2 G+ v, `5 X# |% ~) p
<char id="22987" x="31" y="0" width="30" height="29" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" /> 7 d# ?# V9 v5 l+ Z# g, J
<char id="24320" x="93" y="0" width="28" height="27" xoffset="2" yoffset="4" xadvance="32" page="2" chnl="15" /> . E0 N% O1 ^. `* Q9 R" A; [
<char id="25103" x="62" y="0" width="30" height="29" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" /> 8 a# _) S: Q% v, K0 t
<char id="28216" x="0" y="0" width="30" height="30" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" />
9 ?5 D. b% y8 ?5 `6 P& w
3 _! e8 L- D1 _* k x2 p这4行是开始游戏这4个字在图片字库中的位置定义。
$ n* J4 B7 g0 r1 E8 J4 n在用字体工具生成menu_2.dds的时候,会生成一个.fnt文件,这4行可以从这里面复制。 : v' _5 ?" S6 _$ S8 m* i
当然,字体工具生成的图片名不会是menu_2.dds,而是XXXX_0.dds,这需要我们改名的。 H0 N ?* v# \8 N
0 U+ ]3 A! S/ l! }字库生成
% r* k- q! u. `5 T- l+ {字库可以用Bitmap Font Generator这个工具生成。
( w* C0 R- {/ f' v! s下载 3 r/ [* Y( E7 D8 O4 E3 g* n
http://www.angelcode.com/products/bmfont/ 7 N+ e1 h. x* B \6 f/ Z
$ d+ L3 P$ T( h0 w% ~9 X/ k字体定义文件要选xml格式,材质要选dds格式,位深度要选32(缺省是8) & v8 [ l8 J: K! Q
大小选256X256,一张图片不够,这个工具会自动生成好多张的。
8 S, r- b, Q, y5 S7 s3 Y0 n如果想把尺寸设大一点应该也是可以的,我没有试验过,其他地方可能要相应修改。 : T+ r# B. Q5 d& b# A* G
; r$ \* ]7 s" k W. l1 ~0 P0 O
注意点
+ I9 s! E2 ?9 ~) Y3 G1.这个游戏使用了多种不同的字体,所以需要把字幕整理一下,整理出哪些字幕是对应哪个字体文件的。 1 Y7 s$ d$ m8 k6 S. O# S
这样才能筛选出不重复的汉字来生成字库。 . G6 f/ o; P) o# |0 ^
2.需要制作一个工具,把字幕文件里的汉字转换为[u25103]的形式。 % g0 V7 B7 T- |. n2 R
- l4 H$ p" d$ o3 }% t! g) q以上就是这个游戏的全部汉化方法。
( K7 u' g8 t1 \( A( N% B3 U
, u4 `. c! z- O0 e |