2022.11.29
Highlight for this release is Live Mode!
- ADDED Ragdoll Freelancer Ragdoll for $199
- ADDED Live Mode Physically-based character posing
- ADDED Interactive Mode Real-time physics as you animate
- ADDED Load Physics Lightweight and physically-based character rigs
- ADDED Asset Library Premade assets with room for your own collection
- ADDED 2x Performance 4x faster rendering means 2x faster playback performance
- ADDED Selection Outline Easier and nice-to-look at rendering
- UPDATED Translate & Rotate Stiffness Simpler! No more "pose space", what even was that?!
- ADDED Selective Export Exclude or include individual Markers, Groups or Solvers
- ADDED Keyable Gravity Gravity can now be animated!
- ADDED Replace Mesh API Tweak
- ADDED Plan Duration Control the default duration of a newly assigned plan
- ADDED Viewport Selection Select a solver via regular viewport-select!
Showcase
As is tradition, let's have a look at some of the things people have been up to with Ragdoll since the last release.
Ragdoll 3 Trailer
A 2 minute summary of what you'll find in this document!
- YouTube - Trailer (2:00 mins)
- YouTube - Rigging for Live Mode (4:15 mins)
- YouTube - Rigging with Multi-Cut (10:06 mins)
- YouTube - Live Rig and Maya Native Rigs (5:13 mins)
Pavel Orsher
Some excellent mechanical work by Pavel on the forums.
Live Wyvern
Made with the beta version of Live Mode by @emi on the forums.
Live Dance
Animated with Live Mode, and re-simulated for balance!
Catfish
Made with a beta version of Live Mode by @riccardo_p on the forums.
Halloween
This happened.
Ho Ho Ho
A little early, or is it?
Live Mode Workflow
One example of how to use the new Live Mode from this release.
Interactive Wyvern
Animated in Interactive Mode, with caching enabled.
Ragdoll 3.0
That's right, this is a big one!
Last major release was the introduction of Markers back in January of this year. A major overhaul to both performance and usability of Ragdoll. This release is no different, with the introduction of Live Mode.
This is the direction we have in mind for Ragdoll and, dare I say, for character animation at large. We believe now is the perfect time to leverage much of the untapped technology from the past few decades and throw out much of what we know about animation - starting with how characters are posed.
Ragdoll Freelancer
A new limited edition pricing tier for the individual out there wanting to take Ragdoll to work.
Details
- $199 for a licence, 1 year of updates included
- An optional $99 per additional year of updates
- Individuals can purchase this
- Companies cannot purchase this
- Lifetime licences only, no subscription
- Maximum 1 licence per individual (3 activations for e.g. home and work)
- Can be used both commercially and non-commercially, namely at work or at home
- Cannot be activated offline
- Cannot be activated on a virtual machine
- Cannot be activated on cloud hardware, like AWS or Google Cloud
Who is this for?
It's exclusively for individuals who work on a project-basis and wants to take their Ragdoll licence with them as they move between studios. It
Is this you? Click here to get yours today!
Live Mode
Here's "Live Mode" in a nutshell.
Traditional Rig
And here's the equivalent task with the traditional rig.
If you don't make it through all of the 95 seconds that the traditional method takes, I don't blame you. Not only is posing with Live Mode already 3x faster, it also has the following benefits.
- It's fun! You don't see that every day.
- No intersections You don't even have to think about it, like playing with an action figure
- No broken limits That is, skinning and subsequent muscles and cloth are safe
- No controls Your geometry are the controls!
But perhaps most importantly.
- You don't need rigging!
This same workflow applies to plain joint hierarchies, meaning an animator could:
- Import a mesh
- Plot some joints
- Skin mesh
- Assign markers
- Start animating
For example, here's 30 seconds of "rigging" a character from scratch.
And that's where things are going.
Let's have a closer look at what this thing can do today.
General Posing
Clicking and dragging on any marker will affect it the way you'd expect.
Reset
Exiting out of the mode or changing from the Manipulator to e.g. the Maya Translate tool (W hotkey) will reset the simulation to where it originally started.
Drop Press & Hold
Towards the bottom, you'll find a number buttons, one of which is called Drop
. This "drops" the character. In other words, it temporarily enables gravity. This can help ease a character onto the ground or generally relax things that are hovering. It's also fun to play with.
Drop Toggle
Hold Shift to toggle gravity on, such that you can throw things around! Also fun to play with
Tense Press & Hold
Next up is Tense
. This tenses the character.
What's really happening is that it tries to reach whatever pose your rig is in at that time.
Tense Toggle
Like Drop
, the Tense
button can be toggled, which would leave the character tense.
Mask
Hold Ctrl whilst clicking to "mask" a Marker. This prevents it from moving at all, it's technically turning the Marker into a Kinematic object temporarily.
Pro tip
You can also press Ctrl whilst dragging and release to leave the Marker you are currently dragging in place, for some cool posing mechanic!
Unmask All
Next up is "unmask" which involves "masking" via Ctrl + Clicking on a Marker. It's how you prevent a Marker from moving.
How does it work?
It temporarily turns any marker Kinematic
, identical to the Behaviour = Kinematic
attribute.
Mask Parent
Hold Shift whilst dragging to isolate the effect to a marker and it's children.
Transfer Pose
The final button is the Transfer
button. It's what transfers the simulation back onto your animation controls.
Transfer Toggle
Like Drop and Tense, this button can also be toggled, meaning the pose is transferred as soon as you let go of the mouse cursor.
Animation
And these are the tools you use to animate.
Visual Undo
The timeline helps you understand where undo will take you.
You can also interact with the timeline, for fine control over where in history you want to go.
Recording Live Mode
Use Live Mode with Cache = Static
to enable recording of your interactions!
Interactive Mode
Toggle the Lock button far-right to keep simulating outside of the Manipulator.
This enables you to use Ragdoll as a normal Maya deformer, and see real-time updates on contacts and limb limits.
Here are some more examples!
Rigging for Live Mode
In order for your characters to work with Live Mode, you'll need to take a few things into consideration. Primarily that your character has FK controls with the ability to disable space switches and other mechanics that differ from a straightforward parent/child relationship.
- https://youtu.be/fx-BT6eDxDE (4:15 mins)
Rigging with Multi-Cut
A quick tutorial on how to setup a character using Maya's multi-cut, and then export and load this character to assemble it alongside our favourite Manikin!
- https://youtu.be/Si_l8B82c9w (10:06 mins)
Live Rig and Maya Native Rigs
Here's an example of how you can "trick" Live Mode into working for you with any traditional Maya rig.
- https://youtu.be/kmY5NSmbkZo (5:13 mins)
Rendering
The viewport rendering pipeline has seen an overhaul - replacing much of Maya's own API for our own based on OpenGL 4 and DirectX 11.
The result is a much nicer presentation of Markers, especially those with a Mesh.
But that's not all.
It also resulted in a 4x performance improvement to rendering, which means that playback performance is now 2x faster!
Selection Outline
Selection and anything "wireframe" in general has been significantly improved.
Before
After
Group Selection
This has also seen a major face lift since the last release, resulting in a much more clear idea of what's included in a given group. Rather than the lasso from the prior release, which was great! But, it wasn't able to clearly visualise markers inbetween many other markers, since the lasso would encapsulate those too!
Before
After
Old Rendering
If you prefer, you can still enable the old group drawing. It's merely disabled in the Solver Display section of the Attribute Editor.
2x Performance
Here's a simple performance test to give you some idea!
Before
After
Here's one with only rendering and no simulation, meaning that navigating the viewport is even faster than the overall performance improvements.
Before
After
OpenGL vs DirectX
OpenGL is the quickest, use it if you can. DirectX clocks in at 120 fps, versus 200 fps for OpenGL. That's almost half the speed if you desperately need DirectX! But, still faster than the previous version.
Parallelism
Here's what you can expect from parallelism with multiple solvers in this release.
1 Solver
25 solvers
We'd expect a 25x speedup here, but are only getting on the order of 3-4x. Useful, but room to grow!
Load Physics
You can now open a .rag
file without anything already existing in your scene.
Before, you could export the layer of physics wrapping around your character rig, and later re-apply this layer via the Import Physics
menu item. With this release, you can throw away your character rigs and import and use the physics layer independently!
Asset Library Backend
This is the functionality the new Asset Library builds upon!
Asset Library
You've now got a number of assets at your fingertips, ready for import.
Version History
Spot which version you are on, and read more about past versions to see how Ragdoll has evolved over time.
Clicking on a version will take you to the web page for it, assuming you've got internet access. Otherwise, you can copy the resulting address into somewhere you do.
Licence Information
The Asset Library is where you'll now also find information about your licence.
Multiple Loads
Load one or load many, they'll all interact with each other and can be manipulated with Live Mode too!
Assets
Along with the new library, and your ability to add your own assets, we've got some default ones for you to play with!
Alien
Let's have a look at what assets you've got to play with in this release, first up is the "Alien".
Dog
A friendly dog, ready for posing.
Manikin
The classic Ragdoll Manikin character as a ragfile.
Spaceman
A zero-gravity astronaut, waiting to be tossed around in space!
Pirate
Argghhhhh! This one's got fingers and a face.
Rhino
A quadruped as well, with fatty bits for some nice secondary motion.
Wasp
The wasp from the tutorial section!
Cowboy
A plastic doll with gun and hat!
Dragon
A deconstructed version of Antoine Verney-Carron's wyvern, used in one of our early Live Streams.
Batty
What do you get if you combine a bat with a frog?
Shark
It's the Rag Shark!
Dude
If Rag Shark had a friend, it'd be the Dude!
Lion
A generic lion, in bad need of limits. Can you help him?
Beta Videos
A series of videos made during the beta, some of which are out of date but still potentially useful!
- Live Mode 0 - Asset Library
- Live Mode 1 - Introduction
- Live Mode 2 - Edit Any Frame
- Live Mode 3 - Tense Children
- Live Mode 4 - Shift + Drag
- Live Mode 5 - Timeline
- Live Mode 6 - Drop
- Live Mode 7 - Shift + Drop
- Live Mode 8 - Tense
- Live Mode 9 - Shift + Tense
- Live Mode 10 - Ctrl + Click
- Live Mode 11 - Transfer
- Live Mode 12 - Sync Timeline
- Live Mode 13 - Hierarchy
- Live Mode 14 - Maintain Child Orientation
- Live Mode 15 - Pause When Inactive
- Live Mode 16 - Interactive Mode 3
- Live Mode 17 - Record your Live Mode 2
Translate & Rotate Stiffness
We've making a change to how you animate with the "stiffness" attributes.
Primarily, we're removing the Pose Space
attribute. If you hadn't yet used it, good on you. It was far too complicated of an attribute to make sense of.
If you have been using it, you'll be pleased to know that the behaviour is now entirely consolidated into the Pin Constraint which performs exactly the same behaviour except without the mental overhead of figuring out what a "Custom" space actually is.
Before
After
Backwards Compatibility
The previous Pose Stiffness
attributes are still available for the time being.
To use it, untick the Use Translate/Rotate Stiffness
in the Assign
menu options.
Replace Mesh Tweak
Like removing a pebble from your shoe, the api.replaceMesh()
command now automatically changes your rMarker.shapeType
attribute to Mesh
. A small but helpful change!
Selective Export
Prior to this release, whenever you Export Physics
you'd get absolutely everything that Ragdoll knows about. Every Marker, every group and every solver too.
With this release, you can cherry-pick the things you want included in your export, via the new Export
attribute, found on all Ragdoll nodes. On
by default, if Off
then it will be invisible to the export process.
You'd use it when you have things in your scene you know aren't interesting to export. The Ground Plane for example is Off
per default, since it's unlikely you'd want that included in a new scene.
Ragfile Schema Update
Two components has seen an update with new members and deprecated members.
- MarkerUIComponent
- GroupUIComponent
These won't affect external use of .rag
files in e.g. game engines, and shouldn't have effect anywhere really. They are used as a means of passing Maya-specific values in and out of the .rag
file for import and export.
"MarkerUIComponent": {
"driveStiffness": "is now -> angularStiffness",
"driveDampingRatio": "is now -> angularDampingRatio",
}
"GroupUIComponent": {
"driveStiffness": "is now -> angularStiffness",
"driveDampingRatio": "is now -> angularDampingRatio",
}
The prior members remain, but should not be used.
Import Attach Constraint
You can now export and import the Attach Constraint!
Scale Attach Constraint
You can now scale characters that use the Attach Constraint.
Scale Distance Constraints
The minimum and maximum values of the Distance Constraint is now scaled alongside your character, just as you'd expect!
Pro tip
Notice how as the character grows in size, the effect of the Distance Constraint diminishes. That's because with greater size comes greater mass. You can control this via Density = 0
which allows you to give a character a fixed mass regardless of size, which you may or may not want!
Mesh Import in Maya 2023
A tiny little typo slipped in with the prior release, 2022.07.20, which led to you being unable to import anything with replaced meshes. 😠This has now been fixed! 🥳
ri.import_physics()
// ragdoll._create_solvers() - Creating solver(s)..
// ragdoll._create_groups() - Creating group(s)..
// ragdoll._create_markers() - Creating marker(s)..
// Warning: ragdoll._import_physics_wrapper() - Traceback (most recent call last):
// File "C:\Users\marcus\Documents\maya\modules\Ragdoll-2022_07_20\scripts\ragdoll\interactive.py", line 3604, in _import_physics_wrapper
// _singleton_import_loader.reinterpret()
// File "C:\Users\marcus\Documents\maya\modules\Ragdoll-2022_07_20\scripts\ragdoll\internal.py", line 441, in _undo_chunk
// return func(*args, **kwargs)
// File "C:\Users\marcus\Documents\maya\modules\Ragdoll-2022_07_20\scripts\ragdoll\dump.py", line 450, in reinterpret
// rdmarkers = self._create_markers(rdgroups, rdsolvers)
// File "C:\Users\marcus\Documents\maya\modules\Ragdoll-2022_07_20\scripts\ragdoll\dump.py", line 665, in _create_markers
// self._apply_marker(mod, entity, rdmarker)
// File "C:\Users\marcus\Documents\maya\modules\Ragdoll-2022_07_20\scripts\ragdoll\dump.py", line 1272, in _apply_marker
// mobj = meshes_to_mobj(Meshes)
// File "C:\Users\marcus\Documents\maya\modules\Ragdoll-2022_07_20\scripts\ragdoll\dump.py", line 1299, in meshes_to_mobj
// for index in range(len(polygon_connects) / 3):
// TypeError: 'float' object cannot be interpreted as an integer
// Warning: ragdoll._import_physics_wrapper() - An unexpected error occurred, see Script Editor
Known Issue - Render Gliches from the Inside
Moving the camera inside of a marker with an outline can look a little freaky!
Minor Releases
Following this release, here are some minor changes made.
2022.12.01
Revert incomplete Locomotion 2.0, coming up in the next larger release.
2022.12.05
Repair broken Educational licences, they were acting like trial/non-commercial licences.
2022.12.13
Keep fields with 0 magnitude from affecting anything.