Plugins & Scripts You can find a lot scripts and some plugins specially written for production purposes or for fun. Not all of them are usefull, judge them by your needs. Most of them should work in all versions of Maya |
Maya Plugins
| maya plugin wizard v1.1.0 |
you can use this wizard with vs2005 (vc8) to help creating plugins for maya. I edited the original non working maya plugin wizard which is installed by maya installer. Differences in my version is:
I'm going to add a mentalRay shader wizard in next release... ----------------------------- for developers who seek the answer for creating custom configuration in vs2005 wizards default.js script use: I've searched all the net and MSDN for a quick answer but there wasn't, after struggling about 3 hours I finally figured it out :)
|
| this one is the latest plugin that I wrote, it adds the metaball functionality to maya, read the readme.txt to learn how to install and use it... It is still in development stage, so don't expect miracles. The rar file includes the source code too... works with Maya 7.0, 8.0 and 8.5
| |
this is a deformer plugin, that I want to write for a long time, I got the original idea from messian for lightwave plugin years ago... works with Maya 7.0, 8.0 and 8.5
|
|
mirrorVertex v1.0.7 (updated at 12.11.2007) |
it's a tool that helps to create mirrored or symmetric blendShapes. Basicly it mirrors or reflects the vertices positions to the other side of the object. I fixed this version so the model shouldn't be perfectly symmetric anymore and I made big UI updates, the interface occupies much little screen area now... The workflow is like that, first duplicate your main object, rename it to baseObject (it is not related with the script, just for you to remember which one is the baseObject), run the script, first select the baseObject and click set base object from the UI, (ID LUT creation is automated now) , don't close the UI window of the script , create your blend shapes as normally you do, then select the object and select mirror for example, it will mirror the vertex positions to the other half of the object, use reflect with vertex selection to make a symmetric blendShape target. The script doesn't knows which part is the right part so selected the vertices to be reflected to the other side. Installation: put the MV_CreateLUT.mll to c:\program files\autodesk\mayaX.X\bin\plug-ins maya 2008 support has been added with v1.0.7
|
Mel Scripts
| oyPoseLibrary | another helpfull script, it is a pose library that you could use to store poses of your character, helps a lot when posing the character, read the header of the mel file for usage, there are some tricky naming conventions that you have to follow to make it work properly...
|
||||||||||
| furMapBaker | a great script that helped us a lot, these script bakes fur maps at render time, so instead of baking the fur attribute maps on one machine, you create your texture to bake, and write the channel name to bake and the texture to bake to that channel in the notes section of the furDescription node, then it will bake the texture and assign it to that channel, the rendered texture would be placed in sourceimages/furTrash folder with sceneName_objectName _textureName_furDesctionNodeName_frameNumber.iff format create your texture, name it furTexture for example, and write: Baldness = furTexture to the notes section of that furDescription node, go to the render settings window and write furMapBaker("512","persp") which means bake 512x512 pixels texture from persp camera
|
||||||||||
| createJointOnCurve | another RIGger script, this script will help you create perfectly aligned and evenly distributed joints on a curve, you can prefix, postfix the joint names, you could set the rotation axis, and second axis orientation for the joint, mostly helps creating spine, and tail joints
|
||||||||||
| uvTools | this is the script I use a lot when doing uv operations, read the header of the mel file for explanations of the commands, a very very very very handy script... ( you need transferUVs.mel to use the transferUV, check Consistancy and Swap UVs functions )
|
||||||||||
| transferUVs | it is obsolete now, because with maya 8.0 there is a very good copy mesh attributes command which will transfer the UVs to other meshes, but some times delete non-deformer history wouldn't work as it should, so I use my transferUV script. It will automatically transfer the UVs but most of the time it will need to be corrected by using the TUV_ConsistancyCheck($objName) command... Use this script with uvTools script, it is much easier that way...
|
||||||||||
| resizeBlendShapePanelMenu & dagMenuProc & createBlendShapePanelMenu | allright, the autodesk guys didn't do everything right at all the time, they put some bad scripts inside maya, if it bothers me a lot, I tend to change them, here are two of them. Replace dagMenuProc.mel and createBlendShapePanelMenu.mel with those one in the C:\program files\ Autodesk\mayaX.X\scirpts\others directory, my version of dagMenuProc.mel corrects the paint weights button not appearing in the hotbox when you right click and hold down on a joint, and my version of createBlendShapePanelMenu.mel resizes the textFields inside the blendShape editor so you can clearly see all the blendShape target names, resizeBlendShapePanelMenu.mel is the extra script that I wrote, so I could use the trick in any versions of maya.
|
||||||||||
| fixBindedJoint | after rigged your character you recognize that one of your joint is rotated or need to be rotated a little bit, to make nice deformations, this script will help you to rotate the joint without detaching the object from the skin, the tricky part of the script is it will update the worldInverseMatrix information for that joint in the skin node
|
||||||||||
| rimLightSpot | actually it is a rewritten script of a guy that I don't know his name, so I couldn't credit his name here, sorry. What it does is, creating rim lights as you understand, but the orijinal script didn't worked with mentalray, so I wrote the script from scratch, use rimLightSpot(0) to create a rimLight that works with mayas renderer, and rimLightSpot(1) to create a rimLight that works with mentalray, but you need to install shaders_p for maya in order to use the mentalray part.
|
||||||||||
| stretchy | this is one of the Bora's script that do stretchy IK setup, I only fix the script a little bit, select shoulder joint, then the elbow joint and finally the wrist joint then run the script it will create two other groups of joints which will stretch when the IK handle goes off the limits... use the extra channels in the IK Handle to adjust the stretch and scale factors...
|
||||||||||
| connectSSSToLights | another handy little script, it will connect all the lights to mentalrays SSS releated shaders, selecting 0 for light linking mode in the shaders attribute will not work for specular, you should link the lights, here this script will help you.
|
||||||||||
| With Maya 8.0 they introduced containers in hypershade. Allthough I searched a lot I didn't saw a command that includes the selected nodes to the selected container nor removes the nodes from that container, so I wrote these functionalities, use addToSelectedContainer command to add the selected nodes to the selected container, and removeFromContainer command to remove the selected nodes from their current container.
|
|||||||||||
| Use this little script to align the pole vector controller with the pole vector of the IK handle, and use local coordinates to translate the pole controller, so while placing the pole controller the IK joint will not move
|
|||||||||||
| It is a very usefull script, basicly it assigns predifined shaders to some objects, but the tricky part is that, you determine the objects to assign the shaders by using sets and determine the name of the shader to assign with the name of the set. The thing that make it a helpful script is, if you weird shaders or complex mentalray shaders, the openGL viewport will not display them correctly, animators will not see the eyes of the character for example. Simply use this script create two different shaders, one will display correctly in openGL viewpor, the other one will render correct, create a set that contains the object or faces or both, and give a name like groupName_shader1_shader2 then type assignShaders("groupName",0) for shader1 and assignShaders("groupName",1) for shader2, it is really a handy scirpt, helped me a lot.
|
|||||||||||
| clusterWeighter | it is one of the exprimental script that I wrote, what it does is, it simply smooths the weights of the selected cluster. Workflow is something like that, weight all the points influenced by the cluster by 1.0, hit flood while smooth tool selected in the paint attribute weights tool, this action will generate linearly spreaded weights, then run the script, the script will breake the linearity by biasing the weights, so it is not linear anymore. ( it is funny that to bias the weights I'm using the base metaball function that I use in the metaball plugin... )
|
||||||||||
| createAxialCorrectionGRP | while rigging, as all of the controlls of the rigged model should be zeroed out, this script will help by creating a group node over the selected object and transforms it so the selected objects transformations will be T0,0,0,R0,0,0,S1,1,1
|
||||||||||
| createGuideCurve | if you used Shave & a Haircut, you probably used comb hairs by using curves command a lot, but creating curves perfectly aligned with the normal of the surface is a little bit slowy thing, this script will help you to create control curves which starts from the selected vertices and goes along the normal of those vertices, it will always generate 4 units long curves but you can change it inside the script
|
||||||||||
| createReTimerCurve | a tricky script that helps you reTime your animation, it is still in alpha phase, it simply creates an animTT curve and connects it to the all anim curves in the scene as the inputTime, so the animation curves reads the time over that animTT curve, thus by changing the animTT curve you can reTime all the animations in your scene
|
||||||||||
| deReferencer | another handy little script, generally, we set the object override to 1 and object display type to reference to help the animator not to select the object instead of the animation controls, and in the render scene we need to be able to select most of the objects in the scene so we use this script to "deReference" them.
|
||||||||||
| imageConverter | batch converts images inside maya
|
||||||||||
| isoChar | I use this script to easly isolate models in viewport, rename the models you want to isolate to originalName_isoMesh then run the script it will isolate the nodes with name "*_isoMesh" running the script again will reveal anything not isolated, it helps our animators to consantrate on the animation more that the environment
|
||||||||||
| pickTexture | actually it is one of the Bora's script, it will speed up the texturing process, workflow is something like that, select your object to be textured, run the script ( making a keyboard shortcut will help a lot ), a file browser will ask you the texture file, after selecting the file, script will quickly prepare the basic lambert shader and will assign the texture file to the color channel, it helped us a lot when texturing the background environment on a feature film project...
|
||||||||||
| selMan | it's a selection manager script, I mainly use when UV editing. What it does is simply store the selection, and add to , remove from or replace the current selection, simple and handy script...
|
||||||||||
| shapeToJoint | parents the selected object shape node under the selected joints, so you have joints with shapes, another way of creating control object or control objects that could have joint properties
|
||||||||||
| skinTools | skinning helper script, I used it a lot when skinning polygonal meshes, although the workflow should be tweaked a little bit more you can use it flowlessly, but select the skinned objects vertices before running the script, otherwise it wouldn't find the skinCluster node
|
||||||||||
| toggleAnimationControls | another script that hides the animation controls, there is a naming convention to be followed, every controls should have "*_kV" or "*_kS" at the end of the name, or if you want to change the naming convention open the script and change the $controlGrpNames = { "kV" , "kS" } ; line according to your needs. it set the "intermediate" channel of the polygon or nurbs surface based controls to 1, and closes the selection handles for all other transforms...
|
||||||||||
| togglePanel | it toggles maya's own panels like, texture editor, graph editor, hypershade, renderview, outliner etc. write :
by using this script you will get rid of the slow refreshes of hypershade window when it opens...
|
||||||||||
| cameraExpanderUI | this little script helps you to add horizontal spacing to your camera. Lets say you render your sequence 720x576 but in comp you recognized that you need 20 pixels bigger gate like 740x592, then simply run this script adjust your camera, the size of the render will change but the size of the objects in the rendered image will not
|
||||||||||
| sudoku | one of the fun scripts that I wrote which solves the 9x9 sudoku puzzle...
|
||||||||||