Skiin

Download Skiin.zip

python, pyqt, maya

This script is an evolutive weights / effector manager for Maya. Allowing you to export / import (almost) whatever you want from your Maya rig scene !
Here is a short demo ;

Skiin
☰ Watch on Vimeo

To open it in Maya, open the script editor, then type :

1
2
3
4
5
import sys
sys.path.append(r'PATH_TO_THE_SKIIN_FOLDER')
import Skiin
reload(Skiin)
Skiin.Skiin()

ABILITIES

EVOLUTIVE

Because you can write new 'plugins' to expand the abilities of Skiin. A Skiin's plugin is made of few functions that will be used to export / import the weights / deformers informations. If you feel comfortable with scripting you can also have a look by yourself in the 'Skiin_rsc/plugins' folder, there is a _model.py file with explanations

WEIGHTS MANAGER

It allows you to store in external files (.skin files) all the datas you want to extract from your Maya's nodes. For instance, the most common usage is to extract your skinCluster weights, you can save the weights in an external file, and paste them on a new mesh, in a new scene, wherever you want, super easily.

EFFECTOR MANAGER

It also allows you to do the same process with the objects which modify your object, such as ffd, cluster, whatever you want actually, even the constraints if you want to ! This can be a good way to export everything you did on a rig / skin process in one external file.

HOW IT WORKS

Using the available plugins, Skiin will read the modifiers affecting the selection and displays them in a list, then you can export them all inside a database file. This database file is based on the SQL protocol, which is highly recommanded for large amount of data. It results a lightweight file containing all the informations of the modifier(s), all parameters will be saved, and all the connections.

Then you can paste this file, on the same object, on a new object, in a new scene, wherever you want. You can select what kind of attributes you want to paste; everything, the constraints, the parameters, the shape's attributes, etc.

See below an explanation of the options and UI

WHAT'S INSIDE ?

Skiin have 9 parts, listed below (move your mouse over the parts to see what they do) ;











These views display the input and the output into Skiin.

The first text boxes above the views are the filters for each view, you can type inside the kind of object you want to filter or directly use the fast filters on the right

Each view has 4 columns ;

  • Deformer : displays the deformer's name inside maya, automatically filtering the namespace and leaf name in case of a duplicate
  • Type : shows the current kind of the modifier, skinCluster, cluster, whatever you have in your plugins directory, also shows the kind of the deformers, like joint, clusterHandle, etc
  • Object : shows the object's name
  • Count : displays the amount of components affected by the modifier or the modifier's deformer

On the bottom right corner of these view you have a Hold button which freeze the view, whatever you do in Maya won't changes the view's content.

EVOLVE !

Skiin have an inner plugin system which allows you to create your own plugins, which are small readers helping Skiin to translate Maya's data and output them into files

Follow this link if you want to know more on how you can do a plugin for Skiin, you'll see, that's super easy ^^

This text box displays the current working directory for Skiin, you can click on it or on the button beside to browse and change to another directory.

Note that when you press the Save button it'll automatically save your .skin file inside this directory. The AutoLoad option also looks inside this directory.

This percent indicates the current conformity between the two lists, the more the value is high, the more the two lists are identical.

When the percent reaches 95% the Synchronized browsing is enabled, this is the little 'lock' button below the lists

On the other hand if the value reaches 0%, the Synchronized browsing is automatically disabled

These views display the input and the output into Skiin.

The first text boxes above the views are the filters for each view, you can type inside the kind of object you want to filter or directly use the fast filters on the right

Each view has 4 columns ;

  • Deformer : displays the deformer's name inside maya, automatically filtering the namespace and leaf name in case of a duplicate
  • Type : shows the current kind of the modifier, skinCluster, cluster, whatever you have in your plugins directory, also shows the kind of the deformers, like joint, clusterHandle, etc
  • Object : shows the object's name
  • Count : displays the amount of components affected by the modifier or the modifier's deformer

On the bottom right corner of these view you have a Hold button which freeze the view, whatever you do in Maya won't changes the view's content.

Here we have two major Skiin's option, namely Save & Load

The first button with an eraser will clear the Input view.

The Load button will ask you to pick a .skin file to load inside Skiin

The lock button toggle the Synchronized browsing, when active, what you do in a list also affect the other list, useful when you want to compare the two list, scroll inside, expand items, etc..

The Save button will automatically save a .skin file (see the preview part below) inside the active directory

The last button As... will allow you to choose where you want the .skin file to be saved

This displays a preview of the current export filename

Note that the automatic filename is affected by the Naming Options inside the Options panel

Here are some tools and informations which can be useful.

  • Scan all DAG will try to walk through the selection's DAG and select all relevant objects, this works great when you select the root controller of your rig for instance
  • The Edit Readers plugins buttons opens the Plugins view where you can load / unload / view plugins
  • The numbers beside these tools are stats, for each loaded plugins and the 4 basic elements (parameters, connections, constraints and parents) you can click on it to display the stat's name, the left value is for the loaded file(s), the right one for the current selection.
  • Intelligent naming (sort of) : It'll try to rename the output file according to some packing rules;
    - if there is more than one object selected, it will rename using the letters in common between objects
    - if there is one common modifier for the selection it'll be suffixed by the modifier's type
  • Remove namespace : Get rid of any namespace at the beginning of the object's name
  • Only keep Leaf Name : Keep only the 'leaf' name, if ever there is duplicates name in the scene.

Load Options

  • Automatically load data from active directory : Check it if you want to update the loading of .skin files every time the selection is changed. Can be useful if you want to paste file one by one.

Save Options

  • Override file's name conflict : Won't ask if file already exists
  • Save one file per object : Will make one file for each object selected.
  • Force to Selection : Ignore the original object where the modifier was and apply it to the current selection (if unique)
  • Remove old modifier before applying : Remove the old deformers if existing before pasting the new ones, Should be checked if you don't want annoying errors with duplicate names and stuff like that
  • Propagate parameter pasting to deformer's relatives : Check it if you want to update the parameters of the deformer's relatives Should be checked in case of a lattice
  • Use vertice selection as : Activate the local pasting, you can choose between a local paste with the weight of the modifiers or by changing the modifiers' set members
  • Paste Constraints : Will also paste the constraints on deformers and / or deformers' relatives
  • Reparent deformers and/or relatives : Will also reparent the deformers and / or deformers' relatives

Well... This is the key...

This helps you to debug and explains what's going on


If you have any questions... =)