关于steam版SC汉化的提问
Closed this issue · 8 comments
大佬好!最近补轨迹系列作品到空轨SC,在游玩的时候发现有形式的未翻译对话,之后就从各种渠道找到了这里的源项目。
我参考了好几个仓库和文档,包括但不限于EDDecompiler, PyLibs, SoraVoice, SoraVoiceScripts, Falcom 和 EDDecompiler参考文档, 主要参考了@ZhenjianYang和您两位的仓库。按照您已经停止更新的EDDecompiler仓库中提供的Google文档和@ZhenjianYang提供的语音脚本,目前我可以使用EDDecompiler进行steam版本sc的反编译,但是无法进行重编译。由于@ZhenjianYang大佬的EDDecompiler关闭了issue通道,因此来您这边提一个。
对于重编译,我主要设想是根据您这个仓库中提供的py脚本进行重编译,在查找依赖项的时候找到了您仓库的Falcom作为依赖。但是@ZhenjianYang大佬的PyLibs在重编译的过程中会报错,因此使用了您更新的比较新的PyLibs版本,按照EDDecompiler的重编译教程来做却没有任何输出(命令行和输出文件都没有输出),让我十分苦恼。
不知道您对于steam版SC的汉化有没有进一步的更新计划,如果有的话,对于没有汉化的文本,我可以fork一份该仓库,帮助进行处理(主要参考已有的evo版中文视频攻略)。若是您能指点如何使用该仓库中的py文件来进行重编译,我将不胜感激。
按照您给的链接和依赖安装,目前该仓库中的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指令,现在能正常跑通了,感谢大佬指点!