分析了一下hca.Configuration.xml这个文件,发现这个游戏只是普通的zip文件打包。
+ F8 e) ^# o: \! M把PAK为后缀的文件改为zip后,用一般的解压缩软件就可以解开。解开以后可以以目录的形式存在 , [! j% d( b) {0 |
不需要再次打包。 % J4 I/ P$ v+ L8 k1 `! D
hca.Configuration.xml的相关语句修改为如下的形式就可以了,这个和通古斯这个游戏的情况很相似。
! K. _0 e' B: [3 x) @<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>
: U% i% V3 Y$ d6 R. Q, ]
& v( ~& A8 B* V汉化的主要文件包含在core.pak这个文件里。
7 S1 O% h n9 X% P8 z主要有字体TTF文件,.font字体配置文件等
i& S' r6 G4 g% O' ]% @. {- O字体文件可以用中文字体文件替换,只要文件名和.font字体配置文件里的设定一致就行。 6 P7 E' K p- {& ?. |% N" m
6 @; N- v; [* j* ` L7 u* _7 z对话文件包含在以下这个文件里
; y' p9 M) D9 }0 t2 n/ yHCA - The Ugly Prince Duckling\localization\English.StringTable.xml
7 d9 ~5 I1 ]! V4 c% g4 w3 B. g2 }' d, z2 }( o! ]: C
.font字体配置文件的内容如下,其中的关键问题在于LastCodepoint的值好像有限制到约8000左右就不行了,游戏无法进入。8000的16进制编码是1F40,中文字体里的中文字模的编码都大于这个值,所以中文字体替换成功以后中文字模也无法显示,因为被LastCodepoint限制住了。 8 C( t+ N$ O- Y7 n5 k7 h
<?xml version="1.0" encoding="utf-8"?> 0 \8 `- M1 b6 m7 v
<Font 6 q5 ?- G" ]. f4 k9 M
Name="bodinib-24"
0 s5 T0 K" m+ m% r+ N/ Y- cFilename="BOD_B.TTF"
: z _( g& p# n' Z# J- v& i9 e2 _FirstCodepoint="1"
0 _+ i6 c2 A$ b9 ~+ u/ F$ C" VLastCodepoint="1300"
9 q! n5 ^" ]0 yType="Dynamic"
) `/ |+ p4 W( S5 S2 a4 c! L3 ]2 sSize="24" + o: V0 b% [" I) G+ b. r1 ?
NativeHorzRes="1024"
$ S: C. y- W% p3 tNativeVertRes="768"
: e3 J6 B6 o8 I' p- @9 KAutoScaled="true"/>
/ P! b! r* }7 Y5 s$ K5 ^) E
$ {3 g* B# p& K/ ?8 p解决办法的猜想,1F40的范围还是很大的,我们说不定可以在这个1F40的范围内自己构造一个TTF字库,编码都是1F40以前的,同时English.StringTable.xml里字幕文字也要用相同的编码写入,这样也许可以实现汉化。
4 l( w7 u' L- S) [ o' j# @0 C1 i. Y& w/ ?* w: l
* Z5 B* D& E8 d6 \( {! L' n |