Skip to content

rdRigid

image

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