Skip to content
Danilo Pinheiro edited this page Dec 17, 2025 · 3 revisions

In the Rebuilder tab, we can find powerful modules to recreate the rig. The concept is about how to export and import the rigging processes data. To do this, we separated the rigging construction into some steps. Each module has specific tasks to work on a defined step, using the exported data. So, the idea is to export the rig setup and get the same rig result when all the modules finish their import processes.

dpAR_Doc5_wiki_06_Rebuilder_Tab

  • UI:
    • Split Data: button to call the export action for all the selected modules sequentially.
    • Rebuild: button to call the import action for all the selected modules sequentially.

Asset

  • First, we need to define the asset in our pipeline. When we load the asset correctly, the script will fill the Asset text field with the asset name.
  • The system will use a dpData subfolder in the same Maya scene file directory.
  • We have some UI buttons to make the asset management easy:
    • Save Version: allows us to save the asset in a new version following the naming convention.
      dpAR_Doc5_wiki_28_Rebuilder_SaveVersion
    • Load: lets us choose the asset to open the Maya scene file in the current project.
      dpAR_Doc5_wiki_29_Rebuilder_Load
    • New: it has a window to help us create a new asset from the current Maya scene.
      dpAR_Doc5_wiki_30_Rebuilder_New
    • Open Folder: starts the file explorer where the current Maya scene is.
    • Replace dpData: it's useful when we want to transfer the exported data from another asset, copying the selected info to the current asset's dpData folder.

Processes IO

Start

NewSceneIO New Scene

  • This module will create a new blank scene with the same current asset context.

Source

ModelIO Model

It exports and imports an Alembic^1 file with the model meshes used in the rig.

  • Format: Alembic - abc

CheckinIO Checkin

This module won't export anything; it just runs when rebuilding the asset and calls these checkin validators:

  • dpUnlockNormals
  • dpSoftenEdges
  • dpFreezeTransform
  • dpGeometryHistory

SupportNodeIO Support Node

It exports and imports an Alembic^1 file with the meshes in these groups:

  • Support_Grp
  • BlendShapes_Grp
  • WIP_Grp
  • FX_Grp
  • Format: Alembic - abc

BlendShapeIO BlendShape

It works with blendShape nodes and targets.

  • Format:
    • Alembic - abc
    • Shape - shp
    • JavaScript Object Notation - json

ShaderIO Shader

It exports all material shaders in the scene. It can bring some false errors when importing all the shaders if there are some of them without any assigned mesh.

  • Format: JavaScript Object Notation - json

Setup

GuideIO Guide

This rebuilder module is essential to recreate the dpAutoRigSystem guides. It instantiates them, parents, and sets their attribute values. It's a handy process to review and do some guide retakes if we want.

  • Format: JavaScript Object Notation - json

RigItIO Rig It

  • This module will just call the green RIG button in the Rigging tab to build all the integrated guides together.

RivetIO Rivet

It works with the rivet setup. The idea is to be able to export their data and import it instancing the rivet module.

  • Format: JavaScript Object Notation - json

ParentingIO Parenting

It maps the parenting hierarchy of nodes in the setup. It saves the information to compare when the rig is rebuilt.

  • Format: JavaScript Object Notation - json

Deforming

SkinningIO Skinning

This module is designed to create a dictionary with all the skinCluster information. That includes their names, influenced objects, settings and weights.

  • Format: JavaScript Object Notation - json

DeformationIO Deformation

It works with the deformers applied in the meshes and setup of the rig. These are the Maya deformers supported at the moment:

  • Cluster
  • DeltaMush
  • Tension
  • Solidify
  • FFD
  • ProximityWrap
  • ShrinkWrap
  • Morph
  • Wire
  • Sculpt
  • TextureDeformer
  • Jiggle
  • DeformBend
  • DeformFlare
  • DefomrSine
  • DeformSquash
  • DeformTwist
  • DeformWave
  • Format: JavaScript Object Notation - json

ComponentTagIO ComponentTag

This module works by recreating the Maya ComponentTag info if the setup uses the deformers that way. Usually, we use deformer sets instead, so we need to know more about the ComponentTag properties to be able to redo all the attribute connections and values to be sure that everything is working well as expected.

  • Format: JavaScript Object Notation - json

InputOrderIO Input Order

It will get all the deformed meshes and list the order of their deformers. It's useful to apply the deformation reordering and to make sure the rigging will work well.

  • Format: JavaScript Object Notation - json

Custom

RenameIO Rename

This module verifies if all nodes have the same name and hierarchy as the exported data. It uses the dpID as the main registry of the information.

  • Format: JavaScript Object Notation - json

TransformationIO Transformation

It will check if there are any transformations that we need to apply to the transforms when rebuilding a rig setup.

  • Format: JavaScript Object Notation - json

ControlShapeIO Controller Shape

This module will grab all the controller shapes and store them in an exported scene. This scene will be referenced when importing the shapes.

  • Format: Maya ASCII - ma

AttributeIO Attribute

It checks if the rebuilt nodes have all the old attributes as they had before. Otherwise, it'll recreate these missing attributes.

  • Format: JavaScript Object Notation - json

ConstraintIO Constraint

It finds non automatically created constraints by the system and maps them to be recreated when rebuilding. These are the constraint types we support at the moment:

  • parentConstraint
  • pointConstraint
  • orientConstraint
  • scaleConstraint
  • aimConstraint
  • pointOnPolyConstraint
  • geometryConstraint
  • normalConstraint
  • poleVectorConstraint
  • tangentConstraint
  • Format: JavaScript Object Notation - json

UtilityIO Utility

This module works with the recreation of the utility nodes if they weren't created automatically by the system. These node types are supported by the code at the moment:

  • blendColors
  • blendWeighted
  • choice
  • chooser
  • clamp
  • condition
  • multiplyDivide
  • plusMinusAverage
  • remapValue
  • reverse
  • Format: JavaScript Object Notation - json

DrivenKeyIO Driven Key

Usually, we don't use setDrivenKeys in our setup, but we support it in custom rigs.

  • Format: JavaScript Object Notation - json

OffsetMatrixIO Offset Matrix

This module exports and imports the offset matrix connections of the setup. If we don't have any custom setup done, don't worry, it usually will refer to the ik end effector ones, by default.

  • Format: JavaScript Object Notation - json

ConnectionIO Connection

It checks the nodes' connections in the rig setup to make sure all the connections are done when rebuilding the assets. It's better to run it after the AttributeIO module, because that module will recreate the missing attributes if needed.

  • Format: JavaScript Object Notation - json

CalibrationIO Calibration

It calibrates the rebuilt rig with the right commands to make sure everything is called in the right way to do well all the necessary tasks.

  • Format: JavaScript Object Notation - json

VisibilityIO Visibility

It makes sure we have the same visibility status for all the nodes after rebuilding the rig.

  • Format: JavaScript Object Notation - json

ChannelIO Channel

This module collects, stores, and rebuilds the ChannelBox attribute status for all the nodes. This is the information that it works on the transform attributes:

  • Locked
  • Keyable
  • ChannelBox
  • Format: JavaScript Object Notation - json

Caution

xDelete We can delete the exported data by clicking on this icon. But pay attention, because it isn't undoable.


Clone this wiki locally