用途
该技能面向 DaVinci Resolve 与 Fusion 的脚本编写和自动化,主要帮助用户:
- 编写 DaVinci Resolve 自动化脚本(Lua/Python),覆盖项目、时间线、媒体池、渲染等操作。
- 构建或编辑 Fusion 合成、宏(.setting 文件)与动画。
- 创建可复用的 Fusion 模板,如转场、生成器、标题、效果。
主要能力与资料结构
技能内置以下内容:
references/resolve-api.txt:官方 Resolve 脚本 README.txt 的纯文本快照,是 Resolve API 的权威来源。若本机安装了 Resolve,位于…/Blackmagic Design/DaVinci Resolve/Developer/Scripting/README.txt的实时文件为最新版本,优先于快照。可用scripts/update-resolve-api.sh(macOS/Linux)或scripts/update-resolve-api.bat(Windows)在 Resolve 更新后重新同步。references/animation.md:Fusion 动画,包括关键帧、手柄、缓动、连接属性。references/macro-authoring.md:构建 .setting 宏、暴露/隐藏控件。references/fusion-templates.md:将转场、生成器、标题、效果制作为宏。references/fusion-manual/:Fusion 8 脚本手册,含00-index.md索引、01-introduction.md至06-class-hierarchy.md,以及classes/<ClassName>.md(46 个类各一个文件)。该手册由 PDF 转换而来,是较旧的快照,可能过时或不准确;当与 Resolve API 文档或实际可运行代码冲突时,以后两者为准。scripts/:run-script.sh/.bat(通过 fuscript 运行脚本,仅 Studio 版)、update-resolve-api.sh/.bat(重新同步 resolve-api.txt)、split-fusion-manual.py(从转换后的手册 PDF 重新生成 fusion-manual/)。
使用方式
编写 Resolve 自动化脚本
从 references/resolve-api.txt 开始。可参考 DaVinci Resolve 自带的示例脚本,它们未打包进本技能,需从本地安装目录的 Scripting/Examples 子文件夹读取:
- macOS:
/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/Examples - Windows:
%PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting\Examples - Linux:
/opt/resolve/Developer/Scripting/Examples(或/home/resolve/...)
更可靠的 Resolve API 实际用法参考是 AutoSubs 项目中的 AutoSubs Lua 服务器 autosubs_core.lua,它展示了生产环境中用于时间线、媒体池、渲染及驱动 Fusion 宏的 API 用法。
运行脚本
有两种方式,取决于 Resolve 版本:
- 菜单方式(免费版和 Studio 版均可用):将 .lua/.py 文件放入 Resolve 的 Fusion Scripts 文件夹,然后在 Resolve 中打开 Workspace → Scripts(顶部菜单)选择。放入 Utility 子文件夹可在所有页面列出。Scripts 文件夹路径:
- macOS:
~/Library/Application Support/Blackmagic Design/DaVinci Resolve/Fusion/Scripts(或/Library/...供所有用户) - Windows:
%APPDATA%\Roaming\Blackmagic Design\DaVinci Resolve\Support\Fusion\Scripts(或%PROGRAMDATA%\...供所有用户) - Linux:
$HOME/.local/share/DaVinciResolve/Fusion/Scripts(或/opt/resolve/Fusion/Scripts)
- macOS:
- 外部运行器(仅 DaVinci Resolve Studio):
scripts/run-script.sh <file.lua>(macOS/Linux)或scripts/run-script.bat(Windows)直接调用 Resolve 的 fuscript,可从任意位置运行脚本,无需经过菜单。对 AI 智能体通常更方便,但外部/fuscript 调用脚本 API 需要 Resolve Studio,免费版不支持。菜单方式两者都支持,是可靠的备选。
构建或编辑 Fusion 宏(.setting)
阅读 references/macro-authoring.md,了解两层控制模型(UserControls 与已发布的 InstanceInputs)及常见陷阱。工具/类细节可打开 references/fusion-manual/00-index.md 跳转到具体类文件。
动画
阅读 references/animation.md。最大的陷阱:SetKeyFrames() 的手柄坐标是相对的,但 .setting 文件存储的是绝对坐标。
制作可复用模板
阅读 references/fusion-templates.md,用于 Edit 和 Cut 页面的转场/生成器/标题/效果。
高效浏览 Fusion 手册
手册较大,按主题和类拆分为单文件。不要整体阅读。打开 references/fusion-manual/00-index.md,根据一行摘要找到所需章节或类,只打开该文件。按关键词查找时,在 references/fusion-manual/ 中 grep,而不是滚动。
如需重新生成拆分(例如从更新版手册),可用 Mistral Document AI(https://console.mistral.ai/build/document-ai/ocr-playground)将 Blackmagic 的 Fusion 脚本 PDF 免费转换为 Markdown,然后运行 python3 scripts/split-fusion-manual.py <converted.md>。
提示
- Resolve/Fusion 同时支持 Lua 和 Python,两者对象模型相同,见
fusion-manual/02-scripting-languages.md。 - 用
tool.Input = modifier.Result将输入连接到修改器;用tool.Input = nil断开,再用tool:SetInput(...)设置静态值。 - 更改宏的已发布控件后,重新加载合成或拖入新的节点实例——Inspector 布局按实例缓存。
- 编辑 .setting 文件时,Fusion Setting Highlighter VS Code 扩展可提供正确高亮(含内嵌 Lua)。安装命令见
references/macro-authoring.md,或访问 https://github.com/tmoroney/fusion-setting-highlighter。
适用场景
- 需要批量或自动化处理 Resolve 项目、时间线、媒体池、渲染任务。
- 需要创建或修改 Fusion 宏、模板、动画效果。
- 需要查阅 Resolve 脚本 API 或 Fusion 类细节。
限制
- 外部/fuscript 运行脚本仅支持 DaVinci Resolve Studio,免费版只能用菜单方式。
- Fusion 8 脚本手册为较旧快照,可能过时或不准确,冲突时以 Resolve API 文档和实际可运行代码为准。
- 示例脚本未打包,需从本地安装目录读取。
- 资料未提供具体收费、价格、平台兼容性细节或效果保证。