rdConstraint
Reference sheet for the rdConstraint
node type.
from maya import cmds
cmds.createNode("rdConstraint")
Attributes
Attribute | Description | Keyable | Type | Default |
---|---|---|---|---|
.angularDriveDamping |
Angular damping of the drive. | ✔️ | float |
1000.0 |
.angularDriveStiffness |
Angular stiffness of the drive. | ✔️ | float |
10000.0 |
.angularLimit |
Amount of rotational offset before the limit kicks in. | angle3 |
0.0 0.0 0.0 |
|
.angularLimitDamping |
Damping of contacts with the limit. It is an opposing force to whatever direction a contact is applied. A low value produces a springy appearance, whereas a high value resists any and all motion. | ✔️ | float |
10000.0 |
.angularLimitStiffness |
Stiffness of contacts with the angular limit. A low value makes limits appear soft. Values are relative the mass of your rigid and the amount of force being applied by contacts and other constraints. But with a mass of 1.0 and under normal gravity, the default value should produce a somewhat hard response. | ✔️ | float |
1000000.0 |
.childFrame |
Transform relative the child that a parent is attached. The inverse of the parentFrame , this attribute establishes a point and orientation within the child that the parent rigid attaches to. |
matrix |
identity | |
.childRigid |
One of two constrained rigids, the 'child'. | int |
-1 | |
.currentState |
The scene pulls this attribute on every frame to update itself on attributes that can be animated, such as the linear and angular damping. | int |
0 | |
.currentTime |
This attribute is meant to be dirtied whenever time changes; it's how a constraint keeps an eye on what Maya is up to. The actual value isn't used. | time |
0.0 | |
.disableCollision |
Disable collision between constrained rigids. This is generally desirable, as connected rigids are typically limbs or a character, e.g. upper and lower arm, and you generally want some overlap between these rigids. However unless you disable collisions, the overlap would cause a conflict in the solver, where it wouldn't know whether to keep them connected or split them apart due to their contact. For objects without overlap, this attribute is better left off. | bool |
True | |
.drawChildFrame |
Visualise the childFrame attribute. |
bool |
True | |
.drawConnection |
Visualise the connection between the parentRigid and childRigid . |
bool |
True | |
.drawDrive |
Visualise the drive. | bool |
True | |
.drawLimit |
Visualise the limit of this constraint. | bool |
True | |
.drawParentFrame |
Visualise the parentFrame attribute. |
bool |
True | |
.drawScale |
The scale at which to visualise things. | double |
1.0 | |
.driveEnabled |
Whether or not to try and follow the driveMatrix attribute. Drives (a.k.a. Guides) are used to follow an input animation by applying forces relative the delta between your animation and the simulation. The further your animation is from the current state of the simulation, the stronger the force. It's a spring-like force. |
✔️ | bool |
False |
.driveMatrix |
A target position and orientation for the childRigid , relative the parentFrame . The constraint can apply a spring-like force to both parent and child to try and match this matrix as though the childRigid was an actual child of the parentRigid . |
✔️ | matrix |
identity |
.driveSpringType |
Whether to use force or acceleration to compute the drive. Acceleration takes masses of connected rigids into account and is generally easier to tune. | enum |
1 | |
.driveStrength |
Multipler to linearDriveStiffness , linearDriveDamping , angularDriveStiffness and angularDriveDamping . This is a convenience attribute to simplify manipulation (and animation) of the overall drive behaviour. The same result can be achieved by manually multiplying these values. The equation is strength * strength * stiffness and the same for damping. |
✔️ | float |
1.0 |
.limitEnabled |
Whether any of the specified limits are enabled or not. Think of this as a convenience override for linear (position) and angular (rotation) limits. You can achieve the same effect by setting each limit to a value of 0. | ✔️ | bool |
False |
.limitStrength |
Multiplier for the linearLimitStiffness , linearLimitDamping , angularLimitStiffness and angularLimitDamping attributes. |
✔️ | float |
1.0 |
.linearDriveDamping |
Linear damping of the drive. A high value produces a slimy, slow-moving motion. | ✔️ | float |
100.0 |
.linearDriveStiffness |
Linear stiffness of the drive. If you think of the drive as a spring, then the stiffness determines the thickness of the coil of that spring. A thick coil yields a fast, springy motion. | ✔️ | float |
1000.0 |
.linearLimit |
Amount of positional offset before the limit kicks in. | distance3 |
0.0 0.0 0.0 |
|
.linearLimitDamping |
Damping factor for contacts with the limit. | ✔️ | float |
10000.0 |
.linearLimitStiffness |
Stiffness of contacts with linear limit. Whenever the linear limit is hit, this attribute determines how soft/hard to response should be. A low value (e.g. 10) yields a soft appearance, whereas a high (e.g. 1'000'000) yields a metal-versus-marble contact. | ✔️ | float |
1000000.0 |
.nextState |
This attribute is pulled whenever the constraint needs to fetch information from the constraint. | int |
0 | |
.parentFrame |
Transform relative the parent that a child is attached. If the child rigid was a child of the parent, then this transform represents a point under the parent where the child is connected. The driveMatrix attribute is relative this frame. If they are equal, the rigid is driven towards the restMatrix . |
matrix |
identity | |
.parentRigid |
One of two constrained rigids, the 'parent'. | int |
-1 | |
.ragdollId |
Internal identifier for this node in the solver. | int |
0 | |
.startState |
The scene pulls on this attribute at the start frame to set-up the initial state of the constraint, including its parent and child frames and drive attributes. | int |
0 | |
.type |
Internal attribute used to record which type this constraint was originally intended as. Because all 'types' are really just an rdConstraint with various values set, there is no specific type. This is merely intended as a hint for scripts and tools to use. | enum |
0 | |
.version |
Version of Ragdoll used to create this node. Saved with scene to keep track of what version of Ragdoll the node was created with. | int |
0 |
Last update: 2022-04-04