> For the complete documentation index, see [llms.txt](https://scenegroup.gitbook.io/cavalry/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://scenegroup.gitbook.io/cavalry/user-interface/menus/window-menu/scene-window/graph-editor.md).

# Graph Editor

Windows > Graph Editor

![](https://1676825895-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LT2-S1m8aSPAI_Gg3Q1%2F-M24d-dflZbCXwkAO9By%2F-M24dAAmylpRqQQmjjV9%2FGraphEditor2.png?alt=media\&token=fdd7ca65-778f-4d32-8915-881e2f727fc8)

To load animation curves into the Graph Editor either:

* Select an Element or Elements - this will load all channels.
* Select an attribute or attributes - this will load all selected channels.
* Select a key or keys in the Tree - this will load all the channels associated with the selected key(s).

### **Hotkeys**

{% hint style="info" %}
To reveal bézier handles select a key or a curve.
{% endhint %}

* `alt/option + click` a keyframe to toggle between linear and bezier interpolation.
* `alt/option + drag` a handle to break a joined tangent.
* `alt/option + drag` a handle to join a broken tangent (and unify weights).
* ~~`alt/option + shift + drag`~~ a handle to change the weights on joined tangents\~\~.\~\~
* `x + click` a handle to remove it.
* `x + click + drag` a collapsed handle back out from the keyframe it belongs to.
* `shift + drag` a handle to constrain horizontally.

{% hint style="info" %}
Double click a curve to add a keyframe.
{% endhint %}

### Looping

To set looping on an animation curve select a curve or curves and right click to bring up the contextual menu. Choose from:

1. **Loop After** - looping will occur after the last keyframe.
   * **None** - don't loop.
   * **Looping** - start the loop at the position of the **first** keyframe.
   * **Looping with Offset** - start the loop at the position of the **last** keyframe.
   * **Oscillate** - ping pong between the first and last keyframes.
2. **Loop Before** - looping will occur before the first keyframe.
   * **None** - don't loop.
   * **Looping** - start the loop at the position of the first keyframe
   * **Looping with Offset** - start the loop at the position of the last keyframe.
   * **Oscillate** - ping pong between the first and last keyframes.

You can also use the shortcuts at the bottom of the screen.

### Tool bar

**Keyframe Layer** - see [Keyframe Layers](/cavalry/user-interface/menus/window-menu/scene-window/keyframe-layers.md).

**Frame** - with a key(s) selected set the frame number for that key(s).

**Value** - with key(s) selected set the value of that key(s)

**Grid Snapping** - use the checkbox to enable and set the size of the grid

**Ghosting** - with ghosting set you will see a dashed line whenever you adjust keys or handles to use as a guide

**Show Channel Names** - when set, channel names will be displayed in the Graph Editor.

**Looping** - see above.

**Interpolation** - set keys to be linear, bézier or stepped.

**Béziers** - break or unify bézier handles.

**Align** - align selected keyframes. When aligning left/ right all selected keys will be aligned to key furthest left/ right. When centre aligning keys will be aligned to the average position of all selected keys.
