最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。
# @0 N: @/ j7 K5 K; ~
1 d3 Y0 S# v% V6 |: B4 G/ `这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。
- U: Y5 V6 Y! O" B( ]游戏支持免打包,我们可以修改hca.Configuration.xml
7 n% {" w1 P( B% e. H2 p比如把core.pak解压到core目录下,移去core.pak,然后把% r$ Z+ K) q; | K3 E
<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>) Y' [( W2 x- I0 b. A, {
修改为
" }+ _4 J5 L* o9 D% X% }<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>8 r0 A( T- `; o. V
游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。+ ~6 T- ~" C2 G
& ~% S" U. @! g; M7 l5 K修改完以后,我们进入\core目录。
$ b6 }7 ?/ }' H+ n. w+ k/ V我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。
% V6 {; n' k' ~7 w
; R3 T- T( h/ S3 s4 j0 B1 q比如MainMenu.layout.xml中
& {$ J+ }8 D) d<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">% ?9 X* B6 e+ F- \, I& U
<Property Name="Font" Value="bodinib-18" />) X0 b- A& n( Y$ p" {% M
1 ~7 ]" T2 E$ i1 i8 g就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。' L% e$ E+ B$ l) V1 }
我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。: e( \$ c' w7 V) J6 w! p2 X; Q. ~$ R# l
<?xml version="1.0" encoding="utf-8"?>
3 z$ Z3 {' \7 ]" a9 S<Font& i, I) \* `! \+ B+ H; ?1 k. P
Name="bodinib-18"! t }' m) W- K" a; d5 z$ y- I M* v
Filename="BOD_B.TTF"
! P9 t% `; E! @6 n9 l9 d3 W; c& N+ ^ Type="Dynamic"4 k) F% N0 f# b: p
Size="18"
/ {5 X: I: b$ d3 L1 D$ P NativeHorzRes="1024"
5 ^) D3 w! w: L/ D NativeVertRes="768"
+ b+ k: k, H) F6 C' i I# d AutoScaled="true">
9 F7 i& t0 d& v7 ]4 H; E <GlyphSet Glyphs="开始游戏"/>
! ?6 t4 r/ I7 v' v- S</Font>
0 u! l# D4 |( _然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。
$ _* L1 H. z# x& G2 r2 K字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。
7 ?2 t/ {; S7 k* X/ Z' B+ ~
, ~. G R% p2 F7 P0 |) h O0 I" o汉化抓图如下,附上字幕文件和1个字体定义文件
$ t ~8 y* j; S% o2 F2 N |