pymel.core.animation.aimConstraint

aimConstraint(*args, **kwargs)

Constrain an object’s orientation to point at a target object or at the average position of a number of targets. An aimConstraint takes as input one or more “target” DAG transform nodes at which to aim the single “constraint object” DAG transform node. The aimConstraint orients the constrained object such that the aimVector (in the object’s local coordinate system) points to the in weighted average of the world space position target objects. The upVector (again the the object’s local coordinate system) is aligned in world space with the worldUpVector.

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
aimVector (aim) float, float, float ../../../_images/create.gif ../../../_images/query.gif ../../../_images/edit.gif
 

Set the aim vector. This is the vector in local coordinates that points at the target. If not given at creation time, the default value of (1.0, 0.0, 0.0) is used.

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 rotation 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”. During creation, “none” is the default.Flag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list.

targetList (tl) bool ../../../_images/query.gif
 
Return the list of target objects.
upVector (u) float, float, float ../../../_images/create.gif ../../../_images/query.gif ../../../_images/edit.gif
 

Set local up vector. This is the vector in local coordinates that aligns with the world up vector. If not given at creation time, the default value of (0.0, 1.0, 0.0) is used.

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

worldUpObject (wuo) PyNode ../../../_images/create.gif ../../../_images/query.gif ../../../_images/edit.gif
 

Set the DAG object use for worldUpType “object” and “objectrotation”. See worldUpType for greater detail. The default value is no up object, which is interpreted as world space.

worldUpType (wut) unicode ../../../_images/create.gif ../../../_images/query.gif ../../../_images/edit.gif
 

Set the type of the world up vector computation. The worldUpType can have one of 5 values: “scene”, “object”, “objectrotation”, “vector”, or “none”. If the value is “scene”, the upVector is aligned with the up axis of the scene and worldUpVector and worldUpObject are ignored. If the value is “object”, the upVector is aimed as closely as possible to the origin of the space of the worldUpObject and the worldUpVector is ignored. If the value is “objectrotation” then the worldUpVector is interpreted as being in the coordinate space of the worldUpObject, transformed into world space and the upVector is aligned as closely as possible to the result. If the value is “vector”, the upVector is aligned with worldUpVector as closely as possible and worldUpMatrix is ignored. Finally, if the value is “none” no twist calculation is performed by the constraint, with the resulting “upVector” orientation based previous orientation of the constrained object, and the “great circle” rotation needed to align the aim vector with its constraint. The default worldUpType is “vector”.

worldUpVector (wu) float, float, float ../../../_images/create.gif ../../../_images/query.gif ../../../_images/edit.gif
 

Set world up vector. This is the vector in world coordinates that up vector should align with. See -wut/worldUpType (below)for greater detail. If not given at creation time, the default value of (0.0, 1.0, 0.0) is used.

Derived from mel command maya.cmds.aimConstraint

Example:

import pymel.core as pm

# Orients the aim vector of cube1 in it's local coordinate space, to point at cone1.
pm.aimConstraint( 'cone1', 'cube1' )

# Aims cube2 at the average of the position of cone1 and surf2
pm.aimConstraint( 'cone1', 'surf2', 'cube2', w=.1 )

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

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

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

# Aim constrain the z-axis only of sph2 to sph1
pm.aimConstraint( 'sph1', 'sph2', skip=["x","y"] )

Previous topic

pymel.core.animation.writeTake

Next topic

pymel.core.animation.animCurveEditor

Core

Core Modules

Other Modules

This Page