File format¶
What a picker actually is, on a node and on disk.
The data node¶
A picker lives on a Maya node — AmPicker_data1 by default — which holds the
whole layout as data on an attribute. Because it is an ordinary scene node:
- it is saved inside your
.ma/.mbfile - it travels with a referenced rig
- a scene can hold as many as you like, one per character
- it can be renamed like any other node
The node also remembers the picker's namespace assignment and, if the picker has one, the path to its linked file — which is what lets Ctrl+S write both places at once.
Why a node and not just a file
A picker that only exists as a file beside the scene is a picker that gets lost — the shot is archived, moved, or handed to another studio, and the picker does not come with it.
Putting the layout on a node means the picker is part of the shot. Open the scene anywhere, and it is there. The file is then an optional extra for sharing, rather than the only copy.
The .ampkr package¶
A self-contained picker package: the layout, and optionally the images too.
Use one to:
- hand a picker to another artist or studio
- reuse a layout across many shots
- keep a picker in version control alongside the rig
- store a library of character pickers outside any one scene
.ampkr files carry the version that wrote them, along with the tab count, item
count and a thumbnail — which is what the
Open dialog previews before loading.
Packed and unpacked images¶
Packed — images are copied inside the package. The file is bigger and works anywhere.
Unpacked — images are referenced by path. The file is small and works wherever those paths resolve.
Pack when the file is leaving your machine. A picker that opens with grey boxes where the artwork should be is the most common hand-off failure.
Path tokens¶
Absolute paths do not survive a studio. Any path under the AM_PICKER_PATH
environment variable is stored as a token instead:
Set AM_PICKER_PATH per machine or per project, and the same picker resolves on
every workstation — including artists whose projects are mounted at different
drive letters.
See Python API → Environment variables for setting it.
Older .ampkr files¶
Files written by earlier versions of Am_Picker load directly and are migrated as they are read. Saving writes the current format, so a round trip through a newer version upgrades the file.
Older .pkr files¶
There is a converter for the old .pkr format.
It is a converter, not a guarantee. It will read the file and give you something to work with, but the result is not guaranteed to be correct — expect to open it, check it against the original, and fix what came across wrong.
Treat a converted picker as a starting point that saves you redrawing, not as a finished picker. In particular, check:
- that every item is still bound to the control you expect
- shape geometry, especially curves and any holes
- colours, layers and stacking order
- background images and where they sit
Once you have fixed it, save it as .ampkr. From then on it is a current file
and loads normally.
The old [ANIM_PICKER_PATH] path token is rewritten to [AM_PICKER_PATH] on
the way through.
What is in a picker¶
Roughly, in the order you would meet it:
| Level | Holds |
|---|---|
| Picker | Canvas size, the namespace assignment, tabs |
| Tab | Its canvas, layers, grids, panels, camera bookmarks, images, mute shapes |
| Layer | Its items, and its visibility |
| Item | Shape geometry, colours, transform, bound controls, scripts, right-click menus, optional attribute control |
An item's bound controls are stored without namespaces — the single most important thing about the format, and the reason one picker drives every copy of a rig. See Rigs and namespaces.
Reading a picker outside the tool¶
The format is JSON-based and the tool reads it through a versioned loader that raises typed errors rather than swallowing them — a corrupt file, a permissions problem and an empty picker are three different failures, and it says which.
There is no supported public API for reading .ampkr files from your own code.
If you need to inspect one, open it in the tool.
What is not in a picker¶
- Your preferences. Those are Maya optionVars, per user
- Your keymap. Same
- The rig. A picker references controls by name; it contains none of the rig
- Animation. A picker is a selection interface, not a data store