Frequently asked questions

Overview

What is the Rig Studio


Rig Studio (RS) it is a maya tool what using for creating rigs for many types of characters. Main feature of system is customized modularity. User can extend system by adding modules. As from site, which will be appearing, also your own created modules. Also, every module is a separated rig and can using entire singly.




Difference from another rigging systems


RS as have some core features what differ from another's:

  1. Modularity
  2. Extensibility
  3. Customization
Modularity RS building rigs from many types of modules. Modules is not only arm, foot, tail, etc.. but many variations of them. For example you can choose needed module of foot for your character. Extensibility Modules can be include to system very easy. Now system have only basic modules, but they is will be appears with no limits. Customization Every module have ability to customize by user. And more, you can create your own module and include to system. You can easy duplicate existing module and make some improvements for your needs.





Installing

Installing Rig Studio


To install RS, you need only copy rigStudio folder to maya scripts folder. MyDocuments\maya\ (maya version) \scripts




Installing modules


To install module, you need to copy folder of this module to folder "modules" in rigStudio folder. After this, you need to run RS and new module appear in module menu.




Shelf Icons


For creating shelf icons you use next python commands. 1. Main UI import rigStudio rigStudio.main.run() 2. Ik/Fk switch script: import rigStudio.animTools.rs_switchIkFk rigStudio.animTools.rs_switchIkFk.switchIkFk() Main icon can be get from here: rigStudio\icons\rs_icon.png





User Interface

Rig Page


Character - name of the character what needed to rig. Not using now, you can set any name. Rename - renaming of the character. Rig Template - saved rig templates. You can save full rig as template and build it again. Delete - deleting the rig and all nodes. Reset Pose - reset saved pose of the rig. All attributes of all controls will be return to default values. Save Pose - saving all attributes of all controls to scene. Later you can reset to this pose. Select Skin Joints - select all joints for skinning in skeleton group. ----------------------- Other grey buttons will be working later.




Display Page


Preset buttons - the three conditions of all display checkboxes. Display checkboxes - checkboxes for hide/unhide appropriate objects. Lock checkboxes - checkboxes for lock/unlock appropriate objects. Joints (Templ) - set skeleton joints to template state. Geo (Templ) - set geometry folder (geo) to template state. Geo (Ref) - set geometry folder (geo) to reference state. Skeleton LRA - display local rotation axis of all skin joints. ----------------------- Other grey buttons will be working later.




Modules Page


Main page for creating and connecting modules. Module Info in the right display info and action buttons for selected module in the tree. Modules Tree Modules Tree in the left - display all modules which existing in rig. If select module in the tree, it will be current and module info frame in the right will be updated. Grey modules is a mirrored right side modules and cannot be changed from interface. They connected to appropriate left side module. Module Tree have hierarchy. If module in root of the tree, then in not connected to anything. Usually most of the rigs have only one root module. Add .. - button display menu for add module to the rig. After adding module it is not connected to anything, only created. Delete Module - button delete module from the rig. If module is have right mirrored module , it will be deleted also. If module have connected child modules, then child will be disconnected and moved to the root of tree. If deleted only right module (grey item), then will be deleted only this module, left module is will be stay. Replace Module (exp.) - button replacing one module by another. This action need only to do for similar modules and not hard connected. If you need to replace this module, better disconnect all children from it, delete it and create new module. Module Info All attributes of the this frame is relate to selected module in the module tree. Type - type of the module. Module Template .. - menu of created templates for this type of the module. From this menu, you can create template or load it to module. All templates store in separated .tmpl files in templates folder. For now, to delete template, you need to delete appropriated file. Module Name - name of the module. Module must have unique name. Before naming system are checking for existing modules and its needed offer set another name. If module is symmetry, before name needed to set 'l_' prefix. Mirrored module automatic set 'r_' before name. Rename - button for renaming the module. Reset Pose (exp.) - button reset all controls of current module to default position. Symmetry Pose (exp.) - button set controls of the mirrored module to controls of the current module. Select Main Poser - select main poser for reposition of the module. For select main poser you can also make double click on module in the module tree. Make Symmetry - create symmetry module from current. For right symmetrical module you need to create and connect left module and then create opposite by hit to this button. Module must be connected to parent module. After creating right module left module will be renaming by add 'l_' prefix. Created right mirrored module will be add to module tree as grey item. This module cannot be changed from this ui, because it is connected to left side module. All changes of the left module will be transfer to right module. In your setup work, If you find some troubles in right module, for example after many connect/disconnect actions, try to delete right module and make left module symmetry again. Rebuild - Function for rebuilding module by fully delete it and recreating again. New module will be have same positions and all attributes, also as all connections. Sometimes you can find some troubles in module behavior, or some errors. Very often rebuild is help to fix this problems. From another side, try to not rebuilding hard connected modules with many children. If you will do it, check what all is worked. If you will find some troubles with they, rebuild children also. Connection Tab Connection tab needed for connecting/disconnecting modules to each other. To connect module to another module, you need to select object to which will be attached your current module and hit Connect button. You can select any object for connecting. For example, to connect to root module, you need select main root control. For connect to middle of spine module, you need to select joint in the middle of spine. After connecting module, root connector of the current module is connected to parent object, posers group connected to parent posers and ui is updated. Module must be in same positions. Sometimes, especially in new modules, connecting will not be as expect, and in this case connect this modules manually. To connect manually, you need connect root connector locator by parent and scale constraint to needed object. Select Joint Mode - button is enable special mode when all object is hide and showing only special joints of all modules except of current module. In this mode easy select needed joint for connecting Connect - button connecting current module to selected object. Parent Module - module, which to current module is connected. Set automatically after connecting. Parent - object, which to current module is connected. Set automatically after connecting. Smart Connecting Some modules have smart connecting function. In this case, does not matter what is selected, connection will be make to specific object. This object is set in script in when developing module. For example, module limb have this option. When user making arm and connecting hand module to limb module, he can select any control of limb module and connect will be made to right object. This is did because some modules have not obviously object for connecting, for example limb module have ik and fk chains. Clear - button for disconnecting connected module. Attach Parent End Poser (experimental function) - this checkbox connect end poser of the module to which connected current module and hide this. This useful for connecting one module to end of some chain module. Options Tab This tab contains some module options unique for every module type. Some module have many options, another may have not any. Object Spaces Tab This tab contains actions for creating some advantage connections between modules. This connection create when you need create some multiple parent dependents for controls. For example ik hand control needed parent attribute for switching his parent of local spaces. Controls list - list with controls, for which objectspace connections is available. For now its setting in module by creating specific group. In right side of the frame - attributes of connection. In bottom - target list to which will be connected control. To make this connection, you need select item from controls list, add targets to targets list and set attributes. Then hit to Create/Update button. Connection will be done. Switcher/Blend/Attributes - radio buttons switch between types of connection. Switcher - will be created enumerator attribute with switching between targets. Blend - will be created blend attribute from 0 to1 with blending between first and second targets. For this needed only two targets, another targets is ignored. Attributes - will be created blend attributes from 0 to1 for every targets. switcher blend attributes Attributes Visible - set parent attribute visible or not. Control - object, which will get parent attribute after creation connection. Need to set before connection. Object - object, on which will be created constraint. Attr Name - name of the attribute. In mode "Attributes" is ignored. Channels - channels, which will be use in connection. Targets List To here adding targets which use for connecting. Must be one and more targets. In mode "Blend" must be only two targets. Order is important. Attributes will be shown by order. + - add selected objects to list - - remove selected items from list ^ - move selected item to up v - move selected item to down Target list have several columns. Then one object is added to list, one raw fill data by columns. Columns Target - object name. Nice Name - name shown as attribute in control. Internal Name - internal name of the object which use RS in connection. This name is attribute of the every control. In this table user can change nice name by double click on the cell item. Module - module name of the target. Controls Tab This tab have list of the controls of current module. Then item is grey, then control is hidden. Color in last column present color of the control. On/Off - button hide/unhide control. For mirrored opposite module its working also. Double click on cell Name of the table allow to rename control. Its only one method to correctly rename controls. Because except control object, renaming also some groups and opposite controls. Left/right suffixes added automatically.




Additional Conrtols Page


This tab for creating additional controls on the rig. On left side is controls tree and on right side frame with actions for selected item control. Adding controls To add new controls, you need select any control of the rig and hit one of four icons button. Then appear dialog window, where you need write name on the new control. After this, in the tree will be added selected control as parent (grey item) and new control as child. Then you can set position of the control. Do not move control himself, you need to move its move group. To select move group, make double click in needed control in the tree or click button Select Move Group. If you will be move control, it will have non zero values the transform attributes. Except this, by moving move group, opposite control will be moving also. You can add many controls in one parent, or make included children with any depth. Controls tree will be show this hierarchy. Four icon buttons represent four control, which most often usable. If you need to change shape of the control, you can do it later, as will shown in Controls page. Control Name - name of the new control. Rename .. - button for renaming control. Rename additional controls only here. Otherwise not guaranteed right work of many RS functions. Parent - parent of the control. Set - button for changing control parent. You need to select any object and hit the button. Make Symmetry - button for creating opposite control. Mirrored control added to tree as grey item. Names both controls correct for left and right side. Opposite control is connected to left control. Also as shapes of the controls. You can change shape left side control and right side control shape will be updated also. Remove - button for removing control. Opposite control will be remove also. Select Move Group - button for select group, for set transform of the control. Move control only by moving this group. You can also double click item in the tree to select this group.




Twist Joints Page


Twist joints its a joint chain, what can add in any place of skeleton on place of one module joint. You can set any count of twist joints, which will be added. On left side there are list of the added twists. On right side there are options of the selected twist. Select Joint Mode - enable mode, where will be hidden all except character skeleton. In this mode easy select needed joint. Add Twist - button for adding twist to selected joint. You need select only one joint from skeleton of the character. If selected joint have opposite joint in mirrored module, then mirrored twist will be added also. Mirrored twist visible in list as grey item. It cannot be changed from ui, because it connected to left side twist. Twist Joint Name - name of the joint to which connected selected twist. Joints Count - joints count of the selected twist. You can change joint count by rebuilding twist. Rebuild - button for rebuilding selected twist. Mirrored twist will be rebuilded also. Remove - button for removing selected twist. Mirrored twist will be removed also. Display Toggle - frame with buttons for correcting twist orientations. Joints Axis - button for display/hide axis all twist joints. joint axises Helpers - button for display/hide helper locators, which will be useful for correct twist orientation. If you rotating controls of the module, joint axes show you behavior of the twists. If you will find what behavior is wrong, you can correct it by rotating helpers. Because any types of modules as very different, twists cannot set right orientation in all cases. helpers Here in image tree helper locators (two in one place). You can correct their orientations and then see on joint axes behavior. Three pyramids in centers of helpers must be oriented to center of twist.




Sets Page


This set page. Here you can simple create main control set of your character. Sets can be saved as templates and later using. Main control set have name "controlSet". Using control sets its not necessarily, use it for your needs. Top left frame - here tree sets, there you can create, delete, reorder sets and add sets elements. Reorder elements can be doing by drag and drop. + - create new set. New set become is child of current set. - - remove selected set with all elements. Top right frame - controls list of current selected set. + - add selected object to current set. - - remove selected items from current set. Children included - in the list appears not only elements of the current set, but also all his children sets. Use it mode only for checking. Drag and drop items in this mode can be works wrong. Move elements from current set to another can be doing by drag and drop. Bottom left frame - list of control sets all modules. Every module have control set, from which you can fast check that all controls is placed to main control set. Bottom right frame - controls list of current selected module set. Here items can be shown in three color. White - control is in some one place in main control set. Red - control is not in main control set. Yellow - control is in main control set but more than one place. Better to set all controls as white, but its for your own decision.




Controls Page


This tab using for working with controls and their shapes. Top table with icons - buttons for replacing shapes of current controls on icon shape. Select any control and hit any icon button. Custom Shape .. - button with menu for save and load your custom shapes. To save shape of current curve, select it and in popup menu of this button choose "Save Current Shape" action. Dialog is appear for setting name of the new shape. Better to create curve with needed shape in the zero world coordinates with freezed transforms. To load custom shape, also select any control and select needed shape from menu. Switch Channels - buttons for show/hide main transform attributes. Color icons - button for colorize shapes of selected controls. Rotate Shape - buttons for rotating shape on the selected controls by 90 degrees in needed direction .




Library Page


Page with list of installed RS modules. Here you can look descriptions and version of the modules. Name - name of the selected module. Version - version of the module. Date - date of last modify of module. Preview - preview image. Description - short description. Go to official page - button for going to page of selected module. There you can see detailed description and tutorials. (Will be working soon)




Main Menu


Module Create New - action for creating new module. After this will be opened new scene and imported empty template module. Next you can create in this scene any rig what you want. About creation new module read module section documentation. Duplicate - opened menu with all modules. Here you can create duplicate any existed module and open copy for editing. After this action will be copy module folder and create needed files. New module will be added to module list after restart RS window. Grey items cannot be opened, because this modules is a script module and cannot be opened in Maya as scene. Edit - opened menu with all modules. Here you can open module scene for editing. Be careful for editing internal modules. Better to create copy and edit it. Help Help menu with description of the tool. Documentation - action open online page with this documentation. Tutorials - action open online page with this video tutorials. About - open window with author and version number RS.





Modules

Module structure


Module is a part of RS system, which adding to rig in any combinations. Module is a closed small rig system. It is can working fully stand alone in Maya. If you want you can connect any module to your own rig or use it separately. All modules have same structure. Module structure This is structure of empty module. Here all needed groups and objects needed for right working in RS. Every module is a closed system. Right working module have internal core, where user not need to go, inputs and outputs. Core of the system take data from inputs group, posers position, then get attributes of the controls from controls group, solving, and gives out data in the output group to joints or locators. In main group mod exists five groups. posers - here exists posers objects, nurbs locator-spheres and cube. This objects needed for main transformations of module and setting some parameters. This posers need to set only on rig setup state. input - group with connectors for connect module to another modules. In this group must be at least one locator - root_connector. If you will connect module by manually, you need connect this locator by constraints. If you making custom module, better to place all input locator here. controls - group with all controls of the module. system - main core group of the module. All additional objects, which not needed be shown, place to here. This group is hiding in rig. output - group for output obects. Here need to place skinjoints group or some output locator, to which need to connect children modules. Connecting modules by RS When you connect module to another modules in RS, the tool take connection locators from input group og your module and connect to objects from output groups, or controls what you specify. Then you want to connect module to some object, you need to select it and click to button Connect in your module info frame. After this RS connect module and fill data in frame, Parent Module and Parent. In some advanced modules, connection object ( Parent) choosing by module. This is made because module knows which object need to use but for user this is not so obviously. Anyway, this object will setted as Parent and you can check it. In module tree your object will placed under parent module hierarhy. After connection sure, what not any warning showing in script editor and test your connection by moving controls and check behaviour. Before not tested connection better to save scene. Because many modules can be very complicated, or not well checked, especially your new custom modules, connection cannot be as you expecting. For example will happen some offset, or warning or error, open saved scene again and make connection manully. Manual connection If you get some trouble with RS connection, connect your module manually. In most of modules you need only make parent and scale constraint to root_connector in input folder.




Connections


Connecting modules by RS When you connect module to another modules in RS, the tool take connection locators from input group of your module and connect to objects from output groups, or controls what you specify. Connection making by matrixes and provide maximum of perfomance for this types of connection. Then you want to connect module to some object, you need to select it and click to button Connect in your module info frame. After this RS connect module and fill data in frame, Parent Module and Parent. In some advanced modules, connection object ( Parent) choosing by module. This is made because module knows which object need to use but for user this is not so obviously. Anyway, this object will setted as Parent and you can check it. In module tree your object will placed under parent module hierarhy. After connection sure, what not any warning showing in script editor and test your connection by moving controls and check behaviour. Before not tested connection better to save scene. Because many modules can be very complicated, or not well checked, especially your new custom modules, connection cannot be as you expecting. For example will happen some offset, or warning or error, open saved scene again and make connection manully. Manual connection If you get some trouble with RS connection, connect your module manually. In most of modules you need only make parent and scale constraint to root_connector in input folder.




Symmetry


To make symmetry module, in module info frame hit button Symmetry. Symmetry is a complicated process for module. Module must be prepared for this very carefully. For making symmetry, source module must is left, and new opposite module is right. Then module making symmetry, occur this process:

  1. Renaming current module. If current module have not prefix 'l_', this prefix is added to name.
  2. Import the module same type as current.
  3. Renaming mirrored module as the same as current but prefix will be "r_".
  4. Make connection from current module to mirrored.
  5. Set some mirrored options attributes, which setted in module.
  6. Set all attributes parent mirrored module same as source module (parent, controls, object spaces etc.).
After symmetry action, new right module appeared it modules tree as grey item. If you want remove symmetry, select right module and hit Delete Module button.




Rebuilding


Rebuilding is a process of removing module and import it again with restoring all attributes and connection. Sometimes, when rig already have complicated structure, inner module with many children maybe hard to rebuild. Then better to disconnect children, rebuild module and add children again. Always save scene before reduilding. If you see any errors, try to reopen scene, restart RS window and repeate it again.





© 2020 by Pavel Korolyov