Skip to content

Selection behavior

Get Keys, Commit Keys and the Key Tools all read the current key selection in Houdini at the moment you press them. MotionAtelier keeps no selection of its own.

MotionAtelier looks for selected keys in this order:

  1. The Channel Editor under the mouse pointer, if it has selected keys.
  2. Otherwise, the Channel Editors that are the current tab of their pane, if they have selected keys and all agree.
  3. Otherwise, any Channel Editor with selected keys, if they all agree. Floating Channel Editors are included.
  4. Otherwise, the playbar’s selected keys.

If several Channel Editors hold different selections and none is under the pointer, MotionAtelier does not guess: it uses the playbar selection. To be sure which one is used, keep only one Channel Editor with a selection, or keep the pointer over it.

The status line names the source used: graph, playbar or, for Key Tools, channel list.

When no keys are selected anywhere, Key Tools fall back to the channels selected in the channel list of the current Channel Editor (and the playbar’s channel list), with all their keys selected. Get Keys and Commit Keys do not use this fallback; they need selected keys.

Channels are always processed in path order (case-insensitive), for example /obj/a/tx before /obj/b/tx. Houdini does not report the order in which you clicked channels. This order decides:

  • which channel Get Keys reads when several are selected (the first valid one);
  • the Active target of Match Durations (the first channel);
  • the stagger order of Offset Channels.
Channel Get Keys Commit Keys and Key Tools
Float or integer parameter with keys Yes Yes
Other parameter types (string, toggle, menu, ramp, …) Skipped: not a numeric channel Skipped
Locked parameter Read Skipped: the channel is locked
Node that cannot be edited (locked asset, take) Read Skipped: the channel's node cannot be edited

Segment types:

  • Bezier segments are read with their tangents.
  • Other segment functions (linear, constant, ease, cubic, expressions and so on) are read by Get Keys with flat tangents, with a note. Commit Keys replaces the segments inside the committed range with Bezier segments; segments outside keep their function. Reduce Keys accepts Bezier and linear segments only.
Command Needs per channel
Get Keys 2 selected keys with different times and different values
Commit Keys 2 selected keys
Remove Interior Keys, Reduce Keys, Match Durations 2 selected keys
Remove Outside Keys, Scale Keys, Offset Channels, Shift Following Keys, Align Starts, Align Ends 1 selected key
Inspect Selection nothing; it reports whatever is selected