最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。
* ]% P5 E* R, d& e) C) k; D5 t) a( R2 ~# J2 w% Y6 M4 P8 ~0 N0 g
这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。
- h- X& a9 E) c# m/ {) k* d游戏支持免打包,我们可以修改hca.Configuration.xml+ W. S9 v) p' L1 R1 i. @7 p' s
比如把core.pak解压到core目录下,移去core.pak,然后把. a& Z8 k; O4 v4 Y* K2 x) R" l4 D
<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>: R4 j8 |0 q" O, M
修改为, J8 k, [- F i+ u
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>/ o1 `5 ~- [& u
游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。
( o& v9 _, o' s2 o* l
' M3 M4 {/ |2 x, E修改完以后,我们进入\core目录。9 {% u+ k, a( Z3 j
我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。
/ l3 _0 d( i8 {+ X) W- y! r8 [; `$ G0 X I/ \7 K
比如MainMenu.layout.xml中
8 h8 K) D3 J8 K; d; P<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">
) ]& e6 U3 u9 K0 F% Y<Property Name="Font" Value="bodinib-18" />, U, ?0 Z* n4 [1 [6 r' Z
) T- Z. x8 i _* l: t6 ~2 Y就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。
: }' Y& F) f$ _- o: j我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。& O3 h- P* `8 s, E8 E6 O
<?xml version="1.0" encoding="utf-8"?>" \' h: }. `) J" ?4 ]* [
<Font
% O& Z5 o$ q2 K Name="bodinib-18"0 o1 ~( X- K# L' ]+ E
Filename="BOD_B.TTF"
! p8 a( W3 G2 S5 a/ G8 z Type="Dynamic"6 k2 `: [3 @$ S( t2 m0 g
Size="18"
4 W- A# s: f5 R U( y, D* M, Q0 C$ Q5 S NativeHorzRes="1024"
) U4 }6 l7 f5 D6 I" o. K NativeVertRes="768"; f" ^; l2 m# S( \3 T1 w
AutoScaled="true">6 k5 R# y& ~+ p4 K/ A
<GlyphSet Glyphs="开始游戏"/>
) v# Q% u. R6 _( K& c0 ]! v</Font>* Y2 s ^, ?2 A' \
然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。
0 }" S7 }' o. p& d, C" J字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。
7 p5 g- G- g/ N- u2 l, l9 v& }/ i) w- r6 P% r1 E% n. {
汉化抓图如下,附上字幕文件和1个字体定义文件' X6 u% r0 K) `$ I! Y" m; U
|