Monday, February 18, 2008


I came across an old method of face rigging that I still think is kinda cool. All the riggers these days use clusters with painted weights but I thought I'd put the Soft Mod tool to use instead...

Cronin's 12 FPS animation method

Well I wanted to come up with a way to animate within Maya on twos (every frame holds for 2 frames) then render out properly at 24 FPS without having to key every pose twice. I suppose one could animate at 24 fps and key every second frame twice.
I decided to animate in Maya at 12 fps and set the render settings to render out twice as many frames, each keyframe duplicated. All done at render time. And here's how to do it.

1. In your preferences set the maya scene to 12 FPS.

2. In your globals set the 'by frame' to 0.5 - this will render sub frames inbetween (twice as many) i.e. frame 1, 1.5, 2, 2.5 .Maya will name the sequence properly.

3. For the subframes to be duplicates of the keys, they need to be the same values as the keys before them. Every frame needs a keyframe and every curve has to be stepped. This means we have to bake the animation curves and set them all to stepped before rendering.

4. Handy little MEL script to do that?....yes (the first part selects all objects that are animated)
Put this script in your scripts directory.

global proc bake() {
select -cl;
$sel = `ls`;
for( $s in $sel ) {
float $info[] = `keyframe -time ":" -query -timeChange $s`;
$si = size($info);
if ($si>0) {
$nt= `nodeType $s`;
if ($nt!="objectSet" && $nt!="animCurveTU" && $nt!="animCurveTA" && $nt!="animCurveTL")
select -tgl $s;
}{bakeResults -sampleBy 1 -preserveOutsideKeys 0 -sparseAnimCurveBake 0; keyTangent -e -ott step;}


global proc bakeselected(){
bakeResults -sampleBy 1 -preserveOutsideKeys 0 -sparseAnimCurveBake 0;
keyTangent -e -ott step;}

5. Additional advanced wouldn't want to bake all the channels, render, then find mistakes on your saved file - all of your curves will be littered with keyframes which would be hell to fix. You could save out baked files but that's not efficient. There is a way to run this MEL at rendertime only. In render settings under common/render options you will see a Pre render MEL slot.
Slot this little command in there and it will run the bake script at render time ....
*remember to remove it when test rendering in Maya or you will bake while working on the file.

source bake; bake()

Bamm, work within Maya at 12 FPS (twos playback) and render out at 24 FPS with doubled frames.
Need some frames on ones? Well you can hack them out in editing like we did back in the old linetesting days. OR
set your preferences to 24 FPS (all of your single keys will now take up 2 frames) and put your desired frame on ones. Look fine at 24 FPS? Switch back to 12 FPS and your one will now be on a subframe, thus you'll render key1 and the next subframe will not be a duplicate, it'll be your 'one'. Basically switching to 24 FPS gives you access to control your subframes at 12 FPS.

Toggle 24FPS Mel paste this as a button-->
currentUnit -time film; //24 fps
Toggle 12FPS MEL
paste this as a button--> currentUnit -time film; //12 fps

Sunday, February 17, 2008


Well...not really a Maya trick but hey ...just learned this via google. Ever need those fancy characters in your text like

¢ ß Ć ® § Đ

Well they are all accessible in windows character mapper. start menu/all programs/accessories/system tools/charater map
Useful for photoshop text or Maya bevel text.

Wednesday, February 13, 2008


Some lovely tools in Maya's included bonus tools that allow quick and easy duplicating of attributes and driven keys. Under the animation tab we have 'replicate attribute' for all of those cool attributes you add to your rig. Simply
select the object that you want to paste to, shift select the object and attribute
channel of the object that has the custom attribute and hit 'replicate attribute'.
For set driven key transferring, a dialogue box pops up with 3 input boxes.
1. Set Driven Key Source - the channel that is being driven on the completed object (i.e. pSphere1.rY).
2. New Destination Driver - The driver object channel/attribute of the incomplete object. (i.e. pSphere2.bender)
3. New Destination Driven - The driven channel of the incomplete object. (i.e. pSphere2.rY)

Hit copy and you are done. No more manually setting up millions of similar rig attributes and controls.