最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。' G& o$ a8 S1 N, `" A$ e6 H. K* ~, h
# v5 O$ U3 a6 F ^5 Z, e, Q7 l这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。) n# K. L+ U; N
游戏支持免打包,我们可以修改hca.Configuration.xml
c) }; x, t3 G9 o" @比如把core.pak解压到core目录下,移去core.pak,然后把/ a$ `* w! {% {2 J
<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>9 Q C) \& X( D
修改为6 s: ]/ n' J( J. ]$ m
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>/ R- p; h. _/ G% z' [
游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。
+ u \( S1 e( c. A. f' u
* q* {+ j2 J( N# t; X- G% H0 B! q; F修改完以后,我们进入\core目录。
. I( l3 b8 M6 W2 f; R5 `4 C) G我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。! A/ g" B+ z, }! x' T
) R s' }" H" ?5 W+ @4 M& F
比如MainMenu.layout.xml中5 H" A* I |9 F1 y7 w- O
<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">& Y! p3 E2 E/ n! Y5 {# n* q3 ]" p
<Property Name="Font" Value="bodinib-18" />
4 t. ^) r# M) W& j7 l2 a) q# t7 T% Y; h, X
就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。
$ L; O! r9 g+ ~6 p& S, G9 _2 [3 B/ L我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。4 I( U1 o1 F [& c4 [
<?xml version="1.0" encoding="utf-8"?>. d: }& o! R: j. U% Q- x3 k% c
<Font8 w6 W" U0 k& s2 ^" Z' t4 u3 k
Name="bodinib-18"
# U9 E9 j/ G0 ]- Z: _, Y2 I Filename="BOD_B.TTF"" ], @6 ]& W0 H9 T b
Type="Dynamic", |3 L2 M4 [9 N! `5 R
Size="18"
" o3 H' a$ O$ ?% o NativeHorzRes="1024"4 Y: W( I7 l* A5 v) V3 v. E0 b
NativeVertRes="768"
* A8 P1 _" q1 @4 L6 }/ q AutoScaled="true">, @7 x' p) ~. n3 [7 d
<GlyphSet Glyphs="开始游戏"/>0 O) N1 S6 ]7 k
</Font>
* }3 k8 x) b" z; j$ s然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。6 o, L& E- e& G
字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。
6 t4 ?* c7 r' N* \9 G' G6 T( G! e& f9 a. q5 w- v6 {4 h6 M
汉化抓图如下,附上字幕文件和1个字体定义文件
# E. p2 a) k" c1 _5 ~; d; \ |