最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。; k, P/ _& f, V5 @ V
8 Z; D6 D P: W- C4 X; h这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。; t8 g, o: w0 K1 Y0 f
游戏支持免打包,我们可以修改hca.Configuration.xml) x4 J0 _6 \( j6 _, y/ z7 m
比如把core.pak解压到core目录下,移去core.pak,然后把
$ ~) V2 x4 \9 g. y* l6 A<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>
7 O8 }) s' ?7 N' t- d4 g: ]: l& h; t修改为/ f+ w: |8 g! M0 d
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>
% u1 W# ?. s& Y" `) _ @游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。0 t* |2 R J. @
. }- J6 o+ e# c- o' O* N
修改完以后,我们进入\core目录。
! P4 Z/ y+ d Y4 X7 r我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。 ~* R& [! D+ d6 s
3 S* k2 d; f. b( u% P7 A. w
比如MainMenu.layout.xml中& c+ I- H4 b3 R9 q* T* ?$ q
<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">
7 |: w! B1 I ~$ h) ?$ g9 W<Property Name="Font" Value="bodinib-18" />
* {9 @+ ~, x; v. F0 c1 ~6 n- A
' k# [# q- i6 q: V( a7 p& Y就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。
: x' l/ W: |) K$ d) O! [; ~我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。& v# \' W8 F- `( [$ m) }3 g
<?xml version="1.0" encoding="utf-8"?>
4 Y$ V- p& U2 C<Font
! @! Q% [! L4 j Name="bodinib-18"
2 T/ d2 b2 B) u1 } Filename="BOD_B.TTF"3 x2 J# V4 v# K$ U2 b3 @& O0 |
Type="Dynamic"% ?1 [$ o' E# y6 m' S
Size="18"# R0 z; U& l0 U" m
NativeHorzRes="1024"
9 |, j( w/ w( {9 U NativeVertRes="768"
$ Z6 L3 b9 c8 R AutoScaled="true">; P; n6 G/ F8 H- D6 o' i- l$ u1 d
<GlyphSet Glyphs="开始游戏"/>5 [9 }8 a& O1 F, g8 b2 A9 a
</Font>, ^& p& n J9 Y
然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。( z& l! c/ } M7 J
字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。
4 |9 Z$ ^' y& h" ~6 u" m8 G1 X9 j, x8 o" N6 [: ?" j' |3 y
汉化抓图如下,附上字幕文件和1个字体定义文件
! C+ v1 b4 P% r- c0 d5 D |