最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。$ g- c0 D+ S1 r, z8 r* w
$ B6 X- ~/ U; H4 w- K这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。
1 `7 R7 F4 i! O5 W+ \游戏支持免打包,我们可以修改hca.Configuration.xml. d: x8 U( J' p4 v, }
比如把core.pak解压到core目录下,移去core.pak,然后把; s+ u' s7 g) H+ L& w; j: ^
<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>
q4 \' ~* `8 z& H8 A1 `5 o' ~修改为: S% {. k3 h! O8 l3 f
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>% S$ |# R% p5 q) \
游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。* @5 \1 f, |0 b/ U8 V
) n E7 K1 O8 h: k! z5 B
修改完以后,我们进入\core目录。
" \$ f% [7 z7 o" R% ^6 x' Y# `我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。
2 H3 ]2 O6 j+ Y- v- G' Z" c
2 R# l# h7 ^/ L0 n) d0 p. q比如MainMenu.layout.xml中
" |4 S% O- ?5 a- Z<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">
) z3 ^8 c. w) w$ G& H<Property Name="Font" Value="bodinib-18" />
3 g' \; V: T5 | w; Z* F% W. q, S- H7 j. O
就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。" r+ O- B6 h) E! v: s
我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。$ C4 u% ~! z0 P8 e; [" @: u
<?xml version="1.0" encoding="utf-8"?>+ ]/ L6 v! y2 Y
<Font
s! u8 ~* q, {. I. d" J Name="bodinib-18"
6 ~4 I( L1 e* T6 n9 _0 R Filename="BOD_B.TTF"% e. @/ L. w' H S8 ^/ V
Type="Dynamic"
+ J3 Q! O% l; c3 S9 ]# D: a Size="18"; P0 z; s' v" o; @: ] K* [" |
NativeHorzRes="1024"
' V8 l3 K) s5 [4 y NativeVertRes="768"% c* q6 [: H$ l7 U" ^" Z! y5 R0 q
AutoScaled="true">
" l9 I: q! y2 T% J3 Y7 t <GlyphSet Glyphs="开始游戏"/> Q+ }; a, S* _$ G1 W7 p; a
</Font>: t! v2 f) X" D7 A( d c, F- [
然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。
+ U# t# `8 f' W8 N字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。8 T- l9 S1 @: I
9 W& Y9 h) Y- Y; U汉化抓图如下,附上字幕文件和1个字体定义文件
( D: B% z* L1 `& A- C5 S+ j" i |