User Guide > Animation > Keyframing   

Keyframing Techniques

Setting keyframes is a crucial part of any animator's workflow. In Houdini, there are different ways of setting up parameters to be keyframed. These methods are context sensitive and different pane types have their own keyframing techniques.

When a keyframe has been set on a parameter, a channel is created which defines an animation curve that can be shaped using function curves and tangent handles. This curve helps you define the quality of motion for the parameter and can be edited in the Channel editor.

Topics covered:
Setting Keyframes in the Viewer Pane

Setting Keyframes in the Parameter Pane
Setting Keyframes with Scoped Channels
Setting Keyframes on Channel Groups
Animating Procedural networks


Setting Keyframes in the Viewer Pane

Because the viewer pane is where the interactive manipulation of objects and operations takes place, this is an ideal place to set keyframes. In the viewer pane, you can choose to set keyframes on either the active handle or on filtered transformations using the following hotkey combinations:

k - This single hotkey sets keyframes on all the parameters associated with the active handle belonging to your current operation. In the case of a geometry object this would mean setting keys on all the translation, pivot, and scale parameters. This same capability can be accessed by pressing RMB on the handle in question and selecting Set Keyframe.

Tip: To filter out parameters that you don't want to key you can lock them in the Parameter pane. All locked parameters will not be affected by the handle keyframing. To lock a parameter, RMB-click on the parameter or parameter name and choose Lock Parameter.

Shift - t, r, e - When an object is selected which has transformation parameters, you can use the Shift key to filter your keyframes to either translate [t], rotate [r], and scale [e].

To determine what functions will be used to create the shape of the animation curves that result from these keyframes, you can go to Settings > Main Preferences and select Animation. You can also invoke autokeyframing by selecting the Add Keyframes on Parameter Change option. Be aware that autokeyframing can be difficult to work with effectively and should be used cautiously.


Setting Keyframes in the Parameter Pane

The parameter pane lets you set keyframes on specific parameters and gives you access to parameters that may not be tied to a particular handle. You can set keyframes using one of the following methods:

Alt-click - Press the Alt key and click on either a parameter field or the parameter's name to set keyframes. Once keyframes have been set the parameter field changes colour to indicate that it has a keyframe at the current frame. A different color is used for a parameter that has an associated channel but no keyframe at the current frame.

RMB menu - You can also set keyframes by RMB-clicking on the parameter or the parameter name and selecting Set Keyframe. This gives you the same result as the Alt-click method.


Setting Keyframes on Scoped Channels

While setting keyframes on handles is efficient, this method may force you to key more channels than you need and doesn't give you access to parameters not associated with the handles. On the other hand, setting keyframes in the Parameter pane requires each parameter to be keyframed separately. Once keyframes have been set, you can scope an operation's channels and use these to set more keyframes.

Scoping channels means that they are the current channels that will appear in the Channel editor when it is opened. As parameters become scoped they will highlight in the Channel List which can be either viewed as part of the Channel editor or in its own pane.

When you first select an operation that has been keyed any channels will be scoped. Another way to scope channels is to RMB-click on either a handle in the Viewer pane or a parameter in the Parameter pane, then select Scope Channels. You can also manually highlight channels in the Channel list to change their scope status.

There are three methods of setting keyframes on scoped channels:

Alt-k - To set keyframes on the scoped channels, press Alt-k.

Playbar keyframe button - Click on the keyframe button at the far right of the playbar to set keyframes on the scoped channels. This gives the same results as pressing Alt-k.

The Channel Editor - In the Channel editor, the k hotkey sets keyframes on the scoped channels instead of the handle parameters.


Setting Keyframes on Channel Groups

In order to create channel selection sets that contain channels belonging to different operations in your scene, Channel groups can be used. You might want to create a channel group for a character or for all the face parameters. These groups can be created in either the Channel editor or in the Channel group List pane.

To create a channel group - Open the Channel list pane and drag one or more parameters from the list up to the Channel group list. A new group is created and can be named. If you drag other channels to the same group then you can add to or replace the members of the group.

To keyframe a channel group - There are two possible methods for setting keyframes on the members of a channel group. First you could click the key button on the right side of the group listing. Second you could press the * button on the left side of the group listing to scope the channels and then use Alt-k to keyframe them.


Setting Keyframes in Procedural Networks

Keyframes can be set not only on object transformations but also on operations that are found in procedural networks such as SOPs, POPs, SHOPS, CHOPS, and COPs. The k and Alt-k hotkeys work on handles and scoped channels in any of these networks. These networks are used to build up the shape or look of your objects and animation at this level can create sophisticated results.

It is important to note that keyframes set within a procedural network will force all operations that follow to re-evaluate or cook for every frame. Therefore it is more efficient to set keyframes on nodes that are closer to the operation designated for display/render. An awareness of which operations will be keyframed will help you design networks that are optimized when animated.

In some cases, you may want to put some keyframed operations that contain secondary animation between the display and render operations so that this motion is not seen in the interactive view but is seen in renderings.