Skip to content



Reference sheet for the rdRigid node type.

from maya import cmds


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
.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
.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
.creationMatrix Matrix at the time of creation. This attribute is copied into the .restMatrix upon calling Clear Initial State. matrix identity
.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
.exclusiveNodes Nodes created for this and only this rigid. Exclusive nodes are deleted alongside this rigid. If you want to keep a node initially created as an exclusive node, disconnect it from this array. 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
.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
.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
.rotatePivotTranslate Input attribute for the formatting of outputMatrix. double3 0.0
.shapeExtents The dimensions of the 'Box' shapeType. float3 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
.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
.sleepThreshold How strong does a force have to be to keep the wakeCounter from incrementing? Ragdoll optimises performance by putting inactive rigids to 'sleep'. It is a temporary state to conserve computational resources. 100 sleeping rigids are quicker to solve than 100 active ones. A rigid 'wakes up' whenever a force is applied or contact occurres. float 5e-06
.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
.userAttributes References to attributes created for this rigid but on another node. Such as proxy attributes created on an original animation control, used to drive the attribute on this rigid. bool True
.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
.wakeCounter How many frames of not moving does it take to put this rigid to sleep? A value of 0 = insomnia, meaning it never goes to sleep. int 0

Last update: 2022-04-04