Skip to content

2020.12.18

Documentation documentation documentation!

This version expires January 10 2021


Documentation

Since the last release I've added a boatload of documentation to Ragdoll, including the very website you are visiting now!

This is where I'll aggregate anything there is to know about Ragdoll, including links to the upcoming forums and chat rooms, YouTube series and more. More more more!

Documentation is generated dynamically from the same source used to generate the in-Maya menu and graphical dialogs, so whenever you want quick help from within Maya without breaking your flow, you can! And when you're on the train without access to Maya wanting to know more about a particular button or feature, you can!


Help Page

Every menu item now comes with the Help sub-menu active.

ragdollhelp4

The page can also be accessed by clicking on the top description.

ragdollhelpclick

I also added hints to the labels of attributes, rather than just the widgets themselves.

ragdolllabelhints

All of the information is generated from the same source as the website, so they'll tell you the same thing except closer to where you are.

For example, the Active Rigid menu item:


Timeline

Multiple videos are now visible in the UI, to shed more light onto how things work.

ragdolltimeline

Hints

Hovering over the currently playing video displays a description of what it is about.

ragdolltimelinehint

Real-time scrubbing

I've added real-time scrubbing too!

ragdollscrub

The caveat however is that it consumes a lot of RAM, this dialog of about 1,000 frames takes 1.5 GB of RAM, and a hefty delay to showing the option dialog.


API and cmds

The API used to take and return instances of cmdx, the high-performance alternative to PyMEL. The API now integrates seamlessly with maya.cmds, both taking and returning node paths (i.e. strings) rather than instances, which means you can now do this!

from maya import cmds
from ragdoll import api as rd

cube, _ = cmds.polyCube()
cmds.move(0, 10, 0)
cmds.rotate(35, 50, 30)

scene = rd.createScene()
rigid = rd.createRigid(cube, scene)

cmds.evalDeferred(cmds.play)

The performance advantage of cmdx is still intact, and can be accessed via commands.py which contains identical members and argument signatures, except returning instanced of cmdx instead. This is what's used internally for both performance and readability.

In addition, there is now support for interactive.py for quick-and-dirty one-off scripts. This module contains all of what is provided by the Ragdoll menu and work similarly to api.py except they take (1) user selection and (2) user preferences into account.


Add to Shelf

Menu items can now be added to the shelf by holding Ctrl + Shift + Click. Menu items also reveal the equivalent Python command to use for your scripts!

ragdollshelf


Helper Warnings

If nodes have custom pivots or if your Maya scene is set to DG evaluation mode, Ragdoll will tell you about why that's a bad idea.

ragdolldgwarn

ragdollpivotwarn