最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。
7 d, Z" u2 _% F/ Z! G
* E8 r6 z- ~' Y) X e$ D这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。8 n9 p9 o5 v U- G/ D
游戏支持免打包,我们可以修改hca.Configuration.xml
' |+ ~3 u' X2 j9 L3 G4 v6 `7 B% {8 _6 i; W比如把core.pak解压到core目录下,移去core.pak,然后把% |7 w" ]2 ~ G& B+ F- i" d- T
<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>% S i, ~, i" ~ j7 G. D. W( O
修改为% h3 N, M* ~7 u; w: b! a, y1 ~- D
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>, t0 t0 t$ G, g9 {* I; q4 F& \
游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。
; B- ~7 y1 N$ ^/ W+ I& l q" F& n+ [+ w5 s( S8 G6 P7 ]1 i
修改完以后,我们进入\core目录。6 c% N1 g# y7 w/ N6 }
我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。3 }4 ?4 K5 I' M
1 i3 G& C- M' |0 E6 {& a$ p3 L比如MainMenu.layout.xml中
7 S7 k% u$ m/ O1 @: ~8 M U<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">
% S6 W: ]8 {( G5 O<Property Name="Font" Value="bodinib-18" />7 ]' B( v8 n- `+ U% h
/ z4 t+ |. d/ w! F
就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。
, K& J0 }5 Z ~! u我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。
: @" L5 U! x2 ]( ^& R p, g! [' \<?xml version="1.0" encoding="utf-8"?>
6 [& {' c+ O5 u7 o; \<Font
/ g! | v& j1 ^ Name="bodinib-18"4 ~4 R) ]' H! M9 [, S. w
Filename="BOD_B.TTF"
$ a2 z0 a( {6 g$ P; I2 t3 B; c7 K Type="Dynamic"
: h7 g u& G) F' Z4 J Size="18"* E6 q$ O: I/ l4 U7 L4 |
NativeHorzRes="1024"* M4 B2 v/ S+ K ^
NativeVertRes="768"
. X3 \6 o3 _7 S* d7 n AutoScaled="true">
7 h& u- t2 }& `# M: q/ W5 y. Q& U <GlyphSet Glyphs="开始游戏"/>
. [* h, K8 f* \</Font>
- u, A: R @& e2 l0 y' |! H然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。4 x/ a8 w- y0 _
字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。, s4 i8 h9 N- W2 L6 J
" ^. w1 ?) n P; G+ ^! c汉化抓图如下,附上字幕文件和1个字体定义文件9 ~0 E, `, t7 I* Z! U
|