pymel.core.animation.orientConstraint

orientConstraint(*args, **kwargs)

Constrain an object’s orientation to match the orientation of the target or the average of a number of targets. An orientConstraint takes as input one or more “target” DAG transform nodes to control the orientation of the single “constraint object” DAG transform The orientConstraint orients the constrained object to match the weighted average of the target world space orientations.

Maya Bug Fix:
  • when queried, angle offsets would be returned in radians, not current angle unit
Modifications:
  • added new syntax for querying the weight of a target object, by passing the constraint first:

    aimConstraint( 'pCube1_aimConstraint1', q=1, weight ='pSphere1' )
    aimConstraint( 'pCube1_aimConstraint1', q=1, weight =['pSphere1', 'pCylinder1'] )
    aimConstraint( 'pCube1_aimConstraint1', q=1, weight =[] )
    
Flags:
Long name (short name) Argument Types Properties
createCache (cc) float, float ../../../_images/edit.gif
 

This flag is used to generate an animation curve that serves as a cache for the constraint. The two arguments define the start and end frames.The cache is useful if the constraint has multiple targets and the constraint’s interpolation type is set to “no flip”. The “no flip” mode prevents flipping during playback, but the result is dependent on the previous frame. Therefore in order to consistently get the same result on a specific frame, a cache must be generated. This flag creates the cache and sets the constraint’s interpolation type to “cache”. If a cache exists already, it will be deleted and replaced with a new cache.

deleteCache (dc) bool ../../../_images/edit.gif
 
Delete an existing interpolation cache.Flag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list.
layer (l) unicode ../../../_images/create.gif ../../../_images/edit.gif
 
Specify the name of the animation layer where the constraint should be added.
maintainOffset (mo) bool ../../../_images/create.gif
 
The offset necessary to preserve the constrained object’s initial orientation will be calculated and used as the offset.
name (n) unicode ../../../_images/create.gif ../../../_images/query.gif ../../../_images/edit.gif
 
Sets the name of the constraint node to the specified name. Default name is constrainedObjectName_constraintType
offset (o) float, float, float ../../../_images/create.gif ../../../_images/query.gif ../../../_images/edit.gif
 
Sets or queries the value of the offset. Default is 0,0,0.
remove (rm) bool ../../../_images/edit.gif
 
removes the listed target(s) from the constraint.
skip (sk) unicode ../../../_images/create.gif ../../../_images/edit.gif
 
Specify the axis to be skipped. Valid values are “x”, “y”, “z” and “none”. The default value in create mode is “none”. This flag is multi-use.
targetList (tl) bool ../../../_images/query.gif
 
Return the list of target objects.
weight (w) float ../../../_images/create.gif ../../../_images/query.gif ../../../_images/edit.gif
 
Sets the weight value for the specified target(s). If not given at creation time, the default value of 1.0 is used.
weightAliasList (wal) bool ../../../_images/query.gif
 

Returns the names of the attributes that control the weight of the target objects. Aliases are returned in the same order as the targets are returned by the targetList flag

Derived from mel command maya.cmds.orientConstraint

Example:

import pymel.core as pm

import maya.cmds as cmds

# Orients cube1 to match cone1.
pm.orientConstraint( 'cone1', 'cube1' )

# Uses the average of the orientations of cone1 and surf2.
pm.orientConstraint( 'cone1', 'surf2', 'cube2', w=.1 )

# Sets the weight for cone1's effect on cube2 to 10.
pm.orientConstraint( 'cone1', 'cube2', e=True, w=10. )

# Removes surf2 from cube2's orientConstraint
pm.orientConstraint( 'surf2', 'cube2', e=True, rm=True )

# Adds surf3 to cube2's orientConstraint with the default weight
pm.orientConstraint( 'surf3', 'cube2' )

# Constrain the y and z rotation of sph2 to sph1
pm.orientConstraint( 'sph1', 'sph2', skip="x" )

# Modify the constraint so that it constrains all axes of sph2
pm.orientConstraint( 'sph1', 'sph2', e=True, skip="none" )

# Create a cache for the orient constraint controlling cube2
pm.orientConstraint( 'cube2', e=True, cc=(1, 1000) )

Previous topic

pymel.core.animation.normalConstraint

Next topic

pymel.core.animation.pairBlend

Core

Core Modules

Other Modules

This Page