冒险解谜游戏中文网 ChinaAVG

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

作者: shane007    时间: 2010-9-11 07:02
标题: 好消息!失忆症:黑暗后裔汉化实现
研究了一下失忆症:黑暗后裔,很容易就实现了汉化。汉化方法和半影系列是一样的。
$ A% I) p. W9 {$ B$ P+ o* G
+ z+ R% s! P0 A下面说一下汉化方法 9 h7 c3 j# \$ I1 ]

) B# o* W& u. T% R字幕文件
: L+ M' n) p- ]$ o8 R4 p
' E; H+ g/ l$ a1 c# G4 J; q0 z游戏的字幕文件是\redist\config和\redist\config\lang_main目录下的一些.lang文件,翻译以后用utf-8编码写入即可。写入以后是无法直 - z" I% [" W( G  _' j
6 _) b2 l/ C% _; R& k9 j
接显示的,我们需要做一个小的变换,这需要用一个小工具来完成。 ' k! R! K* _  I" B& B

$ ?! m* Q# p+ |) v- `比如说,我们要把游戏的字幕这样转换。uXXXXX中的XXXXX部分是这个汉字的utf-16编码的10进制数值。
8 Z! k9 c" v8 u' }  `  ?
, F. c" r* q6 F! F5 r- K$ n! |' D转换前
5 Y% O! w+ A! a<Entry Name="Start Game">开始游戏</Entry>
. A- A' I* `( X- k6 Y; F) j转换后
1 P* u  p/ g( [+ I. V; Q<Entry Name="Start Game">[u24320][u22987][u28216][u25103]</Entry> , A7 N- L6 V* J$ \4 q; S

5 y4 E; [! N* F" o' [这个游戏是支持多语言的,所以我们可以仿照这些文件的样式,在原来的基础上追加一种语种:中文。 2 r" _- C8 @3 K+ Z" T8 ^
我们暂时不考虑如何追加,而是按直接把英语改为中文的来说明。
. h: d1 Y, _" T% K: `/ U& Q" E7 a* }, @. k" A8 i# n% c* o5 I
字库文件 $ f" y; W( v9 k" }0 M  J; h

: }" L  e7 P% c( F% b  U- e$ ?: Q9 z字库文件在redist\fonts\eng下面,是一个.fnt文件,对应多个.dds文件的形式。
9 N9 c: [$ W0 h0 |游戏的字体分为多种,比如主菜单就是对应menu.fnt,menu_0.dds,menu_1.dds。
+ ^! r# ^  c! I7 J- I3 T; n6 g我们如果需要增加汉字的话,可以追加一个menu_2.dds的中文图片字库。 8 s4 h! m$ e+ U- N
menu.fnt做相应修改即可。 : v6 u9 R( J+ Z* {

7 }9 f6 ^: f7 t' K4 b- E6 e  U( l* D比如说我们翻译了<Entry Name="Start Game">开始游戏</Entry>
8 x% m2 ~" U# P" H+ f
  S  L9 R& l0 k  W6 X<Entry Name="Start Game">[u24320][u22987][u28216][u25103]</Entry> 7 p. ^3 v& I& {( k0 x
  g8 p, I8 K4 O
我们需要做如下修改 $ x  a; Z, g4 D' \$ B
+ d5 H4 R* D( Z* s9 o
我们把在菜单中用到的所有的不重复的字都提取出来,保存在一个文本文件里。
; A, Z3 X( I4 {+ d, w9 e0 f这个工具如下 9 I% L; w2 A7 D
https://www.chinaavg.com/read.php?tid=21959
. O5 E& ?. l, t2 g4 [然后用一个工具把这些字生成一个menu_2.dds的中文图片字库。 ' e' X% B0 }% z
) @6 n% }0 m- d3 ]
对menu.fnt,我们需要做如下修改
# [. W0 Q6 H8 M/ e5 Z# C3 ]' i0 R; b6 m# ~, V

9 Y5 {) d$ q4 B9 c  <common lineHeight="40" base="33" scaleW="256" scaleH="256" pages="2" packed="0" alphaChnl="0" redChnl="4" greenChnl="4" 4 ^9 A1 E6 ^% q) z% R9 a  v
  J' W8 [* C( t8 K/ R! t
blueChnl="4"/>
8 X4 u# T( W4 H% q: o$ {, ~改为
) m3 }, b/ X; q6 P! C- ^4 I% @  <common lineHeight="40" base="33" scaleW="256" scaleH="256" pages="3" packed="0" alphaChnl="0" redChnl="4" greenChnl="4" 2 Q( ]1 P" b2 O5 [' M6 s  b' M

, U) m  ^% ^4 b) ?! ^% M1 @( AblueChnl="4"/>
; g! R' }: o$ k
) ]$ Z4 p% G" ~3 H, ?8 ?9 w# F% h
: t/ l8 i: J; G  <pages>   }* |  R% b) x* \( W" D% e
    <page id="0" file="menu_0.dds" /> 1 `" P: J1 n$ q" ]/ V6 p6 `/ F  J  Q
    <page id="1" file="menu_1.dds" />
2 }# P$ d! }% C# b  B- Q  </pages>
; U! A, C. O- d" B1 p改为
; c/ x' e& M6 O" s# C  f  <pages> : O# _4 r/ q' s3 |& L1 `) n
    <page id="0" file="menu_0.dds" /> . H' Z- `' E. I' c2 ^& @2 S; i$ C
    <page id="1" file="menu_1.dds" />
( c, j2 R, ]; i& ]    <page id="2" file="menu_2.dds" />
9 V0 l4 ^) w7 z  </pages>
. }) @" @$ d& P) v+ _6 Q9 @4 y, _4 N' v/ ^7 K5 ?

. ^- |0 d" E3 R/ c* O! a  <chars count="190"> 7 s5 }' d3 o0 B( W7 U
改为 - ]% b# Q, Q0 i4 y
  <chars count="194">
9 ~! n3 _+ U4 @- R5 M: S+ D% E) q% A  V" w" U, q8 _. K! T
在字符定义的最后加上 ) R* u3 j& F% o5 ]5 x( K9 }
    <char id="22987" x="31" y="0" width="30" height="29" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" />   a3 i8 Z% d  y2 `* X
    <char id="24320" x="93" y="0" width="28" height="27" xoffset="2" yoffset="4" xadvance="32" page="2" chnl="15" />
- ]1 E( r$ Y) x8 I3 W' Q7 h( q0 z" f) j    <char id="25103" x="62" y="0" width="30" height="29" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" />
, C- r: }  ?3 R5 p% u    <char id="28216" x="0" y="0" width="30" height="30" xoffset="1" yoffset="2" xadvance="32" page="2" chnl="15" />
/ O# y6 o* O4 D( ~7 _) ]8 x: {4 _6 J! T4 S
这4行是开始游戏这4个字在图片字库中的位置定义。
1 ~3 F/ V- {# r5 u" X5 g$ \在用字体工具生成menu_2.dds的时候,会生成一个.fnt文件,这4行可以从这里面复制。
4 u( W6 p- K& E$ c当然,字体工具生成的图片名不会是menu_2.dds,而是XXXX_0.dds,这需要我们改名的。 % T9 T- U3 C0 [0 {

# V5 r1 P  I6 i( b字库生成
8 R# g" W0 `$ H, b" X
字库可以用Bitmap Font Generator这个工具生成。
1 T7 f! ~6 x. R; b- s下载 # e7 `. h  c& ^6 c) T3 @5 q
http://www.angelcode.com/products/bmfont/ / r( p/ u- D8 j0 u+ x* S

8 S+ i4 J2 h1 l/ i( y1 x字体定义文件要选xml格式,材质要选dds格式,位深度要选32(缺省是8) - g; }3 ~# g( X) [% Y6 W. J
大小选256X256,一张图片不够,这个工具会自动生成好多张的。 $ e7 z0 \/ u  `6 x) {/ z
如果想把尺寸设大一点应该也是可以的,我没有试验过,其他地方可能要相应修改。 / q, t# u; l$ `/ D# V* z1 \

& F7 o9 s! L/ v注意点
6 D; ^0 O8 I, |. O6 `1.这个游戏使用了多种不同的字体,所以需要把字幕整理一下,整理出哪些字幕是对应哪个字体文件的。 8 `7 A$ F3 C0 k5 i6 G8 \
  这样才能筛选出不重复的汉字来生成字库。 8 {; P3 Y8 X# b! ~( E7 L( p/ ?6 ]. N
2.需要制作一个工具,把字幕文件里的汉字转换为[u25103]的形式。
# i1 U" h9 I  U0 V: X! A& a' w8 [4 N4 N6 b" [/ x
以上就是这个游戏的全部汉化方法。
( N" H; z) [* r$ q: m, S% O+ {, ]3 E; N, 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也接手了~4 v1 i3 q4 X* a: @

- D" y& T2 g; ?0 q2 Vhttp://bbs.3dmgame.com/showtopic-1450643.html
作者: potemkin    时间: 2010-9-12 22:56
新人报道!
7 b6 K+ E" [; F' c' E+ t1 Z那我来试试这个任务吧, 希望能顺利完成:D
作者: swdgame    时间: 2010-9-14 21:26
报道一枚!
作者: potemkin    时间: 2010-9-15 13:31
标题: utf-16中文转换
完成了~0 H' N% u3 E2 U+ e
写了一个小工具, 没有界面, 说明和源码在附件里面, 有什么BUG通知我吧
7 C9 P! p9 x" H% |1 J
/ o3 x; [3 U2 p补充说明: ; p) J0 v0 _' v: S& x1 g! C
   1. 工具不会自动识别编码格式, 源文件一定要是utf-8的, 否则会出错;/ _4 R6 M* d0 N* R1 i: m
   2. 替换时没有考虑文件结构, 所以如果文档中含有注释性质的说明性文字(中文)也会一并被替换掉...
作者: naptid    时间: 2010-9-15 14:15
UltraEdit可以直接进行字码转换,“另存为”——格式选“Unicode-ASCII Escaped”就可以生成类似\\u25103\\的格式,然后将\\\\替换为][即可。
$ X7 B- J7 I; x8 b, ^  \7 M需要注意:字母数字及半角符号等ASCII码,UE不会自动替换,不知失忆症的字幕文件是否也是如此规则。
作者: swdgame    时间: 2010-9-15 16:36
不考虑格式转换器一枚,无界面,无报错提示,纯转换汉字,thank potemkin for unicode info[s:69]' ?1 ?; h4 l) Q# j7 h5 u5 {; @
- j; X, \5 O/ G
使用时直接将文件拖入cmd框然后按enter就行了。  X- ?( Y2 O9 s$ A! ]# P' _
转换后会在输入文件目录下建立一个fixed files文件夹,转换后的文件在里面。
# \& M9 ?) f0 M# T+ U' O. Z
; @9 ^5 b2 c3 R3 U5 ~2 S& J8 r用了两段别人的代码和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