跳转至

Pivot 文件(.pvt

一个 .pvt 就是一副 静置骨架。它只回答一个问题 — 当什么动画都没有时,这个 rig 是什么形状? — 别的一概不管。

装的是 不装的是
每一项的 名称 任何动画
它的 parent 任何帧范围
它的 pivot(静置位置) 任何曲线或 tangent
它的 rest rotation
它的 rig 标签
摄像机 及其镜头设置

用它来做 rig 搭建、重建你弄丢的骨架,以及在不交出镜头的前提下把一个 rig 交给别人。

大多数时候你想要的其实是 .anm

一个 .anm 携带上述全部内容 再加上 动画,所以它能做 .pvt 能做的一切。要有意识地去选 .pvt — 当你确实只想要骨架本身的时候。参见 动画文件 (.anm)


导出

Harmony 中的 .pvt 导出页
  1. 在你的场景中选中 peg / bone / joint。
  2. Pivot Files (.pvt) → Export,然后按 + 把它们扫描进来。
  3. 检查 Rig 列 — 参见 Rig 与多 Rig
  4. 如果需要就设置 Scale(见下文)。
  5. Save As…,然后 Export Pivots

导出列表没有复选框:列表里有什么就写出什么。列表、Rig 列和分组行为都与 .anm 导出页完全一致 — 无论一个场景以哪种格式离开,它分组成 rig 的方式都是一样的。

Scale 选项

Scale 在导出时对每个 pivot 做乘法,读取方在导入时再把它除回去。它的用途是那些以不同工作尺寸创作的 rig — 比方说一个大了十倍的 rig,你希望它到达时是个正常尺寸。

除非你确知需要,否则就保持 1.000。它会被记录进文件,所以一个用 10 的 scale 写出的 .pvt 再读回来是无损的。

请注意这 不是 应用之间的单位转换。米 ↔ 厘米是自动且独立处理的;参见 坐标系

Pivot 空间(仅 Blender)

Blender 的导出面板多了一个 Pivot Space 选项:

选项 含义
Local (relative to parent) 每个 bone 相对于其父 bone 的位置。默认值,也是你想要的
Armature Space armature 空间中的绝对位置

Harmony 和 Maya 永远写 local。除非你有特定理由,否则也把 Blender 留在 Local,这样无论是谁写的,文件的含义都一致。


导入

Maya 中的 .pvt 导入页

Browse… 到那个文件。摘要行会告诉你里面有什么 — rig 名、有多少项、pivot 空间、scale 系数,以及它包含多少个 rig:

spaceship · 3 joints · space local · 2 rigs

列表会显示每一项及其 pivot,并按文件所描述的层级缩进。没有 Parent 列,因为这个缩进 就是 即将被构建的父子关系。

然后:

  • Build Skeleton 按文件描述的 rest pose 创建整个层级 — 在 Maya 中是 joint,在 Blender 中是 bone,在 Harmony 中是 peg。
  • Create Cameras 构建文件携带的摄像机,并挂到它们对应的项上。只有确实存在摄像机时它才会亮起来。

.pvt 导入不会把行标成琥珀色

.anm 导入列表不同,.pvt 预览从不把行涂成琥珀色。它并不是在跟你的场景做匹配 — 它展示的是一副即将从零构建出来的骨架。参见 匹配树


Build Skeleton 到底造出什么

Joint,以 干净的 orient 创建:rotate order 为 XYZ,joint orient 归零,rotate axis 归零。一切都存放在 .rotate 里,这样骨架的行为可预测,之后应用的动画也会落在你期望的位置。

当文件中有不止一个 rig 时,每个 rig 都会得到自己的空 group,它的各个 root 挂在下面。

每个 rig 标签一个 armature。Bone 以单位矩阵的 rest 创建,朝向 +Y,因此一个 pose bone 的局部变换恰好就是它相对于 parent 的变换。

单 rig 的文件会沿用文件自身的基础名。

包在一个 wrapper group 里的 peg,pivot 被写进每个 peg 的 pivot 属性,父子相连并接进一个 composite。整个构建过程是单独一步 undo。


什么时候 .pvt 才是对的答案

交接一个 rig。 有人需要这副骨架来开展工作;他们不需要 — 或者不该拿到 — 你的镜头。

恢复。 一个 rig 被弄坏或删掉了。如果你在它健康的时候导出过一个 .pvtBuild Skeleton 就能把它放回来。

开动画之前先搭好。 从一个 .pvt 构建骨架一次,然后用 Apply 把许多不同的 .anm 镜头应用上去,不用每次都重建。

其他任何情况。.anm