pymel.core.animation.normalConstraint

normalConstraint(*args, **kwargs)

Constrain an object’s orientation based on the normal of the target surface(s) at the closest point(s) to the object. A normalConstraint takes as input one or more surface shapes (the targets) and a DAG transform node (the object). The normalConstraint orients the constrained object such that the aimVector (in the object’s local coordinate system) aligns in world space to combined normal vector. The upVector (again the the object’s local coordinate system) is aligned in world space with the worldUpVector. The combined normal vector is a weighted average of the normal vector for each target surface at the point closest to the constrained object.

Maya Bug Fix:
  • when queried, upVector, worldUpVector, and aimVector returned the name of the constraint instead of the desired values
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:
  • aimVector : aim (float, float, float) [create,query,edit]

    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.

  • name : n (unicode) [create,query,edit]

    Sets the name of the constraint node to the specified name. Default name is constrainedObjectName_constraintType

  • remove : rm (bool) [edit]

    removes the listed target(s) from the constraint.

  • targetList : tl (bool) [query]

    Return the list of target objects.

  • upVector : u (float, float, float) [create,query,edit]

    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) [create,query,edit]

    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) [query]

    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) [create,query,edit]

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

  • worldUpType : wut (unicode) [create,query,edit]

    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 objectrotationthen 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 noneno twist calculation is performed by the constraint, with the resulting upVectororientation based previous orientation of the constrained object, and the great circlerotation needed to align the aim vector with its constraint. The default worldUpType is vector. Flag can have multiple arguments, passed either as a tuple or a list.

  • worldUpVector : wu (float, float, float) [create,query,edit]

    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.normalConstraint

Previous topic

pymel.core.animation.nonLinear

Next topic

pymel.core.animation.orientConstraint

Core

Core Modules

Other Modules

This Page