Skip to content

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 / .mb file
  • 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:

[AM_PICKER_PATH]/characters/kamal.ampkr

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