Skip to content

The Outliner Tree

The Outliner is the rig. Everything else in the window — the Navigator, the Editor, the Compose button's opinion of whether you are ready — reads from what you select here.

Outliner in Dimensions mode The default Dimensions display mode.

Anatomy

The column is three things stacked: a toolbar ( and ), a filter bar (display mode, search, funnel), and the tree itself.

There is no "Outliner" title — the toolbar names the column.

The + menu

Add menu

Clicking (or right-clicking empty space in the tree) opens the same menu everywhere in ORC. It has three groups:

Item What it creates
Pose Layer An empty pose layer. New layers are born global — drag it onto a control to nest it.
Control An empty control, named New Control, with the inline rename already open.
Look-At A look-at node. See Look-At.
Driver A driver, routed straight into the Driver editor — no dialog.
Constraint A constraint, routed straight into the Constraint editor.
Visibility Group A group at root level, a sibling of Hidden. (To nest one inside another, right-click the parent group and use New Visibility Group Inside.)
Import MC Imports the Master Controller currently selected in Harmony's Node View as a new layer — its grid, its authored frames and its targets come with it. See Re-editing a Composed MC.

removes the selection. It is disabled while the rig has no layers.

The two sections

The top level of the tree is always exactly two headers:

Rig — level 0 of the rig graph. It holds the controls and, side by side with them, everything that belongs to no control: global pose layers, global knobs, global drivers, constraints and global look-ats. Dropping a layer on the Rig header means "free of any control".

Visibility Groups — the group hierarchy. Collapsed by default.

Neither header can be selected, renamed or deleted, but both accept drops.

Reading a row

Every row carries a pair of glyphs: a role glyph on the left and a type glyph on the right. The role says what kind of thing this is; the type says what shape of widget it is.

Role glyphs

Glyph Role
Control
Pose layer
Knob — a layer being used as a dimension source
A control's own knob
Look-At
Driver
Constraint
Visibility Group
The permanent Hidden group

Type glyphs

Glyph Type Meaning
Combo Slider 1-D, discrete — it stops on each tick
Continuous Slider drivers only
Combo Grid 2-D, discrete
Continuous Grid driver pads and look-at
Checkbox drivers

The icons are self-documenting

The interior lines are the snap stops. A continuous type is exactly its discrete twin minus the lines. Once you see that, you can read any row's shape without a legend.

The second column

In the default Dimensions mode the right-hand column shows how many axes the row keys across. The chip is grey, with one exception:

Colour Meaning
Grey Normal.
Red A compose blocker — two extra knobs writing the same node and channel, which cannot sum. Compose refuses until you resolve it.

Red is not confined to the chip: the whole row is repainted — the name, the chip and both glyphs — because it is the one state that stops you shipping.

A pose layer shows the honest sum of its axes — its own grid, plus its carrying parent, plus each extra knob.

After the chip, a row may carry one trailing glyph:

Glyph Meaning
A control has both a Front and a Back face — a turnaround.
A pose layer has L/R mirror pairs. Two or more add a small raised count.
Σ The layer or driver composes additively — its keys are deltas from a neutral, not absolutes.

The mirror glyph and Σ share one slot, and Σ always wins.

Hover any chip: the tooltip spells out the whole sum in words, e.g. "5D — total axes this layer keys across (own grid + carrying parent + each extra knob)."

Pins

Controls, pose layers and knobs each have a navigator of their own, so they carry a small push-pin at the far right of the second column.

Glyph State
Pinned — filled head
Not pinned — hollow head, dimmer

Clicking it toggles the pin and does nothing else — it will not select the row or start a drag. See Navigator.

How the tree nests

You do not choose a row's parent directly; ORC derives it from what the node actually keys across. In the Dimensions mode:

  1. A global free layer sits at level 0 under Rig — unless it keys across a knob, in which case it nests under that knob.
  2. A control's Front / Back faces are absorbed into the control and are not shown as rows at all.
  3. A layer that keys across a knob in the same control nests under that knob.
  4. Otherwise, a layer assigned to a control nests under it.
  5. A knob mirrors its consumer's placement — into the control if its consumer is there.
  6. A look-at nests under its bound pose layer if it has one, else under Rig if global, else as the first child of its control.
  7. A driver nests under whatever it keys across: a control, a pose layer, or Rig for a global one.
  8. Constraints are global-only and are always direct children of Rig.

If a node's owner has been deleted, the node does not vanish — it falls back to Rig, where you can see it and re-home it. Nothing is ever hidden because its parent went away.

Selecting

The tree is a multi-selection tree, but only one row at a time is active (the one with the brighter slate highlight). The Editor follows the active row, not the selection — so selecting eight layers to delete them never blanks the editor.

  • Ctrl/Shift-clicking a row that is already inside a multi-selection just makes it the active one, without collapsing the set.
  • Clicking empty space clears everything, and the Editor shows its empty state.
  • Clicking a row that is already active still re-routes the Editor.

Expanding

Chevrons are when expanded and when collapsed, and only appear when the row has a visible child — an absorbed face does not earn one.

Gesture Effect
Click the chevron Expand / collapse that row.
Shift + click on the chevron strip Expand or collapse the whole branch below.
Double-click the name Inline rename.
Double-click off the name (e.g. in the second column) Toggle expansion.

Renaming

F2 or a double-click on the name. Controls, pose layers, knobs, look-ats, drivers, constraints and custom visibility groups can be renamed. Section headers, absorbed faces and the permanent Hidden group cannot.

Committing a blank name keeps the old one.

Drag and drop

Dragging is how you restructure the rig. A ghost of the row follows the cursor, and a live tooltip always names exactly what the drop will do before you release.

Two drop affordances:

  • Into a row — a translucent blue fill under a dashed outline across the whole row.
  • Between rows — a 2 px blue rule with a small nub. The nub's horizontal position is the depth being offered, so drag left to drop shallower.
You drag Onto Result
Pose layer / knob a Control (centre) Free layer inside it. Hold Alt for Front, Alt+Ctrl for Back.
Pose layer / knob another layer (centre) That layer becomes a knob this one keys across.
Pose layer / knob between rows under Rig Level 0 — a head-less global layer.
Driver a Control Keys across that control's grid.
Driver a pose layer Keys across that layer.
Look-At a Control Anchored on that control's key domain.
Look-At a pose layer Keyed across that layer.
Visibility Group another group Nests inside it.
Visibility Group the Visibility Groups header Moves to top level.

Some drops are refused, always with a reason in the tooltip:

  • "A driver can't sit under an empty knob — drop it on a control or a pose layer."
  • "Checkbox drivers are Global only — pick another widget type to own this driver with a control."
  • "A group can't nest inside itself."

Assigning a face is destructive

Assigning Front or Back replaces whatever held that slot, which is why it needs the Alt chord rather than a plain drop. ORC never picks "the first empty slot" for you — the slot is always explicit.

Nothing can be dragged in the Flat display mode; it has no hierarchy to express.

Keyboard

Key Effect
F2 Rename the active node.
Delete Delete the whole selection.
Ctrl+D Duplicate the duplicable rows in the selection.
Ctrl+C Copy the selection to an in-tree clipboard.
Ctrl+V Paste — copy once, paste many.

Drivers, constraints, look-ats, pose layers and controls can be duplicated; visibility groups and sections cannot.

Deleting

Deleting is a two-click confirmation only when there is data to lose. When there is, the feedback bar goes yellow:

Delete node "Eyebrows"? Keyed poses, drivers and look-at frames on them are removed. Click − again within 5s to confirm (Ctrl+Z to undo).

On a rig with nothing keyed, deletion is immediate — a confirmation that always fires is a speed bump, not a safety net.

A multi-delete confirms once and undoes as a single Ctrl+Z.

What deleting does:

  • Deleting a control sends its free layers to level 0 and deletes its faces. A freed face becomes a visible row again.
  • The root Head control is deletable — it simply empties.
  • Delete Hierarchy removes the node plus what it owns. A control owns its faces, knobs, look-ats and free layers. A visibility group owns only its child groups — its members are reparented, never deleted.
  • Not deletable: the two section headers and the permanent Hidden group.

Hidden is the only fixed group

Every other group — All included — can be renamed or deleted. Hidden stays, because every rig needs somewhere to put things that must not be reachable.

Right-click menus

Every node kind has its own menu. If you right-click a row that is not in the current multi-selection, you get that row's own menu rather than the multi-selection menu.

Control context menu

Item Notes
+ Add Pose Layer Creates the layer inside this control (unlike the toolbar , which makes a global one).
⤓ Unroll Poses… Only when an MC is loaded. See Unroll.
Rename Control F2
Remove Control
Delete Hierarchy Only when the control owns children.
Duplicate Control ▸ Structure only Ctrl+D Clones the faces — grid, widget look, knob, back toggle — with an empty target list. This is the upper/lower-lid workflow: clone the shape, re-point the targets.
Duplicate Control ▸ Full (layers & targets) Clones everything: faces, targets, owned pose layers, knobs, drivers and look-ats, with fresh keys and remapped references.
Import MC ▸ Front Face / Back Face Import a Harmony MC straight into this control's face slot — you name the face explicitly, never "whichever face happens to be active". Same path as the Control page's [Set ▾] menu.

Control context menu — Import MC

That is the whole menu — a control's right-click creates inside the control only. Root-level creation (a global layer, another control, a driver…) lives on the toolbar and on empty space, where root level is what you mean.

Pose layer context menu

Item Notes
Rename F2
+ Add Pose Layer
Duplicate Pose Layer Ctrl+D Clones structure and targets. Poses are not copied.
Make Global The layer composes at every head pose. Keeps the current snap's pose. Refused (with the reason) when the result would pass the global 4D budget — see below.
Move to… ▸ The menu twin of dragging the node — one list, two kinds of target, each wearing the outliner's dual glyph. A control re-parents the layer (it composes per that control's pose). A pose layer or knob becomes this layer's axis — the layer keys across it, replacing its current knob (same single-axis rule as the Knob picker).
Remove Pose Layer Only when more than one layer exists.

The Move to… list only offers what would actually work: no cycles, no other control's knobs, and nothing past the dimension budget — a layer tops out at 6D with a control in its chain and at 4D fully global. A global 2D layer that already pages a 2D knob is a 4D chain, so it never appears as a target for another global layer. See Dimensions & Key Domains.

Control knob context menu Extra knob context menu

An extra knob is a real layer with a parent, so it takes Make Global and Move to… ▸ like any pose layer. Its consumers are not carried: going global means "this dimension becomes shareable" — the layers paging it stay where they are and keep paging it. Moving a knob into a control while global layers still page it is refused, naming them — a global layer only keys across global knobs, and nothing re-homes in silence.

A control's :W knob and a face stay without the moves — their placement is the control itself.

Driver context menu

Item Notes
Rename F2
Duplicate Ctrl+D
Mute / Unmute "Skip this driver at compose without deleting it (dimmed in the outliner)."
Make Global One value everywhere — no per-snap keying. The driver's keys are cleared (there is no pose axis left to hold them).
Move to… ▸ Everything a driver can key across, dual-glyphed: controls (Control scope — keys per that control's pose) and pose layers / knobs (keys across that layer's grid; an owned layer keys per its control's pose too, a global layer keys alone). Same funnel as dragging the driver node.
Delete Driver

A checkbox driver is always global — it keys across nothing — so Make Global and Move to… sit greyed with that reason, and the Behaviour dialog mirrors it: Checkbox is unpickable while the driver is scoped.

Item Notes
Rename F2
Duplicate Ctrl+D
Mute / Unmute
Delete Constraint

Look-At context menu

Item Notes
Rename F2
Make Global When it is not already global.
Move to… ▸ One entry per other control, dual-glyphed (the type half tells a 1D from a 2D control at a glance).
Duplicate Ctrl+D
Delete Look-At

Every look-at takes every gesture — the head's first look-at is no more special than the forty-ninth.

Item Notes
Rename F2 Disabled on Hidden.
New Visibility Group Inside The only way to create a nested group, at any depth.
Delete Visibility Group Disabled on Hidden.
Delete Hierarchy Only when the group actually parents sub-groups.

On Hidden, the disabled items explain themselves: "Hidden is the permanent sink — every rig needs somewhere to hide nodes. Any other group can be renamed or deleted."

Item
Duplicate {n} node(s) Ctrl+D
Delete {n} nodes