【AviUtl2 插件宣传】AutoZWJ — 最新的 REAPER / MIDI 音MAD对轨插件
TNOT
2026年06月23日 05:34

(本文档可能会随着插件版本更新而变动)

我和很多做音MAD的朋友一样,工作流里同时用着 REAPER AviUtl2

REAPER 里剪好音频、排好物件,然后……就要在 AviUtl2 里对着时间轴,一个一个地手动创建物件、对齐位置、复制效果链。一首曲子几十上百个音符,真的会累死!还好,有像 RPPtoEXO​ 这样的外部软件辅助,可这依然很麻烦,步骤实在繁琐……

于是有了 AutoZWJ 自动转(Z)物(W)件(J),真土的名字! ——它会读取你的 REAPER 工程或 MIDI 文件,以你选中的物件为模板,自动把所有素材批量生成到 AviUtl2 时间轴上。

(抱歉logo还没设计好)

开源免费,MIT 协议。 项目地址:TNOTawa/AutoZWJ​


它能做什么

核心思路很简单:你已经在时间轴上做好了一个"样板"物件——那就用它当模板。

插件会读取你选中的物件,以及它的效果链(滤镜效果这些),然后为 REAPER/MIDI 里的每一个素材生成一个同样的物件,只是位置、时长、速度这些内容自动替换。

(演示MIDI:柴又。需要注意,对MIDI物件的解析将在下一个版本才会加入)

流程图大概是这样:

代码块
PlainText
自动换行
复制代码
选中模板物件 → 右键 → [AutoZWJ] 配置导入
                        ↓
                  在弹出的窗口中调整参数
                        ↓
              点击"确定" → 批量生成!
复制成功

功能详解

我挑几个我觉得最实用的功能来说,大家也可以自行探索!

1. 效果链自动继承

假设你的模板物件上挂了一个"色度键"滤镜,还调了"亮度/对比度",甚至绑了一些复杂的运动曲线

AutoZWJ 会把这一整套效果链原封不动地复制到每一个新物件上。

(左:AutoZWJ 的效果链编辑器;右:对应的模板物件)

你只需要做一个样板,剩下交给它。

2. 效果链编辑器

有些数值你不想照抄模板。比如模板里"亮度"设了 50,但你想让每一帧根据 MIDI 力度动态变化。

打开效果链编辑器,勾选你想改的参数,就能单独改写它的值。

这个面板是三列抽屉式布局,点击导航栏上的"效果链编辑"按钮就会从右边滑出来。

(从图片中就能看出Bug不少了啊喂!!!)

3. 变量与表达式

如果你想让每个物件的参数根据它自身的属性自动计算,可以写表达式。格式和平时写数学公式差不多:

代码块
PlainText
自动换行
复制代码
$note.velocity$ / 127 * 200
复制成功

意思是:取这个音符的力度值,按比例映射到 0~200 的范围。

支持的变量非常多,点击输入框旁边的下拉箭头就能看到全部列表:

下面还有(都是洋文谁看得懂啊!!!)

内置了 randclampround 等计算函数,做一些随机抖动或者边界限制都很方便。

表达式写错了也妹有关系,插件会静默跳过这一项,不影响其他参数的生成。

4. 多模板切换

你可以在时间轴上同时选中多个模板物件(比如一个"圆形"、一个"方形"、一个"三角形")。

AutoZWJ 支持三种多模板分配策略:

哇!

你可以玩出很多花样来。终于可以不用羡慕 OtomadHelper 用户了!

5. 自动层分配

AutoZWJ 内置了层分配算法,会自动为每个新物件找到合适的图层:

请输入文本

有三种分配策略可选:

  • 优化模式 — 能塞就塞,图层最少

  • 持续累加 — 优先生成在新图层,新的音符总是最高图层

  • 交替换行 — 我说实话没啥用,纯粹是因为 RPPtoEXO 也有我才加的(

正常使用默认的"优化模式"就很好了。

6. 翻转与预设 — 拖拽就能调

给物件加翻转效果,在效果链编辑器里是可视化的。翻转预设可以像卡片一样在效果列表里拖拽,放到你想让它生效的位置。

这实在是太伟大了有没有懂的

7. 更多选项

还有很多功能,就不多说啦,看名字你大概就知道是干什么的:

  • 交替翻转:物件自动交替左右翻转(左右抽) / 上下翻转 / 旋转

  • 音符对齐:生成物件的时长自动对齐音符长度

  • 间隙生成:只在音符间空白处生成物件

  • 时间偏移:整个工程统一提前或延后

  • 轨道树筛选:勾选你想要的轨道

  • 反转轨道顺序:生成的物件图层倒序排列


支持的格式

目前支持这些:RPPMIDLRC

以后可能会加更多格式,比如 USTUSTX 这些的,有需要可以在 Issue 里提哦!


怎么用

第一步:加载工程

在 AviUtl2 时间轴的空白处右键 → [AutoZWJ] 选择音频工程... (也可以直接执行第二步,会自动引导你到这里)→ 选你的 .rpp.mid 等文件。

应该都会吧?

加载后会自动解析轨道结构,在界面的轨道树里就能看到了。

好丑陋的UI!!!!!!!!!!!!!!

第二步:选模板

在时间轴上选中你想当模板的物件。选一个也行,选多个也行。

第三步:配置 & 生成

右键选中的模板物件 → [AutoZWJ] 配置导入... → 弹出配置窗口。

调整好参数后,点一下"确定"——生成就完成了!恭喜www


关于开发

AutoZWJ 是使用 Vibe Coding 进行 C++ 编写的,基于 AviUtl2 的 .aux2 插件系统。界面用的是 Dear ImGui。

这个插件的灵感来自 RPPtoEXO​,站在前人的肩膀上,我做了一些我觉得能让工作流更顺滑的改进——比如效果链编辑器、变量系统、多模板映射这些。

整个开发大概花了几个月的摸鱼时间。如果你对 AviUtl2 插件开发感兴趣,项目是开源的,欢迎来提 IssuePR ヾ(•ω•`)o


已知的一些局限

不得不坦诚交代这些缺陷,不然我绝对会挨喷的:

  • i18n 未完成:整个插件只有中文,对不起了外国友人!

  • UI 还在打磨:有些交互细节还不够顺手,而且现在用的还是丑丑的 ImGUI 默认样式,我会慢慢优化!

如果你在使用中碰到问题,去 GitHubIssue,我尽量去修!(滑跪


后续计划

  1. 完善各方面的稳定性

  2. 补上英文和日文翻译

  3. 添加更多辅助功能,如和弦物件快捷创建

  4. 优化 UI 交互体验

有什么想法也欢迎在评论区或 Issue 提出来——虽然我不一定都能实现,但我会认真看每一条的!


下载与安装

  1. GitHub Releases​ 下载 AutoZWJ.aux2

  2. 放进 AviUtl2 的 Plugin 目录

  3. 启动 AviUtl2,搞定

未来 i18n 完善后,也会登录 Aviutl2 catalog 的,届时还能体验到插件的自动更新!

如果你会用 CMake,也可以自己编译——不过除了开发者和贡献者,谁会这么做呢(


最后(很重要!!!)

目前还是早期测试版,各方面都粗糙得很。

其实写这篇文章一个很大的原因,就是太缺用户反馈了。一个人闷头开发,真的很需要大家的意见来帮这个插件长成它该有的样子。

做这个插件最开心的事,就是听到有人说"这个省了我好多时间"。!

如果你也是 REAPER + AviUtl2 的工作流,试试看 AutoZWJ。觉得好用欢迎去 GitHub 点个 Star ⭐,有问题就来评论Issue 交流。

感谢阅读(づ ̄3 ̄)づ╭❤~

TNOT 2026 / 6 / 23