最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。
6 Q5 y& e- R% [1 d) S, r
% W" l7 o7 V3 _3 x+ E. A" p1 V7 [这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。: d! {/ |! X9 }( e0 e
游戏支持免打包,我们可以修改hca.Configuration.xml
' s9 ~6 h) q' o比如把core.pak解压到core目录下,移去core.pak,然后把
4 h* ^6 K0 g* w* x<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>
. H5 Q" F) k8 n% R2 g. w修改为; ?' Z& d& r1 e4 Y% d
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>7 w+ b H; t3 g# e" z! I: l
游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。2 M3 k6 N) x: p) |" X" c
* {- ]- A6 ?% Y5 Z
修改完以后,我们进入\core目录。
, `1 h0 m3 W" P% F1 C我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。
9 T) l( j, z7 F( ^; w; N
- N* H/ G, [, ^比如MainMenu.layout.xml中: P1 L- o, _' A$ _
<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">
6 M$ T* D6 @( F% P<Property Name="Font" Value="bodinib-18" />6 \% e( x! F# X3 K- h
7 D5 d) U7 E. t1 D# R, a( |就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。0 ^' l9 f2 {9 i8 O4 k
我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。
1 M2 w4 t3 B/ G8 r& ]) S4 d<?xml version="1.0" encoding="utf-8"?>6 X& ]% b; i9 d+ B: q5 O- k- {* l
<Font
, l6 k8 I3 w, U3 h Name="bodinib-18"
8 z$ B j+ `; s, h- _6 X1 ^ Filename="BOD_B.TTF"5 j, t/ u {( c) O! P- I
Type="Dynamic"
2 A1 U$ m' R6 {3 j h8 j Size="18"4 g: I" ~/ @- E! l a8 X0 P
NativeHorzRes="1024"- I% B& b7 a9 n
NativeVertRes="768"
" z" O" p' }* P& q AutoScaled="true">3 l$ p. G# T: \0 E
<GlyphSet Glyphs="开始游戏"/>3 L: y0 Y9 N$ a x
</Font>
9 S- i" A+ o1 a+ ]1 ] ]" p然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。( k2 Y0 W6 e& [5 ^
字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。3 Y8 q- P! Q' G( ]* j
& J& Q3 U; l1 _ t1 R: C汉化抓图如下,附上字幕文件和1个字体定义文件
' ^3 H& P3 {" d0 t |