分析了一下hca.Configuration.xml这个文件,发现这个游戏只是普通的zip文件打包。
. H& E% ^1 J$ |- J% j" s& V& S6 k" T把PAK为后缀的文件改为zip后,用一般的解压缩软件就可以解开。解开以后可以以目录的形式存在
' V- A! k+ c) |. Y- O不需要再次打包。 # l3 K; U- @9 X; X( t
hca.Configuration.xml的相关语句修改为如下的形式就可以了,这个和通古斯这个游戏的情况很相似。 7 d& I7 N" K/ Z; G9 ~* t- v
<ResourceLocation Group="General" Idx="0" Type="DirArchive" Value="..\core"/>
9 U4 w( U- I8 g; A0 n0 f+ y, Y: M3 @# Q! L
汉化的主要文件包含在core.pak这个文件里。
' \) g, X0 h) U2 z) u/ i主要有字体TTF文件,.font字体配置文件等
: E9 ]1 ?4 z9 z3 i8 s# ^字体文件可以用中文字体文件替换,只要文件名和.font字体配置文件里的设定一致就行。 0 b; M' Q' Q# I, ~: y4 ~
; X% m4 E3 ]' U& }7 l: E
对话文件包含在以下这个文件里 6 @" @; Q- t3 T& A) }
HCA - The Ugly Prince Duckling\localization\English.StringTable.xml % B- g, j! X, a1 o
o! V3 B. q4 C# V; N* s, f$ o.font字体配置文件的内容如下,其中的关键问题在于LastCodepoint的值好像有限制到约8000左右就不行了,游戏无法进入。8000的16进制编码是1F40,中文字体里的中文字模的编码都大于这个值,所以中文字体替换成功以后中文字模也无法显示,因为被LastCodepoint限制住了。
' K: x" [$ f/ h( V/ W<?xml version="1.0" encoding="utf-8"?>
# z. k5 o2 C1 u+ G4 l6 K/ W( H<Font 0 S/ N+ Y. _2 P; G6 C
Name="bodinib-24"
6 s9 k1 e/ l( HFilename="BOD_B.TTF"
' R: T3 }# [& G, `5 F4 W5 ~2 W IFirstCodepoint="1"
0 E" X J/ J4 Y! z( \* LLastCodepoint="1300"
; K' k$ ~8 l2 ~: RType="Dynamic"
/ M4 y/ j8 `* m' \4 y' \5 |Size="24" % ~5 N9 t* K6 U8 @8 T. T
NativeHorzRes="1024" , }8 v3 b" ^7 Z$ B: Q
NativeVertRes="768" 3 ~* M# b0 O/ P; I
AutoScaled="true"/> 8 ~+ ^2 l# K1 T2 V2 g; i/ S
: G% a. I8 u2 V! w解决办法的猜想,1F40的范围还是很大的,我们说不定可以在这个1F40的范围内自己构造一个TTF字库,编码都是1F40以前的,同时English.StringTable.xml里字幕文字也要用相同的编码写入,这样也许可以实现汉化。
A" `8 t. ~$ V& d
. R, a3 X0 X1 q( h0 A7 ]$ l6 ^5 {; ~1 T# G" a7 ?
|