Ouroboros/ED6-Steam-CN

关于steam版SC汉化的提问

Closed this issue · 8 comments

大佬好!最近补轨迹系列作品到空轨SC,在游玩的时候发现有形式的未翻译对话,之后就从各种渠道找到了这里的源项目。

我参考了好几个仓库和文档,包括但不限于EDDecompiler, PyLibs, SoraVoice, SoraVoiceScripts, FalcomEDDecompiler参考文档, 主要参考了@ZhenjianYang和您两位的仓库。按照您已经停止更新的EDDecompiler仓库中提供的Google文档和@ZhenjianYang提供的语音脚本,目前我可以使用EDDecompiler进行steam版本sc的反编译,但是无法进行重编译。由于@ZhenjianYang大佬的EDDecompiler关闭了issue通道,因此来您这边提一个。

对于重编译,我主要设想是根据您这个仓库中提供的py脚本进行重编译,在查找依赖项的时候找到了您仓库的Falcom作为依赖。但是@ZhenjianYang大佬的PyLibs在重编译的过程中会报错,因此使用了您更新的比较新的PyLibs版本,按照EDDecompiler的重编译教程来做却没有任何输出(命令行和输出文件都没有输出),让我十分苦恼。

不知道您对于steam版SC的汉化有没有进一步的更新计划,如果有的话,对于没有汉化的文本,我可以fork一份该仓库,帮助进行处理(主要参考已有的evo版中文视频攻略)。若是您能指点如何使用该仓库中的py文件来进行重编译,我将不胜感激。

SC是用的这个 ED62

依赖的安装

SC剩下的部分没有继续的必要, 总共也没有几句话

按照您给的链接和依赖安装,目前该仓库中的SC文件夹内的大部分依赖已经能读取到了,但是还缺少一个xxxxx_hook,直接运行没法得到对应的.SN文件。
根据ED64内的说明,我尝试把._SN文件路径替换为我的本地目录(test.py 中的 scena 变量中的路径),但是代码仍旧无法跑通,以及还有一些我未能理解的变量所指向的文件(scena2py.py 中的 voiceTable等),按使用说明中的方式似乎无法正确反编译,该如何解决呢?

按照您给的链接和依赖安装,目前该仓库中的SC文件夹内的大部分依赖已经能读取到了,但是还缺少一个xxxxx_hook,直接运行没法得到对应的.SN文件。 根据ED64内的说明,我尝试把._SN文件路径替换为我的本地目录(test.py 中的 scena 变量中的路径),但是代码仍旧无法跑通,以及还有一些我未能理解的变量所指向的文件(scena2py.py 中的 voiceTable等),按使用说明中的方式似乎无法正确反编译,该如何解决呢?

你运行的是ed84的?

按照您给的链接和依赖安装,目前该仓库中的SC文件夹内的大部分依赖已经能读取到了,但是还缺少一个xxxxx_hook,直接运行没法得到对应的.SN文件。 根据ED64内的说明,我尝试把._SN文件路径替换为我的本地目录(test.py 中的 scena 变量中的路径),但是代码仍旧无法跑通,以及还有一些我未能理解的变量所指向的文件(scena2py.py 中的 voiceTable等),按使用说明中的方式似乎无法正确反编译,该如何解决呢?

你运行的是ed84的?

没,我运行的就是ED62文件夹下的代码。

按照您给的链接和依赖安装,目前该仓库中的SC文件夹内的大部分依赖已经能读取到了,但是还缺少一个xxxxx_hook,直接运行没法得到对应的.SN文件。 根据ED64内的说明,我尝试把._SN文件路径替换为我的本地目录(test.py 中的 scena 变量中的路径),但是代码仍旧无法跑通,以及还有一些我未能理解的变量所指向的文件(scena2py.py 中的 voiceTable等),按使用说明中的方式似乎无法正确反编译,该如何解决呢?

你运行的是ed84的?

没,我运行的就是ED62文件夹下的代码。

不要自己描述错误,直接把错误完整贴上来

按照您给的链接和依赖安装,目前该仓库中的SC文件夹内的大部分依赖已经能读取到了,但是还缺少一个xxxxx_hook,直接运行没法得到对应的.SN文件。 根据ED64内的说明,我尝试把._SN文件路径替换为我的本地目录(test.py 中的 scena 变量中的路径),但是代码仍旧无法跑通,以及还有一些我未能理解的变量所指向的文件(scena2py.py 中的 voiceTable等),按使用说明中的方式似乎无法正确反编译,该如何解决呢?

你运行的是ed84的?

没,我运行的就是ED62文件夹下的代码。

不要自己描述错误,直接把错误完整贴上来

我的失误。替换掉test.py文件241行的scena变量中所写的ED6_DT21路径后,运行test.bat报错如下:

C:\nw_profile\IDE\pycharm\pycharmProj>cmd /c "c:\nw_profile\IDE\pycharm\pycharmProj\Falcom\Decompiler2\Falcom\ED62\test.bat"
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
  File "C:\python3.10\lib\multiprocessing\pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "C:\python3.10\lib\multiprocessing\pool.py", line 48, in mapstar
    return list(map(*args))
  File "C:\nw_profile\IDE\pycharm\pycharmProj\Falcom\Decompiler2\Falcom\ED62\test.py", line 234, in procfile_cn
    procfile(f, 'GBK')
  File "C:\nw_profile\IDE\pycharm\pycharmProj\Falcom\Decompiler2\Falcom\ED62\test.py", line 228, in procfile
    test(f, output)
  File "C:\nw_profile\IDE\pycharm\pycharmProj\Falcom\Decompiler2\Falcom\ED62\test.py", line 215, in test
    open(output, 'wb').write('\n'.join(py).encode('UTF8'))
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\Dev\\Source\\Falcom\\Decompiler2\\Falcom\\ED62\\tools\\output_voice_final\\A0000.py'
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\python3.10\lib\site-packages\ouroboros\dbghelp\invoker.py", line 6, in Try
    return method(*values)
  File "C:\nw_profile\IDE\pycharm\pycharmProj\Falcom\Decompiler2\Falcom\ED62\test.py", line 249, in main
    iterlib.forEachFileMP(cb, s, '*._SN', subdir = False)
  File "C:\python3.10\lib\site-packages\ouroboros\iterlib\foreach.py", line 26, in forEachFileMP
    return p.map(callback, files)
  File "C:\python3.10\lib\multiprocessing\pool.py", line 367, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "C:\python3.10\lib\multiprocessing\pool.py", line 774, in get
    raise self._value
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\Dev\\Source\\Falcom\\Decompiler2\\Falcom\\ED62\\tools\\output_voice_final\\A0000.py

根据提示搜索,把写于test.py文件中226行的路径指向修改成该仓库中的SC文件夹的内容后运行test.bat后直接输出为空:

C:\nw_profile\IDE\pycharm\pycharmProj>cmd /c "c:\nw_profile\IDE\pycharm\pycharmProj\Falcom\Decompiler2\Falcom\ED62\test.bat"

C:\nw_profile\IDE\pycharm\pycharmProj>

之后,我尝试直接运行该仓库中的文件。我将A0000.py文件开头的except情况下增加了一句print("error"),之后直接运行A0000.py的输出如下:

C:\nw_profile\IDE\pycharm\pycharmProj>python -u "c:\nw_profile\IDE\pycharm\pycharmProj\ED6-Steam-CN\SC\DAT\ED6_DT21\A0000.py"
error

C:\nw_profile\IDE\pycharm\pycharmProj>

打开A0000.py文件后在第6行有Import "A0000_hook" could not be resolved提示。
是不是我的使用方法有问题?烦请大佬指正。

神乎其神的技巧!之前一直没跑起来是因为我多加了一个python指令,现在能正常跑通了,感谢大佬指点!