Fusion 脚本 API 解析:GL3DViewer 类与 3D 视图的居中与适配控制(AutoSubs 项目实战参考)
人工智能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),仅供参考

相关新闻

3 步命令搞定抖音封面下载:从单条到批量的本地原图

3 步命令搞定抖音封面下载:从单条到批量的本地原图

3 步命令搞定抖音封面下载:从单条到批量的本地原图 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support.…

2026/10/13 2:11:25 阅读更多 →
AI图像识别微信小程序demo实战:云函数集成第三方接口全流程

AI图像识别微信小程序demo实战:云函数集成第三方接口全流程

简介:人工智能实战微信小程序演示包是一份面向微信小程序初学者的实战工程,围绕人工智能主题展示多种交互场景。资源共59个文件,包含12个逻辑脚本、7个样式文件、5个页面结构、5个配置文件以及23张图片素材,还附带动效、封面图及说…

2026/10/13 2:11:25 阅读更多 →
GDAL 格网化(Gridding)实战指南:从散点插值到数据度量

GDAL 格网化(Gridding)实战指南:从散点插值到数据度量

GIS遥感数据工程 【免费下载链接】gdal GDAL is an open source MIT licensed translator library for raster and vector geospatial data formats. 项目地址: https://gitcode.com/gh_mirrors/gd/gdal 点击查看 免费下载 导读 本文围绕 GDAL 官方的格网化教程&a…

2026/10/13 2:11:25 阅读更多 →

最新新闻

Mathesar 0.5.0 版本详解:表单构建器、记录查看体验与安装流程的全面升级

Mathesar 0.5.0 版本详解:表单构建器、记录查看体验与安装流程的全面升级

数据库后端前端协作 【免费下载链接】mathesar An intuitive spreadsheet-like interface that lets users of all technical skill levels view, edit, query, and collaborate on Postgres data directly. 100% open source and self hosted, with native Postgres access co…

2026/10/13 2:56:40 阅读更多 →
把 79 个数据工具塞进一个 Python 脚本,再用 n8n 排成日更流水线:TaoToken 统一 Key 接入实践

把 79 个数据工具塞进一个 Python 脚本,再用 n8n 排成日更流水线:TaoToken 统一 Key 接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 2:56:40 阅读更多 →
OpenSpiel 中的 Hive 棋实现:面向 AlphaZero 的六边形棋盘建模、UHP 协议与动作空间设计

OpenSpiel 中的 Hive 棋实现:面向 AlphaZero 的六边形棋盘建模、UHP 协议与动作空间设计

人工智能强化学习深度学习 【免费下载链接】open_spiel OpenSpiel is a collection of environments and algorithms for research in general reinforcement learning and search/planning in games. 项目地址: https://gitcode.com/gh_mirrors/op/open_spiel 点击…

2026/10/13 2:56:40 阅读更多 →
Ask Dr. Andrew Huberman 系统提示词深度解析:TheBigPromptLibrary 中神经科学人物模拟 GPT 的指令设计

Ask Dr. Andrew Huberman 系统提示词深度解析:TheBigPromptLibrary 中神经科学人物模拟 GPT 的指令设计

提示工程AI 安全治理 【免费下载链接】TheBigPromptLibrary A collection of prompts, system prompts and LLM instructions 项目地址: https://gitcode.com/gh_mirrors/th/TheBigPromptLibrary 点击查看 免费下载 本篇技术指南围绕 TheBigPromptLibrary 仓库中收…

2026/10/13 2:56:40 阅读更多 →
C#反编译实战:从dll/exe还原可编译源码的完整流程与避坑

C#反编译实战:从dll/exe还原可编译源码的完整流程与避坑

简介:这份C#反编译工具包面向需要查看、分析和理解.NET程序集内部结构的开发者,适用于代码逆向、调试排错和技术学习等场景。压缩包共16个文件,大小2.19MB,以dll、exe、txt、rtf等类型为主,其中包含RedGate Reflector及…

2026/10/13 2:56:40 阅读更多 →
Bresenham画圆算法:整数微分与八分对称的嵌入式图形实现

Bresenham画圆算法:整数微分与八分对称的嵌入式图形实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 2:55:39 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →