最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。
% N& @& q6 [ }6 @4 A* ^# v9 v% n5 D: t) a% \- ]
这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。
/ X% A/ I3 o c7 E! [游戏支持免打包,我们可以修改hca.Configuration.xml
) B! n" ^7 W( p0 ~8 e& D( g比如把core.pak解压到core目录下,移去core.pak,然后把
' f$ }) V1 E$ E& b$ M6 F: R! O<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>
/ J6 [8 ~. \( ]修改为
" z0 O: G4 W" o. a<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>7 f1 k8 U k& x; Z. z- ^- h
游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。) U$ i' {: b2 X* M* B
+ b: f' D9 }! s0 k. z/ S
修改完以后,我们进入\core目录。8 V5 m! X5 U4 p' ~
我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。- r8 c$ q( N/ W. A0 G
" l5 ]" d8 l ]& s G* x% U/ V% w
比如MainMenu.layout.xml中
- x6 j, F: {$ }" h& d<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">
& F8 E" r; _( m% l0 o c4 i$ t: u; H<Property Name="Font" Value="bodinib-18" />! c$ f2 r6 ~. m2 V/ s
0 N% ~3 r: ~5 x3 d4 @就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。2 m5 }+ i- d: a H% D
我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。, G# C2 Q n1 `7 e, i
<?xml version="1.0" encoding="utf-8"?>
4 c# [; E( a$ k3 p<Font
! v2 A3 s! U; }* V9 Y- ?4 K Name="bodinib-18"
, F; a( W2 n# @" G2 h8 I4 N6 M Filename="BOD_B.TTF"8 w: k; q9 {$ C* ~% f
Type="Dynamic"* {! |; S& D! ?4 S. d9 e5 c- v
Size="18"5 G( C/ |% Y& t
NativeHorzRes="1024"! {6 G2 @' B' [+ S. X0 \
NativeVertRes="768"% h1 U8 z' M' {6 Q" R
AutoScaled="true">
" `: s, s0 y( Q6 D- l) l2 { <GlyphSet Glyphs="开始游戏"/>
& Z0 u) d9 y8 f* k' h+ b</Font>3 ]" K4 }6 C' l! x/ Q
然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。$ N6 O0 t. k; \) F
字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。# d( p! @' ^8 M, z* }# K+ J. }
) t4 Q' r/ `/ h0 j
汉化抓图如下,附上字幕文件和1个字体定义文件
. B/ d) r' g' ]) n% y |