最近研究了一下安徒生之丑小鸭王子 The Ugly Prince Duckling,终于实现了汉化。# F7 E5 e/ q, e' s& `
M! k! z6 k0 M) S) R i. b$ X5 S这个游戏的包文件是.pak文件,实际上是zip文件,修改后缀后即可解压。
[6 `2 V, A9 s$ G, Z. h+ r游戏支持免打包,我们可以修改hca.Configuration.xml
5 o C: V g4 N2 C: j比如把core.pak解压到core目录下,移去core.pak,然后把: ?; H4 Q5 W: Q5 M3 u
<ResourceLocation Group="General" Idx="0" Type="Zip" Value="..\core.pak"/>5 z+ o0 h" s3 c& O: L/ Z
修改为( {1 _) i( R0 j0 [& ?( D H4 Z
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>
/ r2 I+ D7 Q5 t2 l9 V# \/ a游戏原本会读取core.pak里的内容,修改后就会从\core目录下读取。
; d. S6 Z2 R/ @# X& a, D9 ?8 H, A& e6 ^2 V
修改完以后,我们进入\core目录。
/ ~1 k5 T7 a6 V! z2 B% k& F我们先看一下有好多.layout.xml文件,这些文件里定义了游戏的各个部件使用哪个字体定义文件。
0 ]4 r* e; ~2 T& w3 L+ D; {; H3 @, k( p, y `2 G$ ~% [
比如MainMenu.layout.xml中
( K+ M9 \! _" ^" a<Window Type="MainMenuLook/Button" Name="MainMenu/Buttons/Start">
5 b9 Y6 n3 k! N% g& d& Y8 B% R<Property Name="Font" Value="bodinib-18" />
! o2 T+ {& x/ D
t1 H1 Q: A2 V# m% B就说明主菜单的Start按钮用的字体定义文件是"bodinib-18",即bodinib-18.font文件。1 U1 X2 F9 G! j5 U: x8 t
我们可以把这个文件修改为这个样子,在Glyphs后面加上所有用到的汉字即可。
8 R% f' ~$ i$ o9 \<?xml version="1.0" encoding="utf-8"?>
( W* }% P }% y; j' I' z<Font! B7 P. L9 k7 I. w- B1 u
Name="bodinib-18"6 j0 n/ n) Z$ s" _1 G4 j7 R6 K: {
Filename="BOD_B.TTF"' C; R! ^% s' x
Type="Dynamic": j! \) a! E( [ s& ?3 g3 |
Size="18"3 p" z; y6 Q) B2 W9 Y4 g
NativeHorzRes="1024"
0 j! h! O/ z! w. C+ i+ `& A+ H. S NativeVertRes="768"
2 H5 @2 `. { ~: R2 m. q AutoScaled="true">$ f, ^+ s( k) H, T% z
<GlyphSet Glyphs="开始游戏"/>
0 U# [, N7 V9 ]* y7 F</Font>. \# G/ H3 C. e8 L
然后,把用到的ttf文件,如BOD_B.TTF等,替换为中文ttf文件。: \4 V* v- f5 V/ R- ~* s; G
字幕文件是\localization下的2个xml文件,用utf-8翻译写入即可实现汉化。8 @. x+ {- }6 y o' s* E
, N" L! m' T* p8 V' q0 o! Z7 {
汉化抓图如下,附上字幕文件和1个字体定义文件
1 r* _; e$ }' ^; \& y% }% \ |