RRM3 Release Notes
Jan 20, 2022
-fixed direction of fk chains/look-at's for inward to work even when not mirrored
-added nurbsCurve shapes to proxies to make them easier to select if meshes hidden/disabled
-fixed issue where bridge proxies could not be set to a different color
-added validations for reattaching to make sure that the user does not attach a proxy to one of its child modules or itself
-fixed undo queue when re-attaching and cloning proxy modules
-fixed issue with re-attachments sometimes attaching to the wrong side
-fixed issue with mirroring when a rig has a bridge module

# --------------------------
Rapid Rig has been rewritten from MEL to PythonInstallation is now through a single .msi file as a plugin, instead of several MEL files and images in directories
UI's now use PySide2 instead of Maya's built-in UI functions, allowing much more functionality.

# UI -------------------------------------------------------------
Several Changes have been made to the UI in an effort to make it more readable, and less daunting by reducing the amount
in each tab

Settings can be saved so that you can keep consistent settings across your rigs

# Proxy Rig ----------------------
-Templates is json data, and saving a file to the same path as these will list it in the defaults
-All info for creating an initial setup is in one dialog

-Building and editing modules is its own tab
-Editing Proxies is its own tab, but can also be expanded to be similar to the classic UI
-Saving and Loading proxies is its own tab

-Proxies can be toggled between solid and wireframe for easier editing
-Connector lines can be hidden through attribute on the RRM_MAIN node

# Creating Proxy Rig
-All initial settings for creating proxies are now moved into a pop-up, which helps simplify the main ui
and requires less back and forth
-Presets are stored in json files, so adding additional saved setups will automatically appear in the dropdown list if
saved to the same directory as the defaults

-Proxies that represent joints now have a solid sphere to better represent the joint

Proxy Module Creation
-Instead of long scroll lists, proxy module types are clickable buttons with icons to quickly expose the settings for that module
-Settings can be reset to defaults
-A dropdown of default names is provided for each module type. These can be customized and saved to save time and keep consistent naming conventions

# Proxy Module Editing
-editing proxies is also more user-friendly. The user can choose the existing modules from a list or load selected
-loading a module will load in its current settings, making editing easier without messing up previous settings
-proxies can also be deleted and renamed from the edit portion of the UI

# Proxies can now be built from a generated Rapid Rig. So if you lose the proxies, they can still be recovered.

-------------------------------

# Arms and Legs
-toggling toon limbs can be done directly on the Parent node of Arm and Leg modules. No longer requiring the Edit Module
-Arms can have up to 10 curve joints (previously max 4)
-Clavicles are now optional for both arms and legs-Twisting on wrists and ankles is more stable

# FK Chains
-toggling ik Enabled can be done directly on the Parent node of FK Chains. No longer requiring using the Edit Module
-users now have an option to assign a name (based on fingers) to each chain instead of just a number. These names
are applied when the rig is built.

# Head
-a joint-driven face rig is now possible. Settings for:
    -Eyes, Eyelids, Eyebrows, Lower Orbitals
    -Nose, Nostrils, Nose Bridge
    -Cheeks
    -Lips, Upper and Lower Lips, Laugh Lines, Teeth, Tongue

# Bridge - new module that allows two different attachment points


# Generate Rig ---------------

Single Hierarchy Settings
-Single hierarchy options are in the UI instead of a separate pop-up at the end of the rig build.
-Connecting scale channels is optional at rig creation instead of a post-build operation
-Users can choose Unreal Engine naming convention for the Single Hierarchy
-Users can specify a rotation order for the SH joints
-Rotation orders are persistent on rig rebuilds



# Controls ---------------------------------------------

- controls are now oriented down the Z axis. This supports mirroring behaviour for both translation and rotation
of controls.

-creating a rest pose has been simplified. The user can now set the orientation of controls to match the nearest
world axis without having to worry about any additional settings.

-All nodes are connected immediately upon creation. This way if there is an error in the rig build, the rig and all nodes
can be deleted without extra nodes cluttering up the scene

-Control shapes are updated to be more precise looking shape. Less guess-work with rounded shapes

Spline
More precise movement in the top and bottom halves of the spline

# Arms and Legs
IK limbs now have a world space control and a mirror space control, the visibility of these can be toggled on and off

# Legs
Ball and Toe Proxies are lifted off the ground by default to provide a better starting position for deformation


# FK Chains and Look-At's
-using shared attributes to reduce the number of controls. What used to be in the generic chain control is now on
the first control of each chain-the single top control of the FK chain module can be hidden
-FK Chains can be assigned a name instead of a number (eg, thumb, index, middle, ring, inner, outer, etc)
-FK Chain IK Mode now has rotational influence from the first and last control
-FK chains can be created to have dynamic simulation

# Auxiliaries
-Auxiliary modules can be built without a joint, so it is just a control
-Auxiliaries can have multiple "follow" targets. This is defined in Edit mode of proxies

# Bridge
-new module attaches to two joints in the rig. Can be stretchy, has soft ik
-Bridges can be created to have dynamic simulation

# Post Build ------------------------------------------
Rig Rest Pose and Control Appearance have been separated into two tabs
Rest Pose
- rest pose has been simplified. Rather than having to choose axes to orient to the world, the tool will find the closest
world axes and apply. The user simply needs to rotate the control close to the world, and the tool will do the rest.
-rest pose information is now persistent when a rig rebuilds
-rest pose data can be saved to and loaded from different rigs and scenes

-the eyelid driven control groups' SDK's for the open/close attributes on the eye sockets can be tuned and reset

-Resize Controls can affect just the module in addition to the branch, selected and all.

-Renaming joint to MotionBuilder has been made easier by allowing the user to select any joint of a body part (except fingers and thumb)
-Names can be reset back to originals on selected, entire hierarchy, module, or all descendants
-Auto-mirror button has been added so naming one side will auto-rename the other side

-Curve shapes can be saved and loaded across rigs with different names

# face
-eyelid open and closed shapes can be modified to better suit the look of the character's eyes.

# rebuild rig
-Animation and Channel values have the option to be reloaded after a rig rebuild
-Controls moved to different layers can be put back on those layers after rebuild
-Missing influences (if a module was deleted) no longer causes errors on rebuilds. Skin copying is generally more stable

# Joint Settings
Motion Builder Naming
-Renaming joint to MotionBuilder has been made easier by allowing the user to select any joint of a body part (except fingers and thumb)
-Names can be reset back to originals on selected, entire hierarchy, module, or all descendants
-Auto-mirror button has been added so naming one side will auto-rename the other side-A new layout and image makes it easier to see
#UI
-all new ui for RRM3

Ctrl Buttons
-ctrl buttons are laid out based on their world position
-ctrl buttons can be repositioned, resized, hidden
-ctrl button labels can be toggled
-can click or drag select to select controls on the rig

-any image can be set as background
-image can be resized
-layout can be saved to the rig



# Selector UI -----------------------------------------------
-the former grid-like view for buttons has been replaced with a new ui with adjustable buttons
-Each rig will have its own tab
-A rig has a main tab, but additional tabs can be added. Useful to put the face or hand controls on other tabs.
-a background image can be used to inform button placement
-background image can be resized
-the top portion of the ui has two modes: Select and Edit. This can be switched either by clicking the button or
right clicking in an empty space

In select mode, buttons can be selected, additive selected, deselected through modifier keys (shift, ctrl)
Right clicking on a button has options to select paired control, switch between ik/fk and select controls by module and by color
-buttons can be:
    -moved through clicking and dragging and aligning
    -resized as a whole or individually
    -set to shown or hidden
    -set to have the label hidden or shown
    -recolored, which is also functional for selecting similarly colored
    -hidden and shown both in the ui and by selecting controls directly in Maya
    -attribute values can be copied and pasted to other controls

Button layout customizations can be saved to the rig, and to a file to be loaded on other rigs

Users can create multiple button layouts in tabs per rig. In each tab, a different background image and size can be set
Main tab will have all controls, sub-tabs can have buttons removed and added. Eg, having a tab that only has face controls

-Attributes can be copied from one object to another
-FK Chains and Bridges with simulation can be baked to keys from the UI
