最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。; @9 a* |1 q n% ~
. F/ y6 m( e! Z0 A1 x' g这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。
! |* e2 v* h. g1 d7 }" Q/ u7 e游戏支持免打包,我们可以修改hca.Configuration.xml
5 T/ [2 @# P, s+ P; W6 Y% e) P8 y) |5 E比如把core.pak解压到core目录下,移去core.pak,然后把0 A4 b5 m+ g8 t, E
<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>, W6 O* k& D+ b. f6 h
修改为
~$ j/ n* E( W' Y* t8 c# E0 B<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>6 j: a8 g' O [; p" X
游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。
) J0 J& d9 j& N- a
% [- L2 Y* m& L9 U0 ?) |$ o2 H' b修改完以后,我们进入\core目录。$ X8 l3 z! x) y2 O
我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。
2 }9 b. D) d$ w9 r d0 B/ ~* E' s" \9 B7 `) w7 z z; I& {
比如MainMenu.layout.xml中6 B. S, J" N" G( m+ @3 Z
<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">1 [4 H; U" D9 z0 K
<Property Name="Font" Value="bodinib-18" />0 `) V' v5 F* I: j) w- u+ D
; Y* ]2 p& b& c
就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。
/ a' l3 O- u* p$ |- l我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。
( g1 E) J! t _% f<?xml version="1.0" encoding="utf-8"?>+ R+ U' J* O* s, \: d8 `2 L
<Font
) O: \* p2 R4 x Name="bodinib-18" c0 v B2 n5 p' x+ d3 A$ w
Filename="BOD_B.TTF"
: o; G) Z: C1 e" t! O( T. f0 P5 z D Type="Dynamic"8 H4 e8 m" A8 h& e
Size="18"
; {: K" I: W/ |* B, H1 b NativeHorzRes="1024"
. e h( ^7 z" @7 C% a NativeVertRes="768"6 e' l* @- P; Q$ j' A5 C
AutoScaled="true">
8 `6 ~2 N1 @# E. ~) \ <GlyphSet Glyphs="开始游戏"/>: [ j9 i1 W; z
</Font>7 | e9 V5 F0 R$ \% n; a0 J+ [4 F2 Y3 T
然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。/ N% u" _. W8 p2 c
字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。/ z5 {( T1 C" A" |
7 [# c* r+ v/ V7 Z
汉化抓图如下,附上字幕文件和1个字体定义文件+ P( p& T8 Z' j0 B2 w* t
|