取二者优点,采用empty item作为文本输入,生成midi item承载字幕FX。
实现步骤播放中打点即在播放中马上确定empty item的起始、结束与长度。采用这两个action组合:
实际效果:
批量输入字幕
采用python自带库tkinter,强制要求一行对应一个item。麻烦的地方在于检测Text Widget的更改来生成行数的提示,网上有不少类似实现可以参考,使用Change和Modify来检测无区别。
实际效果:
生成字幕轨道
刚开始想采用生成的轨道为“子轨道”,实现方式为:
如此步骤是因为REAPER一旦把轨道变成父轨道,在父轨道下方的轨道自动会成为子轨道。
后来放弃上述方案,因为某些情况下,多个子轨道使用GetMediaTrackInfo_Value方法获取的最后一个子轨道depth不正确。在经过轨道移动等操作后又正常,疑似是bug。
可能直接获取chunk的方式会获得正常的层级数,我没有测试
最终使用的是直接生成一条字幕轨,并根据指定轨道名字删除本来已存在的字幕轨。
实际效果:
脚本地址
测试环境:
脚本gist地址:https://gist.github.com/wastee/b3184227e51b3efc8c45a4a6daa0e683
视频演示:https://www.bilibili.com/video/BV1Sz4y1U7qr/
扩展畅想dsynoiz 发表于 21-1-14 11:20
用近来做的脚本做个补充
导入字幕:就是楼主提到的把做好的srt格式的字幕导入工程中并建立empty item
建 ...
当归蛋 发表于 21-1-14 14:23
加载video processor,通过读取midi item名字实现显示字幕的效果.
最后这一步咋个操作呢?