【脚本】 一键导出 3月15日更新

[UPDATE]24年1月4日更新:修复了Wildcards留空时识别出错的bug

[UPDATE]23年3月15日更新:修复了少量bug

[UPDATE]22年12月6日更新:增加了对Mac系统的适配

[UPDATE]因为reaper历次更新里,导出预置文件 reaper-render.ini 的格式更改过好几次,而脚本只能以最新的格式来识别,假如你的文件是旧版格式,但用着新版的脚本时,就会因为识别失败而出错。而且有一种情况是,假如你以前用旧版的reaper另存过旧版的预置文件,然后你更新到新版reaper时,他并不会自动帮你把旧版预置文件改成新版。但好在,假如你在新版reaper下新保存一个预设的话,他会顺便帮你把旧版文件的格式都更新成新版。所以假如遇到以上错误,就可以利用这个特性,只需要新建一个任意的预设,强制让他更新预置文件,就可以避免错误

[UPDATE]22年11月29日更新:修复了左键制作脚本时路径编写格式的bug

[UPDATE]22年11月12日更新:修复了有些选项没有读取到的问题

[UPDATE]22年7月14日更新:6.64版新增的导出文件fadein fadeout功能已加入

[UPDATE]22年7月8日更新:6.63版本起预置文件的格式又有了新的改动,所以更新了专用于新版的版本。此版本与旧版不通用,请根据自己版本下载

[UPDATE]22年1月5日更新:因为近来reaper在导出窗口里加了很多新内容,旧版本脚本已经不适用了,还有可能出错,所以重写了一个新版的。新版会比较完整的支持导出预置,包括:Secondary output format、响度标准化、保存预置时一块保存的指定输出路径。脚本只在6.43版本的reaper上测试,还不知道能不能兼容旧版本。

另外根据之前部分用户的反馈,我重新改了一下导出路径的获取逻辑。最高优先级的是保存在预置里的路径,如果没有,则使用设置里的默认导出路径。如果默认导出路径设置了,但设的是相对路径,比如只有一个名字“output”,那就会使用这样的路径"你的工程路径\你的工程媒体路径\output"。如果这个设置为空,则使用工程媒体路径

我的导出习惯

平时我主要通过一些提前制作好的导出预置来进行快速导出,这样的好处是包括格式、命名、路径等都不需要重新选择,我只需要按不同情况选择不同的预置即可完成导出。

img

存在问题

但有一个问题是,要点出这个菜单,我首先要点开Render to file,点开Presets菜单,然后经过一系列的鼠标移动和点击,才能选中我需要的那个预置。由于导出是一个非常频繁的操作,我需要让这个步骤简化一些,于是就做了这个一键导出脚本。

脚本介绍

脚本运行以后,将会自动读取你保存在Presets菜单下的All settings里的所有项目,并对应生成如图的一个个按钮。操作十分简单,只要点击任意一个按钮,就会调用对应的预置来直接导出,如下图:

img

就这样导出窗口闪了一下,导出就已经完成了

如何实现一键导出

你可能觉得,这样不是还得先打开脚本,再点一下才能导出,能不能一个快捷键就按我想要的那个预置导出呢?请看图

img

当你在脚本窗口处于激活状态下按住ctrl键,按钮选框就会变成绿色,这时你再点击它,就会生成一个新的脚本,并自动添加到Action list里面。之后运行这个脚本就相当于调用你的预置直接导出了。如果你为它设定一个快捷键,或者做成按钮放在工具栏上,那就实现了真正意义上的一键导出了。

导出多个预置

按住Shift键,依次点击你需要的预置按钮,放开Shift键,就会按照你选中的预置一个个导出,如下图:

img

另外如果预置本身有条件要求的情况,请自行注意了,脚本不作判断。比如预置里设置了导出来源是Region render matrix,而你没有在里面选好导出轨道的;比如预置里设置了导出范围是time selection,而你使用前没有先设好time selection的,都可能会出现出错提示,或导出范围不正确的,这个请自行留意。

DSY_一键导出.lua (14.5 KB)

12 个赞

赞,gfx的使用蛮有意思的。

很实用,感谢老师分享。
请问,我按住ctrl键,再点击它,无法生成一个新的脚本,是我哪里出了问题吗?
image

我重新上传了一个版本,请试试用这个覆盖旧的再试一遍

谢谢,已解决。可是用新生成的脚本导出时,无法渲染,又出现这个错误,不知道大家有没有这个情况

image
脚本是通过读取这项设置里的默认导出路径来导出的。估计你这一项没有设,去随便设一个路径再试一试

路径修改之后,还是出错了。在原脚本点击是可以正常导出,还是新生成的脚本出错。感谢老师的耐心回复,实在不行,就这样点开导出也已经很方便了。再次感谢。
image

刚刚更新了,这次生成的脚本应该没问题了。请把原来生成的脚本,从action list移除,然后把生成出来的.lua文件也删除,然后再用新版的脚本重新生成一次

为了安全起见,我把原来的“用默认导出路径作为导出路径” 这个设计取消了,现在用的是导出窗口中“上次导出路径”,而如果这个路径为空的话,就转而使用当前工程的媒体文件夹路径

1 个赞

:joy::joy:还是提示那个错误,可能是我的问题,我再试试

你删掉action里导入的脚本了吗,删掉生成的文件了吗

是的,删了,重新加载,重新生成的

我猜可能还是读取了之前生成的脚本。

我测试了无论是脚本导出(shift),还是生成action导出(ctrl),都没有问题。

好嘞,那就是我个人这边的问题。我卸载重新清理一下,再试试。感谢~

如果你用新生成的那个脚本还是出错的话,请把那个文件上传上来,我看一下

DSY_一键导出.lua:33: attempt to index a nil value (local ‘file’) 请问 出现这个报错 如何解决呢?

如果你用的reaper不是6.34版本的话,升级成6.34试试

是6.34版的~ image

你可能还没保存过导出预制。需要至少有一个保存过的预制才行

感谢耐心讲解 。 6.34版本我设置直接渲染至原文件目录里。没有预制应该可以排除~
加载完放到工具栏里点击是不显示什么分轨 时间选区这些分类窗口的 直接就弹出错误提示~
6.27版是只有窗口里头空白。可能是版本不够 image
求解。

image
请截一下这个位置的图