跳转至

摄像机

运镜是使用 OTS 最好的理由之一 — 在 3D 里 block 一个运镜然后用它驱动 Harmony,或者把一台 Harmony 摄像机搬进 Maya,让 3D pass 与 2D 镜头对得上。

摄像机在两种文件格式中都是 一等公民,而且 OTS 能处理 你的场景里有多少台就多少台

模型

OTS 里的一台摄像机是两样东西:

  1. 一个 peg — 带动画的变换。它是列表中一个普通的项,和其他项一样带关键帧。
  2. 一份摄像机配置 — 镜头:FOV、clip plane、offset、roll,以及它是不是场景的默认摄像机。

配置通过名称与它的 peg 关联,所以镜头和运动会一起被重建。这也正是摄像机行为什么会出现在列表里:你看到的是那个 peg,只是被标记为驱动着一台摄像机。

会跟着走 说明
FOV 作为 垂直 角度 — 这是 Harmony 的惯例,在 Maya 中转换为焦距 + film aperture,在 Blender 中转换为垂直 sensor fit
Near / far clip 作为原始的场景距离。Harmony 原本的 field 值被单独保留,所以一次 Harmony 往返是无损的
Offset 摄像机自身相对于其 peg 的位置
Roll 绕视轴的旋转
默认标记 哪一台是场景中活动的那台
动画 在摄像机的 peg 上,位于一个 .anm

导出一台摄像机

把它和其他东西一起选中,然后扫描进来。就这样。

选中摄像机的 peg。OTS 会检测到挂在它上面的 CAMERA 节点并标记这一行。

选中摄像机 transform。Maya 没有单一的"默认摄像机"标记,所以 OTS 使用最接近的替代物:摄像机的 可渲染 状态,以及你当前正透过哪台在看。

选中摄像机对象。场景的活动摄像机就是默认的那台。

摄像机行在列表中带一个摄像机图标 — 默认摄像机为实心,其余为空心。


导入一台摄像机

Create Cameras 会构建它们。除非加载的文件里确实有摄像机,否则这个按钮是禁用的。

Harmony 中的一次 .pvt 导入,携带两个 rig,其中一个是摄像机

你会得到:

目标 结果
Harmony 一个 peg 加上它下面的一个 CAMERA 节点,并按文件打好关键帧
Maya 一个摄像机 transform,焦距由 FOV 推导而来,垂直 film fit,near/far,roll — 挂到其 peg 对应的 joint 上,或者当这个 peg 纯粹只是为了挂摄像机而存在时,直接烘焙到摄像机上
Blender 一个摄像机对象,垂直 sensor fit,FOV 作为它的 angle,near/far clip — 按同样的规则,要么 bone-parent,要么直接烘焙

只为摄像机存在的 peg 不会变成 bone

如果一台摄像机的 peg 上下都没有别的东西 — 它纯粹是为了摆放这台摄像机而存在 — 那么把它重建成一个 joint 或 bone 只会添加一个什么都不承载的节点。所以 OTS 会改为把它的变换直接烘焙到摄像机对象上,不创建任何骨架。

给那个 peg 加上一个 parent 或一个子项,整条 chain 就会正常构建出来,摄像机挂在它上面。Harmony 无论哪种情况都不受影响,因为在那里一台摄像机本来 就是 一个 peg 加一个 camera 节点。


多台摄像机

导出列表中的每一台摄像机都会被写进文件,而 Create Cameras 会一次性构建所有被勾选的那些。

专用摄像机 chain 会得到它们自己的 rig 标签 — Camera,或者当不止一条时是 Camera_1Camera_2、……。编号是按名称排序的,所以它在不同会话之间是稳定的,而不是跟着你的选择顺序走。参见 Rig 与多 Rig

恰好只有一台摄像机能带着默认标记。如果你导入两个文件、各自都认为自己的摄像机是默认的,那么最后构建的那个胜出 — 如果这件事要紧,之后在你的场景里明确指定一下。


构图:请去检查

这是需要去验证而不是去信任的部分。

FOV 是作为垂直角度携带的,与 Harmony 的场景设置惯例一致,并且每个应用都被要求把 sensor 按垂直方向适配。这是一个刻意的选择:把 Maya 或 Blender 留在它们的自动/水平适配上,会让视锥太窄,场景到达时看起来像被放大了。

朝向 是尽力而为的。Harmony 和 Maya 的摄像机都沿着各自的 −Z 看,这已经是规范的前方向了,所以只有 roll 会被写入。Blender 的摄像机在一个 Z-up 世界里沿 −Z 看,所以它在导入时会得到一个 +90° 的 X 倾斜,导出时又把这个倾斜去掉 — 一台朝前的摄像机往返之后会回到一个单位 peg。

Clip plane 以原始场景距离的形式直接传递,因为它们是相对于各应用自身的尺度而言的。Harmony 的 near_field / far_field 值会与它们并存保留,所以 Harmony → 任意 → Harmony 是无损的;其他路径会得到合理的距离值,但可能仍需要微调一下。

在你信任它之前,先透过它看一眼

这套数学是量过、测过的,但摄像机恰恰是那种"稍微错一点就立刻看得见、而且代价不小"的东西。Create Cameras 之后,透过摄像机看一眼,拿一帧和源头对比。要在运镜最广和最紧的地方检查构图,而不是只看第 1 帧。


常见情况

摄像机到了,但不动。 你构建了摄像机,但没构建它的动画。在一个 .anm 中,运动住在摄像机的 peg 上 — 确认那一行被勾选了,并且除了 Create Cameras 之外也运行了 Create RigApply

摄像机那一行是琥珀色。 在一次全新导入中这是预期之中的:还不存在同名的 joint 或 bone。摄像机之所以与 matched 分开计数,正是为了这个原因。参见 匹配树

构图太紧或太宽。 检查目标应用里的 sensor fit — 它应该是 vertical。如果有什么东西把它重置成了自动,FOV 就会被按错误的轴重新解释。

两台摄像机都是活动的。 每个场景只有一个默认标记能留下来。导入后把你想要的那台设好。