đ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.
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.
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.
For common panels see Menu Bar and Update 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.
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.
Use Hold for locked off camera angles and any sets that don't require interpolation.
If enabled, the blending operation is performed To -> From instead From -> To.
You can also click the Swap button to exchange From and To without using Reverse.
Use the blend slider to interpolate between the From and To set, using the selected interpolation mode.
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.
See Set Parameters for further details.
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 assigned to this field may be dynamically reparented by sets using Parent mode. See Set Parent below.
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.
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.
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.
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.
Naming properties helps clarify and streamline the blend settings to your liking.
When viewing details for a set, each property is listed in order by number and name.
Click Reset Names to restore all properties to their original names.
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.
The Parent submenu is further organized by parent name to quickly find sets with the same parent.
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.
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.
See Edit Mode above.
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.
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, covered below.
Position, rotation, and scale are all set in local coordinates on the target objects.
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.
If 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.
Defines coordinates in world space.
This is only true world space if the World Parent hasn't been moved, rotated, or scaled.
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.
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.
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.
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.
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.
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.
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.
Please note that some of these fields have already been covered above.
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.
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.
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
Shifts the starting time of the blend forward or backward (in seconds), affecting the overall duration.
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.
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.
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.
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.
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.
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.
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.