Search public documentation:


Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 Home > Unreal Editor and Tools > Curve Editor User Guide
UE3 Home > Matinee & Cinematics > Curve Editor User Guide
UE3 Home > Cinematic Artist > Curve Editor User Guide

Curve Editor User Guide


The Curve Editor in Unreal Engine 3 allows fine control over properties that change over time, e.g. properties which make use of Distributions. It is currently used in both Matinee and the Cascade particle system editor.

The Curve Editor, as it is currently used, is not a standalone editor as you would find with most other editors in Unreal Editor. It is used as a dockable pane inside of other editor. As such, opening the Curve Editor is done through the interface of the editor window it is found within, such as the Matinee or Cascade editor windows.


The Curve Editor is comprised of the following areas:


  1. Tool Bar
  2. Track List
  3. Graph

Tool bar

toolbar_fit_horiz.jpg Fit the graph to the current visible tracks horizontally.
toolbar_fit_vertical.jpg Fit the graph to the current visible tracks vertically.
toolbar_fit_all.jpg Fit the graph horizontally and vertically to all points of the current visible tracks.
toolbar_fit_selected.jpg Fit the graph horizontally and vertically to the selected points of the current visible tracks.
toolbar_mode_pan.jpg Puts Curve Editor into Pan/Edit mode.
toolbar_mode_zoom.jpg Puts Curve Editor into Zoom mode.
toolbar_curve_auto.jpg Sets InterpMode for selected keys to Auto-curve mode. Locked, flattened tangents.
toolbar_curve_user.jpg Sets InterpMode for selected keys to User curve mode. Locked, user-modified tangents.
toolbar_curve_break.jpg Sets InterpMode for selected keys to Curve Break mode. Separate in and out tangents
toolbar_curve_linear.jpg Sets InterpMode for selected keys to Linear mode.
toolbar_curve_constant.jpg Sets InterpMode for selected keys to Constant mode.
toolbar_tangent_axis.jpg Set selected keys' tangents flattened horizontally.
toolbar_tangent_straight.jpg Straightens selected keys' tangents, when broken.
toolbar_tab_create.jpg Creates a new tab.
toolbar_tab_list.jpg Lists and allows selection of available tabs.
toolbar_tab_delete.jpg Deletes current tab.

Track List


The Track List displays all of the curve tracks currently loaded into the current tab. Tracks are normally loaded external to the Curve Editor by pressing a button associated with a Track in Matinee or a Module in Cascade.


Each track in the Track list displays the name of the property associated with the track along with visibility toggle buttons for each individual curve in the track and an overall visibility toggle button. The individual curve visibility toggle buttons are color-coded to correspond to the components of a vector, with red being X, green being Y, and blue being Z. Red is also the color used for a single scalar float value. In the case of a VectorUniformDistribution, there are two sets of curves with each color having a lighter and darker version.

Right-clicking on a track in the Track List brings up the track list context menu.


  • Remove Curve - Removes the current track from the Curve Editor.
  • Remove All Curves - Clears all tracks loaded in the Curve Editor from all tabs.
  • Preset Curve - Replaces the current track's curves with a preset curve.
  • Save Preset Curve - Saves the current track's curves to a preset curve.



The Graph takes up the majority of the Curve Editor interface. It is a graphical representation of the curve with time (input value) along the horizontal axis and the property value (output value) along the vertical axis. Keys along the curve are displayed as points which can be selected and manipulated to visually edit the curve.

Right-clicking on the Graph brings up the graph context menu:


  • Scale Times - Scales the time values all points of all visible tracks, e.g. scales horizontally.
  • Scale Values - Scales the values of all points of all visible tracks, e.g. scales vertically.

Right-clicking on a point on a curve brings up the point context menu:


  • Set Time - Allows the Time of the point to be manually set.
  • Set Value - Allows the value of the point to be manually set.
  • Delete - Deletes the selected point(s).


Mouse Controls

In Pan/Edit mode:

LMB + Drag on background Pan view around
Mouse Scroll Zoom in and out
LMB on Key Select point
Ctrl + LMB on point Toggle selection of point
Ctrl + LMB on curve Add new key at clicked location
Ctrl + LMB + Drag Move current selection
Ctrl + Alt + LMB Drag Box select
Ctrl + Alt + Shift + LMB + Drag Box select (add to current selection)

In Zoom mode:

LMB + Drag Zoom Y axis
RMB + Drag Zoom X axis
LMB + RMB + Drag Zoom X and Y axes

Keyboard Controls

In Pan/Edit mode:

Delete Delete selected points
Z Puts you into Zoom mode while held.

Note: Some tools and actions in the Curve Editor may not support Undo/Redo.

Hot Keys

Ctrl + Z Undo
Ctrl + Y Redo


Tabs in the curve editor allow for organization of tracks. New Tabs can be created easily by pressing the button_tab_add.jpg button. The new tab can be named which can hold any number of tracks.


This can be useful when working with a particle system made up of multiple emitters. Sending the curve data for multiple Lifetime modules to the Curve Editor could become extremely confusing since there is no real distinction between them other than possibly coloration if one module is selected or the modules' colors are different.


Adding and removing tracks over and over to keep this from happening would be extremely inefficient. By creating a tab for each emitter, the tracks can be kept separate and identified easily keeping any mistaken editing of the wrong track for the wrong emitter.


Interpolation Modes

The interpolation mode buttons control the method each point on the curve will use to reach the next point. If you are using one of the curve modes (Auto, User or Break), you will see white handles that you can click and drag to give you more control over the curve between points. If you select a key that is in Auto curve mode and adjust its tangents using the white handles, it will automatically convert to User curve mode.

Auto-generated Curves

To utilize the auto-generated curves supplied with the engine, simply right-click the curve you wish to fill in on the left-hand column of the curve editor and select `Preset Curves'. The following dialog will be displayed, with the available sub-curves enabled according to the distribution type that the curve represents:


The following choices will be available in the preset drop-down combo boxes:

  • Do Not Preset - Leaves the curve that is present as-is.
  • Cos Wave - Generates a curve using the time (horizontal) value as the input to the Cosine function (the vertical value).
  • Sine Wave - Generates a curve using the time (horizontal) value as the input to the Sine function (the vertical value).
  • Linear Decay - Generates a curve featuring a linear decay.
  • User-Set - Allows for loading and using a user-defined curve that was previously saved.

When the Cos Wave or Sine Wave preset are selected, the following setup parameters are displayed:

  • Frequency - the frequency of the wave over the time period (currently pinned to [0.0..1.0]).
  • Scale - the scale factor to multiple the calculated value by. Allows for sizing the curve to the users wishes.
  • Offset - the offset to apply to the value (after it is scaled). This allows for ensuring all values are positive, etc.

An example of a Cos Wave generated with a frequency of 2.0, a scale of 0.5, and an offset of 1.0 is shown below:


When the Linear Decay preset is selected, the following setup parameters are displayed:

  • StartDecay - the time to start the decay.
  • StartValue - the value to start the curve at.
  • EndDecay - the time to stop the decay.
  • EndValue - the value to end the decay at.

An example of a Linear Decay generated with the start decay value of 0.2, start value of 0.9, an end decay value of 0.8, and an end value of 0.25 is shown below:


Note that the curve in this case will require some tweaking. By default, all the auto-generated curves use the AutoSet curve interpolation method. In the Linear Decay case, selecting each point and setting the interpolation method to linear will `correct' the curve.

User-Set Curves

To utilize user-set curves, you must first create a CurveEdPresetCurve instance in a package. This is done by right-clicking the Content Browser and selecting "New CurveEdPresetCurve" and entering a Package, Group (Optional), and Name for the new preset curve.

Once this is done, you can save a curve to this object by right-clicking the track that you wish to save in the Track List and selecting "Save Preset Curve". This will also open the Preset Curve dialog, but this time, the only options available are the following:

  • Do Not Preset - Do not save this curve.
  • User-Set - Save this curve.

When User-Set is selected, the following dialog is displayed:


Select the curve in the Content Browser you wish to save the curve to, and click the button_usecurrent.jpg button on the property window. Hit the OK button, and you will save the curve to the contents of the selected Curve object.

This curve can now be used when presetting curves simply by selecting the User-Set option and selecting the curve to utilize from the generic browser.

USAGE NOTE 1: Occasionally, when you select an option via mouse-clicking in the Preset combo box, it doesn't properly update the dialog. When this occurs, simply select the combo box, and use the up and down arrows to select a preset curve option.

USAGE NOTE 2: Currently, preset curves are not available for VectorUniformCurve distributions. This will be remedied as soon as possible.

USAGE NOTE 3: Be aware that preset-curves simply provide a template for curves to be used in the CurveEditor. They are provided as a time-saver to eliminate the need to recreate the same curves over-and-over. CurveEdPresetCurve is a simple holder object for storing the data associated with a user-saved preset curve. They cannot be used to 'share' a curve between several objects.