Transform Sync (.anm / .pvt)¶
Two file types carry motion, not artwork:
| File | Comes from | Carries |
|---|---|---|
.anm |
Octo Transform Sync | animated pegs — position, rotation and scale, per frame |
.pvt |
a Blender bone bake | a bone hierarchy with its rest transforms |
Both are browsable and stageable, and neither ever becomes a drawing. They build pegs.
What lands in the tree¶
Dropping either one gives you a wrapper slot named after the file, carrying a peg, a group and a composite (Peg Order: Parent, Comp Order: Inside). That wrapper is staging organisation, not part of the rig.
Underneath it, one peg per bone, named after the bone. If the exporter already wrote Harmony's -P / -G / -C suffixes, they are stripped — the slot adds its own, and arm-P-P helps nobody.
Every peg from these files is born with:
| Setting | Value | Why |
|---|---|---|
| Enable 3D | as declared in the file | a 3D bake needs 3D pegs |
| Position | 3D Path or Separate, as declared |
the exporter knows which it wrote |
| Exclude AutoPivot | on | the pivots are the bake's, and AutoPivot must not overwrite them |
A camera peg in the file is skipped — the scene has its own.
What Assemble writes¶
For a .anm, the keyframes are applied per frame onto the peg:
POSITION.X / Y / ZROTATION.ANGLEX / ANGLEY / ANGLEZSCALE.X / Y / Z
Positions are converted from OpenGL units into the scene's own units on the way in, using the scene's field-of-view conversion — so a bake made against a different project resolution still lands in the right place.
position.SEPARATE is set to true before the keys are written, because separate channels are what the per-axis attributes address.
The rest pose comes across too
Even without keyframes, a peg carries the Euler rotation the file declares (rotation.anglex/y/z). A .pvt with no animation is still a usable skeleton.
The round trip¶
The intended flow is:
- Blender / Maya — animate or bake.
- Octo Transform Sync — export
.anm. - OSA — stage the
.anmnext to the artwork it drives, and assemble the whole scene in one pass.
That is why these files are in the Browser at all: the peg hierarchy and the drawings that hang off it should not be two separate imports with a manual re-parenting step in between.
Validation¶
A .anm is checked before anything is staged. It must declare format: octo_anm and carry a pegs key; if it does not, OSA says so in the log and stages nothing, rather than building an empty hierarchy that looks like a failed import.
.pvt is a Blender bake, not a Harmony pivot file
The extension is easy to misread. A .pvt here is a bone-bake JSON; it has nothing to do with Harmony's own pivot data.