🗃️Channels
Lists all channels on the object or behavior.
This provides a helpful overview of an object's animation channels with additional settings and editing features.

Channels List
The Channels section provides a convenient way of inspecting channel setup and data. Some behaviors such as Keyframer also display a Channels section in the editor, however will only show the channels it manages. Whereas the TimeflowObject shows all channels on the object. In either case the channels may be edited the same.

If a property with multiple attributes is selected, an additional set of options allows choosing an attribute (axis), or processing it as a uniform or combined value (vector). See Properties for further details.
Use the up and down arrow buttons in the Channel list to reorder them.
Channel Order
In most cases the order of channels doesn't matter, however there may be times that it is advantageous to rearrange them. This can be to display them in a specific order and also determines which channels are processed first.

Channel Settings
Expand the foldout arrow to view details for any channel listed. Channels that support keyframing also display a list of keyframe times and values for direct editing.

Channel Link
Displays the current channel link if one is assigned. For more details, see Channel Link.

Loop Settings
Displays settings that control looping a section of time. These features are covered in more detail in the Graph View documentation.
Limit Value
This option is only available for numeric data types. If enabled, all values generated by the channel (whether keyframed or procedural) are restricted to the set value range. Any values outside of the range are cropped to the Min and Max values.

Set Shader Global
When enabled, the channel outputs its value each frame to the named global shader property. This can be used to perform animations on all materials using the shader.

This is a much more efficient way to animate materials across many objects, instead of setting values on each material instance separately.
This is implemented through Unity's Shader class using the SetGlobal methods. Data types include float, vector, and color. This works in both edit mode and play mode the same.
Keyframes
Lists all keyframes in the channel. This section is only displayed if the channel supports keyframing. Keyframes may be edited directly.
Be aware that every keyframe must have a unique time. Any keyframe with the same time as another is considered a duplicate and removed automatically.
Exposed Keyframes
This is an advanced feature for creating programmable or remote-controlled keyframe values. Each keyframe may be exposed using a unique ID making it globally accessible via simple scripting calls to get and set the keyframe values dynamically.

// To set a keyframe value remotely in any script:
AxonGenesis.Keyframe.SetExposedKeyframe(ID, Value);
// To get a keyframe value:
float value = AxonGenesis.Keyframe.GetExposedKeyframe(ID, 0);
One use case for this feature is to create variations of animations and object placement determined by a game controller or setup script. It can also be used to get values and Keyframe objects for further custom processing.
For an example script, please see SetExposedKeyframe.cs.
Last updated