更新日志¶
v1.0.0 — 公开发布¶
Octo Transform Sync 的首个公开版本 — 在 Toon Boom Harmony、Blender 和 Autodesk Maya 之间传输 rig、动画和摄像机。
亮点¶
- 全部六条路径 — Harmony ↔ Blender、Harmony ↔ Maya,以及 Blender ↔ Maya,两种文件格式都支持。没有按路径分支的代码:每个文件都声明自己的坐标空间,每个读取方都经由一个规范空间转换。
- 两种格式,各司其职 —
.pvt携带静置骨架用于搭建与恢复;.anm携带动画 加上 折叠进来的 rest pose 和摄像机,所以单独一个.anm就能重建整个 rig 以及 镜头。 - 只凭一个
.anm就能 Create Rig — joint、bone,或者一个带 composite 接线的完整 Harmony peg group,全部由文件的静置数据构建出来,并在单独一步 undo 中完成动画应用。 - 多 rig — 可编辑的 Rig 列把一个场景拆分成互相独立的 rig:在 Blender 中是一个 armature,在 Maya 中是一个 group,在 Harmony 中是一个 node group。连通性是锁死的,所以一条已连接的 chain 永远不能被拆开。
- 多摄像机 — 场景中的每一台摄像机,带着垂直 FOV、near/far clip、offset、roll 和默认摄像机标记,重建时挂到驱动它的那个 peg 上。只为摄像机存在的 peg 会直接烘焙到摄像机上,而不是创建一个空 joint。
- Tangent 得以保留 — 逐轴的绝对 bezier handle,外加
LINEAR和CONSTANT。在 column 允许的地方读取 Harmony 的原生 handle,在不允许的地方通过曲线采样来重建。 - 正确的旋转转换 — Z-up ↔ Y-up 的变换是作为 quaternion 共轭来应用的,而不是对 Euler 角做排列。旋转还会以一个来自 world matrix bake、与顺序无关的 quaternion 形式传递。
- 局部导出可用 — 每一项的 parent 都会解析到它最近的那个 被导出的 祖先,所以半个 rig 依然会作为一条连贯的 chain 到达。
- 可读、可 diff 的文件 — 带缩进的 UTF-8 JSON,你可以检视、diff,也可以用脚本处理。
- 30 天试用 + 永久许可证 — 一次绑定机器的激活覆盖 Harmony、Blender 和 Maya,通过 Creem 提供。
架构¶
- 一个共享的、与应用无关的引擎(
ots_core),承载 schema、坐标与单位转换、tangent 数学、rig 分组和授权 — 外加针对 Harmony、Blender 和 Maya 的轻薄的宿主适配器。 - Harmony 和 Maya 共用同一个 Qt 窗口,由一份 duck-typed 的后端契约驱动;Blender 使用原生的
bpy侧边栏面板。 - 交换格式 v4,严格版本匹配,没有向后迁移。
已知问题¶
- Z-up 的 Maya 场景 能正确转换 keyframe 数值,但只输出插值类型的 handle;逐关键帧的 bezier tangent 会被简化。若要精确的 tangent 形状,请在 Y-up 下工作。
- 把
.anm应用到已有的 Harmony peg 上 会解除它的 3D-path 和 quaternion-path column 的链接,并写入分通道的 bezier 曲线。数值是正确的;原来的创作模式不会被保留。 - 琥珀色(未匹配)的行不会自动清除 — 在 Create Rig 或 Create Cameras 之后,需要重新浏览该文件才能重新执行匹配。
- 跨应用的摄像机朝向 是尽力而为的。导入后请验证构图。
- Harmony 的读取器不执行与 Maya、Blender 读取器同样严格的格式校验,所以一个版本不对的文件在那里的表现形式不同。
预发布历史¶
Octo Transform Sync 于 2026 年间私下开发。公开历史从 v1.0.0 开始。