分析了一下hca.Configuration.xml这个文件,发现这个游戏只是普通的zip文件打包。
" d* ?' w# |& o/ V( a+ W7 n把PAK为后缀的文件改为zip后,用一般的解压缩软件就可以解开。解开以后可以以目录的形式存在 6 S/ s8 K) m8 Z; j, d% C+ i
不需要再次打包。
, G% E8 j! D5 K! ~+ Z! M& shca.Configuration.xml的相关语句修改为如下的形式就可以了,这个和通古斯这个游戏的情况很相似。 : G3 z. o9 w2 [* t2 u6 J
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>
: `. X( g8 {3 D/ Z5 N, G+ \- w" x. `% q$ P! X" o5 ?8 E3 v+ K, u$ h
汉化的主要文件包含在core.pak这个文件里。 4 F. `. @) N8 u! s. V3 w3 ?. B7 E
主要有字体TTF文件,.font字体配置文件等 ; c# C# k/ l4 @6 r& z; l
字体文件可以用中文字体文件替换,只要文件名和.font字体配置文件里的设定一致就行。 ) S8 N" _9 z+ P& ~
# `# e: H* i8 ^+ n; u, B
对话文件包含在以下这个文件里
1 l" d+ y( B* s g7 N; DHCA - The Ugly Prince Duckling\localization\English.StringTable.xml 9 w* P" x9 N8 e5 W1 {
2 t& l1 i( R! D" X6 z0 s' u# ~1 Q
.font字体配置文件的内容如下,其中的关键问题在于LastCodepoint的值好像有限制到约8000左右就不行了,游戏无法进入。8000的16进制编码是1F40,中文字体里的中文字模的编码都大于这个值,所以中文字体替换成功以后中文字模也无法显示,因为被LastCodepoint限制住了。
E; [: o& `' M" ^<?xml version="1.0" encoding="utf-8"?>
( Q& R% o! l3 t* E6 a* a* ^<Font ( @7 N* z: A: S5 k
Name="bodinib-24"
9 V; o- P/ g* M' i" u0 GFilename="BOD_B.TTF"
& i& V2 u c* l3 L$ GFirstCodepoint="1" , c2 a: W& L/ C" N+ O) f3 @% Y
LastCodepoint="1300" 0 B9 b/ i0 K' F% |. H
Type="Dynamic"
, N" q) T% F4 k4 YSize="24"
% K3 Y& ~4 K* Z# m" T: ^4 K+ fNativeHorzRes="1024"
0 r; X3 Y6 B: Y$ {7 j$ NNativeVertRes="768" 1 V: i4 T: S0 x: s# l
AutoScaled="true"/> . ~# p; v2 I+ ]5 I: U
1 p. X, }3 M1 I" D# B- c5 H5 Q u
解决办法的猜想,1F40的范围还是很大的,我们说不定可以在这个1F40的范围内自己构造一个TTF字库,编码都是1F40以前的,同时English.StringTable.xml里字幕文字也要用相同的编码写入,这样也许可以实现汉化。
; p% j8 I8 k" A& \
4 f/ U2 c8 y) s# w2 e' w; j
: w6 R* Q" x2 W- [1 j |