Tuesday, December 30, 2008

DEMO REEL CREATION

This is just a self reminder of things I always forget when creating a demo reel.

**FRAMES PER SECOND!!!! 24, 30 - SET IN MAYA - RIP FROM NTSC NOT PAL

** TV SAFE ZONES!!! SHRINK FOOTAGE IN PREMIERE

** LEAD TIME AND END SPACE - LEAVE A FEW SECONDS OF BLACK FRAMES AT START & END

** USE GOOD DVD AUTHOR SOFTWARE. TMPGENC DVD AUTHOR IS BEST!

Tuesday, December 23, 2008

MENTAL RAY TRIX

That I always forget. As we all know, MR in a 32 bit situation cannot handle complicated scenes. A neat feature in Maya 2009 is an :
*auto conversion of texture files to .map files. If you are using big textures, the .map hack is now available under.....

SETTINGS/PREFERENCES / SETTINGS / RENDERING / use optimized textures (auto conversion)


***And here is a great little utility to convert all of your textures files to map files within maya itself. All you have to do is select your textures and it will bake them and re-associate them for you. Awesome.

RIESS_IMF_COPY_DOWNLOAD

Wednesday, November 26, 2008

AUTOSPIDER RIG TUTORIAL

An interesting way to make a 'pull toy' spider with set driven key legs using offsets.

http://www.pixero.com/tutorials_spider.html

Thursday, October 30, 2008

CREATING nCLOTH UV'S BEFORE DEFORMERS

well, have you ever created Ncloth and found that your UV's are sliding like they are being projected? The problem is, you need to create your UV's BEFORE you create your cloth. If you find that your UV's are after your cloth in your history stack, don't dispair.

1. Select your cloth and delete your uv's
2. under nMesh hit 'display input mesh' -this will display your original object before it was clothed.
3. Apply new uv's or transfer to this object and voila...your uv's are pre-deformer.

OR

1. Duplicate your cloth object.
2. Delete it's history.
3. Delete cloth's post deformer swimming uv's
4. Transfer the uv's from the duplicated object to your cloth

Friday, October 10, 2008

MOTION PATH VIA IK SPLINE

Interesting technique, using the 'offset' value of an IK spline to drive
a series of bones along a motion path curve. Of course..it doesn't work
on a curve on surface which is what I'm trying to figure out.

http://forums.cgsociety.org/showthread.php?f=88&t=259168&highlight=motion+path+tail

Flow object on a motion path curve on surface stretches the object like mad.

Wednesday, October 08, 2008

RECORDING AUDIO FROM ANY VIDEO

Sweet. Not really to do with CG but ever watch a youtube video and want to
rip the audio from it? I do all the time. Here's a sweet tutorial
on how to do it. *he rips to .wav but you can use other recording
software to record to MP3.
http://www.youtube.com/watch?v=zg3vs7oh32s

Wednesday, September 17, 2008

STUFF LEARNED ABOUT OBJECT TRAVEL ACROSS SURFACE

Oh dear...
Sometimes trying to acomplish the most simple things leads to many discoveries about the tools that you use. I will most definitely have to catalogue this because I don't want to have to figure this out in the future....

Techniques to have multiple objects travel across a surface in random different directions while obeying surface normals and directions.

My first intuition was to run random instanced particles across a surface and somehow stick them to the surface. This can be done. Make a surface live, sketch particles on, throw down some gravity and get those particles moving...
*but what if you need to direct those particles and also have them 'stick on'? Gravity will tell them that if they hit an edge, to fall off the surface. Plus with fields, you can't direct particles as precise as a picky client wants them :)
So I figured, why not make the surface a goal? Great! So the particles move towards the vertices of the surface. As well, you can randomize those final goals with GoalU/V expressions.
*problem? Yes. If you have particles on a curved surface they will pick a goal but will not travel across it. It will pick the shortest line to that goal and intersect with your GEO. Of course...you haven't told your particles to obey a surface.
This is where ClosestPointOnSurface node comes in...what is this?
It's a node that isn't very documented or implemented (or user friendly for that matter) in Maya that allows an object to query where the closest point on a surface is at any moment and use it's info for whatever purposes one needs. So what you can do is have the instanced particles "ask" maya at every frame "where is that point on the surface I am travelling across - oh there it is, let my position stick to it".
*problem? Yes. This method doesn't tell the instances to rotate themselves based on the surface normals! So you have objects that flow across a surface with their back always facing straight up, even if on a hill.
Well, it seems that some people have gone as far as to use an aim contraint, with some intense expressions, tell the instances to aim their backs towards a normal that is tied to the aim constraint...but at this point I said "I'm an ANIMATOR not a Fu@ki# code alien" and gave up.

*Maya and objects travelling across a surface in random directions...obeying normals - NOT an easy task. This is obviously why there are expensive crowd simulation tools to do this.

TECHNIQUE

*Good old motion paths.

1. Create a nurbs surface with as many bumps or curves that you need.
2. Create your object that you want to animate.
3. Make your surface live.
4. Draw a curve anywhere on it. This curve becomes a curve on surface. Editable
and moveable across the surface.
5. Attach your object to the motion path using 'normal' as your world up type.

There it is. A completely animateable surface object towards any goal, following
normals, completely directable and editable.

Needs 1000's like an army? Just duplicate the curve and object with input
graph selected and randomize as you duplicate. The nice thing is that the curve on surface
follows the surface at all times.

TECHNIQUE #2

Normal and geometry constraints.

1. Create your object and your surface.
2. Group your object and goemetry and normal constraint the group to the surface
so that you can rotate your object on it's local Y axis as well.
3. Your rotation might be off but no problem. Rotate the child object or move it
to align to surface.
4. Move and animate your object across the surface!

* the only problem is that if your surface's normals are weird, your object's
rotation may be affected. Good for flat to moderately curvy surfaces.

Friday, September 05, 2008


PROPER HIERARCHY FOR SCALABLE SPLINE IK

Friday, August 29, 2008

FLASH RANT

Arrgh. When I learned Flash about 10 years ago I thought "wow, this package has a lot of potential". I've just picked it up to re-do my website and I am shocked at the lack of user
friendliness. Making a simple hyperlink to a button involves a ridiculous amount of
scripting in "actionscript". Now I am all for having scripting in software however simple
functions should be script invisible to users. Or accessible via a script history.
All easy html funtions should be button or menu driven.
And AHH! Having to copy every little detail to every keyframe if you make changes. No way to batch
copy attributes or 'apply to all keys'. No linking or referencing Photoshop files which sucks when you want to
change layer details. No global resizing without crunching bitmap edges.
Anyway, popping up a window is a lesson in patience but here's a link

http://www.flepstudio.org/forum/tutorials/649-opening-popup-flash-cs3-javascript.html



Tuesday, August 26, 2008

ALPHA TRANSPARENCY WHEN IN FRONT OF PRIMARY VIS OFF OBJECTS

Absolutely insane amount of time wasted on this one. If you have objects mapped with transparency and there are objects behind it with primary visibility turned off...the alpha in mental ray will pick up that invisible object. Really silly bug. Solution: hide the invisible object instead of primary vis.


Wednesday, July 16, 2008


PATH ANIMATION WITH DEFORM

Nice. For those path animations where you need the object to bend along the path like for example a snake, worm, tail etc etc.

1. Bind your object(s) to a joint chain
2. Create a spline IK solver
3. Cluster the IK curve
4. Attach those clusters to a motion path
5. Offset each cluster's U value by 1 successive frame down the chain

Now you have each cluster following the motion path, driving the spline
IK deformations. Sweet!

Thursday, July 10, 2008

BAKING CYCLED CURVES
I know this feature has been around for a while but -
too damn cool again. Finding the right tools implemented in software when needed makes it all that much more exciting.
Ever want a character to walk 5 steps in a cycle, stop then start walking again - without TRAX? Well you can bake out a cycled curve by using your bake curve tool and checking on the sparse curve bake option.


CURVES/BAKE CHANNEL OPTIONS/SPARSE CURVE BAKE

Sunday, July 06, 2008

AHH COOL!

new tool discoveries always get me excited. In Maya 2008 one can now move joints around after binding. When you exit the tool, it re-enables the skin.

EDIT SKIN/MOVE SKINNED JOINTS TOOL
PAINT WEIGHTS PROBLEM

For some reason, a rig I was working on all of a sudden stopped working with the paint weights tool and no vertex info would show up in the component editor. No color feedback in the tool either. ERROR: value is out of range 0 would show up when trying to export weights or paint.

I have no clue what happened but the fix was

DELETE ALL BY TYPE/NON DEFORMER HISTORY

Also I figured out that the skincluster node for the bind had lost all of the relationships to it's
vertices. It was an empty deformation node. So I added them all back in with the edit membership tool.

Also had to hack to remove history and get a clean unbroken bind....


- duplicated the bound mesh in it's bind pose.
- smooth bound the duplicate to the skeleton.
- used the "copy skin weights" to transfer it to the duplicate.
- purged the history of the original as needed.
- after everything is done, rebound the original to the skeleton.
- used "copy skin weights" to get them back on the original mesh.

Thursday, April 17, 2008



ANZOVIN FACE STUDIO

I really like this style of face animation. It is more definable than
preset blend shapes.

http://www.anzovin.com/products/tfm1mayaFeatures.html

Monday, February 18, 2008


SOFT MOD FACE RIG TUTORIAL

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...

http://www.cronimation.com/SoftFace.html

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;}
};

SCRIPT TO BAKE JUST SELECTED OBJECTS WITHIN MAYA:

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

5. Additional advanced trick...one 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
R.

Sunday, February 17, 2008

CHARACTER MAP

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


Attr & SDK COPY/PASTINGZ

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'.
Done.
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.