分析了一下hca.Configuration.xml这个文件,发现这个游戏只是普通的zip文件打包。
/ I' ?2 K# s, H5 I7 \2 q把PAK为后缀的文件改为zip后,用一般的解压缩软件就可以解开。解开以后可以以目录的形式存在 ' M( B& w* T+ a& m" V* y; |
不需要再次打包。
% m" T/ q# C Q, K, D! x, l+ ohca.Configuration.xml的相关语句修改为如下的形式就可以了,这个和通古斯这个游戏的情况很相似。
( F% u3 s, f. U5 u3 `<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>
2 v0 `1 Y9 t8 O1 e, t! ~5 i5 X2 T/ V1 S0 `! e2 ~) w- u1 o- m: d
汉化的主要文件包含在core.pak这个文件里。
8 l1 @# F; U+ J! H0 C主要有字体TTF文件,.font字体配置文件等 ! G0 N S+ L% a' M/ h
字体文件可以用中文字体文件替换,只要文件名和.font字体配置文件里的设定一致就行。
* D) U3 d4 \* ^2 K/ t Z: p& M5 ^) O8 W
对话文件包含在以下这个文件里 5 Z" ^' `( Q) f% d; a
HCA - The Ugly Prince Duckling\localization\English.StringTable.xml 3 v4 ]5 z2 e3 V4 k5 e
& j( }1 G" d o; z. P6 ~2 l
.font字体配置文件的内容如下,其中的关键问题在于LastCodepoint的值好像有限制到约8000左右就不行了,游戏无法进入。8000的16进制编码是1F40,中文字体里的中文字模的编码都大于这个值,所以中文字体替换成功以后中文字模也无法显示,因为被LastCodepoint限制住了。
0 z4 |/ W+ i- |- j5 ]<?xml version="1.0" encoding="utf-8"?>
) u; G# e) E* z l/ C; u( C/ v( G: h<Font
3 L" `2 O+ D/ y# p, h! j7 Y: eName="bodinib-24"
" `# X9 C4 s$ f( ]2 e. ZFilename="BOD_B.TTF"
4 k& }( h5 h' a5 [; s$ |FirstCodepoint="1"
, C' f" y$ O& {! N- p @0 {3 {LastCodepoint="1300" / W9 [& B4 ]9 p
Type="Dynamic"
/ o$ I z& @6 s; v ? [: r" USize="24" F, O4 n2 F& ?2 {% t
NativeHorzRes="1024" ( l/ _: s* y. |6 M' v
NativeVertRes="768"
6 [0 q5 X1 O- q! r+ Y2 a9 c2 ZAutoScaled="true"/> - a! T* b2 g3 f1 X/ D
4 V# ~+ I; z2 ]6 s解决办法的猜想,1F40的范围还是很大的,我们说不定可以在这个1F40的范围内自己构造一个TTF字库,编码都是1F40以前的,同时English.StringTable.xml里字幕文字也要用相同的编码写入,这样也许可以实现汉化。 / w$ |0 K$ b5 t) Z
6 m- K- L/ ^0 n. d
( e9 k5 w5 F5 e/ [% O* `0 [ |