A blendTwoAttr nodes takes two inputs, and blends the values of the inputs from one to the other, into an output value. The blending of the two inputs uses a blending function, and the following formula:(1 - blendFunction) * input[0] + blendFunction * input[1] The blendTwoAttr command can be used to blend the animation of an object to transition smoothly between the animation of two other objects. When the blendTwoAttr command is issued, it creates a blendTwoAttr node on the specified attributes, and reconnects whatever was previously connected to the attributes to the new blend nodes. You may also specify which two attributes should be used to blend together. The driver is used when you want to keyframe an object after it is being animated by a blend node. The current driver index specifies which of the two blended attributes should be keyframed.
Long name (short name) | Argument Types | Properties | |
---|---|---|---|
attribute (at) | unicode | ||
|
|||
attribute0 (at0) | PyNode | ||
|
|||
attribute1 (at1) | PyNode | ||
|
|||
blender (bl) | PyNode | ||
The blender attribute. This is the attribute that will be connected to the newly created blendTwoAttr node(s) blender attribute. This attribute controls how much of each of the two attributes to use in the blend. If this flag is not specified, a new animation curve is created whose value goes from 1 to 0 throughout the time range specified by the -t flag. If -t is not specified, an abrupt change from the value of the first to the value of the second attribute will occur at the current time when this command is issued. |
|||
controlPoints (cp) | bool | ||
Explicitly specify whether or not to include the control points of a shape (see “-s” flag) in the list of attributes. Default: false.Flag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list. |
|||
driver (d) | int | ||
|
|||
name (n) | unicode | ||
|
|||
shape (s) | bool | ||
|
|||
time (t) | timerange | ||
The time range between which the blending between the 2 attributes should occur. If a single time is specified, then the blend will cause an abrupt change from the first to the second attribute at that time. If a range is specified, a smooth blending will occur over that time range. The default is to make a sudden transition at the current time. |
Derived from mel command maya.cmds.blendTwoAttr
Example:
import pymel.core as pm
import maya.cmds as cmds
# Assume we have animated a bouncing sphere, sphere1, and we would like
# the sphere to smoothly transition into following a second sphere's,
# sphere2, animation between time 15 and 20.
#
pm.select( 'sphere1' )
pm.blendTwoAttr( at='tx', at1='sphere2.tx', t=(15,20) )
pm.blendTwoAttr( at='ty', at1='sphere2.ty', t=(15,20) )
pm.blendTwoAttr( at='tz', at1='sphere2.tz', t=(15,20) )
# You can use the "-at" flag to narrow the query. For example, if
# you wanted to know the names of the newly created blender curves
# for only the tx and tz attributes of sphere1, you could say:
#
pm.blendTwoAttr( at=['tx','tz'], query=True, blender=True )
# You can now keyframe the sphere2's animation by changing the
# driver on sphere1.
#
pm.blendTwoAttr( at='tx', edit=True, driver=1 )
# setKeyframe ...
# If you already had two objects, sphere1 and sphere2 animated, and
# you wanted to blend between their animation abruptly at time 15,
# you could do:
#
pm.blendTwoAttr( 'newObject.tx', t=(15,15), at0='sphere1.tx', at1='sphere2.tx' )