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 toConvert 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 intoConvert Rigid
andConvert 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.
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
orMesh
. Shape attributes are prefixedShape *
e.g.Shape Length
affects the length of theCapsule
, whereasShape Extents
affects the dimensions of theBox
- 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
orrotate
or both channels to each other. - Force is an external force, like
Wind
orPush
you can use to affect aDynamic 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 forGuide Strength
andLimit 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.