Choose your operating system:
Windows
macOS
Linux
目标
你将在本快速入门指南中了解到详细的步骤,学会使用制片环境中的 摄像头校准 插件校准 镜头失真 和 节点偏移 。
目的
-
将你的摄像机连接到 虚幻引擎(UE) ,以便提供实时视频内容。
-
使用"摄像机校准"插件校准镜头失真。
-
使用"摄像机校准"插件将追踪系统的节点偏移校准到镜头。
1 - 必要设置
对于本指南,你将使用制片摄像机、光学摄像机追踪系统和AJA Kona 5作为源视频输入。
主时钟是可选的,可用于向AJA Kona 5提供时间码和同步。在制片环境中,建议还将制片摄像机和摄像机追踪系统随同步和时间码一起提供。若要继续对实时视频使用CG合成,你将需要这些内容,以确保各个图层是同步的。你可以视需要使用Preston Live Link插件或Live Link Master Lockit插件,将焦点、光圈和焦距流送到UE。
-
创建新的虚幻引擎项目。选择 电影、电视和现场活动(Film, Television, and Lived Events) 类别,然后点击 下一步(Next) 。
-
选择 虚拟制片(Virtual Production) 模板,然后点击 下一步(Next) 。
-
输入文件位置和项目名称,然后点击 创建项目(Create Project) 。
-
编辑器加载之后,点击 设置(Settings)> 插件(Plugins) ,打开 插件菜单(Plugins Menu) 。
-
选择 虚拟制片(Virtual Production) 类别,然后启用 摄像机校准(Camera Calibration) 和 LiveLink 插件。在弹出框上选择 是(Yes) ,然后点击 立即重启(Restart Now) 以重启编辑器。
阶段成果
你启用了"摄像机校准"和LiveLink插件,并重启了编辑器。现在你可以继续校准流程。
2 - 创建你的媒体配置文件
你可以使用 媒体配置文件 设置视频源输入和输出,以及时间码和同步格式。在本分段中,你将创建新的媒体配置文件以设置这些参数。
你将只需要来自制片摄像机的视频源,以设置镜头失真和节点偏移校准。时间码和同步不是必需的,但必须知道如何在媒体配置文件中对其进行设置,以将CG合成同步到视频源。
-
点击 媒体配置文件(Media Profile)> 新建空媒体配置文件(New Empty Media Profile) ,打开 媒体配置文件(Media Profile) 窗口。
-
选择 媒体配置文件(MediaProfile) ,然后点击 选择(Select) 。
-
选择 目标 文件夹,然后为你的配置文件输入名称。
-
点击 保存(Save) 。
-
-
展开 输入(Inputs) 下的 媒体源(Media Sources) 类别,然后点击 MediaSource-01 下拉菜单。选择 Aja媒体源(Aja Media Source) 选项。
-
展开 AJA 类别,然后点击 配置(Configuration) 下拉菜单。选择你的 设备(Device) 、 源(Source) 、 分辨率(Resolution) 、 标准(Standard) 和 帧率(Frame Rate) 。点击 应用(Apply) 。
-
点击 时间码格式(Timecode Format) 下拉菜单,然后选择你的格式。LTC是视频源中嵌入的时间码。
-
启用 是sRGBInput(Is sRGBInput) 复选框以将YUV转换为RGB。
时间码设置
-
向下滚动到 时间码提供程序(Timecode Provider) 分段。
-
启用 覆盖项目设置(Override Project Settings) 复选框。
-
点击 时间码提供程序(Timecode Provider) 下拉菜单,然后从列表中选择 AJA SDI输入(AJA SDI Input) 。
-
启用 使用专用引脚(Use Dedicated Pin) 复选框(这是附加到AJA Kona 5的分支电缆上的专用TC电缆)。
-
-
点击 LTConfiguration 下拉菜单将其展开,然后选择你的 设备(Device) 、 LTC索引(LTC Index) 和 帧率(Frame Rate) 。点击 应用(Apply) 。
同步锁定设置
-
向下滚动到 同步锁定(Genlock) 分段。
-
启用 覆盖项目设置(Override Project Settings) 复选框。
-
点击 自定义时间步长(Custom Time Step) 下拉菜单,然后从列表中选择 AJA SDI输入(AJA SDI Input) 。
-
启用 将引用用于(Use Reference in) 复选框。
-
-
点击 配置(Configuration) 下拉菜单,然后选择你的 设备(Device) 、 源(Source) 、 分辨率(Resolution) 、 标准(Standard) 和 帧率(Frame Rate) 。点击 应用(Apply) 。
-
在工具栏上点击 应用(Apply) 和 保存(Save) ,以保存你的更改。
阶段成果
在本分段中,你创建了新的媒体配置文件,并配置了视频源输入。你还添加了可选的时间码和同步锁定,用于在此阶段使用了主时钟的情况下进行同步。
3 - 创建镜头文件
镜头文件 提供了失真和节点偏移数据的计算和存储,这些数据特定于每种"镜头到摄像机"组合。如果镜头、追踪对象位置或摄像机主体发生变化,建议你创建新的镜头文件。
-
右键点击 内容浏览器(Content Browser) ,然后点击 杂项(Miscellaneous)> 镜头文件(Lens File) 以创建新的镜头文件。
-
在 内容浏览器(Content Browser) 中,双击打开 镜头文件(Lens File) 。
-
在 视口设置(Viewport Settings) 分段下,将 透明度(Transparency) 更改为 0.0 。这将控制CG元素在视频源图像上的透明度。
-
透明度为0将隐藏所有CG元素。
-
透明度为1将仅显示CG元素。
-
-
点击 摄像机(Camera) 下拉菜单,然后从列表中选择连接的摄像机。点击 媒体源(Media Source) 下拉菜单,选择你之前创建的媒体配置文件。
-
在 镜头信息(Lens Info) 分段下,输入 镜头型号名称(Lens Model Name) 。推荐的命名规范是,将摄像机主体名称和焦距组合起来。
-
添加 镜头序列号(Lens Serial Number) (如果可用)。添加 镜头型号(Lens Model) (目前仅支持球状镜头型号)。输入 传感器尺寸(Sensor Dimensions) 以匹配你的摄像机。
-
点击 保存镜头信息(Save Lens Information) 。
需要为每种"镜头到摄像机主体"组合创建一个新的镜头文件。
属性摘要
在"镜头文件(Lens File)"窗口底部,你将发现应用于镜头文件的当前属性的摘要。在此阶段,大部分属性显示为空白或不适用(N/A)。随着你继续校准,这些属性将更新。
阶段成果
在本分段中,你创建了新的镜头文件,添加了镜头和摄像机信息。
4 - 创建你的虚拟Live Link主题
虚拟Live Link主题的作用是,在缺少用于流送焦点、光圈和焦距值的设备时,你可以手动输入这些值。如果要使用Preston MDR Unit (分段7) 或Ambient Master Lockit Plus设备 (分段8) 将镜头数据流送到UE,请前往相关分段进行设置。
在本分段中,你将创建新的Live Link虚拟主题,以手动输入聚焦、光圈和变焦的值。
-
右键点击 内容浏览器(Content Browser) ,然后选择 Live Link > 蓝图虚拟主题(Blueprint Virtual Subject) 。
-
从下拉菜单选择 Live Link摄像机(Live Link Camera) 角色(Role) ,然后点击 确定(OK) 。
-
在 内容浏览器(Content Browser) 中,双击打开虚拟主题资产。
-
-
点击 + 变量(+ Variable) 以添加新变量。将变量命名为 Focus 。转到 细节(Details) 面板,将 变量类型(Variable Type) 设置为 浮点(Float) 。启用 可编辑实例(Instance Editable) 复选框。
-
重复以上步骤两次,创建两个额外的浮点变量,分别名为 Zoom 和 Iris 。
-
右键点击 事件图表(Event Graph) ,然后搜索并选择 更新虚拟主题静态数据(Update Virtual Subject Static Data) 。
-
将 Update Virtual Subject Static Data 节点连接到 Event On Initialize 节点。
-
右键点击 Update Virtual Subject Static Data 节点中的 静态数据(Static Data) 引脚,然后选择 分割结构体引脚(Split Struct Pin) 。
-
-
启用 焦距(Focal Length) 、 光圈(Aperture) 和 对焦距离(Focus Distance) 复选框,如下所示。
-
右键点击 事件图表(Event Graph) ,然后搜索并选择 更新虚拟主题帧数据(Update Virtual Subject Frame Data) 。
-
将 Update Virtual Subject Frame Data 节点连接到 Event On Update 节点。
-
右键点击 Update Virtual Subject Frame Data 节点中的 帧数据(Frame Data) 引脚,然后选择 分割结构体引脚(Split Struct Pin) 。此事件将在每个更新函数上触发,并且将用于更新可用于每个帧的FIZ数据。
-
-
将 Zoom 变量连接到 焦距(Focal Length) 输入引脚。
-
将 Iris 变量连接到 光圈(Aperture) 输入引脚。
-
将 Focus 变量连接到 对焦距离(Focal Distance) 输入引脚。
-
编译(Compile) 并 保存(Save) 蓝图。
-
阶段成果
在本分段中,你创建了新的Live Link虚拟主题并进行了配置,以便用于将Focus、Iris和Zoom手动输入到你的电影摄像机Actor。
5 - 将你的源连接到Live Link
在本分段中,你将使用Live Link来连接虚拟主题和用于追踪摄像机的Optitrack源。
-
转至 窗口(Window) > Live Link 以打开 Live Link 窗口。
-
要添加摄像机追踪,请点击 + 源(+ Source)> OptiTrack源(OptiTrack Source) ,然后点击 创建(Create) 。
-
要添加Live Link虚拟主题,请点击 + 源(+ Source)> 添加虚拟主题(Add Virtual Subject) 。选择在之前分段中创建的 虚拟主题(Virtual Subject) ,然后点击 添加(Add) 。
-
要手动输入 Focus 、 Iris 和 Zoom 值,请在 Live Link 窗口中选择 虚拟摄像机(Virtual Camera) ,然后在 默认(Default) 分段中输入值。
-
在 世界大纲视图(World Outliner) 中选择你的 电影摄像机Actor(CineCamera Actor) ,然后转到 细节(Details) 面板。点击 + 添加组件(+ Add Component) ,然后搜索并选择 Live Link组件控制器(Live Link Component Controller) 。将组件重命名为 LiveLinkComponentControllerFiz 。
-
在 细节(Details) 面板中,向下滚动到 Live Link 分段,然后点击 主题表示(Subject Representation) 下拉菜单。从列表中选择 虚拟摄像机(Virtual Camer) 。
-
重复之前步骤,添加另一个 Live Link控制器(Live Link Controller) 组件,然后将其重命名为 LiveLinkComponentControllerTracking 。
-
在 细节(Details) 面板中,点击 主题表示(Subject Representation) 下拉菜单。从列表中选择物理摄像机。在本示例中,它是从Motive通过Live Link流送的 Alexa_LF_A 。
阶段成果
在本分段中,你将Live Link虚拟主题和Optitrack Live Link连接到了电影摄像机Actor。
6 - 利用计时数据监控评估同步和时间码(可选)
这是可选的分段,可供用户将时间码和同步用于Kona 5并评估源输入。你还可以调整计时偏移和缓冲区,确保CG元素与视频源和追踪数据同步。
-
点击 设置(Settings)> 插件(Plugins) ,打开 插件菜单(Plugins Menu) 。
-
选择 虚拟制片(Virtual Production) 类别,然后启用 计时数据监控(Timed Data Monitor) 插件。在弹出框上选择 是(Yes) ,然后点击 立即重启(Restart Now) 以重启编辑器。
-
编辑器重新加载之后,点击 窗口(Window)> 开发人员工具(Developer Tools)> 计时数据监控(Timed Data Monitor) 以打开 计时数据监控(Timed Data Monitor) 窗口。"计时数据监控"用于监控不同设备的同步和时间码。它还可以用于将使用缓冲区和偏移的设备同步到传入数据,方法是评估这些设备的时间码属性。
-
将 评估模式(Eval Mode) 更改为 时间码(Timecode) ,然后输入你的 全局TC偏移(Global TC Offset) 值。 在本示例中,为了在追踪系统和来自AJA的视频输入之间实现同步,输入的"全局TC偏移(Global TC Offset)"值是3个帧。追踪系统的缓冲区大小已增加到50。
窗口顶部显示媒体配置文件中设置的连接到AJA的传入同步和时间码。
阶段成果
在本分段中,你学习了如何使用"计时数据监控"插件设置Kona 5的时间码和"全局TC偏移"。
7 - 连接你的Preston系统(可选)
如果你要将Preston系统用于你的制片摄像机,请执行 连接你的Preston系统 指南上的步骤。
8 - 使用Master Lockit Plus连接智能镜头(可选)
如果要使用Ambient Master Lockit Plus设备连接智能镜头,请按照 连接Master Lockit系统 指南操作。
9 - 计算镜头失真
要计算镜头失真,你将需要在刚性表面上打印并挂载的物理棋盘格来展示制片摄像机的视图。你还可以使用平板电脑上显示的棋盘格图像。系统将创建一个CG棋盘格来匹配物理棋盘格的属性。
-
在 放置Actor(Place Actors) 选项卡上,点击 虚拟制片(Virtual Production) 类别,然后将 棋盘格(Checkerboard) Actor拖到你的关卡中。
-
在 世界大纲视图(World Outliner) 窗口中选择 棋盘格Actor(Checkerboard Actor) 。
-
转到 细节(Details) 面板,然后向下滚动到 校准(Calibration) 分段。
-
输入 边角行数(Number of Corner Rows) 。
-
输入 边角列数(Number of Corner Columns) 。
-
输入 正方形边长(Square Side Length) ,以厘米为单位。
-
这些值需要匹配所使用的物理棋盘格。
-
-
以上示例使用了包含7个行边角和11个列边角的物理棋盘格。每个正方形边的长度为4.5厘米。此图显示了示例中使用的棋盘格。
-
最初没有为棋盘格指定材质。点击 奇数立方体材质(Odd Cube Material) 和 偶数立方体材质(Even Cube Material) 下拉菜单,然后选择所需的材质。如果物理棋盘格一开始在左上角有一个黑色正方形,则该黑色将为 奇数立方体材质(Odd Cube Material) 颜色。
-
在 世界大纲视图(World Outliner) 窗口中选择你的 电影摄像机Actor(CineCamera Actor) 。
-
选择之前创建的 Live Link控制器组件(Live Link Controller Component) ,以接收FIZ数据。
-
转到 细节(Details) 面板,向下滚动到 摄像机角色(Camera Role) 下拉菜单,然后将其打开。
-
在 摄像机校准(Camera Calibration) 分段中,点击 镜头文件(Lens File) 下拉菜单,然后选择你之前创建的 镜头文件(Lens File) 。
-
-
在 内容浏览器(Content Browser) 中双击打开 镜头文件(Lens File) ,然后点击 镜头失真(Lens Distortion) 选项卡。
-
将棋盘格放在摄像机前面,如下所示。
-
转到 镜头失真(Lens Distortion) 分段。
-
点击 镜头失真算法(Lens Distortion Algo) 下拉菜单,然后选择 镜头失真棋盘格(Lens Distortion Checkerboard) 。
-
点击 棋盘格(Checkerboard) 下拉菜单,然后选择之前创建的 棋盘格Actor(Checkerboard Actor) 。
-
启用 显示检测(Show Detection) 复选框。这将在每次创建用于计算镜头失真的图像时创建预览图像。
-
-
点击视口开始校准流程,并创建要使用的第一个图像。
-
在摄像机视野内移动棋盘格,继续点击该图像以捕获校准照片。确保棋盘格的位置移动足够多的次数,以使重叠的图像覆盖视野。
-
收集足够的图像(至少需要4张)后,点击 添加到镜头失真校准(Add To Lens Distortion Calibration) ,然后点击 镜头校准信息(Lens Calibration Info) 对话框上的 确定(OK) 。
-
现在你将在窗口底部看到"失真参数"更新。
大多数镜头在不同的对焦距离上会有不同的失真值。要针对镜头失真创建最准确的镜头文件,应在不同的对焦距离重复上述流程。
阶段成果
在本分段中,你设置了CG棋盘格以匹配物理棋盘格,捕获了物理棋盘格的几张图像,并用于向镜头和摄像机添加了镜头失真校准数据。(你可能创建了会在不同对焦距离上发生变化的失真配置文件。
10 - 确认镜头失真
要检查镜头失真,你可以使用 节点偏移(Nodal Offset) 选项卡。在此情况下,你的场景中未追踪的CG棋盘格将移到摄像机,并且将覆盖视频内容。如果CG覆层与视频内容匹配,我们可以从视觉上验证计算。
-
点击 节点偏移(Nodal Offset) 选项卡,然后转到 节点偏移(Nodal Offset) 分段。
-
点击 节点偏移算法(Nodal Offset Algo) 下拉菜单,然后选择 节点偏移棋盘格(Nodal Offset Checkerboard) 。
-
点击 棋盘格(Checkerboard) 下拉菜单,然后选择你的 棋盘格Actor(Checkerboard Actor) 。
-
-
点击该图像以填充来自校准的所有边角数据。点击 应用于校准器(Apply To Calibrator) 。这会将CG棋盘格Actor移到摄像机。
-
转到 视口设置(Viewport Settings) 分段,然后将 透明度(Transparency) 值从 0 更改为 1 ,以验证 棋盘格Actor(Checkerboard Actor) 是否匹配摄像机视口中的物理棋盘格。
阶段成果
在本分段中,你将CG 棋盘格Actor(Checkerboard Actor) 匹配到摄像机视口中的物理棋盘格,验证了镜头失真计算。
11 - 针对节点偏移校准创建追踪的对象
节点偏移代表所追踪摄像机的轴与所校准的镜头/摄像机组合的实际节点的轴之间的差异。如果镜头发生变化或者摄像机上的追踪设备移动,将需要计算新的节点偏移。
为了计算要应用于电影摄像机的节点偏移,你将需要创建物理上追踪的对象。需要对这个追踪的对象建立CG模型。在本示例中,之前使用的物理棋盘格添加了追踪标识。示例中创建了CG模型来匹配追踪的棋盘格,并且进行了设置来进行光学追踪。CG棋盘格已导入UE中,用于后续步骤。
虽然使用棋盘格很常见,但你可以酌情创建要追踪的对象和CG模型。该过程需要将校准点添加到你的CG模型。追踪的对象和CG模型需要正确设置,以相互匹配。
-
右键点击 内容浏览器(Content Browser) ,在 创建基本资产(Create Basic Asset) 分段下选择 蓝图类(Blueprint Class) 。
-
在 选取父类(Pick Parent Class) 窗口上点击 Actor 。
-
将蓝图命名为 Checkerboard_TRK 。
-
-
在 内容浏览器(Content Browser) 中,双击打开 Checkerboard_TRK 蓝图。
-
转到 组件(Components) 窗口,然后点击 + 添加组件(+ Add Component) 。
-
搜索并选择 静态网格体(Static Mesh) 。
-
-
转到 细节(Details) 面板,然后向下滚动到 静态网格体(Static Mesh) 分段。点击 静态网格体(Static Mesh) 下拉菜单,然后从列表搜索并选择 Checkerboard_mesh 。
-
选择 *静态网格体(Static Mesh)** 组件后,转到 **组件(Components)** 窗口,然后点击 **+ 添加组件(+ Add Component)**。
-
搜索并选择 校准点(Calibration Point) 。
-
将该组件命名为 Top_Left 。
-
-
在 视口(Viewport) 中,将 Top_Left 组件放在棋盘格的左上点,如下所示。
-
复制 Top_Left 组件四次,并将新的副本命名为 Bottom_Left 、 Bottom_Right 、 Top_Right 和 Center 。将这些组件放在棋盘格网格体上对应的位置。 编译(Compile) 并 保存(Save) 蓝图。
-
将 Checkerboard_TRK 蓝图拖到你的关卡,然后转到 细节(Details) 面板。
-
点击 + 添加组件(+ Add Component) ,然后搜索并选择 Live Link控制器(Live Link Controller) 。
-
选择 Live Link控制器(Live Link Controller) 组件,然后向下滚动到 Live Link 分段。
-
点击 主题表示(Subject Representation) 下拉菜单,然后选择 棋盘格(Checkerboard) 。
-
阶段成果
在本分段中,你创建了新的棋盘格Actor,并添加了五个校准点:左上、左下、右下、右上和中心。
12 - 计算节点偏移
节点偏移将偏移将应用于CG电影摄像机,以代表物理摄像机上正在使用的镜头的实际节点。
"摄像机校准"插件将计算节点偏移,方法是让追踪的对象移到物理制片摄像机前面的不同位置。在本示例中,棋盘格Actor有一些收集并用于计算节点偏移的校准点。
-
在 内容浏览器(Content Browser) 中,双击打开 镜头文件(Lens File) 。
-
点击 节点偏移(Nodal Offset) 选项卡,然后转到 节点偏移(Nodal Offset)** 分段。
-
点击 节点偏移算法(Nodal Offset Algo) 下拉菜单,然后选择 节点偏移点方法(Nodal Offset Points Method) 。
-
点击 校准器(Calibrator) 下拉菜单,然后选择你的 Checkerboard_TRK Actor。
-
-
点击视口中的棋盘格图像,以匹配每个校准点的位置。例如,点击棋盘格的右下角,以匹配 Bottom_Right校准点(Bottom_Right Calibration Point) 。
在你点击图像时,校准点将自动更新。
-
将追踪的棋盘格移到摄像机前面的5到8个不同位置,并在每个位置获取一组校准点。
-
完成后,点击 添加到节点偏移校准(Add To Nodal Offset Calibration) 。
-
检查应用的节点偏移属性,以确定节点偏移是否已正确应用。
-
将透明度从 0 更改为 0.5 。追踪的棋盘格的CG元素应该恰好覆盖实时视频中的棋盘格。
-
平移追踪的摄像机并将其在追踪的棋盘格中移动,CG版本应该在实时视频内容中保持正确地叠加在物理棋盘格上。
-
如果你没有设置时间码和同步锁定,并使用 计时数据监控(Timed Data Monitor) 调整了同步,那么在你移动时,CG元素中可能存在延迟。当你停止移动摄像机时,CG元素将重新排好。
阶段成果
在本分段中,你点击了棋盘格图像以匹配每个校准点,从而收集了校准点值。在四处移动追踪的棋盘格来收集足够的校准点之后,你将节点偏移应用到了摄像机父项。最后,你检查了棋盘格的CG版本是否正确地覆盖在视频源中的真实版本,从而验证了节点偏移是否正确。
如果你要校准LED墙,请执行 使用Aruco将LED墙对齐到摄像机追踪 指南中的步骤。