本帖最后由 Tikas 于 2025-1-11 22:40 编辑
- G' i* W' w5 @/ H
w. g8 t) L2 S第一次接触这方面的东西,想尝试汉化《if on a winter's night, four travelers》这款游戏,目前在中文字符方面遇到了一些困难(游戏内显示问号),好像是因为不包含中文字符集?我先讲讲我的过程。大致是 找工具---解包---提取文本---修改文本---重新打包---检查游戏内文本/ y+ c! g/ y2 Z/ Z$ B# m
1 u7 U1 M) T' d这是steam上下载游戏后的内容,尝试多款解包工具后发现该游戏使用的是AGS引擎:/ Z; m4 q) o# o, _- u. K
' O P: K0 [! B( N9 m![]()
" r& h& ~$ H" R$ _: a3 H6 @/ F/ p% g# p! M4 K; T4 Q* A
* l# S2 w: e1 T9 n2 r9 p- ^
我搜索了用于解包AGS引擎的工具,首先是AGSUpacker,adm244/AGSUnpacker: An unpacker\packer for Adventure Game Studio (AGS) engine.
! X4 {7 Q& Y6 f虽然可以直接提取文本,但是发现这个工具无法把解包的文件重新打包& Y `& P* p/ M, G0 N' O
$ Q6 l. b. \* ?
![]()
7 B9 `- \8 ]) V' I% c* l1 ]/ I4 A4 ]8 V; I$ }
) l& R( M2 C: L
1 [5 b0 L9 r* R9 I7 A) L s i" A% }1 B# N1 B; j
然后又找到了agsutils,rofl0r/agsutils: contains utils for AGS: game extractor, repacker, disassembler and assembler
g4 l: R/ A q( T' q9 I' Z我下载的release版本,agsutils-0.9.9-win32。这个比上面那个麻烦一些,要输入命令行。
' K6 g2 o1 f& g3 m9 x" D+ @, b& ?) {- c8 p1 M
![]()
6 p1 M( h' }: v+ Y- u) L: s$ M* i3 W; I9 t$ _# Z
' ~ @* m6 n2 j% s, X
$ V& } f. {( L总之,使用agstract.exe将ioawn4t.exe解包后得到如下文件:% s8 J, J+ n9 B
1 O: v( [& B! j4 q# u
8 \5 u' [9 E" \2 \& S2 l9 ~; w. n* R
; {7 X/ c q0 t9 k, q6 Q
* ^/ l/ M3 @* ^) ?9 k, \2 J; }# g. V
$ R h3 ]; t: {; Z5 s然后使用agscriptxtract.exe,从上一个文件夹内的文件中提取脚本文件,如下:
3 g8 z& a, [# T" y- h+ B: s7 h# ~3 X9 S9 d4 o* L9 t, I: h
1 q. e) d4 }" @2 X/ a$ }% s+ P; k' s F4 ]. m( O
% c6 I7 f; i; U& q% m# x
(ps:弹出了一些warning,不知道有什么影响), M+ L" y. v0 _5 R2 Y
![]()
+ W: U- B3 Y6 @ `% P. F) d" S- ^3 W9 g$ ^- s
r( E4 k8 m* [2 L9 l
2 [: P ?2 [8 v: l" g3 X, z然后修改一处比较接近游戏开头的文本,在room2.s文件内的双引号中(游戏最初火车上的部分的文本没有找到,只能找到下一个房间场景的文本),括号的内容是我添加的。
4 |4 b$ w$ L5 q7 I) e% M为了演示,此处添加不包含中文。(其实现在想想可以加上中文的,懒得第二次测试)
D/ q* I! A" y7 N
( j* N" b* d- w8 U! F- F![]()
% B5 h1 c# |. w. D/ c/ a* J1 n( V- Q
/ P1 W4 q! a$ _. [) O7 d3 u, @! Z$ c1 R7 \+ j- {' X+ W( o
& ]5 L3 z( `8 J; @- R f
然后使用agssemble.exe编译room2.s,再使用agsinject.exe将room2.o注入到room2.crm中,最后使用agspack.exe -e将文件打包生成新的exe文件。 z1 j* B; e2 _/ a4 Z" x
运行此exe文件,发现游戏中的文本成功改变了。(这个游戏不方便截图)3 M# ?; Y$ Y0 i' i
" ]" t m2 I& [1 F! b) t6 S$ w2 J
之后我用同样的方法,将括号里的内容变成了中文,但中文的部分在游戏中会显示?,我查了一下,好像是因为AGS引擎不支持中文字符。
% S6 ?# ^7 q) ?1 W) Y" X. q& H5 Z
# ^0 ^* e' B9 H" n现在没有思路了,想请教一下各位大佬有没有什么解决方案,或者还有什么论坛可以求助。) Q3 Q* l, m# [6 B
& |" T: Q8 a6 J" b! N, W7 S+ w" }+ ^4 X5 e2 X* @: ?( l
. N) z2 n; F4 [5 S0 l. C* c |