跳转至

Transform Sync(.anm / .pvt

视频教程 —— 即将推出

有两种文件携带的是运动,不是画稿:

文件 来自 携带
.anm Octo Transform Sync 带动画的 peg —— 逐帧的位置、旋转和缩放
.pvt 一次 Blender 骨骼烘焙 一套骨骼层级及其静置变换

两者都可浏览、可进 staging,而且都永远不会变成 drawing。它们搭出的是 peg

树里落下什么

放进任一种,你会得到一个以该文件命名的包装槽位,带着一个 peg、一个 group 和一个 composite(Peg Order: ParentComp Order: Inside)。那个包装是 staging 的组织手段,不是骨架的一部分。

在它下面,每根骨骼一个 peg,以骨骼命名。如果导出器已经写上了 Harmony 的 -P / -G / -C 后缀,它们会被剥掉 —— 槽位会加上自己的,而 arm-P-P 帮不了任何人。

来自这些文件的每个 peg 生来就带着:

设置 为什么
Enable 3D 按文件里声明的 一次 3D 烘焙需要 3D peg
Position 按声明是 3D PathSeparate 导出器知道自己写的是哪种
Exclude AutoPivot 枢轴是那次烘焙的,AutoPivot 不能覆盖它们

文件里的摄像机 peg 会被跳过 —— 场景有自己的。

Assemble 写入什么

对一个 .anm,关键帧会逐帧应用到 peg 上:

  • POSITION.X / Y / Z
  • ROTATION.ANGLEX / ANGLEY / ANGLEZ
  • SCALE.X / Y / Z

位置在进来的路上会用场景的视场换算,从 OpenGL 单位转成场景自己的单位 —— 所以一份针对不同工程分辨率做的烘焙,依然落在正确的位置。

在写入关键帧之前会把 position.SEPARATE 设为 true,因为按轴的属性寻址的正是分离通道。

静置姿势也会过来

即使没有关键帧,一个 peg 也会带上文件里声明的欧拉旋转(rotation.anglex/y/z)。一个没有动画的 .pvt 依然是一副能用的骨架。

往返流程

预期的流程是:

  1. Blender / Maya —— 做动画或烘焙。
  2. Octo Transform Sync —— 导出 .anm
  3. OSA —— 把这个 .anm 和它所驱动的画稿并排放进 staging,然后一趟组装出整个场景。

这就是这些文件出现在 Browser 里的全部理由:peg 层级和挂在它上面的那些 drawing,不该是两次分开的导入、中间还夹着一步手工重新认父。

校验

.anm 在任何东西进 staging 之前就会被检查。它必须声明 format: octo_anm 并带有一个 pegs 键;如果没有,OSA 会在日志里说明,并且什么都不 staging,而不是搭出一个看起来像导入失败的空层级。

.pvt 是一次 Blender 烘焙,不是 Harmony 的枢轴文件

这个扩展名很容易读错。这里的 .pvt 是一份骨骼烘焙 JSON;它和 Harmony 自己的枢轴数据毫无关系。