分析了一下hca.Configuration.xml这个文件,发现这个游戏只是普通的zip文件打包。
' i) W. l, M8 w8 ]+ S& w5 Z, X把PAK为后缀的文件改为zip后,用一般的解压缩软件就可以解开。解开以后可以以目录的形式存在
, M0 W% \4 _6 N. i不需要再次打包。 1 F+ F7 e! ^: ^) |& V% b
hca.Configuration.xml的相关语句修改为如下的形式就可以了,这个和通古斯这个游戏的情况很相似。 # s% s: e V( j6 c" ?# M
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/> / q8 P( I7 ~6 ^# t9 b8 g9 `
( @' C' r, F! n# f汉化的主要文件包含在core.pak这个文件里。
: q f! s$ g- u主要有字体TTF文件,.font字体配置文件等 ; w6 l0 N# s$ S7 ]6 ^: H5 J
字体文件可以用中文字体文件替换,只要文件名和.font字体配置文件里的设定一致就行。
8 |5 f) _' o8 ^: k, ^$ s/ D4 ]) c7 Z1 |2 s
对话文件包含在以下这个文件里
6 }# R, V% q. ]$ k$ O3 QHCA - The Ugly Prince Duckling\localization\English.StringTable.xml
( ]" z8 D! ^& i. b2 [. g. R. v* S. ~' ^
.font字体配置文件的内容如下,其中的关键问题在于LastCodepoint的值好像有限制到约8000左右就不行了,游戏无法进入。8000的16进制编码是1F40,中文字体里的中文字模的编码都大于这个值,所以中文字体替换成功以后中文字模也无法显示,因为被LastCodepoint限制住了。
4 y$ r' ~7 e' Y- l) x* K/ _<?xml version="1.0" encoding="utf-8"?> : ~# K3 C. K5 q5 I! Y. [
<Font
+ g6 y6 J0 E. O, i& F, N& ~2 n6 QName="bodinib-24" 2 P( Y! }* E6 P; j l) s: R
Filename="BOD_B.TTF"
3 A z3 T( U3 C0 kFirstCodepoint="1" / H! ?* S4 \; W7 w
LastCodepoint="1300" 4 q5 D6 v3 P3 V9 @: V& o
Type="Dynamic" % p) I; l4 N( `4 D; |2 z: ?
Size="24"
4 J; q, U% M, P, ^% ENativeHorzRes="1024" 7 X! u- `7 m$ e
NativeVertRes="768"
, K3 `6 |1 } O) d; u! rAutoScaled="true"/>
: c) V* |9 J D7 J6 [: x" N/ ?9 b6 l3 Q, o% _
解决办法的猜想,1F40的范围还是很大的,我们说不定可以在这个1F40的范围内自己构造一个TTF字库,编码都是1F40以前的,同时English.StringTable.xml里字幕文字也要用相同的编码写入,这样也许可以实现汉化。
! I2 N% m) K0 ~2 g( y- u7 k5 J% g: Q
8 L& x8 j/ m" h% K5 U
|