🔀Blend
Create camera movements and complex transitions
Blend is an advanced animation tool for complex transforms, dynamic reparenting, and animating any number of properties in unison.
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.

Usage Overview
Before Blend can be fully used it must be configured following these general steps.
In the Inspector, go to the Setup tab and assign the target transform(s) and enable the features you intend to use.
Go to the Properties tab and add any additional properties, or skip this if none are needed. Properties can also be added later.
Go to the 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.
Use the Active tab and Current Blend to test transitions from one set to another.
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.
Workflow Tips
Keep sets well named and organized to avoid confusion.
Before setting keyframe animation, prepare the setup, sets, and properties as much as possible to discover and fix issues early on.
Use
Toggle the enable state for selected keyframes using the keyboard shortcut 0.
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.
Blend Editor
Select the object to view its settings in the Inspector.

For common panels see Menu Bar and Update Settings.
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.

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.

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.

To ignore keyframe animation entirely while editing, disable the channel in the Timeflow view by clicking the small watch icon on the left. This greys out the channel and prevents it from processing and can then be re-enabled at any point.
From / To
Specifies the From set as the starting point of the blend transition and the To set as the end.
Hold
If enabled, only this set is displayed and no blend transition is performed.
Reverse
If enabled, the blending operation is performed To -> From instead From -> To.
Blend
Use the blend slider to interpolate between the From and To set, using the selected interpolation mode.
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.

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.

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.

Use edit mode any time to quickly make adjustments to any set.
Be sure to press Done to exit editing mode and return to normal operation.
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.

See Set Parameters for further details.
Setup
Use this tab to assign the target transforms and which features are used.

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.
Make sure the World Parent transform is set to 0, 0, 0 and scale 1, 1, 1 otherwise it may introduce unwanted offsets.
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 below.
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.
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.
Set Scale of
If enabled, scale is applied to the specified transform.
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.

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.

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.
/// update method called each frame upon processing Blend
public virtual void OnBlend(float time, Keyframe keyA, Keyframe keyB, float blend)
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.

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.

Clear All
Removes all properties listed, clearing their fields and values from all sets.
Edit Names
Toggles displaying the name fields for property list for editing.

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

Sets
Use this panel to manage all of the sets in the Blend.

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.

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.
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.

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

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 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.
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.
Space
The coordinate space the set operates in. This is important depending on the type of result desired and each has its use case.
Local
Position, rotation, and scale are all set in local coordinates on the target objects.
Parent
This mode is used for dynamic reparenting where the target object (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.
World
Defines coordinates in world space.
This is only true world space if the World Parent hasn't been moved, rotated, or scaled.
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.
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.
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.
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.

Properties
Any properties that have been added in the setup, 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 selected.

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.

Please refer to previously covered topics Loop Time and Exposed Keyframes.
Blend Keyframes
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.

Select a keyframe in the Timeflow view to edit its settings in the 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.

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.
Start
Shifts the starting time of the blend forward or backward (in seconds), affecting the overall duration.
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.
This method of working also makes it fast to test out new ideas and to A/B test different sequences. See the Workflow Tips above for more.
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.
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.
Last updated