Skip to content

Houdini integration

MotionAtelier changes your scene only when you press Commit Keys or run a Key Tool. Everything else (editing, generators, effects, recipes, history, preview) happens inside the panel. While nothing has been written, the status line ends with scene unchanged.

Action Reads the scene Changes the scene
Get Keys Yes No
Editing, SHAPE, Motion Stack, recipes, history, preview No No
Commit Keys Yes Yes, one undo step
Key Tools, except Inspect Selection Yes Yes, one undo step
Inspect Selection Yes No

The curve in the graph always runs from time 0 to 1. A shape describes how a value travels between two keys, not which values. When it is committed, time 0 and 1 land on an interval’s first and last key, and the curve’s start and end values land on those keys’ values. The same curve can therefore be applied to a 0→10 move, a 5→−3 move or 40 channels at once.

Get Keys loads existing motion into the Ease curve so you can edit it.

  1. Select at least two keys of one channel in a Channel Editor, or in the playbar.
  2. Press Get Keys.

What is read:

  • One channel. If several channels are selected, the first valid one in path order is read. The status line notes how many others were ignored.
  • The whole span. The curve covers every key from the first to the last selected key, including unselected keys in between, so the existing motion is reproduced.
  • Normalisation. Time is scaled to the selected span; value is scaled from the lowest to the highest selected key value.
  • Tangents. Bezier segments are read with their tangents. Other segment types (linear, constant, expressions) are read with flat tangents, and the status line reports how many.
  • Value jumps. Keys with a different incoming and outgoing value are read at the outgoing value, with a note.

The scene is never changed. Get Keys is one local undo step in the panel; press Ctrl+Z in the graph to get the previous Ease curve back.

A channel cannot be read when it is not a numeric (float or integer) parameter, has fewer than two selected keys, its selected keys share one time, or its selected keys all have the same value. See Selection behavior for where the selection comes from.

Commit Keys writes the current curve, including any active Motion Stack effects, onto the keys selected at the moment you press it. It does not reuse the Get Keys selection, so you can read one channel and commit onto others.

For every valid selected channel:

  • The first and last key of each interval keep their time and value.
  • Keys strictly inside an interval are removed and replaced by the curve’s knots, written as Bezier keys.
  • Keys outside the committed range are never written. The side of a boundary key that faces outside is rewritten with the slope and acceleration Houdini was already using, so neighbouring motion does not move. If those were automatic tangents, they are fixed at their current value, and the status line says so.
  • A value jump on a boundary key inside the committed range is removed.

The two buttons left of Commit Keys choose how the selected keys are grouped. The choice is remembered.

Button Behaviour
Apply to each interval (left) The curve is applied between every pair of adjacent selected keys. Every selected key stays.
Apply to whole range (right) The curve is applied once per channel, from its first to its last selected key. Keys between them are replaced.
Bounce applied to each interval of three keysThree keys at values 0, 1 and 0.4. With Apply to each interval, a full bounce runs from the first key to the second, and another from the second to the third. All three keys stay.
  • Apply to each interval
  • Original keys (linear for reference)
Three selected keys, Apply to each interval: one bounce per interval, all three keys kept. Plotted from MotionAtelier 0.4.2's own curve code, outside Houdini. An illustration of the curve, not a screen capture.
Bounce applied to the whole range of three keysThe same three keys. With Apply to whole range, a single bounce runs from the first key to the last; the middle key is removed.
  • Apply to whole range
  • Original keys (linear for reference)
The same keys, Apply to whole range: one bounce from the first to the last key; the middle key is replaced. Plotted from MotionAtelier 0.4.2's own curve code, outside Houdini. An illustration of the curve, not a screen capture.

If an interval’s two keys have the same value, the curve cannot scale between them and the interval is written flat at that value; the status line reports how many intervals.

Without effects, or with only Contrast and Arc Bias, the curve is written exactly, with one key per knot. Sampled effects (Noise, Gaussian Smooth, Sharpen, Jiggle, Spring, Lag, Delay) produce a dense result. It is fitted to a small set of keys within 0.5 % of the value range before writing, and the status line notes the reduction (effects fitted to <before> -> <after> keys). If no reduced fit stays within that tolerance, Commit Keys is refused instead of writing one key per sample.

Every commit and every Key Tool runs as one verified transaction:

  1. Check. Houdini undo must be enabled. Each channel must still exist, match what was just read, and be unlocked and editable. Channels failing a check are skipped and reported.
  2. Write. All changes on all channels go into one Houdini undo group, named for example MotionAtelier: Commit Ease or MotionAtelier: Reduce Keys.
  3. Verify. Every written key is read back. Every other key must be unchanged, and the channel must evaluate identically outside the committed ranges.
  4. Roll back on failure. If anything differs or fails, the whole group is undone and the status line reads … every channel was restored. If the scene could not be restored exactly, the status line starts with CRITICAL and names the channels to check.

To revert a successful commit, use Houdini’s Edit ▸ Undo once. The panel’s own Ctrl+Z undoes curve edits only, never scene changes.

Commit Keys and Key Tools skip a channel, and say why in the status line, when it:

  • is not a numeric (float or integer) parameter;
  • is locked, or belongs to a node that cannot be edited (for example a locked asset or a take);
  • has fewer than two selected keys (Commit Keys, Remove Interior Keys, Reduce Keys, Match Durations);
  • would get two keys closer than 0.01 frame;
  • needs a tangent handle reaching the full length of its segment, which Houdini cannot store.

Other valid channels are still committed. See Troubleshooting for every message.