最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。0 p: C) G P+ \$ }' A& b
8 U; c% r1 c3 n: Y
这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。
9 J" {& I# j( G, N游戏支持免打包,我们可以修改hca.Configuration.xml
B* [3 T: |: j+ N比如把core.pak解压到core目录下,移去core.pak,然后把& c- W* g& I) W, e/ ]$ l B2 f
<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>
9 Y3 H! Z' x' N Z( h2 z修改为
% q+ I% n, B3 R. j. i7 j<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>
/ D- f M+ p" N0 @0 g; n Y游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。
; S, h2 I& b2 I) V( @9 U# P" C' M2 h8 x+ D
修改完以后,我们进入\core目录。
1 ^& O6 Q1 ~! h0 h我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。
% J/ |1 G K" u. N8 Z2 i9 d7 X- q
比如MainMenu.layout.xml中
( h. N1 @; Y; e4 w+ o- P0 V! G<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">" Y; D: z9 A; G
<Property Name="Font" Value="bodinib-18" />5 I3 Q8 y$ ^9 @# \
5 S% `1 [( E9 c" n
就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。
4 i4 O* g9 V4 p; O/ y9 k我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。, C, B# Z% l" x; U3 G2 ?
<?xml version="1.0" encoding="utf-8"?>
h: H: ?& w$ o% r" g9 D, d' K<Font
- ?% M# n9 r. o3 p! |2 s Name="bodinib-18"
4 a. p! K/ J# y0 f" U" Q4 h& a7 m Filename="BOD_B.TTF"
4 W% C! g# ]$ ^5 H/ a) \ Type="Dynamic"
$ [6 q0 s/ |2 G3 r* F4 K- j Size="18"
8 U+ j" x. ]' M NativeHorzRes="1024"/ h* ]1 n: v& S! ?2 {, S# ]
NativeVertRes="768"
" y. R: g% }6 @6 k2 ? AutoScaled="true">/ ~1 ]: W2 p" Y- r/ j3 {
<GlyphSet Glyphs="开始游戏"/>8 F) Q& Y, O; s- s7 T) `
</Font>
* L, U+ P6 Z. q3 A然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。
* y; Q$ ?5 A; Z* C& F字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。
; C9 z# x/ i. M2 d. B# L) i" P% Z& x8 }/ v+ t
汉化抓图如下,附上字幕文件和1个字体定义文件9 B3 C& h$ \# |. V' _. u) O
|