Synch UP

Introduction to Synch Up:

Synch Up is a tool designed to match the attributes of multiple similar nodes with each other.  It will help speed up productivity in situations where an artist need to duplicate many individual shaders, textures, lights, etc. that all need to be identical.

Installation and Loading:

Download link: synchUp 1.0

     To install the tool all you have to do is download the file from the link above called “synchUp.mel,” then place it in your My Documents > Maya > MayaPrefs > Scripts folder.  Once inside maya, go down to your command line at the bottom of your screen (it can be turned back on from the Display > UI Elements > Command Line drop down menu if it is not visable), and type in “synchUp” (without the quotes) and hit enter.  The command is case sensitive so be careful.  If you get an error that reads, “// Error: line 1: Cannot find procedure “synchUp”. //,” then the .mel file is not in the right folder and you will need to double check your install.  If successful, the tool box should pop up, and you will be read to start working.  Note: this script was designed for Maya 2011, and my not work/appear correctly on older or newer versions.


The general workflow would be to duplicate out all of the nodes that you will want to synch together, and place them where you will want them to be.  Then set a single “hero” node with the attribute settings you will want spread out to the other nodes.  Then, load up the script and select your “hero” node.  From there you want to “target” that “hero” node using Target Selected Node button.  This will set the tool’s focus to that particular node, and all of the node’s connectable attributes will be displayed under the Lists > Attributes panel below.  All of the nodes with similar types to the one you selected will be listed under Lists > Similar Nodes.  From there you can filter the attributes list by commonly used entries and connections, or by any user defined attributes you have added to the node, by toggling the Selection Information > Filter By check boxes.  You can toggle more than one check box at a time, and any addition filters will be added to the ones already displayed.

The next step is to select all of the attributes you want to spread to the other nodes.  By clicking on entries in the Attribute List under the Lists frame, you are telling the tool that you want to pass that attribute along.  You can click individually, drag select, shift select, or ctrl select as many entries as you want.  Once you have all of your desired attributes selected, you will want to do the same process in the Lists > Similar Nodes selection list.  Go through and pick all of the nodes that you want to receive the attribute information you just selected.

Now you will need to determine how the attribute information is going to be passed along.  There are two ways attribute information can be transferred by changing the Transfer Method check boxes:

  • Copy Mode:  By leaving the transfer method set to Copy Mode any attribute with a standard input (ie. a number, drop down, check box, color, ect.) will have its value copied over to the selected nodes.  For example, if you have a spot light with cone angle 60 being passed, all selected spot lights will now have a cone angle of 60 as well.
    • A special use of the Copy mode is to copy incoming connections from the “hero” node and pass the source of that connection onto the selected nodes.  For example, if you have a texture connected to the color attribute of a materialA, and choose to send out that color attribute to materialB, the original texture will be connected to the color of materialB instead of just passing on the color value information.
  • Connection Mode: When in this mode, a connection will be made between the “hero” node and all the selected nodes.  This allows for daisy chaining of attributes across nodes.

     After you have selected the attributes you want to transfer, the nodes you want to move those attributes to, and the transfer method, all you have to do is hit the “Transfer Attributes” button and let the tool go to work.  For every attribute transferred, a success message will be sent to the command line and script editor, so that you can track what you have moved.

(click to enlarge)

Error Handling:

     Here are some of the common errors you might run into while using synchUp:

  • “Warning: Cannot process this node type!”  synchUp currently is only able to work with lights, cameras, textures, materials, transforms, geometry shape nodes, and some select utility nodes.  If you are trying to use any other type of node, synchUp will not be able to talk to it and the operation will fail.
    • Here is a complete list of utility nodes that are currently supported:
      • Blend Colors
      • Bump 2D/3D
      • Gamma Correct
      • Multiply/Divide
      • Reverse
      • Place 2D/3D Texture
      • HSV to RGB
      • RGB to HSV
      • Luminance
  • If you see “Error: Cannot fill node list!” or a red maya error when you hit the Target Node button, then the node you are trying to target is of a valid type, but synchUp will require special cases to be able to talk to it correctly.  Thus, if you get this error, the operation will fail.
  • The most important error you may see is either “Error: Cannot transfer attribute…” or a red maya error upon hitting the Transfer Attributes button.  If this occurs one of a number of things could be wrong.
    • You could be trying to connect an attribute that cannot be transferred because it is “read only” or the operation is otherwise illegal.  You should only try moving attributes that appear on a filter list unless you know what you are transferring.
    • You could be trying to connect an attribute that does not appear on the other node.  For example, trying to transfer the color attribute from a Phong to a Lambert is a legitimate operation because they both have color attributes.  However, trying to move the specular color from a Phong to a Lambert would fail because Lamberts do not have specular color attributes.
    • You could be trying to transfer a master attribute into a sub-component of that same attribute.  For example, trying to move a rotation into a rotationX.  You may be doing this accidentally when transferring attributes in sourced connection mode, so pay attention to any error messages you may get to help work around this issue.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: