Go to: Related nodes. Attributes.

This node can be used to create constraint relationships between dynamic objects.

Node nameParentsClassificationMFn typeCompatible function sets
dynamicConstraintshapedynamics:drawdb/geometry/dynamics/dynamicConstraintkDynamicConstraintkBase
kNamedObject
kDependencyNode
kDagNode
kShape
kDynamicConstraint

Related nodes

nucleus

Attributes (47)

bend, bendBreakAngle, bendStrength, collide, collideWidthScale, componentIds, componentRelation, connectWithinComponent, connectionDensity, connectionDensityRange, connectionDensityRange_FloatValue, connectionDensityRange_Interp, connectionDensityRange_Position, connectionMethod, connectionUpdate, constraintMethod, constraintRelation, currentTime, damp, displayConnections, dropoff, dropoffDistance, enable, evalCurrent, evalStart, excludeCollisions, force, friction, glueStrength, glueStrengthScale, isDynamic, iterations, localCollide, maxDistance, maxIterations, minIterations, motionDrag, restLength, restLengthMethod, restLengthScale, singleSided, strength, strengthDropoff, strengthDropoff_FloatValue, strengthDropoff_Interp, strengthDropoff_Position, tangentStrength

Long name (short name)TypeDefaultFlags
isDynamic (isd) booltrueoutputinputconnectablekeyablehidden
Toggle dynamics on/off for this object. OBSOLETE: use enable instead
enable (ena) booltrueoutputinputconnectablestorablekeyable
Toggle dynamics on/off for this object. If animated then links are reformed when this toggles on, setting the rest length of links to the distance at the time the constraint was enabled. This is useful for animating a constraint grabbing objects.
currentTime (cti) time0.0filmoutputinputconnectablekeyablehidden
This is the current time used synchronize start frame initialization with the nucleus node controlling the simulation By default, it is given an incoming connection from the main time node. This can be replaced with some other connection (e.g. from an expression or param curve),if the nucleus node connected to this constraint has replaced its time connection
componentIds (cid) nIdNULLarrayoutputinputconnectablestorable
Ids of nucleus component objects.
constraintMethod (cm) enum1outputinputconnectablestorablekeyable
This determines how the constraint links behave. Weld locks vertices together such that they can't stretch apart. Spring treats each connection as a springy link. Rubber Band behaves similar to the spring when stretched, but does nothing when the link is compressed. It has no effect when the points are closer than the link rest length.
connectionMethod (cnm) enum0outputinputconnectablestorablekeyable
This determines the logic used when generating constraint links. Component Order simply links between the different components based on the order the elements are listed on the nComponent node. Within Max Distance links together any pairs that are closer than the maxDistance attribute in worldspace at the start frame. Nearest Pair links each element with the nearest other element. While the max distance setting allows for multiple points to be joined together the nearest pair connects each point with just one other point.
constraintRelation (crr) enum1outputinputconnectablestorablekeyable
This specifies the way the objects are related together. ObjectToConstraint relates the input components to the constraint node position. With ObjectToObject each object is related to each other object and the constraint node's position and transform is ignored.
componentRelation (cmr) enum0outputinputconnectablestorablekeyable
This specifies the way the component nodes are related together. A component is defined as an nComponent connected to the constraint node. Each component defines a subset of elements for a nucleus object, for example a group of triangles or points. All to First links between all components and the first listed component. All to All links each component to each other component Chain links the components in series, which each component constrained to the next one in the list.
connectionUpdate (cu) enum0outputinputconnectablestorablekeyable
For a surface constraint, this controls whether we have a PointToSurface constraint (At Start) or a SlideOnSurface constraint (Per Frame). If the constraint is only updated at the start, we just find the closest point on the surface once, in which case the constrained points maintain a fixed relationship with the surface thoughout the simulation. If the closest point is re-evaluated per frame, then the constrained points are able to move along the surface
connectWithinComponent (cwc) boolfalseoutputinputconnectablestorablekeyable
If on then links can be formed within nObjects or nComponent, while when off links are only formed between different nComponents.
connectionDensity (cdn) double1.0outputinputconnectablestorablekeyable
connectionDensity allows one to thin out connects based on distance. A value of 1.0 leaves links intact, while a value of 0.0 will result in no links. Inbetween values determine the probablities that links will be broken. The gradient attribute connectionDensityRange additionally allows one to determine the overall distribution of connections based on connection length.
connectionDensityRange (cdnr) compoundn/aarrayoutputinputconnectablestorablekeyable
connectionDensityRange allows one to thin out connects based on distance. For example one can make it such that one only has long links and no short links by making the graph 1.0 at the far right an zero everywhere else. This attribute scales the connectionDensity attribute. The right side of the graph represents links of the length determined by the MaxDistance attribute while the left is zero length lengths.
connectionDensityRange_Position (cdnrp) float0.0outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
connectionDensityRange_FloatValue (cdnrfv) float0.0outputinputconnectablestorablekeyable
Ramp value at the sibling position
connectionDensityRange_Interp (cdnri) enum0outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
    None: No interpolation is done; the different colors just show up as different bands in the final texture.

    Linear: The values are interpolated linearly in RGB color space.

    Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color.

    Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.

displayConnections (dcn) booltrueoutputinputconnectablestorablekeyable
Toggle the display of the constraint links in the viewport.
strength (str) double20.0outputinputconnectablestorablekeyable
The overall amount of effect of the constraint.
restLengthMethod (rlm) enum0outputinputconnectablestorablekeyable
This specifies the way the rest length is determined. From Start Distance sets the constraint distances to the initial distance at the start frame. If RestLengthScale is 1.0 then there then will be no tension on constraint initially. With Constant rest length, the rest length attribute on the constraint node will be used. This will push or pull on connections if they are not this distance at the start.
restLength (rl) double0.0outputinputconnectablestorablekeyable
This is the rest length in world space of constraint links used when the Rest Length Method is set to From Start Distance.
restLengthScale (rls) double1.0outputinputconnectablestorablekeyable
Dynamically scale the rest length that was determined at the start frame.
tangentStrength (tst) double10outputinputconnectablestorablekeyable
The resistance to motion in the local tangent directions
bend (bnd) boolfalseoutputinputconnectablestorablekeyable
For edge-edge constraints this controls whether we constraint the bend permitted across those edges.
bendStrength (bns) double20.0outputinputconnectablestorablekeyable
The strength of the edge constraint connection to resist bending.
bendBreakAngle (bba) double360.0outputinputconnectablestorablekeyable
The strength of the edge constraint connection to resist bending.
glueStrength (gls) double1.0outputinputconnectablestorablekeyable
The strength of the constraint connection to resist breaking. A value of 1.0 represents a strength that will never break. A value of zero will break immediately(as if there is no constraint). This strength is relative to the overall scene, or object scale. You can adjust the Glue Strength Scale to adjust the sensitivity for overall scene scale. Bonds are formed at the start frame. During simulation once broken the links never reform except when the glue strength is animated back up to a value of 1.
glueStrengthScale (glss) double1.0outputinputconnectablestorablekeyable
You can adjust the Glue Strength Scale to adjust the sensitivity of the Glue Strength attribute for the overall scene scale. Glue strength uses a the worldspace distance of separation between links to determine the point at which a break occurs. This scales the required separation distance.
force (for) double0.0outputinputconnectablestorablekeyable
This is an added force between the constrained points. For constraints between components the force drops off with distance according to the dropoffDistance attribute where the strengthDropoff gradient is mapped to this distance. For transform constraints the force is between the points and the center of the transform, and the strengthDropoff is defined relative to the boundary of the transform. Outside the bounds of the transform the rightmost value of the strengthDropoff gradient is used. Unlike normal maya fields this can be applied to specific components instead of only to the entire object.
motionDrag (mdg) double0.0outputinputconnectablestorablekeyable
A force is applied to each object being constrainted that pulls it more towards the motion of the other object. At a drag of one the objects will be fully locked and move together.
dropoff (drp) double1.0outputinputconnectablekeyablehidden
This controls a dropoff of effect with distance. OBSOLETE: use the strength dropoff ramp instead
dropoffDistance (ddd) double50.0outputinputconnectablestorablekeyable
This is the dropoff distance. Anything beyond this distance won't be affected by the constraint. The dropoffDistance can take on any value between 0 and infinity.
strengthDropoff (sdp) compoundn/aarrayoutputinputconnectablestorablekeyable
StrengthDropoff allows one to control the strength of the links based on distance. The left side of the ramp is the strength at a length of zero with the right side representing the max distance.
strengthDropoff_Position (sdpp) float0.0outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
strengthDropoff_FloatValue (sdpfv) float0.0outputinputconnectablestorablekeyable
Ramp value at the sibling position
strengthDropoff_Interp (sdpi) enum0outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
    None: No interpolation is done; the different colors just show up as different bands in the final texture.

    Linear: The values are interpolated linearly in RGB color space.

    Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color.

    Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.

maxDistance (mds) double0.1outputinputconnectablestorablekeyable
When the connection method is set to Max Distance then this determines the distance within which component elements are linked.
damp (dmp) double0.0outputinputconnectablestorablekeyable
This is the amount that energy from the constraint is removed from the system.
friction (frc) double0.0outputinputconnectablestorablekeyable
This determines how freely sliding surface constraints can move. At a friction setting of 1 they are locked and at zero they are fully free to slide.
localCollide (lcl) boolfalseoutputinputconnectablestorablekeyable
This computes collisions just along the constrainted link. For surface constraints this collides the point being constrainted to the surface at the nearest point on surface. This collision is very fast to compute compared with normal surface collisions, although it is possible for corners to poke through. An advantage over normal collisions is that constraint links remember the relative surface side at the start of the simulation, so it can't get stuck on the wrong side. The collide width scale allows one to adjust this width relative to the defined surface collision widths.
collideWidthScale (cws) double1.0outputinputconnectablestorablekeyable
This value multiplies the collide width defined on the dynamic node to determine the width used for local collision by the constraint. One may wish to use values greater than one, because the pointwise collisions used by local collide can allow penetration around corners and edges. Thus larger widths than for normal collisions may be required to avoid seeing interpenetration.
excludeCollisions (excs) boolfalseoutputinputconnectablestorablekeyable
For any points, edges and faces that are interacting with each other as a result of this constraint, do not perform any normal collision computations that would have occurred otherwise
singleSided (ssd) booltrueoutputinputconnectablestorablekeyable
For surface constraints that can move this restricts the constraint to always be on just one side of the surface. The side of the surface each constrained point is on is determined at the start frame and then maintained. This avoids the problem where a constraint can flip to push in the opposite direction when the constraining surface moves. If one constrained cloth to an open cylinder this could be used to keep the cloth from sliding to the inside of the cylinder as well as keep it on the outside of the cylinder.
maxIterations (mitr) integer5000outputinputconnectablestorablekeyable
The maximum solver iterations used to evaluate the constraint.
minIterations (mini) integer0outputinputconnectablestorablekeyable
The miximum solver iterations used to evaluate the constraint. Use a non-zero value if you want to force constraint iterations to sync up with collision iterations, or to use local collisions with a constraint strength of 0.
evalStart (evs) nIdNULLarrayoutputconnectable
Returns the ID of the internal nucleus constraint and also updates the constraint settings for the start frame.
evalCurrent (evc) nIdNULLarrayoutputconnectable
Returns the ID of the internal nucleus constraint and also updates the constraint settings for the start frame.
iterations (itr) integer20outputinputconnectable
obsolete
collide (cld) booltrueoutputinputconnectable
obsolete