Docs / Reference / Exporting

Exporting

You export through File ▸ Export — and what the plugin quietly does while you do.

The plugin has no export path of its own. You export the way you export anything else in Max: File ▸ Export, and pick FBX. Nothing is asked of you, and your scene is left exactly as it was afterwards.

#What happens during the export

The plugin rides on Max's own export callbacks.

CallbackWhat the plugin does
#preExportZeroes the visual aim offset on every joint it created, remembering each one.
#postExportRestores every offset exactly, then checks that no node transform moved in the meantime.

That second check is deliberately loud. A moved transform after an export is the one thing this machinery exists to make impossible, so it prints the offending node names rather than passing quietly. If you ever see that line, see Troubleshooting.

Why the offset is removed for the export

The builder aims each bone's visual — geometry only; the node transform stays the identity rest the protocol requires. Max serialises that visual offset into the FBX in a way other applications fold into the bone rest, so a rig that reads to the millimetre in one application came back about a metre off in another: measured at 1009 mm at the head and 1399 mm at worst. With the offset zeroed for the duration of the export, the same measurement is 0.0 mm on every joint.

#Export another way and the hygiene does not run

Because the hygiene rides on Max's export callbacks, it covers the export you start from File ▸ Export. A rig written out through some other path never gets it, and the offset goes into the file.

#The FBX exporter runs on its stored settings

Max's FBX exporter keeps its settings on the machine: whatever the last use of the export dialog or a preset left there is what shapes the file. A scripted export that passes #noPrompt suppresses the dialog without resetting anything. So if two exports of the same scene differ, that stored exporter state is the first thing to compare.