分析了一下hca.Configuration.xml这个文件,发现这个游戏只是普通的zip文件打包。
! S; ~/ O& o6 J P6 k+ C把PAK为后缀的文件改为zip后,用一般的解压缩软件就可以解开。解开以后可以以目录的形式存在
; c+ F% A% V1 b _不需要再次打包。
- R, T8 q4 c& b- v+ k/ Ihca.Configuration.xml的相关语句修改为如下的形式就可以了,这个和通古斯这个游戏的情况很相似。
, x! u* s+ i* K; w/ u! T8 j<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/> ) p- O- r5 x8 }$ e* H
* Z- b4 a( n$ Q+ b; ^4 D汉化的主要文件包含在core.pak这个文件里。 " L9 U! K0 x) B: F d; g, ^" Y
主要有字体TTF文件,.font字体配置文件等 1 o, n' r- d9 X/ L; s
字体文件可以用中文字体文件替换,只要文件名和.font字体配置文件里的设定一致就行。
% ?( V4 @- ?+ F. t& P$ e0 Z- J# T# e9 b' `0 q
对话文件包含在以下这个文件里 5 u9 M/ p ^$ @5 d$ F% N z& \1 [: z8 m
HCA - The Ugly Prince Duckling\localization\English.StringTable.xml / _9 a" k0 y8 a5 ^6 a
* p/ n' Y/ j `$ ]5 ]: a# ~9 f.font字体配置文件的内容如下,其中的关键问题在于LastCodepoint的值好像有限制到约8000左右就不行了,游戏无法进入。8000的16进制编码是1F40,中文字体里的中文字模的编码都大于这个值,所以中文字体替换成功以后中文字模也无法显示,因为被LastCodepoint限制住了。
) m4 B7 R- m, B<?xml version="1.0" encoding="utf-8"?>
9 o4 r7 C1 K/ _( Y; Y; x6 G% V<Font / L4 @9 j% h# g6 j! k5 \) w) ]& h
Name="bodinib-24"
7 W% n5 O+ T, Z% LFilename="BOD_B.TTF" ! _' m2 W" X/ M7 g* R
FirstCodepoint="1"
0 A2 I" H4 p7 ~2 ULastCodepoint="1300" # O9 T/ ?* I* O* B9 { E
Type="Dynamic" : [6 Q# h n5 J' \" ?; d
Size="24" % z2 e8 R7 Z8 v" U
NativeHorzRes="1024" 3 r- w& @% F" K; @- W) A2 x/ k
NativeVertRes="768"
: x$ s: a* @! k. x6 h4 O; EAutoScaled="true"/>
v/ k8 C: g6 p; H- u0 B4 Q; T5 d7 V" u3 g+ ^* J3 t
解决办法的猜想,1F40的范围还是很大的,我们说不定可以在这个1F40的范围内自己构造一个TTF字库,编码都是1F40以前的,同时English.StringTable.xml里字幕文字也要用相同的编码写入,这样也许可以实现汉化。 + _5 @+ B' Q& `" e% \3 {2 M8 i* p
& U& Z& g2 i- x( ~; a& N0 i
9 y% k# L( z8 h2 V |