djRivet.mel – added support for multi uv sets

david | animation, mel script | Tuesday, November 3rd, 2009

Several years ago I wrote a mel script called djRivet.mel that makes it easy to constrain things to deforming surfaces using follicles. Matt Oldfield, one of the TD’s at Disney Interactive, suggested that I update it to include support for multiple uv sets. It was pretty cool to hear that someone other than me finds this script useful, and being able to specify different uv sets for the textures and the follicles makes perfect sense.

You can download the update here.

poseDeformer walk-through

david | animation, mel script, tutorials | Friday, October 2nd, 2009

I was asked to write a simple getting started guide for using Michael Comet's poseDeformer, so here it is. (more...)

poseDeformer plugin compiled for maya2010-x64 win

david | animation, dj mod, mel script | Saturday, August 15th, 2009

We upgraded to maya 2010 this week so I have recompiled my 2nd favourite plugin - Michael Comet's poseDeformer. This is the windows x64 version. (x86 coming soon)

I added it to poseDeformer.rar on the Downloads Page.

Update 2 Oct 2009: Added maya2010 win32 (x86) compile to the download.

zooAttrScroller.mel Virtual Sliders

david | animation, dj mod, mel script | Tuesday, August 11th, 2009

I was rummaging around Hamish McKenzie's zooToolbox the other night and uncovered the intriguingly named zooAttrScroller.mel

I'd never noticed this one before so I opened it up in my favourite code editor, notepad++, to see what it did, and soon worked out that you use it to create a virtual slider in the viewport so that you can change selected attributes by dragging left or right with the mouse.

Yes, I know, you can already do that by selecting the attributes in the channel box and dragging in the viewport. So, whats the difference? (more...)

djParentShape.mel

david | animation, mel script | Sunday, July 6th, 2008

I've been doing a fair amount of rigging where I use joints and empty groups as controllers. I try to minimize the need for going to the outliner to select things by adding shapeNodes to these controllers so that they can be selected directly in the viewport.

To parent a shapeNode to a different transform you need to use the command

parent -r -shape;

but often you'll get the shape jumping to a new location when it adjusts to its new parent. If that happens you can select the cv's or verts and move them to where you want them, but if you are doing this alot it can get messy and becomes time consuming. And that was the motivation for writing djParentShape.mel

With djParentShape you select the new controller object, shift-select the joint and run the script. It has two modes of operation: move to position or preserve position so you simply choose the one you need.

Download from here.

Keep reading for details... (more...)

poseDeformer for maya2008-x64

david | animation, mel script | Monday, May 26th, 2008

My downloads page now has a version of Michael Comet's poseDeformer which I have compiled for maya2008-x64.

I have not done much testing, but it seems to be working ok on vista 64 with maya2008 sp1 64 bit.

Please test it properly yourself before committing to a production that relys on this plugin. If you encounter problems, feel free to comment here.

Download here. (Its near the bottom of the page)

Update: I've discovered you need to install .net framework 3.5 for this to work correctly.

djSetKeyframe.mel and “straight ahead” animation

david | animation, mel script | Tuesday, April 22nd, 2008

I usually animate in a straight ahead manner, where I create a pose... keyframe... move forward on the timeline... create the next pose and so on. Since there are no keys ahead of where I am working, the last pose is held when I move forward. I find it easy to do a first pass this way.

But the first pass is rarely final and when changing some animation in the middle of a sequence it is often easier to delete a block of keyframes rather than mess with the existing ones. But now the keyframes that come after the deleted section mean those poses are no longer held when I move forward in time.

djSetKeyframe.mel was written to enable a more "straight ahead" approach when making changes to these middle bits.

Say for example, I delete all the keyframes between frame 100 and 200 so I can redo that section. I would then start by setting a new keyframe at frame 199. Then I goto to the last keyframe before frame 100 and run djSetKeyframe 1 0; which copies that keyframe to frame 199 and sets the inbetween tangents to linear. This creates a "hold" until frame 199.

Now I can work forward as I did in my first pass. Each new keyframe I set using djSetKeyframe 1 0; to simultaneously update the hold frame at 199. Of course, at some point the new animation needs to blend back into the old, so then I just delete the keyframe at 199.

The numbers you see after the command in the above examples, change its behaviour. The first is the "push" flag; set to 0 behaves just like the channel box rmb-menu Key Selected. Set to 1 and it will also copy the new keyframe forward.

The second number is the "unlock tangent weights" flag. (I wish I knew how to make unlocked weighted tangents the default in maya) Set this 2nd number to 0 and you get the usual locked tangent weights, but set it to 1 and the weights will be unlocked as you create new keyframes.

djSetKeyframe.mel was written to be mapped to hot-keys (or marking menus if you prefer). I have djSetKeyframe 0 1; mapped to [s] and djSetKeyframe 1 1; mapped to [S].

NOTES and CREDITS: This script requires the installation of Hamish McKenzies zooToolbox. I have used a proc called zooSetkeyPush which is just one of many useful functions that are part of the marking menu built by zooSetKey.mel.

Download djSetKeyframe.rar from here. (see file header for full usage details)

An afterthought: As I re-read this tonight, I realize that I will probably be asked "Why dont you just use "step" tangents instead ?". The simple answer is... um... that's not the way I prefer to work. I like to be able to scrub through my animation as I am creating it so I can judge the momentum and flow of my action. I know this is a departure from the widely used workflow of blocking out the action using only poses and step tangents on the first pass. (And I was reminded of this recently while reading Cameron Fielding's blog where he links to a nice document by Mike Walling) Getting those key poses down is essential, I agree. I'm impatient though. I want to see it move too. This is what I have become used to.

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.

Next Page »

Powered by WordPress | Based on a theme by Roy Tanck