分析了一下hca.Configuration.xml这个文件,发现这个游戏只是普通的zip文件打包。 ) p+ d! j: B. F. l7 D) D' d
把PAK为后缀的文件改为zip后,用一般的解压缩软件就可以解开。解开以后可以以目录的形式存在 ' C6 Y3 f; O9 B1 z, B
不需要再次打包。 * f7 a" e2 n9 l! b) R/ h# ? T
hca.Configuration.xml的相关语句修改为如下的形式就可以了,这个和通古斯这个游戏的情况很相似。
# M2 a/ c. X2 F. v<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/> 2 q: z# O: S6 y+ _ b# j1 @
" c/ A: ^9 J, u* a# {: F
汉化的主要文件包含在core.pak这个文件里。 # B0 h8 z) L2 i
主要有字体TTF文件,.font字体配置文件等 4 H9 [, t: y1 O' M9 |4 f' ~8 ?. z
字体文件可以用中文字体文件替换,只要文件名和.font字体配置文件里的设定一致就行。 3 ^6 ?" L X$ |4 o( j
& P1 Q( |: o" z3 C5 n" q$ Z对话文件包含在以下这个文件里
' S* M& z( k5 j) i7 AHCA - The Ugly Prince Duckling\localization\English.StringTable.xml
8 w' c! X7 Y3 [4 J" c" n" W6 }
+ B3 S( F4 i6 V( N0 w2 f.font字体配置文件的内容如下,其中的关键问题在于LastCodepoint的值好像有限制到约8000左右就不行了,游戏无法进入。8000的16进制编码是1F40,中文字体里的中文字模的编码都大于这个值,所以中文字体替换成功以后中文字模也无法显示,因为被LastCodepoint限制住了。
. y8 H- K S$ F<?xml version="1.0" encoding="utf-8"?> / V3 w% }- p7 _1 O# y; {
<Font
r# t! A& `* n K* b2 qName="bodinib-24"
5 p: y% \% B- X5 U A4 [2 dFilename="BOD_B.TTF" 5 x* g& q6 S3 f" e; W4 u9 L
FirstCodepoint="1"
; {5 E) f+ P) V1 w: TLastCodepoint="1300" 7 S; W R. p, j( b0 {; `; | S( m
Type="Dynamic"
5 B5 L! S4 Z/ W, eSize="24"
3 m% f; `/ w5 \& zNativeHorzRes="1024"
! w9 l. }. h2 e3 JNativeVertRes="768" - K1 @$ O7 _ M( o- B
AutoScaled="true"/> 8 I0 y5 U6 e7 _( C
7 G/ j8 l: L8 v) g& D9 X3 i8 m解决办法的猜想,1F40的范围还是很大的,我们说不定可以在这个1F40的范围内自己构造一个TTF字库,编码都是1F40以前的,同时English.StringTable.xml里字幕文字也要用相同的编码写入,这样也许可以实现汉化。 $ h. X& @9 p% c- p2 h
" c, ` {- J' s. u6 h4 r1 X* Y% N/ a
5 q+ y" p r; F$ j& N |