Blend
Create camera movements and complex transitions
Last updated
Create camera movements and complex transitions
Last updated
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.
Before Blend can be fully used it must be configured following these general steps.
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.
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.
Select the object to view its settings in the Inspector.
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.
Specifies the From set as the starting point of the blend transition and the To set as the end.
If enabled, only this set is displayed and no blend transition is performed.
If enabled, the blending operation is performed To -> From instead From -> To.
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.
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.
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.
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.
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.
Switches the From set with To set to reverse their order.
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.
Use this tab to assign the target transforms and which features are used.
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.
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.
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.
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.
If enabled, scale is applied to the specified transform.
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.
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.
Refer to BlendUpdate.cs for further information.
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.
Click this button to create a new property field. The new property will need to be mapped after is created and initially appears unassigned.
Removes all properties listed, clearing their fields and values from all sets.
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.
Use this panel to manage all of the sets in the Blend.
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.
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.
Sorts the list of sets first by Space (Local, Parent, World) and then alphabetically by name.
Shows or hides the details for all sets listed.
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.
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.
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.
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.
The coordinate space the set operates in. This is important depending on the type of result desired and each has its use case.
Position, rotation, and scale are all set in local coordinates on the target objects.
Defines coordinates in world space.
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.
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.
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.
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.
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.
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.
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.
Enable this to set the duration automatically up to the next keyframe time.
Shifts the starting time of the blend forward or backward (in seconds), affecting the overall duration.
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.
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.
In the Inspector, go to the tab and assign the target transform(s) and enable the features you intend to use.
Go to the tab and add any additional properties, or skip this if none are needed. Properties can also be added later.
Go to the 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 tab and to test transitions from one set to another.
For common panels see and .
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.
Use the blend slider to interpolate between the From and To set, using the selected .
See for further details.
If enabled, the transform assigned to this field may be dynamically reparented by sets using Parent mode. See below.
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.
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 .
See above.
The universal common denominator is World space. It is possible with a little extra setup to make all sets work in world space with , covered below.
This mode is used for dynamic reparenting where the target object () 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.
If is enabled, no reparenting takes place and instead it is assumed that the transform assigned is already parented as it needs to be.
This is only true world space if the hasn't been moved, rotated, or scaled.
Any properties that have been added in the , 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 selected.
Please refer to previously covered topics and .
Please note that some of these fields have already been covered .
Select a keyframe in the Timeflow view to edit its settings in the . 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.
This method of working also makes it fast to test out new ideas and to A/B test different sequences. See the above for more.