pymel.core.animation.setDrivenKeyframe

setDrivenKeyframe(*args, **kwargs)

This command sets a driven keyframe. A driven keyframe is similar to a regular keyframe. However, while a standard keyframe always has an x-axis of time in the graph editor, for a drivenkeyframe the user may choose any attribute as the x-axis of the graph editor.For example, you can keyframe the emission of a faucet so that so that it emits whenever the faucet handle is rotated around y. The faucet emission in this example is called the driven attribute. The handle rotation is called the driver. Once you have used setDrivenKeyframe to set up the relationship between the emission and the rotation, you can go to the graph editor and modify the relationship between the attributes just as you would modify the animation curve on any keyframed object.In the case of an attribute driven by a single driver, the dependency graph is connected like this:driver attribute —animCurve —driven attributeYou can set driven keyframes with more than a single driver. The effects of the multiple drivers are combined together by a blend node.

Flags:
Long name (short name) Argument Types Properties
attribute (at) unicode ../../../_images/create.gif
 
Attribute name to set keyframes on.
controlPoints (cp) bool ../../../_images/create.gif
 
Explicitly specify whether or not to include the control points of a shape (see “-s” flag) in the list of attributes. Default: false.
currentDriver (cd) unicode ../../../_images/create.gif ../../../_images/query.gif
 
Set the driver to be used for the current driven keyframe to the attribute passed as an argument.
driven (dn) bool ../../../_images/query.gif
 
Returns list of driven attributes for the selected item.
driver (dr) bool ../../../_images/query.gif
 
Returns list of available drivers for the attribute.
driverValue (dv) float ../../../_images/create.gif
 
Value of the driver to use for this keyframe. Default value is the current value.
hierarchy (hi) unicode ../../../_images/create.gif
 

Controls the objects this command acts on, relative to the specified (or active) target objects. Valid values are “above,” “below,” “both,” and “none.” Default is “hierarchy -query”

inTangentType (itt) unicode ../../../_images/create.gif
 

The in tangent type for keyframes set by this command. Valid values are “spline”, “linear”, “fast”, “slow”, “flat”, “stepped”, “step next”, “fixed”, “clamped” and “plateau”. Default is “keyTangent -q -g -inTangentType”

insert (i) bool ../../../_images/create.gif
 

Insert keys at the given time(s) and preserve the shape of the animation curve(s). Note: the tangent type on inserted keys will be fixed so that the curve shape can be preserved.

insertBlend (ib) bool ../../../_images/create.gif
 

If true, a pairBlend node will be inserted for channels that have nodes other than animCurves driving them, so that such channels can have blended animation. If false, these channels will not have keys inserted. If the flag is not specified, the blend will be inserted based on the global preference for blending animation.

outTangentType (ott) unicode ../../../_images/create.gif
 

The out tangent type for keyframes set by this command. Valid values are “spline”, “linear”, “fast”, “slow”, “flat”, “stepped”, “step next”, “fixed”, “clamped” and “plateau”. Default is “keyTangent -q -g -outTangentType”

shape (s) bool ../../../_images/create.gif
 
Consider attributes of shapes below transforms as well, except “controlPoints”. Default: true
value (v) float ../../../_images/create.gif
 

Value to set the keyframe at. Default is the current value.Flag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list.

Derived from mel command maya.cmds.setDrivenKeyframe

Example:

import pymel.core as pm

import maya.cmds as cmds

# Create a curve and a cone
#
pm.curve(d=3,p=[(-10, 0, 0),(-6, 0, 10),(-3, 0, -10),(10, 0, 0)],k=[0, 0, 0, 1, 1, 1])
# Result: nt.Transform(u'curve1') #
pm.polyCone()
# Result: [nt.Transform(u'pCone1'), nt.PolyCone(u'polyCone1')] #

# To set the keyframe on the selected object's translateX based on
# curve1's rotateZ:
pm.setDrivenKeyframe( at='translateX', cd='curve1.rz' )
# Result: 1 #

# To set the keyframe on pCone1.tx based on the value of curve1.rz:
pm.setDrivenKeyframe( 'pCone1.tx', cd='curve1.rz' )
# Result: 1 #

# To query the current driver of pCone1.tx:
pm.setDrivenKeyframe( 'pCone1.tx', q=True, cd=True )
# Result: [u'curve1.rotateZ'] #

# To query the available drivers of pCone1.tx:
pm.setDrivenKeyframe( 'pCone1.tx', q=True, dr=True )
# Result: [u'curve1.rotateZ'] #

Previous topic

pymel.core.animation.setCurrentTime

Next topic

pymel.core.animation.setInfinity

Core

Core Modules

Other Modules

This Page