最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。
: `; l, k4 i7 j: @
8 X {5 ]. a# S( M8 ^% C0 R) _# c这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。
& M1 W) L: x8 g游戏支持免打包,我们可以修改hca.Configuration.xml
! X ?2 k) f9 K5 X }, d2 @" e比如把core.pak解压到core目录下,移去core.pak,然后把
. [( _+ Q0 Y( |: K, f<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>2 q, ?" c" V0 ?
修改为; X) Q+ t! L& L. d U' q
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>6 G3 {. S+ T5 \$ k6 n
游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。
8 L+ }. P8 t; k
2 e. H2 w) w' x$ f0 b1 k1 ?修改完以后,我们进入\core目录。) ~+ p' t" e( n# A: A, |9 m. H
我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。% A/ c3 |) c( t
5 ~9 a3 }' p* Y; I/ n比如MainMenu.layout.xml中
, R3 \5 N# }0 N. d2 v- `) W<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">, k; Y) P$ v0 N7 Y! n) {
<Property Name="Font" Value="bodinib-18" />
% L* _1 l1 O$ p
9 m/ Q; M6 X/ m就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。' H+ M# t' {$ B8 {# |( o' U
我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。0 X$ `# t, x9 p4 b5 G4 j
<?xml version="1.0" encoding="utf-8"?>
. [' J$ P+ N; t" Z$ p<Font
. b$ w. g, \; B+ G! |2 n Name="bodinib-18"
m" I7 n- k1 p6 [3 O Filename="BOD_B.TTF"
a. G) `4 j3 p9 { Type="Dynamic": [4 w. x4 j' G
Size="18"
8 M j% T2 Z4 L3 w* Y( D NativeHorzRes="1024"
9 q' V. N: Q' f0 ` NativeVertRes="768"( V+ y- d# W$ M" P) w/ O3 z+ A- r( r
AutoScaled="true">: ~0 O- ]6 Z, @% }
<GlyphSet Glyphs="开始游戏"/>
7 P3 s4 V' ?, X$ T</Font>
; K* y- ^) p+ Y& E然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。
* n* R0 w8 s$ n: n4 A* q- J8 Q( p字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。! c6 v6 \( i4 ^8 B2 G3 g) ~. ?
' H0 Q2 g" l# c5 e' T, A
汉化抓图如下,附上字幕文件和1个字体定义文件3 Z" M! n/ n) M; X- C
|