最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。0 y: H+ h0 s& P4 u
4 @) o$ i& x3 x$ H
这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。: i) q2 y1 E5 m: Y
游戏支持免打包,我们可以修改hca.Configuration.xml
1 P5 D- S9 l, V7 F比如把core.pak解压到core目录下,移去core.pak,然后把
3 X6 k/ r; Y7 _8 f- k<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>$ I Y) ^# r: ^' A) ~
修改为' i6 l; ~: g* d; G' M9 {
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>
1 W, m% Z: d( o- M游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。% [6 F2 u. z# Y0 i# c( N$ M
* `& U" a. g0 p; O0 N修改完以后,我们进入\core目录。
: N1 W% X2 ^2 K& s% `) c% P我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。4 S8 q/ v( F9 r, p
5 x' v' x' P8 B( O6 w4 S# |比如MainMenu.layout.xml中; ?' v4 u1 |( l
<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">
9 S0 x; H% ~: ^7 K7 {' e5 J/ ]( h<Property Name="Font" Value="bodinib-18" />4 }' g; X9 v- i, p8 z; B
: P: w) A, Z& d. X6 M
就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。
7 m6 w' a' p: Y- T1 Y$ U我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。
1 N' u8 e) \2 }: L) S& G7 p+ ^<?xml version="1.0" encoding="utf-8"?>
5 g( g9 a2 B' `( j& N2 O- F<Font& C- t4 H( V, C1 B9 o h6 N
Name="bodinib-18"
. Z: C/ u5 z* L' f1 X/ m! j Filename="BOD_B.TTF"( ?- v" R1 R& A4 R2 Q. ~8 y
Type="Dynamic"9 d7 x v6 ^0 J% Y. W
Size="18"$ M) L$ p9 \9 X5 q2 ~: c! E4 Y
NativeHorzRes="1024"
! }% f8 t5 Z, |1 s0 h* M( U NativeVertRes="768"
7 \4 X) Z( {* p+ I/ U! B+ ^ AutoScaled="true">+ e# {1 p+ |0 {* Z) G( B6 c
<GlyphSet Glyphs="开始游戏"/>6 j& |9 u7 n, o V, H; t
</Font>$ \# I) x0 K8 e3 E4 ~' e
然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。
+ ?# O$ s& l" a, ?, B# z; Y字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。- u4 a! x4 f0 v( R
" Q8 _8 Z' F' [4 x, ]汉化抓图如下,附上字幕文件和1个字体定义文件
7 H6 r. V8 q' C/ d |