rdRigid
Reference sheet for the rdRigid
node type.
from maya import cmds
cmds.createNode("rdRigid")
Attributes
Attribute | Description | Keyable | Type | Default |
---|---|---|---|---|
.airDensity |
Multiplier of both linearDamping and angularDamping . The two damping attributes are typically used together, but can also be used separately in which case this attribute could be left at 1.0 and forgotten. |
✔️ | float |
1.0 |
.angularDamping |
Resistance along the opposite direction of rotation for a rigid. Like linearDamping but along the rotation axes. |
✔️ | float |
1.0 |
.angularMass |
Like mass, but for changes in orientation. | float3 |
-1.0 -1.0 -1.0 |
|
.centerOfMass |
The point at which a rigid may be balanced. Or put another way, the point whereby the weight of a rigid is equal in all directions. | float3 |
0.0 0.0 0.0 |
|
.collide |
Whether this rigid should collide with other rigids. This can be useful in areas of many overlapping rigids that aren't necessarily constrained, such as a shoulder or hip. | bool |
True | |
.color |
Color of the rigid when drawn in the viewport, used for vertex color when used as polygons. | float3 |
||
.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 rigid keeps an eye on what Maya is up to. The actual value isn't used. | time |
0.0 | |
.drawShaded |
Whether to draw this rigid shaded or wireframe-only. | bool |
True | |
.enabled |
Whether or not to include this node in the simulation. A value of False is the same as the node not existing in the first place. | bool |
True | |
.friction |
The resistance at which two rigids rub against each other. A value of 0 creates an appearance of ice, whereas a value of 1.0 represents 100% friction, no sliding allowed. The value may exceed 1.0, but it is unclear what happens. Use at your own risk. | float |
0.8 | |
.inputCurve |
NURBS input to the Mesh shape type. |
nurbsCurve |
||
.inputForce |
An array attribute with references to all forces that act upon this rigid. | int |
0 | |
.inputMatrix |
Passive position and orientation, this may be animated. | ✔️ | matrix |
identity |
.inputMesh |
Polygonal input to the Mesh shape type. |
mesh |
||
.inputParentInverseMatrix |
Used to cancel out any Maya parent prior to outputting the outputMatrix. | ✔️ | matrix |
identity |
.inputSurface |
NURBS input to the Mesh shape type. |
nurbsSurface |
||
.jointOrient |
Input attribute for the formatting of outputMatrix. | angle3 |
0.0 0.0 0.0 |
|
.kinematic |
Whether this rigid should be affected by contacts, constraints and forces. | ✔️ | bool |
False |
.linearDamping |
Resistance in the opposite direction of travel for a rigid. This creates an underwater look, or at high-enough values resembles honey or eventually cement. | ✔️ | float |
0.5 |
.mass |
The 'weight' of a rigid. Except 'weight' is technically the result of mass and gravity, and a rigid still has mass even when there isn't any gravity. This attribute is mostly relevant when two active rigids interact, think of a pool table where one of the balls is heavier than another. On the other hand, dropping a feather from high on up onto a static ground yields an identical result to dropping much heavier bowling ball. The ground being static will not move regardless and the speed at which your rigid falls to the ground is independent of its mass given there is no actual air in the simulation to apply counterforce like in the real world. | float |
1.0 | |
.maxContactImpulse |
How strong contact forces are allowed to be. A value of -1 means 'infinite' and anything less can help produce soft collisions. | float |
-1.0 | |
.maxDepenetrationVelocity |
How quickly two intersecting rigids are allowed to de-intersect. This can help avoid explosions and maintain a soft appearance. | float |
-1.0 | |
.nextState |
This attribute is pulled whenever the rigid needs to know its position and orientation from the solver. | int |
0 | |
.outputMatrix |
The primary output from each Rigid, and from Ragdoll overall. The final position and orientation following the simulation at the current time step. | matrix |
identity | |
.outputMesh |
Polygonal version of the rigid, for rendering and export. | mesh |
||
.outputRotate |
The rotation part in Euler format of the outputMatrix . |
angle3 |
||
.outputTranslate |
The translation part of the outputMatrix , that's all it is. |
double3 |
0.0 0.0 0.0 |
|
.positionIterations |
Accuracy of non-intersecting constraints and contacts. If the drive (guide) strength isn't strong enough, increase this value. | int |
8 | |
.ragdollId |
Internal identifier for this node in the solver. | int |
0 | |
.restMatrix |
Starting position and orientation of a rigid in the simulation. This attribute is typically initialised with wherever the chosen Maya transform is located at the time of creating the rigid. It is also the attribute manipulated when setting the initial state. | matrix |
identity | |
.restitution |
The 'bounciness' of a rigid body. Bounce is an opposite force applied whenever two rigids come into contact. The bounce is however also dependent on the rdScene.bounceThresholdVelocity which determines how strong a contact must be in order for an opposing force to be added. Without a threshold, a rigid would bounce at increasingly small intervals into infinity. However, for high-frequency bounces, like a billiard ball bouncing on a marble floor, don't forget to increase your substeps so as to capture the very small and fast motion happening towards the end of its bounce lifetime. |
float |
0.1 | |
.rotateOrder |
Input attribute such that the output matrix and rotation respects the chosen rotate order of the target transform. | enum |
0 | |
.rotatePivot |
Input attribute to properly format the outputMatrix and friends. | double3 |
0.0 0.0 0.0 |
|
.rotatePivotTranslate |
Input attribute for the formatting of outputMatrix. | double3 |
0.0 0.0 0.0 |
|
.shapeExtents |
The dimensions of the 'Box' shapeType . |
float3 |
1.0 1.0 1.0 |
|
.shapeLength |
Length of the 'Capsule' and 'Cylinder' shapeType . |
float |
1.0 | |
.shapeOffset |
Position of a shape relative the rigid. Think of the shape as being a child of the rigid, and this is its child position. It'll be in the orientation of the parent, as you would expect. | double3 |
0.0 0.0 0.0 |
|
.shapeRadius |
Radius of the 'Sphere', 'Capsule' and 'Cylinder' shapeType . |
float |
1.0 | |
.shapeRotation |
Rotation of the shape relative the rigid. | angle3 |
||
.shapeType |
Shape used for collision detection and automatic computation of centerOfMass and angularMass . The 'Mesh' option converts any input to inputMesh or inputCurve to a suitable physical representation called 'Convex Hull'. As the name implies, the hull cannot be concave. To model concave shapes, like a torus, use multiple rigids and parent them together to form a compound shape. |
enum |
1 | |
.startState |
The scene pulls on this attribute at the start frame to set-up the initial state of the rigid, including its rest position and shape properties. | int |
0 | |
.thickness |
Additional offset from the surface of a shape. Think of this as the shape being extruded by this amount along the surface normals. It's meant to create some padding between two rigids that collide and can help stabilise complex or strong contacts. | float |
0.0 | |
.velocityIterations |
Accuracy of intersecting constraints and contacts. If intersecting bodies are being depenetrated too violently, increase the number of velocity iterations. More velocity iterations will drive the relative exit velocity of the intersecting objects closer to the correct value given the restitution. | int |
1 | |
.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: 2021-01-17