最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。! o3 i9 [9 D1 J' l+ v4 J! q
4 F8 w5 u5 W8 t2 [
这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。
5 c" }* K# w1 Y; I# o游戏支持免打包,我们可以修改hca.Configuration.xml, V7 N1 \1 P5 |! [) e- B7 k
比如把core.pak解压到core目录下,移去core.pak,然后把
% b6 @: J) f+ w- S' m: D<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/> c3 q, Q7 N$ o# K1 a! h c
修改为4 T" P' F1 p# v) u4 [2 ^
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>
8 `9 i# _5 w" ^. s Z0 Z游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。+ \" X+ f, D% M* o
) l( T. t# k# B* `2 q
修改完以后,我们进入\core目录。
0 c' H x) N! x$ H( r3 C我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。& Z0 E) W- D% o; v0 b$ _
( ^( }, q4 ?. ~; {5 M$ N" s: M
比如MainMenu.layout.xml中
9 G1 _4 i$ @3 c: K7 {, [<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">8 _- X' ^* a) d% k) G0 N2 q
<Property Name="Font" Value="bodinib-18" />
% X3 |# o+ T8 g7 P' P+ E L
8 ^9 j. x" d1 E0 [- q# }就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。" J( Q, d& V. F
我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。+ a8 T2 J' s; ^. _- }) m6 L) j
<?xml version="1.0" encoding="utf-8"?>* Q! p; g1 l% m" Q' M
<Font
[7 f& g+ @/ p* y" `" S8 y; D Name="bodinib-18"
$ W' f9 W4 L2 s- j. c. E9 I: Y- K5 o Filename="BOD_B.TTF"- a; N4 N2 h, ^9 T4 q' d
Type="Dynamic"$ r; Z8 y9 d2 l; `2 t& ]
Size="18"
3 I5 R5 t- H( @* v- F7 S! k1 V+ X NativeHorzRes="1024"
: y8 N# Y: T' ^& j" {5 i- I NativeVertRes="768"
9 r+ ]. v' J( j) n1 e* \ AutoScaled="true"> K; Z1 L) y5 j' f
<GlyphSet Glyphs="开始游戏"/>
& i" A8 U+ T: r/ C. b, {" u0 I</Font>
3 Y& V& R1 p: [/ C. t/ i5 f然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。
* V9 C5 v, e$ O3 M字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。! \) K# X4 V8 D& k9 }/ ?3 x
" ~; F. [# m ?8 h/ x+ w" {: y% e0 ?
汉化抓图如下,附上字幕文件和1个字体定义文件# J1 X. z# T [+ {' s
|