2020.12.01
Lots of good stuff!
- CHANGED Active & Passive Rigid More intuitive jargon for these suckers
- CHANGED Character 2.0 New and improved, now with cup-holders!
- ADDED Dynamic Control Capsules For those flat controls
- ADDED Time Multiplier Speed up or slow down your simulation, can be animated!
- ADDED Normalise Shapes Evenly distribute shapes across a hierarchy
- ADDED Auto Orient Don't bother orienting your joints with this nifty automation, now the X-axis always means "length"
- CHANGED
Delete all Physics
now also deletes Ragdoll's attributes on your animation controls, for that squeaky clean feeling - ADDED Support for custom Rotate Order means more character controls now work out-of-the-box.
- FIXED Undo bug and
rdRigid
The rigids should now clean up after themselves better - FIXED Simulation start time now uses the start range rather than start time, which is what you would expect
- NOTES Stick figures Learn about how thickness affects your simulation
- NOTES Animation in 1995 Witness how little our industry has changed since then, let's fix that!
Active & Passive Rigid Body
The terminology for "Rigid" and "Collider" wasn't clear. Surely, a "Rigid" collides too?
With this release, I've updated the jargon to make a little more sense.
Active Rigid
A rigid that moves is activePassive Rigid
A rigid that doesn't move is passive
This also goes for the kinematic
attribute which has been renamed passive
, highlighting that an active rigid can made passive by flicking this switch. Backwards compatibility is preserved by keeping the underlying attribute name, and only changing it in the Channel Box and Attribute Editor (i.e. the "nice name").
Character 2.0 - "Auto-Ragger"
This release expands on the "Character" tool with some nifty new features. But since I haven't mentioned what 1.0 was capable of, here's an overall round down of what it is and when to use it.
Character
is a one-click character creation tool - and auto-rigger (or auto-ragger, if you will). It's designed to give you the essential tools for turning any native Maya skeleton into an animatable rigid body hierarchy.
Read more about it on this new dedicated page I've made for it.
Dynamic Control Capsules
Now Dynamic Control can be configured to generate capsules between selected controls, instead of assuming that the NURBS CVs neatly wrap around the model.
Current and Default behaviour
The tool uses the Mesh
shape per default like before.
Alternative Capsules
But if your controls do not have volume, or do not nicely wrap the underlying model, you can now use Capsules instead.
The caveat with capsules is that the tool cannot know how long to make your capsules. Therefore, there is an option to use the last-selected node as a hint for how long to make it.
In this example, 5 nodes selected, 1 passive and 3 active rigids comes out. If you don't use a last selection for length, the last selected capsule will have a length of 0 (it'll be a sphere). That can work in some cases, but is generally discouraged. The center of mass would be wrong and you should expect unrealistic results until you tweak it to fit your model.
Gathering information about Dynamic Control on the..
Normalise Shapes
An early version of the "Normalise Sizes" tool, meant to more evenly distribute sizes of shapes across a hierarchy. Per default, shapes are sized based on the geometry of the Maya node. If it's a box, it'll get the dimensions of the box. If it's a joint, it'll get the length and radius of that joint.
But because this mechanism can't see past the one node it's looking at, it's an uphill battle making shapes evenly distributed in a greater network.
The "Normalise Sizes" tool is meant to address that.
It's still early, and a few things are missing.
- Resolve Self-intersections These are more likely to happen the larger shapes get.
- Handle spine It tends to become too thin and desperately needs to be thickened up
Time Multiplier
Now you can speed up or slow down your simulation with a multiplier attribute found on the rdScene
node!
- If you need something happening really-really fast, don't forget to also up your
Substeps
. - If you need something even faster, like a bullet moving across the room in 2 frames, activate
Continuous Collision Detection
to prevent it from flying through stuff without noticing. -
For anything slower than real-time, remember contacts and constraints are solved each frame, so more frames means more accurate simulation. If you don't like that, you can either (1) half the substeps alongside halving time or (2) bake out the simulation and scale the bake instead.
Rotate Order
Now rigids play well with non-standard rotation orders, very common your everyday character animation rigs to ensure axes don't go gimbal.
Thanks to Peter Jemstedt for help on this one!
Auto Orient
Shapes and constraints can now be automatically oriented based on the parent and child of each joint (soon coming to controls). This should help sort out those pesky joint orientations any manner of skeletons.
Undo Bug
There was this nasty bug that caused rdRigid
nodes to remain behind after creating and then undoing. But what got left behind wasn't your normal nodes. They only appeared in the Node Editor and could not be selected or even deleted. They would show themselves out when re-opening the Maya scene which is great.
This visibility isn't a problem in itself, if it wasn't for them also being visible from Python. If any command needed to know "hey, animation control, are you connected to a rigid?" then it would happily reply "yes! for sure!".
And that's bad. But not anymore, because it's fixed!
Stick Figures
In a previous release I touched on "angular mass" and what it meant for your simulations.
Let's look at this in practice.
Here's one character with identical settings, the only difference is the radius of her capsules, and yet the move differently. Why is that?
Remember that angular mass is 3-dimensional. Just like normal mass, when mass is high, more force is required to introduce motion. In the case of angular mass, the force required is divided into three axes.
In this illustration, the angular mass along the X axis is much larger than Y and Z, so in to rotate around this axis you need much more force than the other two axes.
There is however only 1 value for "guide strength". You can think of this force as being distributed across each axis, relative its mass.
For example, if your Guide Strength
is 10.0, then the distribution might look something like this.
X Strength = 10
Y Strength = 2
Z Strength = 1
Whereas if angularMassX
was equal like a square cube..
X Strength = 10
Y Strength = 10
Z Strength = 10
In light of this, what are your options?
- Fit your geometry The most realistic behaviour is what you get when model your shapes to the geometry you are animating.
- Adjust to taste If there is no geometry, or if the geometry is of an actual stick figure that you would like to act like a person, thicknen up your shapes. To separate between behaviour and collisions, add a second rigid and disable collisions on the first.
- Edit
angularMass
The least intrusive but perhaps most complex option is to manually specify a preferred angular mass.
Here's the scene and one more gif to keep you warm at night.
Some things to experiment with:
- What if she has a really heavy head?
- ..really heavy hand?
- What if the
Guide Strength
was halved? - ..or 10x?!
- What if you remove
Guide Strength
on her hip? - What if you add an extra
Guide
to her head?
Animation in 1995
Stumbled upon this (thanks Jarl!) which I think is a great example of what I think we're ready to move away from as an industry. :)
Here's a prediction for you - about a year from now, you won't be keyframing anymore. You'll be recording.