【已解决】RPG Maker 200x/MZ转换器无法转换非MID文件【非Bug】

关于官方插件的问题,在这里询问可以吗?

感谢您发布 RPG Maker 200x/MZ 转换器。

我已经迫不及待地转换了以前制作的游戏并乐在其中。

但是,如果在音频设置中取消勾选“使用 MID 插件”进行转换,会提示找不到 FFmpeg 的路径,导致无法转换。

勾选“使用 MID 插件”就可以转换,说明路径应该是正确的……
请问我该怎么办?

是的,这里是正确的地方。转换器在 Steam 页面上显示处于测试阶段,并建议将错误和反馈发送给 Guild,所以你可以放心。

据我了解,勾选“使用 MID 插件”意味着 MIDI 文件保持原样,并通过插件播放,因此 FFmpeg 不会在该路径下被调用。取消勾选意味着转换器尝试将 MIDI 文件渲染为 OGG 格式,这时才真正需要调用 FFmpeg(以及音源)。因此,勾选状态下运行正常并不能确认路径设置正确,它只是从未测试过该路径。

以下是一些在 FFmpeg 方面需要检查的事项:

打开一个新的命令提示符窗口,输入 ffmpeg -version。如果返回“无法识别”,说明 Windows 也找不到它。

如果你已将 FFmpeg 添加到 PATH 环境变量中,请确保添加的是 FFmpeg 下载包内的 bin 文件夹(即实际包含 ffmpeg.exe 的那个文件夹),而不是 zip 包的根文件夹。

PATH 的更改仅对更改后启动的程序生效,因此请完全关闭转换器并重新打开,或者重启计算机。

转换器内部是否有单独的 FFmpeg 或音源路径设置?如果有,能否提供该界面的截图?

2 个赞

感谢您的回复。

抱歉,是 timidity.exe 的问题。
我添加了环境变量,路径似乎已经设置成功,转换也成功了,
但这次背景音乐完全没有被转换,看起来项目文件夹里不存在相关文件。
查看显示的日志,显示 timidity 将其转换为 wav,然后 FFmpeg 再转换为 ogg……

由于我不太懂命令行,所以我通过添加环境变量的方式来设置路径。

我在环境变量中只输入了可执行文件所在文件夹的路径,
是否还需要添加其他内容?

附上的图片是转换器的设置界面。

对于 PATH 一侧,包含 exe 的文件夹就足够了,因此无需添加其他内容。

接下来我关注的是 TiMidity 本身。TiMidity++ 无法仅凭 exe 渲染音频,它在启动时会读取 timidity.cfg 配置文件,该文件必须指向一个音源(.sf2 文件)或一组 GUS 补丁文件。如果缺少配置文件,或者配置文件中的音源路径指向不存在的位置,TiMidity 会运行并退出,而不会生成 wav 文件。我怀疑转换器的日志只是报告每个步骤已启动,而没有检查是否实际生成了文件。这样一来,ffmpeg 就没有可转换的内容,项目文件夹中也永远不会出现 ogg 文件。这或许能解释为什么日志看起来正常,但背景音乐(BGM)却缺失了。

请检查 timidity.exe 所在的文件夹,看看旁边是否有 timidity.cfg 文件,并打开它查看其中配置的 soundfont 或 dir 行是什么。另外,你下载的是哪个版本的 TiMidity++ 构建?能否粘贴一条 BGM 的完整日志行?一个快速测试方法是完全跳过命令提示符,直接将 .mid 文件拖拽到 timidity.exe 上。如果它能播放,说明 TiMidity 配置正确,问题出在它和转换器之间;如果它保持沉默或报错,那就是配置文件或音源的问题。

2 个赞

感谢您的回复。

看到上面写着“稳定版”,所以我下载的是 TiMidity+±2.13.0-w32.zip。
声音无法播放。
timidity.cfg 也没有包含在内。
我以为只用这个软件进行转换就能发出声音,所以认为只需解压即可。
原来即使不播放声音也需要这些文件,是我理解能力不足,非常抱歉。

我也阅读了帮助文档和解说网站,但始终无法直接找到该怎么做。
由于专业术语较多,我难以理解其中的内容。

在不懂的情况下尝试了各种操作,最终勉强完成了转换。

关于 SoundFont,我将转换器帮助中推荐的 FluidR3_GM.sf2 放置在了 TiMidity 文件夹中。
同时,将随 FluidR3_GM 捆绑的 cfg 文件也放置到 TiMidity 文件夹中,并将其重命名为 timidity.cfg。

用文本编辑器打开 cfg 文件,
将其中 /usr/share/sounds/sf2
部分修改为 TiMidity 文件夹的路径。

将 MIDI 文件拖放到 TiMidity.exe 上,如果能听到声音,
则在执行转换前重启电脑。

转换成功后,发现转换速度变得非常慢。
即使取消勾选 Wav 转换,变化也不大。

我想这可能是因为未使用的 RTP 也被全部转换了,
所以对于主要使用 RTP 的游戏,我打算除了音频外不进行其他转换。

总而言之,这个问题并非 Bug,而是单纯由于我知识不足所致。
给您添麻烦了,非常抱歉。
感谢您细致的应对。

1 个赞