
大家好,暨上一次发了一个“隔一个选一个”的脚本之后,我又来写脚本了。

本次呢是对 @Chaosinism 大佬的“音 MAD 助手”脚本进行更新。该脚本有效提升了套 MIDI 制作音 MAD / YTPMV 的速度。不过如想添加一个素材必须要先提前把素材剪辑好单独导出成一个单音视频文件,我觉得有点麻烦。想能不能在脚本中就直接指定导入的视频素材是从什么时间点开始剪辑调音。比如说我想使用某个视频 1 分钟处的那个声音进行调音,而不是视频的开头处,这样能使制作更加灵活。之前我也和原作者大大讨论过看看能不能添加这一功能,不过他最近应该比较忙,而且很久没玩过这个脚本了。所以我就想能不能自给自足,自己把这个脚本给更新一下。不过更新这个还没有跟他商量就先做了,希望作者大大应该不会介意的吧,当然如果真的介意的话我会删掉本文的。
本次更新基于 Chaosinism 的原代码修改而成,在这里先感谢一下原作者的努力贡献,以及所有使用到的开源代码的作者。
使用方法与旧版基本保持一致,因此旧版的使用方法可以沿用到新版。然后新版增加了一些新的功能。如果您没有使用过旧版,请先来看看旧版的说明文档和疑难解答。


国人制作鬼畜 / 音 MAD / YTPMV 视频通常混合使用 FL Studio 等 DAW 与 Vegas 等非线编软件,而两者工程文件无法互通,导致额外的工作量。此脚本意在加强 Vegas 对 MIDI 文件的处理能力,减少软件切换带来的成本。
脚本接受 MIDI 文件与视频/音频素材作为输入,自动生成剪切、调音完毕的视频与音频轨道。
脚本基于 Vegas Pro 17.0 中文版开发,不能保证除我目前所用电脑之外的任意时间的任何电脑可以正常使用。如果您不能正常使用,请在评论区告诉我,我会尽量修复 bug 并发布到 GitHub。总之仓库里的代码一定是最新的,但本文并不一定更新。
理论上 Magix Vegas 14~19 都是可以正常运行的。对于 Sony Vegas 13 是在收购之前,因此需要手动将脚本中开头的 using ScriptPortal.Vegas; 更改为 using Sony.Vegas; 便能正常运行,但也不能保证所有功能都能正常使用。对于 Sony Vegas 12 及更早的版本,Chaosinism 在疑难解答中说道实际上并不支持,因此就不能支持了,原因好像是 Vegas 12 使用了较旧的 C# 语法,并不支持新语法造成的。
由于我没有英文版或其它语言版本的 Vegas,因此其它语言有可能会运行异常。对于这些问题也可以在评论区告诉我。
首先打开我的仓库:
https://github.com/otomad/VegasScripts
点击右边的最新的 Releases 发行版。

由于脚本未来可能还会更新,而本文并不一定会更新,因此您看到的最新版可能与图片中的不一致,请以实际最新版为准。
然后下载对应的压缩文件。

下载之后是酱紫的~

然后找到你的 Vegas 软件的安装目录。打开我图中选中的 Script Menu 文件夹。

将压缩包中的所有文件全部拖放到 Script Menu 文件夹中。
系统有可能会提示需要管理员权限,允许即可。
理论上已经安装完毕了,但是根据原作者的说明,可能还需要检查一下 DLL 文件是否锁定的问题。
打开 Script Menu 文件夹中的 DLL 目录。

右键我图中选中的 NAudio.dll 文件,选择属性。
如果你看到了图中的“解除锁定”按钮,就点一下。

解除 dll 文件的锁定
当然更有可能你和我一样并没有看到这个按钮,那么就可以不用管他,直接关掉。
那么到这里脚本的安装就已经结束了(比旧版少了很多步骤)。
打开你的 Vegas。
依次点击 工具→脚本化→otomad_helper 打开脚本。
如果你没有看到这个脚本,有可能是您打开了 Vegas 之后再将脚本文件放入的,这个列表还没有刷新出来。此时点击 工具→脚本化→重新扫描脚本菜单文件夹 即可。

然后就打开脚本了。
这里建议可以在 选项→自定义工具栏 中将本脚本添加到工具栏方便操作。


软件图标用的是 @My_world 的口头禅。

图标
以下是新版音 MAD 助手的界面。(我才发现本文写了这么久居然还没放图。)





下面是在此之前旧版的界面。
这个是使用 WPF 制作的界面,遗憾的是 Vegas 不支持 WPF。

这个是使用 WinForm 制作的界面,并没有使用分页,结果后面发现功能太多,这个界面根本放不下了。

该版音 MAD 助手相较于旧版,新增了许多新功能。
1. 启动脚本直接显示对话框。旧版启动脚本需要先选择 MIDI 文件和素材,选定之后不能再次修改,除非重启脚本。并且中途如果想取消可能还会报错。新版直接显示对话框,并且可以随时更改素材或 MIDI。
2. 无需将“移调”插件重命名为“Pitch Shift”。新版理论上对插件中英文甚至其它语言都可以正常识别。当然更大的原因当然是我使用的是中文,因此用中文名更加方便罢了。目前也就“移调”插件支持中英文,新版开始使用了一些其它的插件,然而我又没有英文版的 Vegas,因此不知道这些插件的英文名叫啥,因此中文版的插件是可以正常支持的。
3. 无需手动添加“移调”插件的 25 个预设。旧版需要手动在“移调”插件当中新增 -12~ 12 共计 25 种预设,非常麻烦。新版开始支持自动添加预设。当检测到没有预设时会提醒用户是否自动添加预设。不过由于没有测试其它版本,不确定其它版本能否也支持自动添加预设。如果不支持,请依照旧版的说明文档手动添加预设,并在评论区告诉我。也有可能需要管理员权限才可。

4. 保存用户配置。作为软件开发者,最重要的一点就是保存用户配置的选项了。因为每次发现 bug,如果想改一下代码再次调试,发现又需要重新改一下配置选项,很麻烦。新版支持保存用户的配置设置,下次启动脚本,将会自动恢复成上一次的配置。甚至也可以自动打开上一次打开的 MIDI 文件,避免反复选择。
目前通过点击“完成”“取消”按钮都可以保存配置。留有两个后门,一个是点击右上角的叉而不是点击取消或 Esc,则不保存配置;另一个是如果程序中途出现报错,则会自动删除用户配置并恢复为默认值,因此你可以故意在脚本对话框文件浏览中打开一个不合法的文件(如在素材设置中打开一个不支持的媒体,MIDI 设置中打开一个非 MIDI 文件)来手动触发报错,然后点击右上角的叉关闭,这样就可以恢复设置为默认值了。
脚本的用户配置文件保存在 C:\Users\你的用户名\AppData\Roaming\VEGAS Pro\你的软件版本号\otomad_helper.ini 中,也可以删除该文件使脚本恢复默认值来解决某些不可名状的 bug。如果你觉得脚本乱往你电脑扔垃圾了可以删除本脚本。

5. 支持使用在项目媒体柜中选定的素材或在轨道中选定的素材,而不仅限于在文件夹中选择素材。这就是我更新这个脚本的主要目的了。然后就可以在 Vegas 中添加一个完整的视频,在轨道中裁剪到需要的片段。然后将片段创建子剪辑(选中的媒体文件)或者直接在轨道中选择(选中的轨道素材),就能快速生成了。不必提前将素材裁剪成单音小素材。
如果选定素材没有视频流或音频流,相应的生成视频或生成音频选项将会禁用。
“选中的轨道素材”检测的是你选中的第一个音频素材和视频素材。因此需要按住 Ctrl 在轨道中同时选择一个音频素材和一个视频素材两个素材才能同时生成音频和视频。但是如果选中的素材是创建了一个分组(比如直接从媒体柜中拖出来的素材,音频和视频是绑定在一起的),那么只需选择其中一个素材就好了。
6. 指定素材指定时间位置进行调音。这就是我开始与原作者 Chaosinism 商讨想要添加的功能了。但是现在发现还没有上一条的使用轨道素材好用,还要额外再写一个方法去实现。
鼠标放在某些选项上,会有填写说明提示。

7. 允许在光标位置处生成音 MAD 而不是在最开始位置。
8. 当更换一个 MIDI 文件后,“使用 MIDI 轨道”默认选中第一个至少有一个音符的轨道。免得选择 MIDI 文件之后设置其它参数,看都没看 MIDI 轨道就开始生成,最后一个音符都没有生成。
9. 允许修改 MIDI 的 BPM 速度。可以保持 MIDI 的速度,或 Vegas 配置的速度,或者自定义速度。这将改变最后生成音频的速度。
10. 可以不规定 MIDI 的起始秒数和终止秒数。只需将两者都保持为 0 即可。旧版需要配置该选项,超出范围的音符就不生成了。新版可以保留缺省,这样是始终生成整个 MIDI 轨道中的所有音符。
11. 如果不生成音频或视频,则不会再额外生成一条空轨道了。
12. 可以配置拉伸音视频、循环音视频、音频规范化音量、音频渐入渐出、视频帧定格、消除视频与视频间空隙等选项。
13. 旧版仅支持一种调音方式,也就是“移调”插件调音。新版新增三种调音方式,各方式各有利弊。
“移调效果插件”,就是旧版的调音方式,需要配置预设(现在可以自动配置了)。支持各种音高。缺点是生成速度非常慢,旧版使用的就是这种方式,因此非常慢。
“弹性音调更改”,就是各种 Vegas 教程中使用的用键盘 + - 号调音的那种方式。所谓“弹性”就是 Élastique 的法语直译。优点是生成速度非常快,无需配置预设,后期可以同时选中所有音频然后按加减键整体升降调。缺点是有音高范围限制,一般只能在 -24~24 四个八度之内,超出范围就会锁定在 -24 或 24。如果素材有拉伸的话范围会更小。
“锁定伸缩与音调”,就是利用改变播放速度变化音调的方式实现的。如果上述两种方法的过度调音造成音质变渣可以尝试使用这种调音方式。缺点一同样也是有音高范围限制,和“弹性音调更改”一样,另外“拉伸音频”选项将会被强制禁用,此外生成的音频无法使用加减号再次调整修改。

14. 新增多种视频视觉动画效果。旧版只有一个水平翻转。其中有些效果我实在不知道叫啥名,就随便瞎起了一些,总之大家自己试试就知道是什么效果了。
如果大家想添加其它的效果欢迎评论留言。

15. 新增视频旋转和平移参数调整,丰富使用功能。
如果起始尺寸与终止尺寸(其它类似)保持一致的话,不会额外生成一个关键帧。
16. 支持调整关键帧的缓动方式。

17. 右键滑动条,可以将其重置为默认值。
18. 整合五线谱可视化功能。将 Chaosinism 的另一脚本功能整合了进来。可以同时使用两个功能。关于其参数配置方面的请参见原脚本说明。

此外新增自动生成五线谱功能,虽然生成的方法非常笨拙,但也没有很好的方法。此外本来想自动生成谱号的,可惜也没成功实现。
其中“拍子”设置在 MIDI 设置中。
其中“谱线粗细”的单位是一个相对的参数,并非像素,因为懒得计算了。这个参数会受谱线间距而影响。总之这个就根据感觉调吧。
开启“使用相对值”后,所有参数的像素单位都是相对于 1920 × 1080 分辨率来计算的。避免当改变项目分辨率之后,这里的像素参数全部错位乱套了。

19. 整合“隔一个选一个”脚本功能。我把我上一次做的脚本也给整合进来了,并且加强了功能,可以隔两个选第三个之类的功能。
如果没有在轨道中选择任何素材,那么这个选项卡将不会出现。
这是一个独立的子功能,按理不应和其它功能共同使用。点击“快速间隔选择”按钮之后将会自动关闭本对话框,原先的部分设置将会保存。
20. 点击“关于”按钮显示作者信息。点击“使用说明...”链接打开 Chaosinism 的原版说明文档链接。
21. 界面采用网格布局,避免改变窗口大小后,控件全部聚集在左上角的问题。同时字体也更改为微软雅黑。
22. 新增进度条显示,避免等待太久感觉软件卡死,并且可以随时中断生成。
理论上只有使用“移调效果插件”调音时才需要进度条,因为使用这个插件会出奇的慢。其它情况基本上都是秒生成。

23. 人性化报错提示。我已尽量将脚本可能会出现的错误都用人话叙述了一遍了。包括 Chaosinism 在疑难解答中提到的一些错误。原报错信息放到“详细信息”中。

即便如此,这并不能涵盖脚本中所有的错误,我只能将我可控的错误描述出来。
除 Chaosinism 写的《“音MAD助手”Vegas脚本 - 疑难解答》中 1~3 条无法显示该注释之外(请按照该文章的方法解决),其余均有人话注释。
如果报错,脚本会自动删除用户配置文件以解决某些奇怪的问题。
脚本测试环境为Magix Vegas Pro 17.0,理论上 Vegas 14 及以上的版本也能够使用,但现在还不能保证没有问题。Vegas 13 需要手动修改文件才能运行。Vegas 12 及以下版本保证不支持。
某些特殊的 MIDI 文件无法被正常读取,现在暂时没有解决办法。请手动将其导入 FL Studio 等支持打开的软件中,然后重新生成 MIDI 文件。
Vegas 不支持的媒体格式(如:flv),那么脚本也不会支持。
NAudio.dll 如果锁定不能自动解锁。此时运行脚本会报错。请手动解锁。
五线谱可视化功能目前不能自动生成谱号。
“移调”效果插件调音的生成效率非常低。
理论上 WinForm 不能自适应高分辨率屏,在这些屏幕上脚本可能会显示成一坨 s。
软件界面非常丑,感觉更新到最后进化成了 Win9x 风格了。可惜不能用 WPF,更不可能用 UWP 了。希望 B 站懂美工的大佬们来帮我改改。
素材和 MIDI 的起止时间设置是以秒为单位,而不是 Vegas 配置的标尺单位。
参数配置只有数据不直观,下次一定尽可能多用图形表示。比如视频缩放大小、五线谱谱面位置等。
MIDI 轨道选择光给出一个起音也不好判断其到底是哪个音轨。下次一定增加简单的编辑和预览 MIDI 音轨功能。
新版提升了代码一定的健壮性,但可能会带来其它新的 bug,如有请在评论区报告错误。
若使用非自制 MIDI / 素材进行创作,请尊重其作者的权益。
脚本是用来帮助音 MADer 快速制作 PV,省去频繁重复的机械操作的。听话,不要做音 MIDI。
感谢所有做出贡献的先辈们的参考代码。
https://github.com/Chaosinism/vegas_scripts
https://github.com/evankale/VegasScripts
https://github.com/naudio/NAudio