本帖最后由 Tikas 于 2025-1-11 22:40 编辑
: V7 n7 G4 I5 a' c8 j
. n" ]5 P3 C2 Y# X$ m A第一次接触这方面的东西,想尝试汉化《if on a winter's night, four travelers》这款游戏,目前在中文字符方面遇到了一些困难(游戏内显示问号),好像是因为不包含中文字符集?我先讲讲我的过程。大致是 找工具---解包---提取文本---修改文本---重新打包---检查游戏内文本5 C- `- M$ k8 K( M
' a) v* n8 q8 p5 W. I( [这是steam上下载游戏后的内容,尝试多款解包工具后发现该游戏使用的是AGS引擎:
4 L4 l$ }; q8 J: G7 Q" \, s. l. C! B3 _2 |5 H
- d0 s$ W! z* e( g' N
2 b0 r- ?% L* y8 y
5 z( D1 f% v- D7 v我搜索了用于解包AGS引擎的工具,首先是AGSUpacker,adm244/AGSUnpacker: An unpacker\packer for Adventure Game Studio (AGS) engine.
& H9 L+ V4 K5 i0 }虽然可以直接提取文本,但是发现这个工具无法把解包的文件重新打包 _8 D( b4 y0 X& C2 x. }
0 I4 r, F" q4 y
( @; z: n' e: A6 |2 s% x; `
6 Y' b# S6 T2 E/ U; V9 G" r
+ j. s% O1 p+ o" m8 j. n7 N8 {" U$ O9 }$ U7 B: J
1 @6 Z0 Z$ ?3 L: \8 \3 Q然后又找到了agsutils,rofl0r/agsutils: contains utils for AGS: game extractor, repacker, disassembler and assembler
1 ]( |) L4 B- k7 o0 J我下载的release版本,agsutils-0.9.9-win32。这个比上面那个麻烦一些,要输入命令行。. S& l S% ?* Y- V( J4 p' B2 y
' }! ~# V3 W6 a7 {9 O$ H
. w& \! Z0 K9 O: O; D3 A5 R- u; ?' S0 V$ @$ F! V& U; q. C
- T$ E" B& p/ ?9 x: D! m
0 o6 D$ ~3 {, N. y: t总之,使用agstract.exe将ioawn4t.exe解包后得到如下文件:. b# R( _3 `9 w
! g3 d* J! o0 l; p* k5 J
1 z3 p' g8 X3 B' R
+ n0 ^/ H8 r& ^$ i9 p1 d
. M# z' q/ m o; k5 l0 m3 h Y( {! \. X2 a
& j3 n$ m& M* x- @( C- h
然后使用agscriptxtract.exe,从上一个文件夹内的文件中提取脚本文件,如下:5 g, _' _& X, D3 Y
8 R+ Q2 k: I! x# n
# k; D) J- }" p q7 C1 }
3 L3 \- K/ g: c* r# `& n) `/ b
0 Z! E* ~9 e, K; e1 t(ps:弹出了一些warning,不知道有什么影响)
# P$ F3 f1 S$ b, N3 X
* H/ G' [/ W2 @' g& c D
+ ^4 c6 c+ B9 C/ R* E* H8 P6 a* q# U, b
4 i, i2 D+ `, P$ h8 n& O
然后修改一处比较接近游戏开头的文本,在room2.s文件内的双引号中(游戏最初火车上的部分的文本没有找到,只能找到下一个房间场景的文本),括号的内容是我添加的。* a! s+ V* ], d/ u
为了演示,此处添加不包含中文。(其实现在想想可以加上中文的,懒得第二次测试)
7 [/ h$ e6 z3 T% q6 F7 }! x
9 K. y" }- B7 S- L
2 {; W3 ^# V) i# J/ b3 [
6 a. U8 U' p) `/ `( ^: Q8 i, n% |2 n7 M7 e
& C$ V: U/ L$ r3 v6 l6 {- y' b- S, O- |* w
然后使用agssemble.exe编译room2.s,再使用agsinject.exe将room2.o注入到room2.crm中,最后使用agspack.exe -e将文件打包生成新的exe文件。) O% ]4 B- `$ z9 L: R' k6 }
运行此exe文件,发现游戏中的文本成功改变了。(这个游戏不方便截图)6 `$ G! D7 S3 a: E2 H
1 A# y$ d6 N- c9 |4 S2 {1 d
之后我用同样的方法,将括号里的内容变成了中文,但中文的部分在游戏中会显示?,我查了一下,好像是因为AGS引擎不支持中文字符。
2 p0 \- e! q/ O1 z' B1 ]0 V4 w
7 ?% v0 X" K3 [; `现在没有思路了,想请教一下各位大佬有没有什么解决方案,或者还有什么论坛可以求助。 }. Q5 m5 g2 V8 S
! L: F. D! s: ?" V8 D% ]9 b7 K! ^4 \% [9 t s+ s
. W! Y/ m2 W' O$ _& L! N1 o
|