mcpField
D
davinci-resolve-fusion

davinci-resolve-fusion

github.com/tmoroney创意与媒体4.5k57 次安装3 天前更新
代码仓库

关于 davinci-resolve-fusion

为 DaVinci Resolve 提供 Lua 或 Python 自动化脚本参考与辅助脚本,也涵盖 Fusion 合成、宏和动画的创建与编辑。适用于构建 Resolve 工作流的用户,并区分权威 API 文档与较旧的 Fusion 参考资料。

主要功能

  1. 01Resolve 脚本 API 参考
  2. 02Lua 和 Python 示例
  3. 03Fusion 宏编写指南
  4. 04动画与模板参考资料
  5. 05API 和手册更新脚本

适用场景

  1. 01自动处理时间线、媒体池和渲染
  2. 02创建或编辑 Fusion 宏
  3. 03制作 Fusion 动画合成
  4. 04制作可复用的转场或标题模板

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tmoroney/auto-subs --skill davinci-resolve-fusion

安装后在 Claude Code 中输入/davinci-resolve-fusion确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
animation.md
references/fusion-manual/
00-index.md
01-introduction.md
02-scripting-languages.md
03-scripting-and-debugging.md
04-object-model.md
05-gui-and-askuser.md
06-class-hierarchy.md
references/fusion-manual/classes/
bezierspline.md
binclip.md
binitem.md
binmanager.md
binstill.md
childframe.md
childgroup.md
composition.md
floatviewframe.md
flowview.md
fontlist.md
fuframe.md
fusion.md
fuview.md
gl3dviewer.md
glimageviewer.md
glpreview.md
glview.md
glviewer.md
gradient.md
graphview.md
hotkeymanager.md

详细介绍

DaVinci Resolve 与 Fusion

此技能可帮助你编写 DaVinci Resolve 自动化脚本(Lua/Python),并创建或编辑 Fusion 合成、宏(.setting 文件)和动画。它打包了一组参考资料和辅助脚本,让你可以创建新内容,而不只是修改现有内容。

事实依据——请先阅读

如果资料之间存在冲突,请按以下优先级采信:

  1. references/resolve-api.txt — 官方 Resolve 脚本 README.txt,以纯文本形式保存(采用等宽字体和列对齐格式,以 Markdown 渲染后难以阅读)。这是 DaVinci Resolve API 的权威资料。它是一个快照;如果已安装 Resolve,安装目录中的实时文件 …/Blackmagic Design/DaVinci Resolve/Developer/Scripting/README.txt 是最新版本,并取代此快照。Resolve 更新后,请使用 scripts/update-resolve-api.sh(macOS/Linux)或 scripts/update-resolve-api.bat (Windows)重新同步。
  2. 经过测试且可运行的代码 — 对于用法细节(具体参数结构、返回值、顺序),实际运行正确的脚本比任何文档都更可靠。
  3. references/fusion-manual/ — Fusion 8 脚本手册。可用它了解 Resolve API 文档未涵盖的 Fusion 专属概念(对象模型、样条曲线、工具、GUI)。该手册由 PDF 转换而来,是一份可能过时或不准确的旧快照,因此,对于其中也有说明的内容,应以(1)和(2)为准。

每个手册文件都带有重复上述内容的横幅,这样即使只打开一个文件,警告也会随内容一同显示。

这里有什么

references/
  resolve-api.txt           # Resolve scripting API — SOURCE OF TRUTH (plain text; view monospace)
  animation.md              # Fusion animation: keyframes, handles, easing, connecting props
  macro-authoring.md        # Building .setting macros, exposing/hiding controls
  fusion-templates.md       # Transitions, generators, titles, effects as macros
  fusion-manual/
    00-index.md             # START HERE for the manual — map of every section & class
    01-introduction.md … 06-class-hierarchy.md
    classes/<ClassName>.md  # one file per Fusion class (46 of them)
scripts/
  run-script.sh / .bat          # run a script via fuscript (Studio only)
  update-resolve-api.sh / .bat  # re-sync resolve-api.txt from your Resolve install
  split-fusion-manual.py        # regenerate fusion-manual/ from a converted manual PDF

如何使用

编写 Resolve 自动化脚本(时间线、媒体池、渲染、项目管理):从 references/resolve-api.txt 开始。工作示例请参阅下文的“示例脚本”。有关实际运行方法,请参阅下文的“运行脚本”。

示例脚本

DaVinci Resolve 附带了一些有代表性的示例脚本。为避免重新分发 Blackmagic 的代码,本技能不包含这些脚本;请从本地安装目录的 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 中前往工作区 → 脚本(顶部菜单), 并从列表中选择该文件。将文件放在 Utility 子文件夹下,即可在所有页面中显示。 Scripts 文件夹的位置(摘自 references/resolve-api.txt):

  • 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)

外部运行器(仅适用于 DaVinci Resolve Studio)。 scripts/run-script.sh <file.lua> (macOS/Linux)或 scripts/run-script.bat(Windows)会直接调用 Resolve 的 fuscript,因此 你可以在任何位置运行脚本,无需通过菜单。此方式通常更方便,尤其适用于 AI Agent,但通过外部方式调用 fuscript 的脚本 API 需要 Resolve Studio——免费版不支持。上述菜单方式适用于两个版本, 因此是可靠的备用方案。

构建或编辑 Fusion 宏(.setting):阅读 references/macro-authoring.md ,了解双层控件模型(UserControls 与已发布的 InstanceInputs)以及常见问题。要查看工具/类的详细信息, 请打开 references/fusion-manual/00-index.md,并跳转到相应的类文件。

制作动画(关键帧、缓动、字符/单词效果):阅读 references/animation.md。 最需要注意的一点:SetKeyFrames() 的句柄坐标是相对坐标,而 .setting 文件中存储的是绝对坐标。

制作可复用模板(用于 Edit 和 Cut 页面的转场/生成器/标题/效果):阅读 references/fusion-templates.md。

高效浏览 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(...) 设置静态值,即可断开连接。
  • 更改宏已发布的控件后,请重新加载合成,或添加一个新的节点实例——检查器布局会按实例缓存。
  • 编辑 .setting 文件时,Fusion Setting Highlighter VS Code 扩展可提供正确的语法高亮(包括嵌入的 Lua)。安装 命令请参见 references/macro-authoring.md,或访问 https://github.com/tmoroney/fusion-setting-highlighter。

评论

支持 Markdown