Shaping High-Density Fcurves (HLE)

 
 
 

A high-density fcurve is a curve with many keys, often one per frame, as you may get with motion capture or plotted data. This type of fcurve is often difficult to edit because if you change a few keys, you have to adjust many other keys to retain the overall shape of the curve. For example, moving a key results in a peak in the curve (as shown below):

To the rescue is the high-level editing (HLE) tool! This tool lets you shape an fcurve in an overall fashion, similar in concept to how lattices let you shape the geometry of an object. The HLE tool creates a "sculpting" curve that has few keys, but each one refers to a group of points on the dense fcurve. You then edit this curve, which shapes the dense fcurve using a simple arithmetic operation as defined by one of the three HLE operations.

To edit fcurves in HLE mode

  1. Select one or more fcurves.

  2. Click the HLE button in the fcurve editor's toolbar to activate the high-level editing mode.

    An HLE curve is created to let you shape the selected fcurves. It has keys on it as a regular fcurve so that you can edit it. The HLE curve exists and is viewable only when you're in HLE mode. The HLE curve shown below is using the Relative Offset operation.

    HLE curve has green keys. "Slave" curve turns pale blue and cannot be selected.

    The curves you selected become the "slave" curves to the HLE curve and turn a pale blue: they cannot be selected in this mode, but you can see how the changes made to the HLE curve affect the "slave" curve.

    To make it easier to see what's happening, any fcurve that wasn't selected is not visible in this mode.

  3. Select an HLE operation from the list beside the C button (see next section for more information): Relative Offset, Absolute Offset, or Absolute Scale. You can also switch operations during an HLE session.

    The Curve and Axis Labels are activated so that you can see which HLE operation is active.

  4. Edit the HLE curve as you would any other fcurve (move, scale, add or delete points, etc.).

    When you edit the HLE curve, the changes are transferred to its corresponding dense fcurve. You cannot edit the slave fcurve when in HLE mode.

  5. To move the HLE curves without changing the slave curves, click the C button. Click this button again to have your edits affect the slave curves.

  6. When you're finished editing, click the HLE button to deactivate HLE mode.

    The slave curve is updated with the new shape, and becomes selectable again. All other fcurves are also displayed again.

    NoteAlthough you cannot reset an HLE curve, you can take a snapshot of it before you modify it, then swap with the snapshot if you need to (see Editing Safely with Function Curve Buffers).

    You can also undo the operations on the HLE curve (press Ctrl+Z).

Selecting an HLE Editing Operation

Only the HLE curves corresponding to the current operation are visible; if you change the operation while in HLE mode, you'll see new HLE curves appearing for this operation.

  • Absolute Offset creates one HLE curve for all the slave curves. This HLE curve has two keys with a value of 0 at frames that correspond to the first and last keys of all slave curves. When editing this HLE curve, the difference between the default curve and the current curve is added to all slaves.

  • Absolute Scaling does the same as Absolute Offset except that the slaves are scaled by the ratio current curve over the initial curve. Initial curve keys have a value of 1.

    NoteWith Absolute Scaling, updating the reference HLE curve can cause problems when some of its values get close to 0.
  • Relative Offset creates one HLE curve per slave curve. Each of these HLE curves is obtained by low-pass filtering (smoothing) the corresponding slave and resampling the result (so there are fewer keys) before locking the keys in time. The ratio of keys is 10:1 (10 keys on fcurve related to one key on the HLE curve).

    When editing the HLE curve, the difference between the default curve and the current curve is added to the slave curve.

Creative Commons License Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License