最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。8 d+ p$ [9 O! d2 @9 i2 i. L
& g, q3 U6 `8 } d9 B, @+ o! ?- w& n
这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。& z1 q2 B8 Q* C. y) J, Q4 J) ^
游戏支持免打包,我们可以修改hca.Configuration.xml) B7 T) v! k/ l- {
比如把core.pak解压到core目录下,移去core.pak,然后把
2 K& }/ h2 |' ~8 X<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>0 H0 ]6 K# {( t& w3 ?: l Q/ C% I
修改为+ S/ V; D' R( ?+ u# a2 t2 D' u6 b$ P9 L
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>4 l3 Y8 R6 X2 N+ x- N* E
游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。- z6 h$ O5 P/ I( w
& K, K) C6 A" G3 F" L0 c修改完以后,我们进入\core目录。( y+ d2 Y! J) V& w
我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。2 F& n& z8 E7 H o* Z4 E
, p9 _' v, f' m2 u/ G
比如MainMenu.layout.xml中
8 l/ s- [- i' M" N( E/ Z5 h<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">
" v6 p7 l/ A4 T' o" Y<Property Name="Font" Value="bodinib-18" />
4 P- J; _ k* t+ |- u( S% i. | j, y5 c- n, P
就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。. ]6 ?' ?- M6 H& q* C, }- j8 u+ k
我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。6 ?- c( Z# E, p7 q! Q* h: a
<?xml version="1.0" encoding="utf-8"?>
$ m. d& Q; K- x) K- n7 b1 {9 o<Font
8 A" F# @; `3 F, B' h& c3 J+ o Name="bodinib-18"7 D* C/ x" U) q1 y
Filename="BOD_B.TTF"9 G4 [ w- ~3 }/ O9 ]
Type="Dynamic"
& w8 F7 ?) X' | Size="18"' d( ~' u; P# a, Q2 z3 ~
NativeHorzRes="1024"
# M0 Z$ e0 z. ^2 D NativeVertRes="768"- H7 x$ s# r% f0 q2 d) K8 O
AutoScaled="true">
9 U% [ y5 o% J* a" t. Y <GlyphSet Glyphs="开始游戏"/>
/ G0 F( X9 i) B2 u3 q0 q* k</Font>( `- }" }) ~1 W
然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。
6 a& z! O0 L7 p2 o# P1 i: X字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。
6 a# K3 y4 ^% c. w/ t1 ~
/ l$ H( W* t+ p- W汉化抓图如下,附上字幕文件和1个字体定义文件" V% @+ t7 ~9 _) S: b1 X2 W
|