最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。; t; \7 q& f1 S! q
1 R/ q% \; f* @! Z: D这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。! q. O' S3 n% [& ? B
游戏支持免打包,我们可以修改hca.Configuration.xml
/ A9 J3 f* w$ Q* N& D9 w! a& Z比如把core.pak解压到core目录下,移去core.pak,然后把0 G) m! a& W N+ V
<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>4 [$ ~* y3 i% c! E e
修改为
% [) D- s7 Y1 T \$ S( n<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>
. \- _, z0 S$ l游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。
; Q0 j8 `5 |5 `6 y
4 x5 P) d4 \/ }9 }修改完以后,我们进入\core目录。
8 S# F% d/ z8 Q$ {. s5 f我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。
# a8 J0 ]6 o* ` }% n) @5 x) g
8 X2 v! @1 P! \0 g) _比如MainMenu.layout.xml中
; u. H0 Y, _: N# q<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">
) K& T8 Z. O6 I<Property Name="Font" Value="bodinib-18" />/ H" J; P) ]3 d" V
& _% F$ S, m9 o4 l就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。; T6 O, o& x4 f* l6 p
我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。
2 ^2 _4 S: f4 I, S4 s' b m+ ], G% H, F<?xml version="1.0" encoding="utf-8"?>
5 H6 F' |+ @# E! f+ J<Font
& s: a' {! Y$ K' O+ H# y Name="bodinib-18"
2 W, I# P& Q3 f$ f0 ~6 {) g Filename="BOD_B.TTF"
5 R: D) D$ L, R8 @ Type="Dynamic", Q M, v' H% C1 _
Size="18"% i% H- ]8 M+ T3 i2 Y$ a: j
NativeHorzRes="1024"
- w \- `2 I3 A2 `1 P: c9 U NativeVertRes="768"4 p5 k. j: l4 I. o E: ?
AutoScaled="true">. X/ w. `% P' u# o7 W; [* f( u
<GlyphSet Glyphs="开始游戏"/># c2 H* S4 g2 ~% Z! c6 m
</Font>8 a) B5 i2 E+ \; U, Z' o# h# X$ o
然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。* D: A+ A0 `) _5 Y
字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。% w' L9 G/ |0 }
# K% O0 B, T; P" n, ^* T& C. T; c汉化抓图如下,附上字幕文件和1个字体定义文件
7 B& |, w2 Q' o3 n; |9 { |