default manipulators and zooTriggered

david | animation,mel script,tutorials | Wednesday, April 16th, 2008

Yesterday I learned something new. Stev Kalinowski posted this on CGTalk

In the attribute editor, under the Display rollout you set the "Show Manip Default" drop down list to Translate or Rotate for each control. Then to select objects hit "t" (Show Manipulators) instead of the move or rotate tool. Now when you select objects you'll get the manipulator you set for each control.

I tested it out using two objects called "translateMe" and "rotateMe" and I set the Show Manip Default attribute as shown here

defaultManipAttrEd_translate.jpg

defaultManipAttrEd_rotate.jpg

Now, as long as I am in Show Manipulators mode (invoked with the "t" hotkey by default) then the manipulator handle will change based on my selection.

This is quite handy when animating, but it depends on being in the Show Manipulators mode, which I would not be as comfortable with alot of the time, since I frequently need to also use the translate, rotate and scale modes.

Well, there is another way to do the same thing using Hamish McKenzie's zooTriggered scripts.

I have written about using zooTriggered here, but if you read that quick walk-through, you might think it's use is restricted to selecting a control object to trigger the selection of another object(s). In fact zooTriggered can trigger almost any mel command(s) which means it can be used to activate a specified manipulator when you select an object.

Here's a really quick look.

Open the zooTriggered UI and in the View menu make sure "Edit zooTriggered command" is selected. Then add the objects you want to configure (to the top left pane). Then right-mouse-click in the lower pane and select either the "use move tool preset" or the "use rotate tool preset".

zooTriggeredMoveToolPreset1.jpg

You should end up with something like this

zooTriggeredRotateToolPreset2.jpg

Now enable the trigger by clicking the "load" button so that the "load status" bar changes to green

zooTriggeredEnable.jpg

That's it. Now whenever you select the object, the manipulator tool you specified will become active.

There is a slight delay between your selection and the change of the manipulator, which is not the case with the Show Manipulators mode, but my preference is still the zooTriggered method since it allows me to stick with the regular translate, rotate, scale modes that I generally use.

cMusclePaint.mel update for maya2008 ext2

david | animation,dj mod,mel script | Saturday, March 8th, 2008

If you downloaded my modified version of cMusclePaint.mel recently and you have since upgraded to maya2008 ext2 then you should download my updated version of cMusclePaint.mel

The cMusclePaint RAR file on the downloads page now contains both versions. Choose the one thats right for you.

cMusclePaint.mel modification

david | animation,dj mod,mel script | Saturday, February 23rd, 2008

Anyone who has tried the new maya muscle system would have to agree that the Paint Muscle Weights tool is a big improvement on the old Paint Skin Weights tool. The colored weight display now makes a lot more sense. I think we owe Michael Comet a big thank-you.

After playing with the Paint Muscle Weights tool, I noticed that I was stumbling each time I locked or unlocked weights. My modified version of cMusclePaint.mel addresses two issues.

1. The right-mouse-button menu for weight locking is too wordy and bordering on ambiguity. Here is a snapshot.

cMusclePaintBefore.jpg

I'm sure I could learn to live with it, but there is too much unneccessary text here.

2. My preferred weight painting workflow involves locking all joints except two. I smooth between those two joints and then move on down the chain to the next two. This would involve at least two goes with that rmb-menu to lock a joint and unlock another.

So I changed a few lines in cMusclePaint.mel and now the interface looks like this.

cMusclePaintAfter.jpg

In my opinion the menu is easier to read at a glance. The new "Unlock Selected...Lock the rest" function saves me a few mouse clicks. And the new "Unlock All" function does so while retaining the joint selection in the list.

Download here.

djZooSpaceSwitchingKeys.mel

david | animation,dj mod,mel script | Wednesday, December 12th, 2007

This post will only be of interest to anybody using the zoo space switching system which is integrated into Hamish McKenzie's zooCST and packaged with the zooToolbox. I recently added a zoo space switching walkthrough to the list of articles I have been writing about the zooToolbox, so I thought I would also add a post here about an extra feature I added to zoo space switching to make animating it easier.

If you are interested, click here.... (more...)

Use Pivot As Local Space

david | animation,mel script,tutorials | Friday, September 28th, 2007

Maya 2008 introduces some new camera attributes. Here is a snapshot of the "Movement Options" in the  camera attribute editor.

cameraMovementAttributes

What this means is that if you select "Use Pivot As Local Space" then the camera will pivot around the "Tumble Pivot" instead of the "Center Of Interest" when you are tumbling around in the viewport. The default "Tumble Pivot" of 0,0,0 means you are just rotating around the camera's own local pivot, and there will be no translation of the camera.

I think this is a very useful option for positioning cameras, but I dont like the idea of having to dig down into the attribute editor everytime I want to use it, so I wrote some mel script to make it easy to toggle the option on and off. Actually I wrote two scripts; one to be used as a marking menu toggle, the other to be integrated with Hamish McKenzies zooCam.mel script.

djToggleUsePivotAsLocalSpace.mel is for use in a marking menu. Just add the command "djToggleUsePivotAsLocalSpace" and give it a name like "ToggleUsePivotAsLocalSpace". You should get something that looks like this (the rest of you menu will be up to you of course).

toggleUsePivotAsLocalSpaceMenu

When you invoke this menu in a camera viewport the script will work out which camera it is and toggle the state of the "Use Pivot As Local Space" attribute.

Download here.

djToggleUsePivotAsLocalSpaceMenu.mel is an alternative script that was written to be integrated into the zooCam menu (which works in conjunction with the zooShots camera switching system - see http://www.macaronikazoo.com/ for more info). The integrated menu looks like this.

switchToCenterOfInterest

switchToLocal

If you want to use this style of menu you need to add a call to djToggleUsePivotAsLocalSpaceMenu and provide the camera name, which is very simple in zooCam.mel. If you download my script you also get a copy of zooCam.mel which I modified, but you will need to get the rest of the zoo tools if you want to use it.

Download here.

djResetBindPose.mel + Move Skinned Joints Tool

david | animation,mel script,tutorials | Thursday, September 27th, 2007

Maya 2008 introduces a new "Move Skinned Joints Tool" in the "Edit Smooth Skin" menu.

moveSkinnedJointsToolMenu

This makes it much easier to fine-tune joint positions after skinning without the need to detach and rebind the skin. However this tool forgets about the bind pose as I will show in the next few pictures.

Here is my skeleton in its original bind pose.

originalBindPose

I then use the "Move Skinned Joints Tool" to reposition the sholder joint.

skinnedJointMoved

The problem is that if I use the "Skin|Go to Bind Pose" menu I get this.

afterGotoBindPose

The solution requires a mel command, but it needs to be executed for each joint that was moved and the name of the bind pose node must be specified. These are details you probably dont want to be thinking about so I wrote a little mel script to simplify the process.

djResetBindPose.mel allows you to just select a joint and run the script. The bind pose will be reset for every joint in the heirarchy. If you do this after the "Move Skinned Joints Tool" and before "Go to Bind Pose" then everything should work correctly.

Download here.

That Nifty Colored Ball Facial Control Rig Thingie

david | animation,mel script,tutorials | Wednesday, September 19th, 2007

The other day somebody told me about this excellent video tutorial that Keith Lango posted on his blog back in May this year. It runs for almost 30 minutes and demonstrates a rigging technique that is ideal for placing controls for facial animation on the mesh that they are deforming such that they move with the surface.

The cool thing for me was to discover that he uses my djRivet.mel script

poseDeformer for maya 2008

david | animation,mel script | Sunday, September 16th, 2007

My favourite plugin by Michael Comet has now been compiled for maya 2008. I have not tested it much but it seems to be working. If you find problems let me know.

Download here.

Bad Apple

david | animation | Saturday, June 30th, 2007

A guy I work with named Rod Clifton recently unearthed this little gem that he made a long time ago. It was never finished, but I still smile when I watch it even though I know what is going to happen.

Davvey World and modules

david | animation,mel script,tutorials | Friday, June 22nd, 2007

chainsResult.jpg

How long would it take to create an animating chain and sprocket setup like the one in this picture? Thanks to a really cool mel script by Dave Lake, you can do it in a matter of seconds. Check out the UI.

chainsUI.jpg

Three clicks and you hit "play" and it animates. There is even a little chain jiggle on the slack side. Very nice!

You can download Dave's wonderful tools from this link at highend3d.

I grabbed the whole lot which meant I ended up with over 80 mel scripts, not to mention the bitmaps. Some organization is required to keep things tidy. Time to talk about modules.

Modules are a way to package mel scripts, icons and plugin files in their own folder, which could be anywhere on your system. It avoids cluttering your usual maya scripts folder and keeps related files like icons in the same location. If you are part of a team you could have a shared module folder on the network to make updates easier.

The module folder can contain sub-folders called scripts, icons and plug-ins and maya will access them just like your normal scripts or plug-ins folder. The .mel files go in scripts, the .xpm's and .bmp's go in icons and the .mll's in plug-ins. (Actually there are no plug-ins to worry about with the Davvey tools, but if there were...)

There are two ways to tell maya about the module.

Method 1: Using the default modules definition folder

By default maya looks for a folder called modules in your maya application folder. If the folder is found maya will look in it for module definition files. These are simple text files that give the name of the module and point to the location of the folder.

For example my folder called X:\david\maya\8.5\modules contains a text file called DavveyWorld.module, which contains the following text

+ DavveyWorld 8.5 X:\david\maya\DavveyWorld

Method 2: Using the Maya.env file

You can also use Maya.env to tell maya to look in other places for module definition files. Maya looks for Maya.env in X:\david\maya\8.5 and I would need to add the following line

MAYA_MODULE_PATH = X:\david\maya\DavveyWorld;

then maya would look in X:\david\maya\DavveyWorld for a module definition file, like the one described in method 1.

If you have several different modules just add a module definition file for each one. If you use method 2, the Maya.env line needs to specify each folder in a semi-colon seperated list like in the following example

MAYA_MODULE_PATH = X:\david\maya\DavveyWorld;K:\andrew\omtoolbox;P:\rex\tinytools1.3

NOTE: The name of the module definition files is unimportant. Maya simply reads the all the files in the folder you specify looking for a line starting with "+". This means you should not mix module definition files with other kinds of files. For example if your text editor creates backups you should delete those before starting maya.

Which method you choose is upto you. Method 1 probably suits a single user working alone. I can look into X:\david\maya\8.5\modules and see immediately what modules are installed. I can make changes to a local copy of the module without upsetting anyone else. On the other hand, method 2 may be better suited to a group of users where setting up shared module folders ensures everyone is using the same version. Each user just needs a copy of Maya.env.

« Previous Page | Next Page »

Powered by WordPress | Based on a theme by Roy Tanck