Skip to content

Structure & Subartlayers

Both exporters — Blender and Maya — author the same thing: a Structure tree of drawings, art layers and passes. The tree is the folder layout written to disk, and the Harmony importer's outliner is its mirror: what you build on one side is what you see on the other.

A pass is one export output — in Harmony it becomes one subartlayer, a track stacked inside an art layer. Several passes in the same container become that art layer's stack. This is how one drawing holds an outline, an inline and a fill as separate, individually editable objects.

The tree, and the folders it writes

Output/                     ← the root drawing = the output folder
  OL/
    01_outline/  0001.svg …     vector pass
  LA/
    01_inline/   0001.svg …     vector pass
  CA/
    01_color/    0001.png …     bitmap pass (a render)
  flat/          0001.png …     Flat: no art layer, straight into the drawing
  Shadow/                   ← a named drawing = a folder = its own Read node
    OL/
      01_shadow/ 0001.png …
Level Icon On disk In Harmony
Drawing a folder (Output is the root itself) one Read node
Art layer container OL/, LA/, CA/, UL/ the drawing's four art layers
Pass — vector NN_<name>/ of SVG (or PDF) frames a track of editable pencil lines
Pass — bitmap NN_<name>/ of PNG frames (RGBA, straight alpha) a track on a bitmap art layer
Flat <name>/ directly in the drawing folder the drawing's default art layer
  • NN is a two-digit stack index: 01 is the top of the stack (the first pass in the container) and the number descends down the stack. The importer stacks the tracks in NN order and strips the prefix, so each track reads as the pass it came from.
  • Every drawing is born with the same four containers — one rule at both levels, nothing to decorate. Containers are fixed and mute: never renamed, never holding art of their own.
  • A pass always writes its own NN_<name> folder, even when it is alone on its art layer — the layout never changes shape, so a re-export lands in the same folders.

Vector and bitmap in one drawing

A container is mono-type: a Harmony art layer has one drawing mode, so a container holding a vector pass and a bitmap pass would lose one of them silently on import. The exporters flag that container in red and refuse to export until one pass moves.

Across containers, anything goes: SVG lines on Line Art, a rendered fill on Colour Art, a shadow pass in its own drawing — the importer reads the whole tree back into one Harmony hierarchy.

Why bitmap passes get drawings, and lines don't

On import, sibling tracks of one art layer are flattened into one image when the layer is a bitmap — so stacking bitmap passes on one layer would destroy exactly the separation a pass exists for (an opacity on the shadow alone). A bitmap pass that must be treated on its own gets its own drawing — its own Read node — which is why the bitmap generators create one drawing each by default. Vector tracks stay separate objects on one layer, so lines never need it.

Where passes come from

  • + — a pass born where the selection is: below a selected pass, last in a selected container, in a selected drawing's Line Art.
  • Generators — one pass per Grease Pencil object or layer, per Pencil+ Line or Line + Line Set, per render view layer. The one-click way to fan a setup out; every result is a plain pass.
  • Add Drawing — a new folder under Output, with its four containers.
  • Add Existing Drawing (Blender) — a drawing another export's tree already writes, or a real folder in the output, so two exports share one drawing: lines from a Grease Pencil export on its Line Art, a render from a bitmap export on its Colour Art. Trees merge on disk by name; the exporter warns before rendering if two exports would claim the same NN_ in one container (the order would be undefined).

Passes move with ▲ ▼ — crossing container edges, so a pass travels the whole tree without drag — and, in Maya, by drag & drop.

Stable numbering

The NN index is assigned over the full list of a container, not over the enabled subset. Unticking a pass does not renumber the others: the second pass stays 02_, it does not slide up to 01_.

Why this matters

Stable numbering means a re-export writes into the same folders as the last one, so a re-import in Harmony reads them as the same subartlayers. Toggling a pass off for a quick test never scrambles the stack.

Names

A pass's name is its folder name and the track's name in Harmony, so outline, inline, hatching carry straight through the round trip. Two passes cannot share a name inside a drawing (a clash gets a -NNN suffix); two drawings cannot share a name in an output.

Clean Art Folders

Opt-in, in the exporter's Output section. When ticked, the export first deletes stale NN_ folders a previous export left behind that this one will not rewrite — the folder of a pass you renamed or removed, which the importer would otherwise read as a ghost track.

Destructive, so it is opt-in

Its scope is deliberately narrow: only NN_ folders it recognises as its own, and only the ones no current pass claims — vector and bitmap alike, from either exporter. Loose files and any folder you added by hand are left alone. With two exports sharing one output, run it from the export that owns the folders you mean to drop.

How a pass renders

  • A Grease Pencil pass reads the strokes — no render.
  • A bitmap pass is one render of every frame; passes on the same view layer (Blender) or the same render (Maya's Pencil+ Line bitmap) share it. Different view layers, compositor trees or Materials passes each cost their own render — the exporters tell you the count before you press the button.
  • A Pencil+ vector pass carries a recipe — which edge types each Line Set generates, and how thick — that OVB writes onto your real Line Sets around its render. Because the recipe edits what the Line Sets produce, each pass renders on its own, and your Line Sets are put back exactly as they were.

On import, the numbered folders stack as tracks — see Importing into Harmony.