The Animation Component is a special component used for creating animated data channels. The component contains a pre-defined network utilizing a Keyframe CHOP and a number of Table DATs to define the animated CHOP channels.
The Keyframe Editor is the user interface for creating and editing the channels of the Animation Component.
The Animation Component has both in and out CHOP connectors. With no input connected, the Animation Component's index loops over the time range of the channels.
The CHOP input can be used to manually control the index of the animated channels. For example, if the channels are keyed from frame 1 to 600, you can connect an input to the component and manually drive the output by feeding it a number between 1 and 600 (indexes outside the range will use the channel extend conditions).
Using the Keyframe CHOP's Index Units menu, you can drive the CHOP input with numbers expressed in seconds, samples or a fraction, where 0 is the start and 1 is the end.
The CHOP output gives access to the channel's current value. CHOPs can be directly connected or a Null CHOP may be appended for exporting the channels to various parameters. The current channel values can also be viewed by turning on the Animation Component's node viewer.
Using the Animation Component
Keyframing any parameter, attribute, or data in TouchDesigner begins with an Animation Component. You can create an Animation component from the OP Create Dialog, or simply go to any parameter of an OP and RMB -> Keyframe Parameter. See Keyframe Editor for more details.
To open the Keyframe Editor, change any pane to the Keyframe Editor type. Then right-click on an Animation COMP and select Edit Animation... to edit that component's channels and keys.
Then you can create and edit animated channels. Refer to the Keyframe Editor for instructions on keyframing.
The Animation Component Network
The Animation Component's network consists of a small CHOP network and a number of Table DATs.
The keyframe system is DAT-based, making it fully open and flexible. Keyframes are contained in DAT tables. The new Keyframe CHOP uses these DATs to interpolate keyframes and generate channels of samples. Being exposed means you can also generate keyframes procedurally or load keyframes from other software. So the Keyframe CHOP is now a converter from a DAT table of keyframes to a CHOP of multi-sample channels.
clock - a Constant CHOP named clock drives the animated channels forward when the Keyframe Editor is closed. clock plays back in sync with the current frame on TouchDesigner's playbar. When the Keyframe Editor is open, the timeline in the dialog drives the playback.
in - an In CHOP named in gives the Animation Component a CHOP input which can be used to override playback. If no input is connected, playback is driven by the frame number on TouchDesigner's playbar through the clock CHOP preceding in.
keyframe - a Keyframe CHOP named keyframe interprets the data stored in the Animation Component's Table DATs and converts it into time-sliced CHOP channels. The Input Units used to overide playback when using the input are set in this CHOP's parameters.
out1 - the Out CHOP named out1 provides a CHOP output for the component allowing easy access to the channels in other networks.
channels - this Table DAT holds the information that defines the animated channels. The list below describes each column:
name- the name of the channel
id- the channel id is used to look up the key data in the keys table.
left- the extend left conditions of the channel.
right- the extend right condition of the channel.
keys- the name of the table holding the key data for the channel.
liner lineg lineb- the RGB colors used to display the channel in the Keyframe Editor.
picked- indicates if the channel is selected in the Keyframe Editor.
display- indicates if the channel is displayed in the Keyframe Editor.
template- indicates if the channel is in template mode in the Keyframe Editor.
keys - this DAT holds information about specific keys that have been set on the channels. The columns are described below:
id- this id associates the key with a particular channel. Look in the channels table for the id to see the channel's name.
x- position of the key on the x-axis (time by default).
y- position of the key on the y-axis (value by default)
inslope- the slope of the incoming tangent. Can be set separately from outslope if tangent is untied.
outslope- the slope of the outgoing tangent. Can be set separately from inslope if tangent is untied.
inaccel- the acceleration (weight) of the incoming tangent. Can be set separately from outaccel if tangent is untied.
outaccel- the acceleration (weight) of the outgoing tangent. Can be set separately from inaccel if tangent is untied.
- expression - the function used to interpolate the curve segment following the key.
pickmode- sets the Pick Mode parameter of the Graph COMP.
hlength- sets Handle Length parameter which set how long the tangent handles are on the keys.
grid- sets the Grid parameter menu to display a small, medium, or large grid.
segments- toggles the display of curve segments.
slopes- toggles the display of tangents.
timemarks- not used
raw- not used
values- not used
attributes - this DAT holds information that the rest of the Keyframe Editor UI uses to set its timeline units and range.
Parameters - Animation Page
Channel List DAT
/channels - path to the Table DAT used to define the channels. The default value for this parameter is
/attributes - path to the Table DAT used to specify setup parameters used by the Animation Component and Keyframe Editor which determine how the user interacts and with the editor and how the channels and keys are created. The default value for this parameter is
Parameters - Common Page
Node View - Determines what is displayed in the node viewer, also known as the Node Viewer. Some options will not be available depending on the Component type (Object Component, Panel Component, Misc.)
- Geometry Viewer - Shows a 3D geometry viewer displaying the geometry inside the component. This option is only available for Object components.
- Control Panel - Displays the Control Panel, only available for Panel Components.
- Operator Viewer - Displays the node viewer from any operator specified in the Operator Viewer parameter below.
/opviewer - Select which operator's node viewer to use when the Node View parameter is set to Operator Viewer.
/clone - Path to a component used as the Master Clone. If the component specified as Master exists, then this component becomes a clone.
/pathvar - Specifies a variable name you can use anywhere inside the component as the path to that component. See Path Variable.
Load On Demand
/loadondemand - Loads the component into memory only when required. Good to use for components that are not always used in the project.
/externaltox - Path to a
.tox file on disk which will source the component's content upon start of a
.toe. This allows for components to contain networks that can be updated independently of the
.toe file. Paths used to locate
.tox files should not contain expressions or root variables. Built-in and Environment variables (like
$HOME) are accepted. If the
.tox file can not be found, whatever the
.toe file was saved with will be loaded.
Use Backup Copy if External .tox is Missing
/savebackup - When this checkbox is enabled, a backup copy of the component specified by the External
.tox parameter is saved in the
.toe file. This backup copy will be used if the External
.tox can not be found. This may happen if the
.tox was renamed, deleted, or the
.toe file is running on another computer that is missing component media.
Sub-Component to Load
/subcompname - When loading from an External
.tox file, this option allows you to reach into the
.tox and pull out a COMP and make that the top-level COMP, ignoring everything else in the file (except for the contents of that COMP). For example if a
.tox file named
geo1 as the Sub-Component to Load, will result in
geo1 being loaded in place of the current COMP. If this parameter is blank, it just loads the
.tox file normally using the top level COMP in the file.
/reinitnet - This button will re-load from the external
.tox file (if present), followed by re-initializing itself from its master, if it's a clone.