人工智能AI 应用语音音频本地部署桌面应用【免费下载链接】auto-subsOn-device subtitle generation that connects directly to DaVinci Resolve, Premiere, and After Effects.项目地址https://gitcode.com/gh_mirrors/au/auto-subs点击查看免费下载本文基于开源仓库 .agents/skills/davinci-resolve-fusion 中的 Fusion 8 脚本手册快照撰写。auto-subs 是一个直接对接 DaVinci Resolve、Premiere 与 After Effects 的本地字幕生成工具在其 DaVinci Resolve 集成方案中Fusion 页面脚本化含 3D 场景与视图控制是自动化合成工作流的重要一环。阅读本文后你将掌握GL3DViewer类在 Fusion 对象模型中的位置、如何通过 Lua/Python 脚本获取 3D 视图实例以及用CenterSelected()、FitAll()、FitSelected()三个核心方法完成视图的居中、全局适配与选中对象适配并进一步组合父类GLViewer的完整视图控制能力。一、GL3DViewer 是什么Fusion 3D 视图的对象模型位置GL3DViewer是 Fusion 脚本对象模型中负责3D 视图3D Viewer的类。它本身位于 classes/gl3dviewer.md在类层次上继承自GLViewerObject └── GLViewer ← 2D 与 3D 查看器的公共父类 ├── GL3DViewer ← 本文主角3D 视图 └── GLImageViewer ← 2D 图像视图可操作 DoD / RoI / LUT这一继承关系在 00-index.md 的类索引 中有明确记录GL3DViewer (extends GLViewer)、GLImageViewer (extends GLViewer)而GLViewer本身是 Parent class for 2D and 3D viewers2D 与 3D 查看器的父类。理解这个层次关系对实际开发很关键GLView继承自FuView是承载预览的视图容器负责缓冲区A/B buffer、立体显示、Quad View 等显示层面的事务GLViewer及其子类才是真正查看内容的对象负责观察角度、缩放、通道显示等。GLView.CurrentViewer成员即返回当前使用的GLViewer实例参见 classes/glview.md。因此要脚本化控制 Fusion 的 3D 视图实际操作的正是GL3DViewer及其继承来的父类方法。二、获取 3D 视图实例从 Composition 到 GL3DViewer 的调用链在动手调用GL3DViewer的方法之前需要先拿到一个 3D 视图实例。Fusion 手册给出的标准链路是通过Comp:GetPreviewList()或comp.GetPreviewList()取得当前合成可用视图的列表从列表中取出左侧/右侧视图如Left或Right取该视图的View即GLView通过CurrentViewer成员拿到当前查看器GLViewer实例3D 场景下即GL3DViewer。Composition.GetPreviewList([include_globals])在 classes/composition.md 中描述为返回一张所有可用视图的表格该对象本身是一个 View 对象可传递给各种影响视图的函数如需浮动floating视图则用fusion:GetPreviewList。相应地classes/fusion.md 中的Fusion.GetPreviewList()会额外包含浮动视图这是两者仅有的差别。下面是 Python 版本的获取与调用示例结合GLViewer手册中的获取模式整理# 取左侧 GLViewer 并调用 GL3DViewer 的 FitAll comp fu.GetCurrentComp() # 或从 bmd.scriptapp(Fusion) 进入 left comp.GetPreviewList()[Left][View] left_viewer left.CurrentViewer if left_viewer is not None: left_viewer.FitAll() # 适配整个 3D 场景 left_viewer.Redraw() # 多数 Set 类方法后需要显式刷新Lua 版本同样可行-- 取左侧 GLViewer 并调用 FitAll local left comp:GetPreviewList().Left.View local left_viewer left.CurrentViewer if left_viewer ~ nil then left_viewer:FitAll() left_viewer:Redraw() end注意两点CurrentViewer可能为nil视图未就绪调用前务必判空原手册示例同样遵循这一防御式写法手册明确提示GLViewer 的大多数 Set 类方法调用后需要跟随一次Redraw()才能真正刷新显示见 classes/glviewer.md。三、GL3DViewer 的三个核心方法CenterSelected / FitAll / FitSelectedGL3DViewer在 gl3dviewer.md 中仅定义了三个专有方法它们全部面向视图适配这一 3D 场景操作场景方法作用按原手册描述参数返回值GL3DViewer.CenterSelected()将当前视图居中到选中对象上无—GL3DViewer.FitAll()将当前视图适配到整个场景无—GL3DViewer.FitSelected()将当前视图适配到选中的对象无—从命名与描述可以推断它们对应 Fusion 3D 视图中常见的界面操作工具栏上的 Fit、Fit Selected 等按钮自动化脚本中常用于FitAll()一键把观察视角拉远至完整看到整个 3D 合成适合作为脚本执行前的总览动作也适合渲染前检查场景完整性FitSelected()/CenterSelected()当在 Flow 中选中某个 3D 工具如几何体、摄像机、灯光、合并节点后把视图聚焦到该对象适合逐节点巡检、或围绕某个选中元素展开后续的旋转/平移观察。三个方法均无需参数调用后建议按前文所述调用Redraw()刷新视图。四、继承自 GLViewer 的完整视图控制能力GL3DViewer继承自GLViewer因此父类的全部方法均可直接调用。这部分能力让脚本不仅能适配还能精确控制观察位姿与显示选项。下表完整收录 classes/glviewer.md 中的方法含参数与返回类型方法说明参数 / 返回AreControlsShown()视图上是否正在显示控件→ booleanAreGuidesShown()视图上是否正在显示参考线→ booleanGetAlphaOverlayColor()当前使用的 alpha 叠加颜色→ numberGetAspectCorrection()是否正在矫正图像宽高比→ booleanGetChannel()当前显示的通道→ numberGetPos()/GetPosTable()视图位置Python 建议用 Table 版本→ number / tableGetRot()/GetRotTable()视图旋转角度Python 建议用 Table 版本→ number / tableGetScale()视图缩放zoom值→ numberLoadFile(filename)加载并显示一个文件的内容filename: stringRedraw()刷新查看器—ResetView()将显示重置为默认位置等—SaveFile(filename)保存当前显示的参数filename: stringSetAlphaOverlayColor(color)选择 alpha 叠加颜色color: numberSetAspectCorrection(enable)启用/禁用宽高比矫正enable: booleanSetChannel(channel, toggle)选择显示的通道channel: number; toggle: booleanSetPos(x, y[, z])设置视图位置z 可选x,y,z: number → booleanSetRot(x, y, z)设置视图旋转x,y,z: numberSetScale(scale)设置视图缩放scale: numberShowControls(enable)显示/隐藏视图控件enable: booleanShowGuides(enable)显示/隐藏参考线enable: boolean与 3D 视图适配方法组合后可以写出完整的检查 3D 场景脚本例如def frame_selected_3d(comp): left comp.GetPreviewList()[Left][View] viewer left.CurrentViewer if viewer is None: return viewer.FitSelected() # 适配选中的 3D 对象 viewer.SetRot(30, 0, 0) # 再微调观察角度继承自 GLViewer viewer.Redraw()需要注意GetPos/GetRot等单个返回值的方法在 Python 中应使用GetPosTable/GetRotTable这是手册明确提示的跨语言差异见 classes/glviewer.md。五、与 GLImageViewer 的分工3D 与 2D 视图的能力边界GLViewer有两个子类能力边界清晰见 00-index.md 与 classes/glviewer.mdGL3DViewer3D 场景视图专长是场景/对象的适配与居中本文三个核心方法GLImageViewer2D 图像视图额外提供 DoD、RoI、LUT 相关操作如ShowDoD、SetRoI、enableLUT、LoadLUTFile、ExportTo3DLUT、SaveLUTFile等详见 classes/glimageviewer.md。手册原文明确指出2D 图像查看器是GLImageViewer子类实例并额外拥有设置/显示 DoD、RoI 或 LUT 的方法——这些能力是 3D 查看器不具备的。反之FitAll/FitSelected/CenterSelected这类场景适配能力是GL3DViewer的定位所在。脚本开发时应先判断目标视图类型再选择相应 API避免把面向 2D 的 DoD/RoI 操作误用于 3D 视图。六、使用边界与文档可靠性说明文档来源与时效性本仓库中的 fusion-manual 是《Fusion 8 Scripting Guide Reference Manual》的 PDF 转 Markdown 快照可能过时或不准确。其可靠性排序依据 SKILL.md为官方resolve-api.txt仓库内为 references/resolve-api.txt 快照本机安装的最新版为准 经过验证的真实运行代码 本手册。在实际项目中应以实测结果为准。适用环境GL3DViewer属于 Fusion 对象模型在 DaVinci Resolve 的Fusion 页面中用于脚本化 3D 合成视图控制在独立版 Fusion 中同样适用。auto-subs 项目中与 Resolve 的 Lua 脚本化集成方式可参考 Resolve-Integration 下的集成说明。运行前提脚本可通过 Workspace → Scripts 菜单运行免费版与 Studio 均支持或借助fuscript外部运行仅 Studio参见 run-script.sh。七、小结GL3DViewer虽只定义了三个方法却是 Fusion 3D 视图自动化的入口配合GLView.CurrentViewer获取实例再用CenterSelected()、FitAll()、FitSelected()完成视图聚焦加上继承自GLViewer的位姿、缩放、通道与参考线控制即可在 DaVinci Resolve 的 Fusion 页面中实现完整的 3D 视图脚本化操作。更进一步可阅读 00-index.md 与 04-object-model.md 了解完整的对象模型将视图控制嵌入到更大的合成自动化流程中。赞分享人工智能AI 应用语音音频本地部署桌面应用【免费下载链接】auto-subsOn-device subtitle generation that connects directly to DaVinci Resolve, Premiere, and After Effects.项目地址https://gitcode.com/gh_mirrors/au/auto-subs点击查看免费下载相关推荐AutoSubs 中的 Fusion 脚本类参考FloatViewFrame 帧窗口激活与视图控制实战AutoSubs 中的 Fusion 脚本类参考FloatViewFrame 帧窗口激活与视图控制实战 本篇文章以仓库内 .agents/skills/dav人工智能AI 应用语音音频本地部署桌面应用DaVinci Resolve / Fusion 脚本 API 参考Preview 类方法详解与 AutoSubs 项目中的预览实践DaVinci Resolve / Fusion 脚本 API 参考Preview 类方法详解与 AutoSubs 项目中的预览实践 本篇技术指南以 .age人工智能AI 应用语音音频本地部署桌面应用AutoSubs 与 DaVinci Resolve 脚本开发Fusion BinClip 类 API 参考与媒体池编程实战AutoSubs 与 DaVinci Resolve 脚本开发Fusion BinClip 类 API 参考与媒体池编程实战 本文以仓库内置的《Fusion人工智能AI 应用语音音频本地部署桌面应用上一篇Terminus OS存储解决方案深度评测JuiceFS与MinIO性能对比下一篇VoodooI2C终极macOS I2C控制器驱动解决方案让Hackintosh触摸板完美工作创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考