---
description: Create camera movements and complex transitions
---

# Blend

{% embed url="https://youtu.be/cn3DcQ9d4ww" %}

Blend is an advanced animation tool for complex transforms, dynamic reparenting, and animating any number of properties in unison. &#x20;

{% hint style="success" %}
To add a new Blend behavior, right-click an object in the Timeflow view and select:

#### Add Animation > Blend
{% endhint %}

The Blend behavior has a single channel for keyframing between blend sets. This can be used for creating camera edit sequences, interpolating complex object states, and much more.&#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FKCnd4A81KRJIuIsykpOy%2Fimage.png?alt=media&#x26;token=30219090-4936-4be5-b775-4246f2abea74" alt=""><figcaption></figcaption></figure>

## Usage Overview

Before Blend can be fully used it must be configured following these general steps.

1. In the Inspector, go to the [Setup](#setup) tab and assign the target transform(s) and enable the features you intend to use.&#x20;
2. Go to the [Properties](#properties) tab and add any additional properties, or skip this if none are needed. Properties can also be added later.
3. Go to the [Sets ](#sets)tab and begin adding sets. Each set defines a particular placement and set of values which is later used in keyframing. For example, if animating a camera one set could be "Close Up" and another "Wide Angle", setting the transforms and properties of each accordingly. Any number of sets may be created.&#x20;
4. Use the [Active](#active) tab and [Current Blend](#current-blend) to test transitions from one set to another.&#x20;
5. Add keyframes in the Timeflow view to create a sequence based on the sets. Each keyframe can hold on just 1 set or interpolate between any 2 sets.&#x20;

### Workflow Tips

{% hint style="success" %}
Keep sets well named and organized to avoid confusion.&#x20;
{% endhint %}

{% hint style="success" %}
Before setting keyframe animation, prepare the setup, sets, and properties as much as possible to discover and fix issues early on.&#x20;
{% endhint %}

{% hint style="success" %}
Use&#x20;
{% endhint %}

{% hint style="success" %}
Toggle the enable state for selected keyframes using the keyboard shortcut **0**.&#x20;

A disabled keyframe becomes greyed out and is ignored. This can be helpful while editing animations to turn off specific keyframes and experiment more without deleting anything. Toggling between keyframes can let you try out and compare options, while preserving the previous option in case you change your mind later.&#x20;
{% endhint %}

## Blend Editor

Select the object to view its settings in the Inspector.

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FNu5mwzkpkah9X8GrBBfY%2Fimage.png?alt=media&#x26;token=0c3552f2-9823-4688-9eb9-e694d15b7ddc" alt=""><figcaption></figcaption></figure>

For common panels see [Menu Bar ](../../../user-guide/timeflow-editor/menu-bar)and [Update Settings](../../../user-guide/timeflow-editor/update-settings).&#x20;

## Blend Settings

Once configured and sets have been added, the section at the top of the inspector shows the current sets being displayed. Before adding any keyframes, these values can be set directly to preview blending between any two selected sets.

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FvUqH24tpxXRCSAn4gk5O%2Fimage.png?alt=media&#x26;token=cd3a169a-3e5c-42c4-b6c3-f769507efa6f" alt=""><figcaption><p>This section displays grey as shown above only when no keyframes have been set on the channel yet. </p></figcaption></figure>

Once keyframes have been set on the Blend channel (and the channel is enabled) the display shows the currently active keyframe based on the current time in Timeflow. If multiple keyframes have been set, you'll notice that the display updates when moving the current time.&#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FZ4PdWeH5VxgCMczpV34L%2Fimage.png?alt=media&#x26;token=b8651169-af35-4a37-83c4-2c9057728556" alt=""><figcaption><p>When Blend is being controlled by its keyframe channel, this section is highlighted in the display color.</p></figcaption></figure>

{% hint style="warning" %}
When the label _\* Editing current keyframe_ is displayed, any changes made are applied to the current keyframe. However, the Blend slider cannot be changed directly since it is controlled by time. Use Manual Override for full control.
{% endhint %}



<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FuLqqPqtvnPwlUFBFKfqu%2Fimage.png?alt=media&#x26;token=4756e6ab-f541-42a1-abda-ff3b2937a5ae" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
To ignore keyframe animation entirely while editing, disable the channel in the Timeflow view by clicking the small watch icon ![](https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2F4LfJxYEixdsYlyuN8JSe%2Fimage.png?alt=media\&token=0f44d7a9-4afc-4756-95e3-6f9d86c6bdd4) on the left. This greys out the channel and prevents it from processing and can then be re-enabled at any point.&#x20;
{% endhint %}

### From / To

Specifies the From set as the starting point of the blend transition and the To set as the end.&#x20;

### Hold

If enabled, only this set is displayed and no blend transition is performed.&#x20;

{% hint style="info" %}
Use Hold for locked off camera angles and any sets that don't require interpolation.
{% endhint %}

### Reverse

If enabled, the blending operation is performed To -> From instead From -> To.&#x20;

{% hint style="info" %}
You can also click the Swap button to exchange From and To without using Reverse.
{% endhint %}

### Blend

Use the blend slider to interpolate between the From and To set, using the selected [interpolation mode](../../../glossary#interpolation-modes).

### Manual Override

To bypass the keyframe animation and to explicitly set the blend from and to settings, enable Manual Override. When enabled, it is highlight in a yellow box to clearly indicate that override mode is enabled. Generally manual override is only used when editing to quickly test and preview blending from one set to another without affecting animation on the channel. &#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FQhRP35L7ZBkDtkVsZlvV%2Fimage.png?alt=media&#x26;token=72fc2fb3-8440-4d39-9a9f-a5e2f3c06d5a" alt=""><figcaption></figcaption></figure>

#### Direct Control

If enabled, the target transform may be set directly bypassing all blend sets and animation on the channel. This mode can be useful to take control over object placement temporarily in preparation to capture a new set.&#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FwaG8taotXgofRnD4SRrA%2Fimage.png?alt=media&#x26;token=326baa79-620a-4aae-b64d-5b1204264ce8" alt=""><figcaption></figcaption></figure>

### Edit Mode

Click the Edit button to directly view and edit any set. This temporarily enables override mode and displays 'Editing Set'. While editing, all animation on the channel is ignored and only the current set is displayed.&#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FJD8RJtSQjaXMvLusX4Xu%2Fimage.png?alt=media&#x26;token=a0c358a4-3428-4ae6-a5fe-465f2a2d6565" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Use edit mode any time to quickly make adjustments to any set.
{% endhint %}

{% hint style="warning" %}
Be sure to press Done to exit editing mode and return to normal operation.
{% endhint %}

### Add Set

Creates a new set with default values. This basically creates a new "empty" set ready to be configured further. The new set is immediately viewed in edit mode to allow direct editing.

### Capture New

Adds a new set using the current position, rotation, and values of any properties. This is helpful to capture the target object(s) as-is, saving it as a new set. This also immediately invokes editing mode for further editing.

### Swap

Switches the From set with To set to reverse their order.

## Active

Shows the current set(s) being viewed for quick editing. This updates to display whichever sets are currently displayed, making it easier to adjust settings on each set.&#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FDUq0sN5s83nNZdMNIBhn%2Fimage.png?alt=media&#x26;token=f01ece63-7289-4148-91ff-88ae887428c5" alt=""><figcaption></figcaption></figure>

See [Set Parameters](#set-parameters) for further details.

## Setup

Use this tab to assign the target transforms and which features are used.

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FwntrRuhkyA1vWdCWMZ8g%2Fimage.png?alt=media&#x26;token=dfd205da-367f-4a9a-85e9-4d793418570b" alt=""><figcaption></figcaption></figure>

### World Parent

This sets the transform to use when performing world space placements and calculations. A transform is wanted here to avoid null parents and to keep objects contained under one global parent. By default, this uses the Timeflow instance, though can be set to any other object.&#x20;

{% hint style="warning" %}
Make sure the World Parent transform is set to 0, 0, 0 and scale 1, 1, 1 otherwise it may introduce unwanted offsets.&#x20;
{% endhint %}

### Force World Space

If enabled, all sets are processed in world space regardless of whether using local or parent mode for particular sets. Use this option if you want to ensure that all calculations are in world coordinates.

### Set Parent of

If enabled, the transform assigned to this field may be dynamically reparented by sets using Parent mode. See [Set Parent](#set-parent) below. &#x20;

{% hint style="info" %}
Dynamic parenting can be used to hand objects off from one parent to another and animate between them. For example, if working with a camera rig, one set may attach the camera to a moving vehicle and another set to a fixed location on the ground. Each set maintains its relative relationship so that you can easily switch between camera views and even animate between them.&#x20;
{% endhint %}

### Set Position of

If enabled, the transform is repositioned by the sets. This defaults to the transform component on the current object though may target any other object as needed.&#x20;

### Set Rotation of

If enabled, sets the rotation of the specified transform. This typically is the same transform as Set Position, however may be a separate object for more complex rigs.

{% hint style="info" %}
It is often helpful to use multiple transform nodes to separate rotations from other behaviors in the hierarchy. This allows a greater degree of freedom and can avoid conflicting issues and gimbal lock.\
&#x20;<img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2Fa9JDBpTmAvFtKDdWv7GB%2Fimage.png?alt=media&#x26;token=d42dc5f8-5325-4846-8eeb-a3b404b0a8cb" alt="" data-size="original">
{% endhint %}

### Set Scale of

If enabled, scale is applied to the specified transform.&#x20;

### Set Field of View of

When using Blend to control camera views, enable this to allow each set to define the camera's field of view. This can be used to create wide and narrow camera angles and animated between them.

### Notify On Change

Integrates Blend with other scripts. This requires a Blend Update component which provides methods for updating.&#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FAanXjc15UUBE0FvAaYgR%2Fimage.png?alt=media&#x26;token=9b992e93-0d81-40bf-8f0e-70d67e74d678" alt=""><figcaption></figcaption></figure>

The update script can be applied to the same object or any another. The base class by itself doesn't do anything other than output a message to the console, but is showed here for demonstration purposes.

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FiHTvMgNX8F2xAk4blOlu%2Fimage.png?alt=media&#x26;token=4f4a1dc4-10a8-409e-b2db-0a412b0f18cd" alt=""><figcaption></figcaption></figure>

Create your own custom blending behaviors by deriving from the BlendUpdate class and overriding the methods OnBlend and OnBlendChange. Each frame the component receives an update call with the current time, keyframes being interpolated, and the blend value.&#x20;

```
/// update method called each frame upon processing Blend 
public virtual void OnBlend(float time, Keyframe keyA, Keyframe keyB, float blend)
```

{% hint style="info" %}
Writing a script is not required but is an option for developers that need specialized integration with game or scene controllers. One use case for this might be to change the UI or a HUD display according to the current camera view, which could be determined by looking at the BlendKey data, which can be accessed through the Keyframe parameters.
{% endhint %}

Refer to BlendUpdate.cs for further information.

### Properties

Use this to tab to configure properties under controlled by this Blend. Any number of properties of various types may be added to create complex transitions and state changes across multiple objects.&#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FXBrwTTydul3VA2aew7tX%2Fimage.png?alt=media&#x26;token=9cf8d67e-7ccf-4684-b23e-0294920118a5" alt=""><figcaption></figcaption></figure>

#### Add Property

Click this button to create a new property field. The new property will need to be mapped after is created and initially appears unassigned.

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FAoJXisSSXajqusYUsS8d%2Fimage.png?alt=media&#x26;token=efa23b7e-c210-418a-ad42-947f068e1e77" alt=""><figcaption></figcaption></figure>

#### Clear All

Removes all properties listed, clearing their fields and values from all sets.&#x20;

#### Edit Names

Toggles displaying the name fields for property list for editing.&#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FmLorM31nXyOLZDWamQKP%2Fimage.png?alt=media&#x26;token=ba3568c4-ff44-4464-8fa9-ab319f1d4983" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Naming properties helps clarify and streamline the blend settings to your liking.
{% endhint %}

When viewing details for a set, each property is listed in order by number and name. &#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FaLtq1k83Od3yPnAJcgVd%2Fimage.png?alt=media&#x26;token=bd19dd49-183f-4216-aabc-2d0241567d41" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Click Reset Names to restore all properties to their original names.
{% endhint %}

## Sets

Use this panel to manage all of the sets in the Blend.&#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FYwHY4DXgF8OcIqEwkV3j%2Fimage.png?alt=media&#x26;token=e6df8c5a-b5f9-47fc-ba84-a599f70606d1" alt=""><figcaption></figcaption></figure>

### Categorize Menus

If enabled, the set names are organized into submenus by coordinate space when selecting from a drop down menu. This helps to manage set lists and to aid in selecting sets of like type.&#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2F7CgVfmjXF8oq4aMrLrhb%2Fimage.png?alt=media&#x26;token=67400407-214e-498a-a450-0001f8e0a39b" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The Parent submenu is further organized by parent name to quickly find sets with the same parent.
{% endhint %}

{% hint style="warning" %}
When blending between sets that don't share the same parent, local coordinates are assumed (relative to the From set). This may not create the desired behavior when using parenting, since it not possible for Blend to interpolate dynamic reparenting. To work around this, the From and To set must have the same parent or operate in world space. it may also be helpful to use world space with [Use Transform](#use-transform).&#x20;
{% endhint %}

### Color Coded

If enabled, sets are shaded in green for Parent sets, and blue for World sets. This is only as a visual aid in the editor to know which type each set is at a glance. This is optional and may be disabled if preferred.

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2F4giHEpXTnFMSnuvAuR1l%2Fimage.png?alt=media&#x26;token=6b9f6b49-faf3-4344-b398-b54a86e30645" alt=""><figcaption></figcaption></figure>

### Sort

Sorts the list of sets first by Space (Local, Parent, World) and then alphabetically by name.

### Collapse / Expand All

Shows or hides the details for all sets listed.

### Tabs (All | Local | Parent | World)

These tabs filter the view depending on what you want to view. Use this while editing to help focus on sets of the same type.

## Set Parameters

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FzS7URfJX7R7iQzp4f9hV%2Fimage.png?alt=media&#x26;token=f0e8d798-1305-4a5b-a921-d51ca8f97ae9" alt=""><figcaption></figcaption></figure>

### Name

Give each set a meaningful name that is descriptive but short. Being clear and concise in your naming will avoid confusion when animating and make things easier for you overall.

### Edit

See [Edit Mode](#undefined-1) above.

### Duplicate

Makes a copy of the set. This is often helpful to make an alternate version of a set or to use it as a starting point for creating another.

### Re-Capture

Updates the set with the current position, rotation, scale, and property values, overwriting its previous values. Often this can be useful to capture a blend between two other sets, or even the current set and another.&#x20;

{% hint style="success" %}
When editing a blend between two sets, re-capture can be a helpful tool to make adjustments to bring one set closer to the other. Adjust the blend to the desired position and then re-capture to update the set to the current values.  &#x20;
{% endhint %}

### Space

The coordinate space the set operates in. This is important depending on the type of result desired and each has its use case.

{% hint style="info" %}
The universal common denominator is World space. It is possible with a little extra setup to make all sets work in world space with [Use Transform](#use-transform), covered below.
{% endhint %}

#### Local

Position, rotation, and scale are all set in local coordinates on the target objects.&#x20;

#### Parent

This mode is used for dynamic reparenting where the target object ([Set Parent of](#set-parent-of)) is made a child of the object designated by this set. The position, rotation, and scale are processed in local coordinates relative to the new parent.

{% hint style="info" %}
If [Use Transform](#use-transform) is enabled, no reparenting takes place and instead it is assumed that the transform assigned is already parented as it needs to be.&#x20;
{% endhint %}

#### World

Defines coordinates in world space.&#x20;

{% hint style="warning" %}
This is only true world space if the [World Parent](#world-parent) hasn't been moved, rotated, or scaled.
{% endhint %}

### Use Transform

If enabled, a transform may be used to provide placement instead of defining it in world or local space. This makes it much easier to smoothly transition between local and world space by working with the world coordinates of the transforms. This method takes a little more setup but more complex behaviors can be achieved.&#x20;

{% hint style="info" %}
Any game object may be used as a transform. You can also create a new empty game object and make it a child of the object you want to attach to with positioning relative to the parent. This is a good alternative (or addition) to using Parent space for dynamic reparenting.
{% endhint %}

#### Convert to Transform

This creates a new empty game object and places it the coordinates currently defined by the set, then assigns this with Use Transform.&#x20;

{% hint style="success" %}
Use this to quickly setup a new transform for the current set, instead of creating and assigning it manually. This can also make blending between a Parent and World or Local space set possible.&#x20;
{% endhint %}

#### Convert to World Coordinates

Converts the current set to World space with world coordinates for the current position, rotation, and scale. This breaks any prior connections to a parent or transform, leaving just the current world position.

### Set Parent

This field is only visible for Parent sets. Assign the game object to be used as a parent. The coordinates are then in local space as a child of the parent object.

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FPjHvUgIayaeChRtTIxSr%2Fimage.png?alt=media&#x26;token=011a55f9-b5ce-4db8-9b77-eee54977c2ea" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Setting the parent dynamically in animation can only be initiated by the From set. If the To set specifies a different parent, then it is ignored and only local space calculation is applied. This is because there is no way to smoothly interpolate or define a blend from one hierarchy position to another, unless Use Transform is enabled.
{% endhint %}

### Properties

Any properties that have been added in the [setup](#properties), are displayed in each set with a field to set its value, which varies by type. When blending between sets, all values are interpolated based on the [interpolation mode](#interpolation) selected.

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FdpneyX8M0BnwgIGy5Rnm%2Fimage.png?alt=media&#x26;token=31b9acf3-68d6-4514-bd26-30e1922c4386" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
It is recommended to set up properties before creating sets when possible. New properties may be added at any time, however existing sets are given a default value for the new property which may not be the value intended. It could require going through each set to assign the value desired.&#x20;
{% endhint %}

## Channel

Select the Channel tab to view the settings for the blend channel. Use this to display a list of keyframes for inspection and editing. This list appears empty if no keyframes have been set.

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FbD6x5koNmhnupmoFR2D5%2Fimage.png?alt=media&#x26;token=f827abc8-8a8f-4e11-8636-f413c03ede09" alt=""><figcaption></figcaption></figure>

Please refer to previously covered topics [Loop Time](../../../timeflow-object/channels#loop-settings) and [Exposed Keyframes](../../../timeflow-object/channels#exposed-keyframes).

## Blend Keyframes

{% hint style="info" %}
Please note that some of these fields have already been covered [above](#from-to).
{% endhint %}

Keyframes are added to the Blend channel to animate between sets. These are a special type of keyframe with additional data for performing blend operations. Each keyframe can either hold the values of a particular set, or blend from one set to another over time. &#x20;

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FqkHmvhzf1PdI5nflQmIU%2Fimage.png?alt=media&#x26;token=a808768b-5c5c-42f6-af77-45789b1e70e7" alt=""><figcaption></figcaption></figure>

Select a keyframe in the Timeflow view to edit its settings in the [Info Panel](../../../user-guide/timeflow-view/info-panel). Each keyframe sets a blend state, which can be a continuation of the previous set, or cutting immediately to another set. Each keyframe also defines a duration to blend over time, creating smooth movement and transitions between the From and To sets.

### Duration

Sets the time in seconds it takes to blend From => To. This is only displayed if Hold is not enabled. If Reverse is enabled, then the blend is To => From.

<figure><img src="https://2067910529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC3dOuetlQfYgK5FPUKgn%2Fuploads%2FrAeQ0LkiHcfRxUW1z6ab%2Fimage.png?alt=media&#x26;token=e7891788-ee06-48b0-b0a4-099c8307799a" alt=""><figcaption></figcaption></figure>

Each keyframe is displayed in the Timeflow view with a trailing bar indicating the duration. If it ends before the next keyframe, the ending state of the blend is held.

#### Auto Duration

Enable this to set the duration automatically up to the next keyframe time.&#x20;

{% hint style="info" %}
Auto Duration makes it easier to chain together sequences. Suppose for example you had a series of sets A, B, C, D. You could create keyframes that blend between each pair:

A=>B  - - - -  B=>C  - - - -  C=>D
{% endhint %}

### Start

Shifts the starting time of the blend forward or backward (in seconds), affecting the overall duration.&#x20;

{% hint style="info" %}
Adjust Start to delay the beginning of a blend (holding the From position longer), or to begin partway through the blend. This can be useful to lessen the extremes between the From and To points and only perform part of the transition. Similarly, the duration may be adjusted to trim or extend the end.
{% endhint %}

## Additional Notes

### Camera Editing

If Blend is being used to control a camera rig, the animation can be thought of as an edit sequence, with each keyframe being a particular shot or sequence in the cinematography. This makes it possible to create as many camera angles and setups as you wish while only using 1 camera, whether that be a locked-off position, traveling along a path, or anything imaginable.&#x20;

{% hint style="info" %}
Since the From and To sets have (hopefully) been given meaningful names, you can think more like a director pulling from your shot list to create all the different camera angles and moves you want. If you need a different angle, just add a new set, or capture one from another point in the timeline.
{% endhint %}

{% hint style="success" %}
This method of working also makes it fast to test out new ideas and to A/B test different sequences. See the [Workflow Tips](#workflow-tips) above for more.
{% endhint %}

### Even More Complex Movements

Blend is inherently limited in that it can only blend between 2 sets at and given time and doesn't provide any sort of spatial control. However, don't overlook all of the other potential behaviors that could be combined with Blend to create unlimited possibilities.&#x20;

For example, a Motion Path could be used to provide all sorts of complex motion which can then be used as a parent reference by sets in a Blend. With the possibility of using transform and dynamic parenting, any conceivable movement or camera transition could be made.



