目标
在本快速入门指南中,你将使用"摄像机校准"插件,一步步视频内容的连接和校准。
目的
-
将摄像机连接到虚幻引擎,以便提供实时内容。
-
使用"摄像机校准"插件校准摄像机。
1 - 必要设置
在本指南中,我们将使用Blackmagic Ultra HD摄像机、Panasonic Lumix镜头和HTC Vive Tracker 3来控制场景中的电影摄像机Actor。
虚幻引擎目前仅支持有限的超级广角摄像机镜头。
-
创建新的虚幻引擎项目。选择 电影、电视和现场活动(Film, Television, and Lived Events) 类别,然后点击 下一步(Next) 按钮。
-
选择 虚拟制片(Virtual Production) 模板,然后点击 下一步(Next) 按钮。
-
输入文件位置和项目名称,然后点击 创建项目(Create Project) 按钮。
-
编辑器加载之后,点击 设置(Settings)> 插件(Plugins),打开 插件菜单(Plugins Menu)。
-
选择 虚拟制片(Virtual Production) 类别,然后 启用 摄像机校准(Camera Calibration) 和 LiveLinkXR 插件。在弹出框上选择 是(Yes),然后点击 立即重启(Restart Now) 按钮,以重启编辑器。
阶段成果
你启用了"摄像机校准"和LiveLinkXR插件,并重启了编辑器。现在你已准备好校准摄像机。
2 - 设置场景
-
转到 放置Actor(Place Actors) 面板,然后搜索 电影摄像机(CineCamera) Actor。将Actor拖入关卡中。
-
在 放置Actor(Place Actors) 面板中,搜索 摄像机校准棋盘格(Camera Calibration Checkerboard)。将Actor拖入关卡中。
-
在 内容浏览器(Content Browser) 中,点击 查看选项(View Options) 按钮,然后选择 显示引擎内容(Show Engine Content) 和 显示插件内容(Show Plugin Content) 选项。
-
在 内容浏览器(Content Browser) 中,找到 摄像机校准内容(CameraCalibration Content)> 设备(Devices)> 追踪器(Tracker)。将 BP_UE_Tracker3 蓝图拖入关卡中。
-
选择关卡中的 电影摄像机Actor(CineCamera Actor),然后找到 细节(Details) 面板。向下滚动到 成像区域尺寸(Filmback) 分段,然后为你的物理摄像机输入匹配的 传感器宽度(Sensor Width) 和 传感器高度(Sensor Height) 值。
-
选择 电影摄像机Actor(CineCamera Actor) 后,转到 细节(Details) 面板,然后点击 添加组件(Add Component) 按钮。搜索并选择 Live Link控制器(Live Link Controller)。
-
转至 窗口(Window) > Live Link 以打开 Live Link 窗口。
-
转到 源(Source)> LiveLinkXR源(LiveLinkXR Source),然后点击 添加(Add) 按钮以添加连接的Vive追踪器。现在你应该会看到正在使用Live Link连接的追踪器。
你可以阅读SteamVR开发文档,了解如何针对HTC Vive和SteamVR设备进行开发。
-
由于我们不会使用实际的FIZ源,因此需要使用 LiveLink蓝图虚拟主题(LiveLink Blueprint Virtual Subjects) 创建虚拟源。右键点击 内容浏览器(Content Browser),然后选择 LiveLink > 蓝图虚拟主题(Blueprint Virtual Subject)。点击下拉菜单,选择 LiveLinkCameraRole,然后点击 确定(OK) 按钮。将蓝图命名为 VirtualPrestonFIZ。
-
双击打开 VirtualPrestonFIZ 蓝图。点击 + 变量(+ 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 变量连接到 对焦距离(Focus Distance) 引脚。编译(Compile) 并 保存(Save) 蓝图。
-
转到 源(Source)> 添加虚拟主题(Add Virtual Subject),以打开 虚拟主题(Virtual Subject) 窗口。选择 VirtualPrestonFIZ 主题,然后点击 添加(Add) 按钮。
-
右键点击 内容浏览器(Content Browser),然后选择 杂项(Miscellaneous)> 镜头文件(Lens File),以创建"镜头文件"资产。将资产命名为 LumixLens。
-
选择 电影摄像机Actor(CineCamera Actor),然后转到 细节(Details) 面板。向下滚动到 Live Link 分段,然后点击 主题表示(Subject Representation) 旁边的 下拉菜单。从列表中选择追踪器。
-
选择 电影摄像机Actor(CineCamera Actor) 后,转到 细节(Details) 面板,然后点击 添加组件(Add Component) 按钮。搜索并选择 Live Link控制器(Live Link Controller),以添加另一个组件。向下滚动到 Live Link 分段,然后点击 主题表示(Subject Representation) 旁边的 下拉菜单。从列表中选择虚拟主题。
-
在 细节(Details) 面板中,向下滚动到 摄像机角色(Camera Role) 分段,然后点击 镜头文件(Lens File) 旁边的下拉菜单。搜索并选择 LumixLens。
-
选择 BP_UE_Tracker3 蓝图,然后转到 细节(Details) 面板。选择 LiveLink组件控制器(LiveLink Component Controller),然后向下滚动到 Live Link 分段。点击 主题表示(Subject Representation) 旁边的下拉菜单,然后选择你的追踪器。
-
选择 CameraCalibrationCheckerboard Actor,然后转到 细节(Details) 面板。向下滚动到 校准(Calibration) 分段,然后输入 行 和 列 的数量以及 正方形边长(Square Side Length)。在本示例中,我们使用下图进行测量。
-
将材质添加到 奇数立方体材质(Odd Cube Material) 和 偶数立方体材质(Even Cube Material) 插槽,以提高可视性。
阶段成果
在本分段中,你已将 电影摄像机(CineCamera) Actor、摄像机校准棋盘格(Camera Calibration Checkerboard) Actor和 BP_UE_Tracker3 蓝图添加到关卡中。你使用Live Link连接了追踪器,并正确配置了Actor。现在你已准备好校准镜头。
3 - 校准镜头
-
在 内容浏览器(Content Browser) 中,双击打开 LumixLens 资产。点击 校准步骤(Calibration Steps) 面板,然后选择 镜头信息(Lens Information) 选项卡。转到 镜头信息(Lens Info) 分段,输入镜头信息,然后点击 保存镜头信息(Save Lens Information) 按钮。
-
点击 镜头文件面板(Lens File Panel),然后选择 聚焦(Focus)。
-
点击 + 按钮,然后为 输入聚焦(Input Focus) 输入值0。为 编码器映射(Encoder Mapping) 输入值100。点击 添加(Add) 按钮,将此数据点添加到图表。重复此步骤,为 编码器映射(Encoder Mapping) 输入值1000,为 输入聚焦(Input Focus) 输入值1。
-
选择 Iris 并为 编码器映射(Encoder Mapping) 输入值1.8,为 输入聚焦(Input Focus) 输入值0。点击 添加(Add) 按钮,将该数据点添加到图表。重复此步骤,为 编码器映射(Encoder Mapping) 输入值4.5,为 输入光圈(Input Iris) 输入值1。
-
返回 校准步骤(Calibration Steps) 面板,然后选择 镜头失真(Lens Distortion) 选项卡。全屏打开棋盘格图像,并将摄像机对准该图像。在看得到棋盘格整体的情况下,点击视口以捕获图像。重复此步骤多次以捕获多个图像。
在多个变焦级别和聚焦值重复此过程,尽可能实现最佳校准。
-
从不同的角度拍摄多个图像后,点击 添加到镜头失真校准(Add To Lens Distortion Calibration) 按钮。点击弹出窗口上的 确定(OK),以接受校准数据。
-
选择 节点偏移(Nodal Offset) 选项卡,然后在 节点偏移(Nodal Offset) 分段下点击 节点偏移算法(Nodal Offset Algo) 下拉菜单。选择 节点偏移棋盘格(Nodal Offset Checkerboard)。
-
将摄像机再次对准屏幕上的棋盘格,然后点击视口。这将检测到图像的各个边角。点击 应用于校准器(Apply to Calibrator) 按钮,将 摄像机校准棋盘格(Camera Calibration Checkerboard) Actor与屏幕上的棋盘格对齐:
-
现在你可以校准虚拟摄像机的节点偏移。将 节点偏移算法(Nodal Offset Algo) 设置为 节点偏移点方法(Nodal Offset Points Method)*,并将 校准器(Calibrator) 设置为你的追踪器。将 校准点(Calibration Point) 设置为 PointLed**。
-
使追踪器的光源朝向摄像机,然后在视口中点击该光源。重复此步骤多次以创建多个数据点。点击 添加到节点偏移校准(Add To Nodal Offset Calibration) 按钮。
如果追踪不如预期那么准确,你可以使用更多的点重复此过程。
-
关闭"镜头文件(Lens File)"窗口,并验证电影摄像机Actor现在是否在你移动追踪器时正确地移动。
阶段成果
在本章节中,你通过镜头文件输入了镜头信息,校准了镜头畸变,并添加了正确的网络偏移。现在你的电影摄像机Actor能够模拟现实摄像机的位置、旋转和镜头畸变效果。