Skip to content

rdScene

image

Reference sheet for the rdScene node type.

from maya import cmds
cmds.createNode("rdScene")


Attributes

Attribute Description Keyable Type Default
.airDensity Global multiplier to the linearDamping and angularDamping of every rigid part of this scene. This is a convenience attribute to the same attribute found in the rdRigid node for global effects, like the whole scene turning into honey. float 1.0
.bounceThresholdVelocity How strong must a collision be in order to be considered for bounce? To achieve a typical bouncing ball animation, lower this value significantly and increase the number of substeps by a lot. A lower value generally leads to rigids being unable to ever come to rest, but values too large can result in rigids unrealistically coming to rest prematurely. float 1.0
.currentTime Ragdoll's knowledge of time. This is typically connected automatically and needn't be touched, but it is technically possible to animate this and achieve complex slow-motion or time-related effects. ✔️ time 0.0
.drawConstraints Draw all constraints in this scene. bool False
.drawForces Draw all forces in this scene. bool False
.drawLimitScale Scale limits by this amount. float 1.0
.drawLineWidth Scale lines by this amount. float 1.0
.drawShapes Draw all shapes in this scene. Debugging attribute for visualising shapes external to their corresponding rigid. bool False
.drawTrajectories Draw a line over time from the center of mass for each rigid in the scene. bool False
.drawVelocities Draw an arrow representing velocity for each rigids in this scene. bool False
.drawVelocityScale Scale velocity arrows by this amount. float 1.0
.enableCCD Continuous collision detection is used to detect collisions that happen between frames. For example, a bullet being fired from the scene at frame 1 and ends up behind a character on frame 2 would normally not be picked up by normal collision detection. CCD fixes that, at slight cost to performance. bool False
.enabled State of the solver. An enabled solver will update whenever time changes. ✔️ bool True
.gravity Default gravity, in Maya's current distance unit (typically centimeters). Because native Maya shapes are generally quite small - e.g. 1 centimeter for a polyCube - the default gravity is less than the realistic 986.0 cm/s2. If your characters are real-world scaled - e.g. 2 meters tall - then gravity should be closer to 986.0 instead. distance3 0.0
-98.6
0.0
.groundFriction Friction of the ground. float 0.5
.groundRestitution Bounciness of the ground plane. float 0.5
.inputActive An input connection to every rigid part of this scene. This attribute tracks which rigid to account for during simulation. It is dirtied whenever time changes which in turn causes connected rigids to pull on it for latest updated position and orientation. int 0
.inputActiveStart An input connection to every rigid part of this scene. Like inputActive except this attribute is only dirtied on the start frame, to cause rigids to provide their initial state. int 0
.inputConstraint An input connection to every constraint in the scene. int 0
.inputConstraintStart An input connection to every constraint in the scene. int 0
.inputMatrix An offset for all rigid bodies in the scene. (Not yet implemented) This can be used to move a simulation away from the origin and account for animation happening very far away. It can also be used to cancel out animation, by parenting the scene to an animated node. matrix identity
.inputSlice An input connection to every slice in the scene. int 0
.inputSliceStart An input connection to every slice in the scene. int 0
.numThreads Number of threads to use internally whilst simulating. Ragdoll automatically divides a scene into 'islands' each frame based on the proximity to rigid bodies in your simulation. Rigids that are far away from each other and unlikely to come into contact are put into separate islands, each island being suitable for simulation in a separate thread. For single-character simulations or simulations where characters interact it is generally faster to leave this at -1 (meaning 'no threads'). int -1
.outputChanged An auxiliary output connection to any object interested in updates from this scene. int 0
.outputObjects An output connection to every rigid updated by this scene. int 0
.positionIterations Spend this many iterations on each rigid. Amount of iterations given to solve all constraints. This attribute is a multiplier of the rdRigid.positionIterations attribute, to affect the overall behavior of the scene. int 4
.ragdollId Internal identifier for this node in the solver. int 0
.solverType The type of solver used for simulation. Projected Gauss-Seidel (PGS) or Temporal Gauss-Seidel (TGS), TGS is generally does a better job at guided simulation such as full-body dynamics, whereas PGS does a better job at many unconstrained objects like brick wall destruction. enum 1
.startTime Time at which to start simulating. Ragdoll will keep rigids at their restMatrix until simulation starts. time 0.0
.substeps Divide changes in time by this many. Ragdoll simulates once per frame (or generally once per change in time, including sub-frame changes), but multiples the number of steps taken by this amount for greater accuracy at a (possible) cost to performance. int 4
.timeMultiplier Speed up or slow down the passage of time with this attribute. This value is multiplied with the normal passing of time, for slow-motion use a value less than 1.0 such as 0.5 for a 50% reduction in speed. float 1.0
.useGround Automatically add a static ground shape to this scene. This has a very similar effect to making your own plane and turning that into a Passive Rigid. The ground responds to changes in translation of the scene, but cannot be animated. bool True
.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