Thank you for purchasing the maxTD Rigging Toolbox for Modo.
This kit for Modo 10.1 and higher intends to make life easier for users who have to deal with creating and managing complex assemblies of objects that need to work in harmony and interact with one another. Otherwise known as 'rigs'.
Creating and managing rigs can be a daunting task. That's where this kit comes in. It will help you deal with a lot of the complexity and tediousness in, hopefully, a more efficient way.
This document will explain in sections, the different parts that make up this kit. Also, examples of how to use the various tools will be provided.
So, without further due... the maxTD Rigging Toolbox.
a. Workspace Assembly
b. Workspace Assets
a. Mass Renamer
b. Modify Names
c. Color Items
a. Control Items
b. Control Home Node
c. Locators
a. Joint Tools
b. Create From Selection
c. Hierarchy Tools
a. Sliders Rig
b. Mesh Rigs
a. Constraints
b. Transform Utilities
a. Weight Map Tools
b. Deformer Tools
c. Morph Tools
a. 3-Point Orient
a. maxTD Log
b. Tool Customization
c. Commands
1. Launch Modo.
2. In the System Menu, select Open User Folder. Navigate into the Kits folder in the window that comes up.
3. Exit Modo.
4. Unzip the contents of this archive into your user Kits folder.
5. Re-launch Modo.
Once installed, you can see information for the kit and toggle it from the System/Kit Toggle Enable Modo menu. The kit will be listed with the "mtd_RT" name.
NOTE: Starting with Modo 12, installed kits are not found on the main Modo toolbar, but under the Kits button found on the right end of the main Modo Toolbar.
This assembly is intended to provide a clean asset workspace that you can use to create a rig asset. It's basically a hierarchy of locators and settings that help you store and manage the different items that make up a rig. It's a basic setup that can be extended to taste by the user, but this is not a requirement. For most purposes, these might provide a perfect workspace for you to create assets with.
The following options are available to create workspaces
There are several preset asset types available in this list for different types of asset. The asset type selected will be used to rename the items in the workspace assembly when created.
You can specify a name here for your asset. This name will be used to rename the items in the workspace assembly.
Sets the size of the workspace controls and elements
This button will create a workspace with a single control on it. This control can be used to position, orient, and scale in the scene anything included in the assembly (more on that below). This is a very basic assembly, and it's only recommended for assets you are sure can be handled with a single contorl (i.e. to reposition them in the scene, but not animate them).
This button will create a workspace with a root control on it, and two sub-controls that can be used to transform the asset further. This is the recommended asset to use for most rigs.
This button will create a workspace with a root control, the two sub-controls of the previous workspace, and an additional offset pivot control. This pivot can be repositioned in the scene WITHOUT disturbing the position or orientation of the asset. It is used to have an additional rotation pivot to rotate the asset around. NOTE: Once the pivot has been rotated, it cannot be repositioned in space without disturbing the asset in the assembly.
Once the workspace has been created, adding your own assets (i.e. meshes) to the workspace is as simple as parenting them to the correct item in the assembly. The workspace will create a hierarchy of items in your scene. Just expand this hierarchy, find the Group Locator that has the words "PARENT_HERE" in its name, and place your items under it. You are ready to animate the controls of the workspace, or save your asset as a file that can be later imported into other files. Here is an example using a Vehicle workspace named "Car"
The workspace includes a locator above it that you can use to manage global asset settings. By default it comes with just two attributes, but you can add as many user attributes as you may need for your asset manually. For more information on how to add and manage User Channels to an item, please refer to the Modo documentation.
Sets the size of all the controls in the assembly
Displays name labels on the locators for this workspace
The kit ships with a good number of assembly assets ready for you to use in your own rigs. Most of these assets are intended to be used in Modo's schematic view, and deal mostly with common math-related operations. A few create complex assemblies that provide a given behavior that is exposed as channel values, which can then be plugged into your own rigs. The maxTD Asset Browser can be launched with the maxTD Assets button on the UI. Let's take a look at each according to their categories.
The Piston Rig is a simple rig assembly that comes ready to help you... rig a piston.
To use the rig, just drag and drop the assembly from the assembly from the maxTD Asset Browser palette onto your Modo scene or the schematic view.
Once created, there are only two things you need to worry about to use the rig. The controls for it, and where to place your geometry so it'll move with the piston rig.
Piston Rig in the modo viewport.
The main controls are sitting on the ground. There is one for each side of the piston. The smaller controls above are just visual indicators of the up vector for the rig, and are there just for reference. Everything is controlled from the main controls.
To use the rig, you will need two locators or items with their pivot EXACTLY at the location where the geometry will rotate for each side of the piston. It is important that these locators are oriented precisely to avoid wobbly rotations.
NOTE: You can use the maxTD Rigging Toolbox Precision Utilities to create these reference locators.
All you need, is to match each control in the Piston Rig to the location of each reference locator. You can use Modo's drop actions to have a precise match for each control on the rig. You can also rotate them on their local X axis to re-orient the up vector location. Something, in many cases, completely optional.
To get your geometry to follow the piston rig, all you need is to drag and drop the items you want to rotate with the piston into either of two locations (effectively parenting your geometyr under these)... the GRP_l_geometry group locator, and the GRP_r_geometry group locator. These are already rigged to follow the pisotn, and once you start moving it, things should work.
The Assembly itself exposes the following channels
Left Pivot Control Size: Sets the size for the left pivot locator item
Right Pivot Control Size: Sets the size for the right pivot locator item
Left Up Vector Control Size: Sets the size for the left up vector locator item
Right Up Vector Control Size: Sets the size for the right up vector locator item
Piston Length: Returns the distance between the two pivot locators
The Gears Rig is a rig assembly designed to help synchronize the rotation of two adjacent items depending on the radiuses they have. Just like, for example... a pair of gears.
To use the rig, just drag and drop the assembly from the assembly from the maxTD Asset Browser palette onto your Modo scene or the schematic view.
Once created, there are only two things you need to worry about to use the rig. The controls for it, and where to place your geometry so it'll move with the piston rig.
Gears Rig in the modo viewport.
The rig is comprised of two center locators (the cubes), two edge locators (the rhomboids), and the rotation control (the disc-shaped locator). The center locators must pe placed at the exact rotation center of the meshes that will be used as part of the rig (we're assuming these meshes are disc-shaped objects... although feel free to use the rig with whatever you fancy!).
NOTE: You can use the maxTD Rigging Toolbox Precision Utilities to create these reference locators.
The edge locators must be placed at the edge of each mesh used as a gear, so that a proper radius value can be generated for the rig to calculate the rotations from. Make sure you snap these to the edge of each mesh (it doesn't matter where if your meshes are perfectly circular in shape).
Lastly, the rotation locator is used to rotate the rig, and the meshes associated to them.
To include your meshes in the rig, all you need to do is to drop the mesh items into the appropriate Group Folder locators in the rig hiearchy once everything has been properly aligned.
The Assembly itself exposes the following channels
Source Rotation Axis: Axis on which the center locators for the driving gear will rotate
Target Rotation Axis: Axis on which the center locator on the driven gear will rotate
Reverse Rotation: Reverses the rotation of the rotation of the driven gear
Center Controls Size: Size of the center locators
Edge Controls Size: Size of the edge locators
Rotator Contro Size: Size of the rotator locator
Rotation X: Resulting rotation for the driven gear in the X axis
Rotation Y: Resulting rotation for the driven gear in the Y axis
Rotation Z: Resulting rotation for the driven gear in the Z axis
These assemblies are used in Modo's schematic view, and are used to mainly rig channels with them. They are part of a collection of assemblies called the HEAT collection.
NOTE:Given that these assemblies are mostly intended to perform mathematical calculations and drive channels, they are intended for users who understand their applications.
This assembly is used to convert degrees to radians. It has the following attributes:
InputsDegrees (float): Value in degrees
OutputsRadians (float): Value in radians
This assembly is used to determine how close a given item is to a certain location. The assembly will create four position reference locations to track in the scene, and a cone locator used to determine where the measurements are taken from. The resultin values reflect how close the pointer on the assebly is to the locator's positions.
InputsReference Position (matrix4): Takes a world position matrix to calculate the position from.
Reference Rotation (matrix4): Takes a world rotation matrix to use as the rest rotation.
Assembly Magnitude (distance): Length of the vectors. Also, size of the assembly.
Normalize (boolean): Determines whether the resulting dot products are normalized or not.
North Value (float): The resulting proximity to the North locator item.
East Value (float): The resulting proximity to the East locator item.
South Value (float): The resulting proximity to the South locator item.
West Value (float): The resulting proximity to the West locator item.
This assembly is used to perform a linear blend between to vector values. It has the following attributes:
InputsVector A (float3): First vector value
Vector B (float3): Second vector value
Blend Amount (percentage): Percentage driving the blend between both vectors
Vector Result (float3): Resulting vector
This assembly is used to decompose world transform matrices matrix into their individual transform components. It has the following attributes:
InputsWorld Position Matrix (matrix4): World position matrix to decompose
World Rotation Matrix (matrix4): World rotation matrix to decompose
World Scale Matrix (matrix4): World scale matrix to decompose
Rotation Order (integer): Rotation order option to use to decompose the rotation part
Position Part (float3): Resulting position vector
Rotation Part (float3): Resulting rotation vector
Scale Part (float3): Resulting scale vector
Scale Matrix (matrix4): Reconstructed scale matrix
This assembly is used to determine how close a reference item is to both the edges and center of a reference cone. It is used to calculate the amplitude of rotations of the reference item inside the area of the refernce cone. The results are normalized, and returned as a float value that can be used to drive other effects. Any position inside the inner cone will return a value of 1.0. Any position outside the outer cone will return a value of 0.0. Any position in between both cones will return a weighted value between 0.0 and 1.0, depending how close it is to either cone.
Typically, this assembly is used to drive the intensity of a morph effector driven by the rotation of a joint.
Cone Position (matrix4): Takes a world position matrix to set the position of the cone.
Cone Rotation (matrix4): Takes a world rotation matrix to use as the rotation of the cone. The cone will be oriented down the X axis.
Tracker Position (matrix4): Takes a world position matrix to set the position of the tracker item (the item used to measure the resulting position inside the cone).
Normalize (boolean): Determines whether the resulting dot products are normalized or not.
Cone Length (distance): Length of the cone. This is purely for visual reference purposes.
Inner Cone Angle (angle): Angle of the inner cone.
Outer Cone Angle (angle): Angle of the outer cone.
Tracker Size (distance): Size of the tracker object. This is purely for visual reference purposes.
Weighted Result (float): Weighted value reflecting the proximity of the vector for the tracker object to either cone.
This assembly rescales a float value from an original range onto a different range. It has the following attributes:
InputsInput Value (float): Value to find in the new range
Source Start (float): Starting value of the original range
Source End (float): Ending value of the original range
Target Start (float): Starting value of the target range
Target End (float): Ending value of the target range
Clamp (boolean): When on, any value above the ending target value is clamped to the ending target value
Output Value (float): Resulting rescaled value
This assembly converts values in radians to degrees. It has the following attributes:
InputsRadians (float): Value in radians
OutputsDegrees (float): Value in degrees
This assembly is used to retrieve transform values for an item using a different item in the scene as the reference for these transforms, instead of its parent. It has the following attributes:
InputsInput Position Matrix (matrix4): World position matrix of the source item
Input Rotation Matrix (matrix4): World rotation matrix of the source item
Input Scale Matrix (matrix4): World scale matrix of the source item
Reference Position Matrix (matrix4): World position matrix of the new reference item
Reference Rotation Matrix (matrix4): World rotation matrix of the new reference item
Reference Scale Matrix (matrix4): World scale matrix of the new reference item
Position Matrix Out (matrix4): World position matrix under the new transform space
Rotation Matrix Out (matrix4): World rotation matrix under the new transform space
Scale Matrix Out (matrix4): World scale matrix under the new transform space
This assembly is used to recompose a transform matrix from individual transform components. It has the following attributes:
InputsPosition (float3): Position vector
Rotation (float3): Rotation vector
Scale (float3): Scale vector
Rotation Order (integer): Rotation order option to use to recompose the world rotation matrix
Matrix (matrix4): Resulting transform matrix
This assembly is used to perform different math operations on the components of the input vectors. Up to 5 vector3 values are supported. The operation is performed on the components of each vector indidivually (i.e. (x + x, y + y, z + z)). It has the following attributes:
InputsVector A (float3): First vector
Vector B (float3): Second vector
Vector C (float3): Third vector
Vector D (float3): Fourth vector
Vector E (float3): Fifth vector
Operation (integer): Determines which operation to perform on the input vectors. The following operations are supported: addition, substraction, multiplication, division, average, min, max.
Resulting Vector (float3): The resulting vector
This utility is designed to assist in renaming large numbers of objects simultaneously according to a preset naming convention. The naming convention used replaces string values using the following tokens:
{type}_{side}_{name}_{suffix}_{numbering}
The above tokens are replaced by the string values provided by the tool's UI, and all selected items are renamed. Here is a brief explanation of each attribute in the UI:
Determines whether the {type} and {side} tokens are taken into account when assembling the final item name or not. If you do not wish to use these, just turn this option off and you will have a more generic renamer.
Example name using Type and Side:
LOC_l_myLocator_wheels_001
Example name ignoring Type and Side:
myLocator_wheels_001
When this option is on, the renamer will affect ONLY items that are deemed visible and selectable in the 3D viewports. Several classes of items are allowed, whereas others are ignored. If this option is turned off, then ALL selected items will be renamed. This can come in quite handy when remaing other types of items, such as channel modifiers, groups, etc.
Here you will find a list of common item types you can use to name your scene items. They are represented by a brief prefix. The Technical Documentation section of this help file will go into how this list can be customized.
Here you will find different options of common letter combinations to use to denote to which side of an asset a given item belongs (a common practice in many asset pipelines). Again, this list can also be customized.
You can enter the name for the item(s) you wish to use here. It is considered good practice to not use spaces in item names (instead, you can use underscores or camelcase writing).
You can enter a suffix name here. It is completely optional, but in some cases, practical or necessary.
Determines whether the renamer adds numbering to the end of names. If this option is not used, Modo will automatically add numbers to the names according to the options set in System/Preferences/Defaults/Application/Item Index Style.
When numbered is on, this value determines which numer is used to start the numbering sequence. The first selected item will get this number added to its name, and subsequent items will get the numbers that follow in the sequence (as per the rules set in the next options).
This value determines by how much each number will be incremented to generate the next number in the sequence. For example, a value of one would yield a sequence such as {1,2,3,4,5...}, whereas a value of two would yield a sequence such as {1,3,5,7...}
Determines how many characters are used to generate the number. If the padding value is greater than the number in the sequence, the number will be preceded by zeroes to "fill in" the value with characters to match the Padding value. For example, the number "1", with a Padding value of "3", would become "001". The same padding value applied to the number "24" would generate "024".
This button renames all selected items according to the rules set by the options explained above.
This utility is designed to modify the names of selected items using a few simple rules.
Determines how many characters are removed from the start of the name of the selected items. If you do not wish to remove any characters, set this value to 0.
Determines how many characters are removed from the end of the name of the selected items. If you do not wish to remove any characters, set this value to 0.
Determines a string value that will be serached in the name of the selected items, to be replaced with a different string value. If you do not wish to replace words in the name of your items, leave this option blank.
Determines which string value to use to replace the above string with. If you do not wish to replace words in the name of your items, leave this option blank.
Again, it is considered good practice to not use spaces in names. However, feel free to use any names you need if deemed appropriate.
The characters in this field will be added as-is to the existing object name(s). They depend on the following attribute.
Determines how the text above gets added to the existing names. Two values are allowed:
Pressing this button will modifiy the names of all selected items according to the above rules.
Example of a name change.
You have an item named "LOC_r_elbow_001", and you mirror it using the standard Modo tools to create a copy for the opposite side of the character. The name of the new item would be "LOC_r_elbow_001_2" (again, this depends on the settings found in your System Preferences dialog).
To update the name of this item to a name that matches the naming convention used by the original name, the Modify Names tool would need to use the following options:
Remove Last Digits: 2
Replace: _r_
With: _l_
The reason why we include the underscores in the replacement strings is because that way we limit the search to the token in the string we intend to replace. Otherwise, if these were left out, every "r" anywhere in the objects name would be replaced by an "l". Not ideal.
This example uses a single item name, but as it may be obvious, this tool becomes a lot more useful when modifying the names of multiple items, such as when a complete hierarchy is duplicated.
This utility will set wire and fill colors for the selected items. The selected colors can be set on multiple selected items. If Apply As Gradient is selected, then the Start colors are used as the start of the gradient, and the End colors are used as the end of the gradient. Then, all selected items will take on colors from that gradient in their order of selection.
This selects the main wire color to set. If Apply As Gradient is enabled, it also sets the starting wire color to create the gradient from.
This selects the main fill color to set. If Apply As Gradient is enabled, it also sets the starting fill color to create the gradient from.
If true, instead of using the same colors for all selected items, a gradient will be calculated using the Start and End colors that will be applied progressively to all items in their order of selection.
If Apply As Gradient is enabled, it sets the end wire color to create the gradient from.
If Apply As Gradient is enabled, it sets the end fill color to create the gradient from.
This tool is designed to create curve item controls (curves inside of a mesh layer). These controls can be used to drive items in the scene and their transforms.
NOTE: Performance-wise, it is more efficient to use locators instead of curves, due to how the viewport draws 3D objects. Keep this in mind while adding control objects to your asset, and consider using locators instead when appropriate.
The tool works as following:
Determines the size of the control. It follows whatever unit system Modo is set to use.
When set to on, the new control will be inserted in the hierarchy of the selected item(s) so that the item in question becomes a child of the control. This can be useful when creating quick and light control hierarchies without the need for a full modular rig.
When this is checked, control objects will be renamed according to the rules set in the Rename tool of the Items tab. You can set the desired rules there before creating the controls. If this option is not enabled, control items will be created with a default name and the name of the item they will control appended.
If enabled, it will apply wire and fill colors to the new Control as set in the Items tab. If multiple controls are being created for multiple selected items, and Apply As Gradient is enabled in the Apply Colors tool, then all created controls will be colored using the gradient colors set in their order of creation (as per the current scene selection).
These eight buttons create a different control type. They are generalized shapes made with standard Modo curves.
This tool will create a group locator above the selected item(s) that matches the item(s) transforms. Effectively, this allows the item's transforms to be zeroed, since its new parent matches them perfectly. This is very useful when control items are Auto Parented, since it allows the contorl to have zeroed transforms no matter where in the hierarchy it was inserted. This group locator will be named just as the item it parents, with an additional "PAR_" prefix.
This is a tool designed to help you create locators positioned relative to selected vertices on a mesh.
The tool has the following options:
Determines the size of the new locator(s). It follows whatever unit system Modo is set to use.
This determines where the new locator(s) will be positioned relative to the currently selected vertices on a mesh.There are four options to chose from.
It enabled, it will parent all locators in a hierarchy in the order they are created (with each locator being the parent of the locator created next)
This option determines which type of item will be dropped. There are two options:
Creates the locator(s) or joint(s) using the above options.
NOTE:For this tool to work, one mesh item MUST be selected.
These tools are designed to work on joints and modify them in a certain way. The following tools are available:
This tool will divide selected joints into the number of segments specified by the Segments value. New joints are created to replace the selected joint(s), and the previously selected joints are deleted.
NOTE:Any deformers or modifiers connected to the selected joints will remain in the scene, but will be disconnected from any influece. If they are to be re-used by any of the new joints, these influences will need to be reconnected manually.
This tool reassign the selected joint as the root of the entire joint chain. Any joints before it will have their hierarchy reversed.
This tool removes a joint from the hierarchy. The child/children of the removed joint are reparented to the removed joint's parent to preserve the hierarchy.
This tool deletes the selected joint(s). The remaining joints are not reparented, effectively leaving two different joint hierarchies from each affected joint chain.
This tools allows the user to create joints or locators from the existing scene selection. The new created items will be created matching the transforms of the source selected items.
Sets the item type to create. The available options are Joints or Locators.
If enabled, all new created items are parented as a hierarchy in their order of creation
If enabled, all new created items are parent constrained (using the maxTD parent constraint) to the item they are being created from.
Creates the items according to the above attributes.
Although mainly intended to be used with skeletons, these tools can be used on hierarchies in general.
This tool mirrors hierarchies along a given axis. Unlike the native Modo Mirror tool, this one creates a true transform-mirrored hierarchy. This means that transforms for the items mirrored are also mirrored, allowing the user to create rigs where items on both hierarchies can be manipulated simultaneously, and the transforms will be what an animator would expect. It uses the following settings:
Use Modify Name Rules: When enabled, the rules set in the Modify Names tool will be used to rename the resulting mirrored hierarchy. This allows the new hierarchy to be created with names that match the original names, but reflect a change on the side the hierarchy belongs to. For example, if the user is mirroring a left arm to the right side, the Modify Name tool can be set to replace "_l_" for "_r_" and to delete the last 2 digits. This will create a properly renamed mirrored hierarchy.
Mirror Axis: World axis to mirror the hierarchy on.
Mirror Hierarchy: This button performs the mirror operation on the selected hierarchy/ies.
This tool groups selected items inside a group locator, positioned according to the following Group Location options:
Origin:Creates the Group Locator at the origin (0,0,0). This is the default Modo behavior.
Center Average:Creates the Group Locator at the average center position of all selected items.
Bounding Box Average:Creates the Group Locator at the average position of all the bounding box centers for all selected items. This is useful when selected meshes have had their centers reset to the origin, but you still want the group at the average position for all the polygons in the selected meshes.
This section includes some ready-to-use rig builds for different purposes. These are considered rig builds because they are not assembly rigs, but rigs that are built on the fly by a build script.
This tool creates a simple rig of locators (sliders) path-constrained to a selected mesh layer with a single curve in it. These locators are evenly-spaced along the curve. The tool has the following options:
The value entered here will be the number of locators to create for the rig.
Sets which locator shape to use for the locators. All native locator shapes are available.
Determines which type of path constraint to use on the locators. The user has the option of a full Path constraint, or the Path Position constraint.
This button builds the rig.
This section hosts mesh-related rigs.
This tool creates a transform effector per vertex on the selected meshes. There are a few options that determine the behaviour of the tool.
Clutser Type:Determines which item type is used as a control object for the affected vertex. The tool supports two item types: Locators, and Joints.
Normalize Clusters:When checked, the tool places all Mesh Influence nodes inside a Normalizing Folder. This can help keep more coherent deformations if the weight maps for the clustered mesh are edited afterwards.
This tool creates a locator per selected mesh component that remains anchored to its corresponding component via constraints. The locator will remain in place even if the mesh is deformed or changed in shape. Supported components include polygons and vertices. The tool can attach the locators onto the target mesh by means of two different constraint types
NOTE:For this tool to work, one mesh item must be selected.
This section includes tools to modify channels on items.
This section has tools to create or manage constraints for items.
This button is the same button found in the main Modo Setup Toolbar. When enabled, it will prevent the constrained object from moving relative to its new parent by storing offset channel values in the Parent Constraint node. If the button is disabled, the constrained object will be transformed in space relative to its new parent to preserve the values stored in its transform channels.
Creates a "fake" parent constraint for the selected item. A minimum of two items need to be selected. The last item in the selection will be the item to constraint to. All other items in the selection will be constrained to this last item.
NOTE: Behind the scenes, this constraint applies a Dynamic Parent constraint in the Setup Action to the constrained items. For this reason, it is recommended to avoid dynamic constraining the already constrained items a second time.
This tool merges all transforms for the selected items, by type. The available options are as follows:
Position | Rotation | Scale Buttons
They determine which transform type will be merged. These can be enabled or disabled in any combination.
Delete Empty Transforms:
When enabled, any transform items that are left zeroed after the merge will be deleted. Otherwise, they will be left in the Channels List.
NOTE: When merging Scale transforms, Modo actually adds all the values stored in their channels. This means that you can end up with values that exceed 100% scale. Be mindful of this, and manually correct any scale mismatches if necessary after a merge operation (i.e. Two scale transforms holding 100% values per channel each will add up to a final scale of 200% per channel).
Most of the tools found in this section are the same vmap tools found in Modo, except that these work on multiple-selected weigh maps. Clicking on any tool button will display a pop-up dialog with options to use for the desired tool. The options are the same as for the native Modo tools. For more information on these, please refer to the Modo documentation. These include the Clear, Delete, Clamp, Quantize, Jitter, Unify, and Cull weight map tools.
The following tools are unique to the maxTD Rigging Toolbox.
Solidify Selected Vertices
This tool will assign a constaint value to the selected vertices in the selected weight map. There are three modes that this tool works in.
Min: Assigns to all selected vertices the smallest weight value used by any vertex in the selection.
Max: Assigns to all selected vertices the largets weight value used by any vertex in the selection.
Average: Assigns to all selected vertices the average weight value used by all vertices in the selection.
Cleanup Item Weight Maps
This tool gets the maximum weight value for each weight map on the selected item(s). Any weight maps who's maximum value does not exceed the set threshold will get deleted. The threshold value is queried from the user when the tool is activated.
Export Item Weight Maps
This tool allows the user to save all weight maps for the selected object(s) onto a JSON text file. The user will be prompted for a location on the computer where to save the maps to when the tool is activated. NOTE: Depending on the complexity of the mesh and the number of weight maps involved, this operation may take some time.
Import Item Weight Maps
This tool allows the user to import back onto an object weight map data saved using the Export Item Weight Maps tool. NOTE: Depending on the complexity of the mesh and the number of weight maps involved, this operation may take some time.
Extract To Containers
This tool takes the selected weight maps in all selected mesh items and creates Weight Containers than store the same data. The source Weight Maps are not deleted, and the Containers are not connected to the original influences refrenced by the Weight Maps. Since it is a bit hard to anticipate how the user might want to use the Containers afterwards, the rest of the setup must be done manually.
Transfer Weight Maps
This tool allows the user to transfer weight maps from one mesh onto other targte meshes. For this tool to work, the user must select first the source mesh that stores the weight maps to transfer, then the weight maps from the Weight Maps List itself, and then any number of target meshes to transfer the maps onto. You can also NOT select any weight maps for the source mesh, in which case ALL weight maps on the source mesh will be transferred onto the target meshes.
The tool provides access to Modo's native transfer methods (Distance and Raycast), and also to a custom Brute Force method. The Distance and Raycast methods allow the user to determine the sampling space (World or Local). For more information on these methods, please refer to the Modo documentation.
The Brute Force transfer method uses a closest-point approach, which means that each vertex in each target mesh gets the weight map data stored in the closest vertex it cain find in the source mesh. Because of this, this tool will give the best results when the source and targe meshes share a similar shape or contour.
NOTE: Due to how the closest-point location is found, this tool can take a while to process, depending on the complexity of the soruce and target meshes, and the number of weight maps to transfer. We recommend using Modo's methods first, and only resort to Brute Force if the results are unsatisfactory (Brute Force will be quite precise, but at the cost of time).
This tool has one option that the user can select
Connect Original Influences: When selected, the new transferred weight maps will also connect to the original item influences driving the source weight maps, via newly created influences. This is very useful when you want the target mesh(es) to also be deformed by the item influences deforming the source mesh.
If the tool is used to transfer all source weight maps from one mesh onto others, it is recommended to then use the Cleanup Item Weight Maps tool (see above) to delete from the target meshes any weight maps that may have gotten no weights from the source mesh.
Split Weight/Morph Maps
This tool will take any selected morph or weight map, and generate split maps for two sides with all weight values separated per map. Center vertex values are preserved in both maps. It uses the follwing options:
Split Axis:Determines the world axis used to split the maps. The maps are split using the mesh's center poristion as the center for the split.
This section includes tools related to deformers.
Bake Falloff Weights
This tool will take any selected falloff and bake its influence weights into a weight map stored in the affected mesh. This can be extremely useful when using falloff to deform meshes or modulate other deformation effects, but needing to tweak the weights afterwards. Once the weights have been baked into a weight map, the weight map can be edited manually using Modo's Weighting Tools.
NOTE: Once the effects have been baked, the deformation rig affecting the mesh needs to be updated manually so the Falloff item is no longer used to deform the mesh, but an effector referencing the new weight map is used instead. Otherwise, the new weight map won't be used to deform the mesh.
This section includes tools related to Morph deformers.
Create Morph Influences
This tool is a shortcut to create Morph Influences for all selected Morph Maps on a selected mesh. Just select the mesh item, the Morph Maps you want influences created for, and use the tool.
Launch Mini Morph Mixer
This tool creates a Mini Morph Mixer, which is a Channels Group that hosts all Morph Influences connected to the selected mesh. The Channels Group displays a Channel Haul-like UI for the user to manipulate and key the weight values for each influence. The Mini Morph Mixer is linked to the selected mesh through an ID number unique to each Mini Morph Mixer. That way, multiple meshes in the scene can store their own Mini Morph Mixers.
If new influences are created for the selected mesh once a Mini Morph Mixer has been created for it, the next time the Mini Morph Mixer is launched, the user will be prompted to update it with the new influences found. If the user accepts, the new influence channels are added to the Mixer. Otherwise, it will retain the original channels stored when it was created.
The Mini Morph Mixer can be closed using the X button on the floating UI.
Delete Mini Morph Mixer
This tool deletes the Mini Morph Mixer associated to the selected mesh. This does NOT delete any Morph Influences associated with the mesh. Only the Channel Set and ID numbers are removed from the scene. If you need a Morph Mini Mixer again for the same object, just use the Launch Mini Morph Mixer tool to create it again.
This section contains some general-purpose utilities that can be useful during rigging or similar tasks.
The three-point orient tool orients a selected item, or a new locator, based on three reference points provided in the UI. These points can be either entered directly in the spinners in the UI, or calculated from the average positions on selected items, or vertices (for the vertices option to work, the mesh item that contains said vertices must be selected). Once the items are selected, press the "Get From Selected" button to calculate the average position and display it in the UI
Press this button to orient a selected item based on the world coordinate positions entered in the tool's UI.
Press this button to create a new locator item and orient it based on the world coordinate positions entered in the tool's UI.
This section includes some techincal documentation on the kit.
This kit comes with its very own logging tool that you can use for your own purposes! Unlike some Python logs that extend the native Python logger module, the maxTD log is actually a simple wrapper around the lx.out
Modo command. It basically adds some extra text formatting that can be useful for personal development and use. At some point, this little module can be developed into an independent kit for those that could find it useful.
The log is pretty simple to use. The module must be imported into your own (Python) scripts, and then the proper method used to issue different log messages. When instanced, the log class takes two string arguments. This is what instancing the class would look like:
myLog = mTD_log.mtdl({module}, {method}, {mode(optional)})
The first two arguments were created so the log can be called from any external script and the log would let the developer or user know from which class and method it's issuing messages. Of course that, being strings, these arguments can be passed any (string) value, including empty strings. The third argument determines which messages get sent out to Modo depending on the mode the user is in. This can be USER or DEV.
The class includes five methods. Four can be used to issue messages:
INFO: Labels the issued message as an INFO message.The methods are called in identical fashion. Here is the syntax to use to call them:
{log class instance}.{method}({string message})
Just like with any lx.out
command, the string message will be sent to the Event Log
Here's a code snipped of how this could appear in practice.
#python
import mTD_log
log = mTD_log.mtdl('mTD_createControl', 'execute')
log.INFO('This is an INFO message')
log.WARNING('This is a WARNING message')
log.ERROR('This is an ERROR message')
log.DEBUG('This is a DEBUG message')
The fifth method is used to set the mode the log uses to determine which messages are sent out. There are two modes the log can work in.
USER:All INFO, ERROR, and WARNING messages are printed.The level is set using the setMode method. Here's an example of how it works.
log.setMode('DEV')
The mode change will be acknowledged in the Modo Event Log.
Some of the option used by the kit can be customized to better fit your pipeline. This sections discusses these options, and how they can be customized.
NOTE: This section outlines options and/or procedures intended for advanced users who are comfortable with editing config files and scripts. If you are unsure of how to proceed in such cases, it is advised you leave these options alone.
There is one token value that can be customized for the Workspace Assembly tool.These values can be found in the {kit root folfer}/Configs/mTD_RT_userVals_public.CFG file.
TypeThe list of names that will be displayed in this drop-down in the kit's UI is determined by the mtd_RTB_assetType key in the file. This is what the code snippet reads by default.
To have a different list of options for this dropdown, only the items belonging in the "StringList" type need to be modified. Be sure to add a semicolon in between each option.
There are two token values that can be customized for the Rename Items tool. These values can be found in the {kit root folfer}/Configs/mTD_RT_userVals_public.CFG file.
TypeThe list of characters that will be displayed in this drop-down in the kit's UI is determined by the mtd_RTB_itemType key in the file. This is what the code snippet reads by default.
To have a different list of options for this dropdown, only the items belonging in the "StringList" type need to be modified. Be sure to add a semicolon in between each option.
SideJust like for the previous entry, the list of characters that will be displayed in this drop-down in the kit's UI is determined by the mtd_RTB_itemSide key in the file. This is what the code snippet reads by default.
To have a different list of options for this dropdown, only the items belonging in the "StringList" type need to be modified. Be sure to add a semicolon in between each option.
For Commands help, please refer to the Commands list in the Interpreter tab (this tab can be found in the scripting layout). In there, expand the maxTD Rigging Toolbox commands category to view a list of all available commands and their arguments.
This kit was developed by Sergio Mucino. Immense thanks go to those who gracefully and selflessly helped me along the way.
This kit was developed using Adam O'Hern's Good Kitty kit dev platform. For more information, please visit the Good Kity GIT repo.
This documentation is current for the maxTD Rigging Toolbox 1.1.0 release.