Skip to content

Transform Sync (.anm / .pvt)

Video tutorial — coming soon

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 / Z
  • ROTATION.ANGLEX / ANGLEY / ANGLEZ
  • SCALE.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:

  1. Blender / Maya — animate or bake.
  2. Octo Transform Sync — export .anm.
  3. OSA — stage the .anm next 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.