最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。6 b8 `# z0 {9 Q& G6 t8 s) i
$ C: K$ ?3 i* i2 \7 c8 j5 ~
这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。
! {) o. o0 m; p* A, H游戏支持免打包,我们可以修改hca.Configuration.xml
& U3 [+ h( T4 ?比如把core.pak解压到core目录下,移去core.pak,然后把
& N) g: z3 |5 ?. s" W<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>
. ^2 F- u9 L2 }* ]修改为
; o8 W$ g' ^5 N1 I5 \<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>8 w; J" f, S* s: N v
游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。
# [4 Q; V8 M1 x3 p( z4 d* |' e8 u3 g- ]" f7 O1 ?5 v
修改完以后,我们进入\core目录。1 s2 {3 V; q3 k. @. x+ }/ \
我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。" Q. R# c! \) ]) d6 n
+ O6 Z0 ]3 m6 E比如MainMenu.layout.xml中
8 l& J, ^, |5 ~) Q<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">: Q0 P. v6 {' G% t3 m" e s$ n8 c
<Property Name="Font" Value="bodinib-18" />; A0 B3 N) z* b7 I* D- h
4 w9 V3 P+ v6 l
就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。
$ A$ H8 ~1 V6 w) ?4 [我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。8 f1 K1 H9 y8 Q+ E( M- x3 ?/ g/ S
<?xml version="1.0" encoding="utf-8"?>
$ A7 U/ v3 ~' }0 O+ r; d! b9 x<Font! i' [! o' Q) t: ]- s
Name="bodinib-18"
; O, y9 D" M4 [$ f8 L) M _ Filename="BOD_B.TTF"( f+ G/ e5 Y7 t
Type="Dynamic"
- m5 e' a' Q6 t8 K+ L Size="18"
' W) S; n; O8 A8 \) p7 e NativeHorzRes="1024"
: i7 q: m' ~, I1 x* \ NativeVertRes="768"$ }+ G4 q9 w5 X3 K! V
AutoScaled="true">
3 J( j8 `" p7 ?7 g$ h5 g <GlyphSet Glyphs="开始游戏"/>
3 l* e0 m- Q3 I( q3 A9 l$ U</Font>
5 d; P$ ^) U4 v/ u* c: ~然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。8 `8 V* q" o2 ?! Z4 f
字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。
4 v4 z5 M" _& i) f/ u) S' D! O( b! [1 D2 R! g, q: L0 |
汉化抓图如下,附上字幕文件和1个字体定义文件
( a6 D3 J/ H5 ]; _/ K |