最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。
0 I+ t! T$ k: w) O2 R6 u
# E6 E- Y, l$ e1 Z3 @+ F) L6 E这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。( t$ b7 V- \0 X7 K
游戏支持免打包,我们可以修改hca.Configuration.xml
& e$ {7 O. V/ q' D" B/ `比如把core.pak解压到core目录下,移去core.pak,然后把4 W+ ~) b9 A- `- _" A [
<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>
; G3 b" J' l" p& E修改为
5 ^1 Q4 r, U3 `<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>
& d( C* Q5 _2 {, n$ m) B游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。& Y! y9 |/ j: ^: O" Y+ n
$ W/ Y, j2 p/ `: Z/ p3 R q
修改完以后,我们进入\core目录。
( x: ]) ^+ s( a) ]0 y7 P8 L: t我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。
6 S2 j' h* c5 z6 X2 Q! L3 ?& T1 d" l( u4 L, ]: }- F0 u4 f
比如MainMenu.layout.xml中
) E+ a# ~) D! p7 |1 m<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">
0 m' V9 I: @- [4 u2 D7 n<Property Name="Font" Value="bodinib-18" />
2 @5 ^% _' P% B; j) o
: c& A8 X, w) _- o. p; A就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。: p7 C6 h, _! j) t* y: C
我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。
. T2 a9 P2 a6 O7 `+ H+ j<?xml version="1.0" encoding="utf-8"?>5 H( W$ Q, V! u& g
<Font
/ q8 I% e9 y3 k) P: u ] Name="bodinib-18"
5 s% _' K4 `1 w; _) J Filename="BOD_B.TTF"
# s( W) D# Z1 |5 }/ J5 j( e2 C Type="Dynamic"
& ~2 T! o; A% w Size="18"
+ M9 l; H F8 p NativeHorzRes="1024"5 V6 j# m! B! v" c
NativeVertRes="768". ]% X- T- e, V: x) @0 z
AutoScaled="true">
a0 q) a1 a. M' f1 F$ O2 @ <GlyphSet Glyphs="开始游戏"/>2 ^, y! _7 X( d8 r) n) k( a
</Font>
m5 @0 \ h7 w% i7 F4 r然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。# t+ H. u0 S4 f* n9 v+ z" n2 Y
字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。* h$ K6 S3 k7 {3 W& L
! h& S* R# h D, [/ n _汉化抓图如下,附上字幕文件和1个字体定义文件9 h$ y* ~; y" [
|