冒险解谜游戏中文网 ChinaAVG

标题: 好消息!失忆症:黑暗后裔汉化实现 [打印本页]

作者: shane007    时间: 2010-9-11 07:02
标题: 好消息!失忆症:黑暗后裔汉化实现
研究了一下失忆症:黑暗后裔,很容易就实现了汉化。汉化方法和半影系列是一样的。 + F* p3 Y% X$ y  [. A2 W

- o7 W: R% c$ N5 k下面说一下汉化方法 6 n4 @& r% r/ I5 \/ Y6 a
, z$ [7 E  Q* [
字幕文件 $ ]# r# q7 K! u0 `' v7 C' |/ d
0 i1 \  ~5 S' q5 W5 C3 l# e1 l
游戏的字幕文件是\redist\config和\redist\config\lang_main目录下的一些.lang文件,翻译以后用utf-8编码写入即可。写入以后是无法直
) u3 P1 K5 A! W2 E0 D: i6 _0 \. h
接显示的,我们需要做一个小的变换,这需要用一个小工具来完成。
8 L+ x( G, _( ?/ |7 y2 u; m0 `1 @" i/ M% V9 ~& s; t$ }
比如说,我们要把游戏的字幕这样转换。uXXXXX中的XXXXX部分是这个汉字的utf-16编码的10进制数值。 1 P" K' N) R) I* m

' k% `( k) U3 S9 E3 X6 j转换前 0 B0 [: c8 o1 d/ |; Y
<Entry Name="Start Game">开始游戏</Entry>
9 M8 l5 E* U% ^% q转换后 2 Q. o' D" r, D: ]/ X
<Entry Name="Start Game">[u24320][u22987][u28216][u25103]</Entry> 9 A7 u& q' f& C5 l: C; o
5 f' t1 X' h5 G2 j- j
这个游戏是支持多语言的,所以我们可以仿照这些文件的样式,在原来的基础上追加一种语种:中文。 ; T- R0 {  |( F  d9 A
我们暂时不考虑如何追加,而是按直接把英语改为中文的来说明。
5 N7 }! u/ o. l9 v1 w& Y
$ h8 j& ^& B8 s+ B7 g# Z$ z字库文件
; b- W  V" h: |6 ^" D* C$ K) T! E
字库文件在redist\fonts\eng下面,是一个.fnt文件,对应多个.dds文件的形式。 ) h( u! _6 s! w! W
游戏的字体分为多种,比如主菜单就是对应menu.fnt,menu_0.dds,menu_1.dds。 & L6 l6 c2 A3 P- G3 j
我们如果需要增加汉字的话,可以追加一个menu_2.dds的中文图片字库。
1 M) F. z0 v/ l7 F+ a% ?menu.fnt做相应修改即可。
* ]! ~: N% l- X( G8 g& U& N7 D4 J' V, C0 o: K8 H9 b0 w
比如说我们翻译了<Entry Name="Start Game">开始游戏</Entry>
% q' r* j8 [, y" E
( U! n/ ~' {) G+ `<Entry Name="Start Game">[u24320][u22987][u28216][u25103]</Entry> - w+ c  y0 l7 C% g( C, W4 [& X# ^7 K, A

+ H$ {: Y9 H# t, z5 u我们需要做如下修改 1 q$ l! `! E& G1 |

& ^- A$ ^; N& M1 B$ _2 F5 E我们把在菜单中用到的所有的不重复的字都提取出来,保存在一个文本文件里。
5 u5 u1 W$ c2 Q. [4 J这个工具如下 1 s. }# X- _% w" ^6 \5 L7 V
https://www.chinaavg.com/read.php?tid=21959 7 d. d. ^9 y& \; @
然后用一个工具把这些字生成一个menu_2.dds的中文图片字库。
5 X8 p+ X/ m2 T0 u! s4 S' E$ J" I! `4 D& o
对menu.fnt,我们需要做如下修改
: M# Z* a9 m" E5 I0 W7 K2 ~: `" Z( n* _3 L$ `

2 {: `; w- G" u# z$ o  <common lineHeight="40" base="33" scaleW="256" scaleH="256" pages="2" packed="0" alphaChnl="0" redChnl="4" greenChnl="4" " g! Y  T! w3 o, l

0 N% g$ g1 s5 A0 l+ \. iblueChnl="4"/> 6 X( m! ?# t9 d+ W! e# U
改为
6 T1 N3 e1 R% Z1 q: ~7 N) A  <common lineHeight="40" base="33" scaleW="256" scaleH="256" pages="3" packed="0" alphaChnl="0" redChnl="4" greenChnl="4"
8 u: G7 t; K7 N* v: q, k* V" l- A9 y6 u+ {- j
blueChnl="4"/> ! I4 Y5 ~" w$ v) u; W* f& r
2 ~* C1 y! u9 [( J0 E. F' ?& N. e
+ S4 z2 r8 L0 n* c0 q0 F
  <pages> 3 F! d' y! I+ u7 ?' a# U
    <page id="0" file="menu_0.dds" />
) i! Y- |0 ]2 F2 v8 a8 c" V6 K. z    <page id="1" file="menu_1.dds" /> : a" m9 M% j: O4 h( b! d) k: z
  </pages>
- C% n; \  j! O改为
1 ~; d- C; ]5 F( i- ]: f  <pages>
" ~4 Q. U& s. I3 }    <page id="0" file="menu_0.dds" /> 2 ?/ t  y5 p0 n+ K, v
    <page id="1" file="menu_1.dds" /> 6 ~* ~% t8 @* w3 r
    <page id="2" file="menu_2.dds" />
3 E2 _" a) \& i" [6 O5 ?/ C  </pages> $ K8 q& u( U- U; g0 R/ ]  s

* I% e! h- w. P; H: z( l; o1 y% O6 O- Y7 y
  <chars count="190"> 6 I0 V! a5 @" m, b) l
改为
; |$ Z* H) n# \, }$ E- Y3 V8 X7 s- m  <chars count="194"> # o) h0 I$ f4 s
' t' H$ ^% W8 U& q3 U3 u
在字符定义的最后加上 # {8 B2 t- a/ X" J! v' P4 ]: z
    <char id="22987" x="31" y="0" width="30" height="29" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" /> , Y$ u5 C$ @1 a, k
    <char id="24320" x="93" y="0" width="28" height="27" xoffset="2" yoffset="4" xadvance="32" page="2" chnl="15" />
- ~4 F3 ^; i) t# T5 f    <char id="25103" x="62" y="0" width="30" height="29" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" /> 9 V/ [8 l% r& l# r
    <char id="28216" x="0" y="0" width="30" height="30" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" />
8 g: x, O2 f- [# p% |  ]9 K
; W0 @4 H" I; Y# m/ c这4行是开始游戏这4个字在图片字库中的位置定义。 ! X& t3 ~. d! g: j$ o; p1 l# w
在用字体工具生成menu_2.dds的时候,会生成一个.fnt文件,这4行可以从这里面复制。   X& v' {8 j6 S7 a7 _9 R
当然,字体工具生成的图片名不会是menu_2.dds,而是XXXX_0.dds,这需要我们改名的。
) N' y- [0 r4 z& a9 O1 z, d7 f
, C% B. W4 x& }! c) A* O字库生成 0 V. \% |) @3 B, F3 G7 U! I
字库可以用Bitmap Font Generator这个工具生成。
9 Q& U6 {* W' o$ S& }' ]% f5 n下载   S; T8 s: {) u
http://www.angelcode.com/products/bmfont/ $ Q6 F  b( `  ]9 i  @
# r6 B) f1 W  T$ P' J1 A; _' V) n, T
字体定义文件要选xml格式,材质要选dds格式,位深度要选32(缺省是8)
# Z$ G( C5 x" N4 m  ^% Q  n大小选256X256,一张图片不够,这个工具会自动生成好多张的。 / U0 Z7 n& A3 u
如果想把尺寸设大一点应该也是可以的,我没有试验过,其他地方可能要相应修改。   y$ x: N0 n9 t

& z$ A: ?) y- X- I; {注意点 : J4 a, l8 M) t. H3 i! S/ {
1.这个游戏使用了多种不同的字体,所以需要把字幕整理一下,整理出哪些字幕是对应哪个字体文件的。 ( ^$ _1 U  _4 N
  这样才能筛选出不重复的汉字来生成字库。
. Q2 v0 N8 F( P, W' {. [# [! E5 f2.需要制作一个工具,把字幕文件里的汉字转换为[u25103]的形式。 9 {5 [( k- b+ m3 e; {: l! [8 C
# ]4 j( }# y  O. G: F! ~
以上就是这个游戏的全部汉化方法。 5 T4 i6 I4 }) T. a& O% G& Y
) V1 j+ f! t* g$ ^+ D  `! h) u
[attach]17253[/attach]
作者: 514273668    时间: 2010-9-11 10:14
支持~~   支持   加油哦
作者: miclhang    时间: 2010-9-11 10:32
哇,太好啦~!
作者: sskaizai    时间: 2010-9-11 10:35
又一部牛游戏收入囊中!!!!!!!!
作者: miclhang    时间: 2010-9-11 10:35
额,3DM也接手了~( r, [: r3 r* j$ W/ K2 r
' B7 ?. R7 T. K; g6 K( T- D6 U: V* {
http://bbs.3dmgame.com/showtopic-1450643.html
作者: potemkin    时间: 2010-9-12 22:56
新人报道!
$ `0 c+ H0 x# L那我来试试这个任务吧, 希望能顺利完成:D
作者: swdgame    时间: 2010-9-14 21:26
报道一枚!
作者: potemkin    时间: 2010-9-15 13:31
标题: utf-16中文转换
完成了~
7 S+ Q, H$ _9 M" L; P写了一个小工具, 没有界面, 说明和源码在附件里面, 有什么BUG通知我吧
9 I* U. d4 l# J: O& A, @* Q2 n# x- `2 J, E
补充说明:
( ~+ M# S! _2 ], P0 g- o  P( k4 v7 ^   1. 工具不会自动识别编码格式, 源文件一定要是utf-8的, 否则会出错;
" L9 [* L. M, @   2. 替换时没有考虑文件结构, 所以如果文档中含有注释性质的说明性文字(中文)也会一并被替换掉...
作者: naptid    时间: 2010-9-15 14:15
UltraEdit可以直接进行字码转换,“另存为”——格式选“Unicode-ASCII Escaped”就可以生成类似\\u25103\\的格式,然后将\\\\替换为][即可。
% S* a( {5 b: N$ w8 [3 _' M4 J# T: v" ?需要注意:字母数字及半角符号等ASCII码,UE不会自动替换,不知失忆症的字幕文件是否也是如此规则。
作者: swdgame    时间: 2010-9-15 16:36
不考虑格式转换器一枚,无界面,无报错提示,纯转换汉字,thank potemkin for unicode info[s:69]# k! b! ?5 A. d) w) V' ?
2 v0 k% t6 j; F- b7 g# a
使用时直接将文件拖入cmd框然后按enter就行了。
% y6 L1 q" S* _! X% r转换后会在输入文件目录下建立一个fixed files文件夹,转换后的文件在里面。
+ T- H. c6 q1 g  B- {: p: _0 S4 m  V
用了两段别人的代码和mfc,只能保证xp以上系统能正常运行。
作者: shane007    时间: 2010-9-15 17:09
工具收到,多谢以上3位了。工具我会尽快测试的。
作者: wshinru    时间: 2010-9-17 14:29
衝啊~~~加油加油~~[s:67]
作者: potemkin    时间: 2010-9-17 14:51
工具可以用么  有没有什么bug?




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2