KeyFansClub

首页 » - 特色讨论区 - » 土豆星 » 土卫三 » KeyFC汉化公式论坛 » 【求助】CL文本与语音的对应问题
shadowangel - 2009/5/31 18:51:00
我下载了CL的语音包 想从中找一些自己想要的语音文件 比如牡丹的声音 某些角色的某句话
本想自己一个个听过来 但后来发现文件数量过大 近4万3千个文件 听了2小时候实在听不下去了:miffy3:

我想请教汉化组的人员 有没有什么办法让我知道这个语音文件对应哪个文本
比如 CLANNAD\KOE\0006文件夹下Z000606000语音文件对应哪个文本
反过来也行 游戏中哪个文本对应哪个语音文件
有没有可以查询的办法?

相同的工作如果从CL的FV版入手是不是简单些?

希望可以得到汉化组成员的帮助,谢谢:miffy11:
SOLAの夢 - 2009/5/31 20:53:00
话说咱直接安装的fv版,不过对应文本方面好像挺麻烦的,不过fv版应该可以在某些文件中找的线索(不过咱没试过)。
seagull - 2009/5/31 22:26:00
我是一点一点找的,大致上有些线还是在一起的,不过像渚线之类的就被分得相当散,不太好找。如果真的有个类似的对照表的话找起来确实容易多了……
shadowangel - 2009/5/31 22:49:00
因为我本身日语就不好 再加上数量实在太多 原本也是想自己一个个找的 在尝试了2个多小时后实在不行了 只好放弃了 主要本身也没这么多业余时间扑在这个上面 所以想来请教下汉化组的人员 因为中文文本总要和语音文件对应的吧 所以我想应该会有个类似于对照表 或者说联系表的东西

to SOLAの夢:之所以没选择FV版本 是因为想是不是可以省去导出音乐这部分

说到底本人不是专家 :miffy12:
hkuczc - 2009/5/31 23:17:00
FV的话,如果LZ需要,咱这里有个未成形的对应表,能进行搜索
不过你说要我把它列出来什么的我就做不到了,因为未进行整理,所以只是处于"能搜索"的状态
如果LZ能帮整理的话那就太好了(不过从顶楼的发言来看...可能性非常小吧)

嘛...总之,如果是FV版的,知道日文句子希望查找对应语音的话,咱能帮忙.(具体站内短信联系)
而初回版的对应咱就帮不上忙了.
shadowangel - 2009/5/31 23:49:00
谢谢楼上 已经站内短消息联系你了
Prz - 2009/6/1 2:30:00
对应初回版音声化的 (不对应KeyFC的语音补丁)

A. 麻烦的办法: (适合根性人士阅读)

1. 下载音声化Patch http://www.geocities.com/sleephook/clannad/
其中map.txt内含绝大多数的语音表

2. 开启游戏的debug模式,运行到希望查找语音的那句话
放出这句话,然后看Clannad窗口标题栏上的字: ...SeenXXXX(YYYYY)
* 这里的X就是这句话出现的脚本的名称
  Y是这句话在脚本内的编号
例如: SEEN0414(00156)
X = 0414
Y = 00156 = 9Ch (16进制,用计算器可以转换得到)


3. 解开SEEN.TXT中的脚本
用rldev的话注意加参数不要反编译
或者用这个 http://www.keyfc.net/BBS/showtre ... 16397&postid=275709

找到对应的SEENXXXX.TXT,用16进制编辑器打开
然后在文件首部查找LSB Int32格式的十六进制的YYYYY
例如: 打开SEEN0414.TXT,查找9c 00 00 00


4. 找到以后,看一下这个数字开始的文件位置
例如: 9c 00 00 00 的开始于26Ch


5. 用这个数字减去1D4h,得到的数整除以4,就是这句话的编号
例如: (26Ch - 1D4h) / 4  = 26h = 38 (十进制)


6. 然后就可以用map.txt查找到这句话的语音编号了
打开map.txt, 查找SEENXXXX/ZZZZ, 这里的ZZZZ就是第5步得到的十进制编号
例如: SEEN0414/0038      0000d


7. 语音编号为16进制数,需要转换成为十进制
例如: 0000d = 13


8. 然后这个数需要转换成为语音的文件名,规则如下:

语音编号N 整除 1000 --> AAAA
语音就是 KOE\AAAA\ZAAAANNNNN.(wav/koe/ogg)
(有点脑残编码方法,不要问我为什么,做这个的达人愿意这样编。
不过完全可以不这样编码,官方版就不是这样的)
例如: N = 13
13 / 1000 = 0
那么这个语音就在 KOE\0000\Z000000013.(wav/koe/ogg)


再例如: 如果 N = 0100b = 4107
4107 / 1000 = 4
那么这个语音就在 KOE\0004\Z000404107.(wav/koe/ogg)
Prz - 2009/6/1 2:39:00
对应初回版音声化的 (不对应KeyFC的语音补丁)

B. 简单的办法: (需要会使用调试器)

1. 不用下载什么东西,也不用打开游戏的调试模式
只需要用一个调试器(比如IDAPro)加载运行reallive

2. 运行到运行到希望查找语音的那句话之前,不要放出这句话
然后去CreateFile处下一个断点

3. 点击放出这句话,在放出来之前,程序就会被中断

4. 这个时候,观察程序的栈(Stack),应该就会出现试图打开的文件名

5. 有可能第一次中断的时候是打开的其他文件,比如G00 / SEEN / NWA
这样的话,就继续运行,直到发现符合KOE/AAAA/ZAAAANNNNN.(wav/koe/ogg)格式的文件

这个文件就是这句话的语音。
(低版本的reallive放背景音乐的时候会不停的去打开NWA文件 =_=, 遇到这种情况,抓一个高版本的reallive过来用。)
Prz - 2009/6/1 2:48:00
对应FV的办法 (更简单,适合所有人士阅读):

FV的语音是按照SEEN保存的(正式的编码方法),因此:

1. 只需要知道这句话出现在SEENXXXX中。

提示:打开CLANNAD FV / Little Busters / LBEX 游戏的debug模式的方法如下
★デバッグモード
Gameexe.iniを下記の通り編集する。

◆追加
#MEMORY=1
◆削除か、//によるコメントアウト
#MESSAGE_BUFFER_TYPE=1
#WINDOW_PROCESS_MOD=0
#GLOBAL_FLAG_SYSTEM=1

参考: http://www38.atwiki.jp/littlebus/pages/19.html

2. 然后去将KOE/ZXXXX.ovk解成零散的ogg。

3. 因为不是很多,就百十个,而且和故事的顺序是一致的,跳着听的话,很快就听到了。
hkuczc - 2009/6/1 3:24:00
[strike]悄悄地对Misha说,
SEEN0414(00156)
这个156是游戏原脚本源文件行号吧...要查找的东西似乎应该是0A 9c 00[/strike]
-------------------
然后是,如果能打开调试模式...那就直接在菜单中选择
窗口->声音信息 对话框里就有正在播放语音号和上次播放语音号了
-------------------
Reallive对调试模式的保护也越来越高了,Studio Mebius最新的SiN,使用的Reallive 1.5.3.9即使经过以上处理也不会开启调试了,当然需要什么条件我相信Misha跟踪下程序马上就能发现的...
--------------------
祝楼主多跟汉化组的技术骨干Misha联系,并祝好运~
Misha - 2009/6/1 3:32:00
用0a9c00只能定位到脚本中。人不是机器,很难看出来接下来什么地方的指令放了什么编号的语音。

map.txt 是人可读的,可以用它来人工的定位语音 (顺便也就知道了制作语音map的过程)。

-------
Debug模式我没有仔细研究,因为很少用到... XD 如果真的可以直接看到语音编号,那就方便多了。
-------
1.5.6.8已经成功进入调试模式,而且可以选择章节。因为引擎基本是向下兼容的,所以低版本的可以无视了... :D
-------
顺便广告下,下一个版本的RealliveKO,我将提供即时语音解出功能!
在游戏时听到那句话觉得很萌,可以立即通过RealliveKO界面解出这个语音。^o^
shadowangel - 2009/6/1 10:17:00
:包子16: 努力研究LS提供的各种方法ing

要不还是期待Misha大的RealliveKO吧
安神补脑 - 2009/6/1 17:02:00
我的方法是,LZ找10来个人,每人几千句,就OK大!
shadowangel - 2009/6/1 19:58:00
这个是没可能的了 一是不认识那么多会日语的人 二是会的没那么闲

:包子16: <-----------持续中
1
查看完整版本: 【求助】CL文本与语音的对应问题