Skip to content

2020.11.22

Minor release, no breaking changes.

  • FIXED Capsule orientation used to face the wrong direction with some joints
  • FIXED Creating a new collider is now undoable like you would expect
  • FIXED Message printed when converting a rigid is now accurate
  • FIXED Kinematic/Dynamic option from Convert Options does no longer bleeds into the Create Rigid Options
  • ADDED Auto option to Convert Rigid, to toggle a rigid between dynamic and kinematic
  • CHANGED The rdRigid.kinematic attribute is now up-top, better indicating its importance
  • CHANGED The Ragdoll | Convert menu item is now split into Convert Rigid and Convert Constraint
  • CHANGED Renamed Convex Hull -> Mesh, should make more sense now




Capsule Orientation

Fixed a bug where the capsule of a joint would face the wrong way.

image



What is Rigid Body Dynamics?

Loose thoughts that will eventually transform into a quick 10 second video.

Rigid Body Dynamics is a branch of computer science which "studies the movement of systems of interconnected bodies under the action of external forces". It differs from your typical simulation - such as nHair and nCloth - in that it simulates the translate and rotate channels of a given transform node rather than points of the geometry.

The main advantage is that it is well suited for animation and rigging, since animation and rigging is all about translate and rotate.

Ragdoll Jargon

  • Rigid a.k.a. Dynamic Rigid Body is a transform affected by forces. Forces like Wind, but also contacts and constraints which are both considered forces, in that they happen instantaneously rather than continuously.
  • Collider a.k.a. Kinematic Rigid Body is a transform affected by animation. It does not respect forces, but enables you to animate
  • Shape Every rigid body has a shape, either Box, Sphere, Capsule or Mesh. Shape attributes are prefixed Shape * e.g. Shape Length affects the length of the Capsule, whereas Shape Extents affects the dimensions of the Box
  • Constraint two rigids interact by either colliding and/or being constrained. Constraints work similarly to Maya Constraints, in that there is a parent and a child that lock either translate or rotate or both channels to each other.
  • Force is an external force, like Wind or Push you can use to affect a Dynamic Rigid Body



Performance Tips

Many things are currently unoptimised and these are the lowest hanging fruit you can reap for greater performance.

  • Hide Rigids Drawing is currently unoptimised and somewhat heavy. You'll find a 5-10% increase in performance by simply hiding the rdRigid shape once you're done tweaking
  • Hide Constraints These are even heavier, since they update dynamically to show you the deltas between animation and simulation poses. Hiding these can yield a 20-30% performance increase.

Other things come down to scene-by-scene basis.

  • Try PGS There are two separate solvers you can use, "TGS" and "PGS". TGS (the default) is better suited for full-body dynamics, whereas PGS is better suited for lots of independent rigid bodies, like a brick wall.
  • Decrease Position Iterations The rdRigid.positionIterations is how many iterations are given to each related constraint. Greater numbers means you can use higher values for Guide Strength and Limit Strength, at the expense of performance
  • Decrease Substeps These generally don't need to exceed 8, try 4 and 2 as well to see whether that makes a difference to behaviour/performance.