Showing posts with label video. Show all posts
Showing posts with label video. Show all posts

Friday, January 25, 2013

Rigging a shock absorber and so much more . . .

"So much more" might really be an overstatement. In fact, it is.
But there actually IS other stuff in there. As I mention in the vid, I was recently rigging a mechanical "tranformer-ish" guy and had some troubles with the model I got and thought it might be worth pointing out some of the way you could avoid the same issues. Things like how to avoid/deal with the skewing from uneven scaling etc. The shock absorber stuff is in there too :)
Here's the vid:


Maya/rigging: Setting up shock absorber and some notes on mechanical modeling from zeth willie on Vimeo.

Oh and btw, I'm an idiot because I wrote a bunch of code to zero out the rots and trans, then freeze the transforms, then reapply the rots and trans when, in fact, one line of code will do it (never really looked into the arguments for the "makeIdentity" command before. The "scale" flag will just freeze the scale attrs.):
cmds.makeIdentity("yourObject", a=True, s=True)
And of course you could just do it from the menu options for "Freeze Transforms". Geez. . .
But here's the gist of the code to make the single bone stretchy IK (at least it does the annoying parts for you):
zbw_smallIKStretch.py.zip
import zbw_smallIKStretch as sik
sik.smallIKStretch()

Wednesday, January 16, 2013

Fixin that shoulder geo . . .


Here's a relatively quick video where I go over a technique I pulled from a Bay Raitt modeling time-lapse video like 10 years ago (vid is here). Basically, the idea is that to get more natural edge flow in the shoulder area, you just make a slight adjustment to the first extrusion from the torso which gives you a more natural angle to then extrude the rest of the arm. This helps a) make it more likely you'll model your arm at 45 deg angle, which I prefer to a t-pose when possible and b) help dictate the direction the edge flow wants to naturally travel.
As soon as I posted this on Vimeo, a fella named Ike commented (which I totally appreciate, btw) that maybe it sounded like I was bashing the idea that one should ever build a shoulder in the "tube" method, just extruding out of the torso in a straight line, and that, in fact, plenty of people model in this way and that it often works out (he gives some examples of his experience at The Mill and on Planet 51). To be clear, I totally agree with him! There a bunch of reasons why someone would model in a manner other than I'm proposing here. . . I've seen VERY senior and smart people pretty much advocating for a more "tube-like" approach. Some of the reasons they have mentioned (and I'd reprint the threads, but it was on a private message board and I don't feel like asking for permission to reprint all the stuff verbatim) include:
  • more even distribution of the geo makes it much easier to deal with driving the skin via other influences (like muscles layers, fat layers, etc)
  • more even distribution can make it easier to weight the skin sometimes
  • more even distribution also makes it easier to retopo if you have to later on.
  • sometimes the model just WANTS to be that way!
(note that often people advocating this work are in bigger shops, or have much more robust methodology for dealing with specific kinds of geo. Not always but often.)
Totally appreciate all of those reasons and wouldn't presume to argue with them. . . A good example is the clothing someone is wearing. . . obviously it doesn't make a ton of sense to model an edgeflow based on musculature when the character is wearing a heavy coat:) Despite the fact that I probably sounded more dogmatic in the vid than I intended to, my main point stands, in that you definitely want to look at reference for the way something is intended to move. For example, if you look at a man's blazer or tailored jacket, try to lay it out flat and put the sleeves in a T-pose. They probably won't do that, because that's not the way your arm naturally wants to move, hence the clothes aren't made that way! So while the edge flow would obviously be different than that of a muscly shoulder, it also wouldn't be a straight extrusion from the torso, either. . .
Also would add:
  • I'm, at least in part, concerned with passing info to my students, many of whom are learning about these things for the first time. The shoulder is a place on their models that frequently goes awry and this concept at least gives em a place to start. . .
  • I also work mostly freelance on commercial in NYC, often in smaller shops, and I often (maybe 20% of the time?) see geo that is actively harmful to my ability to rig a character:) So I feel like one is less likely to go wrong following edgeflow than one is just ignoring it.
  • Looking back, I have had plenty of good experiences with different styles of geo. Just wanted to say that too. . .
Also here's a link for some examples of different styles of modeling the shoulder area. ..
Enough about that! here's the vid:
Maya/Rigging/Modeling: Tip for creating better shoulder edgeflow from zeth willie on Vimeo.

Saturday, January 12, 2013

Why so many master controls?

Been asked this quite a few times when I've shown my classes some rigs. Seems easier to do a quick vid and point people here. (this is another one that's been sitting on my computer for months that I forgot to post)
I usually put my rigs under multiple levels of master controls (both for chars and props) and the main reason is that it seems easier to me to default to doing that, than to have to go back and add more controls when an animator wants to do something crazy like add something to a motion path and still retain some type of control. I mention a few other circumstances where this is useful, but to be honest, it just seems like common sense to me and makes me grumpy.
So get off my lawn.

Maya/Rigging: Using multiple Master Controls from zeth willie on Vimeo.

Friday, January 11, 2013

The basics of O.O.P. in Maya/Python

I was thinking about calling this post "O.O.P. I did it again!", but then I realized that most people in 3D nowadays are too young to remember who Britanny Spears was (you bastards). . .Made this video (along with a couple of others) a few months ago, but never got around to posting it. Just got really busy and/or forgot.
For those that don't know,  OOP refers to Object Oriented Programming.This is just a basic overview of what that is and how you can start thinking about it in Maya using Python. It's something that was a bit confusing to me when I was first learning Python, some of it still is a little bit . . .
I really have no idea whether this video even makes any sense (in terms of it being a useful/illustrative thing to watch).
Here's a description of a particular type of person:
"I work in Maya and know a little about programming, probably MEL and maybe some Python, and also write enough code to care about digging deeper, but definitely not accomplished enough in Python (or any other OO language) to the point when a discussion of classes seems rudimentary."
If that describes you, then you're who I made this for! I certainly hope both of you enjoy it.

(p.s. I was going to make a venn diagram for that, but I feel like Randall Munroe/xkcd should be the only person in the world allowed to make those anymore. And while we're on the topic, this is my new favorite site. If you're even a little bit of a nerd, you must read them all.)

Here's the vid:

Maya/Python: The basics of using Classes and Obj. Oriented Progamming in Maya/Python from zeth willie on Vimeo.

Wednesday, August 15, 2012

Space Switching and Space Matching

I created a couple of new videos to talk about space switching and space matching. I think they're pretty self-explanatory, just going over the basics of what they are and some ways to set them up. Nothing too crazy, though the space matching one is a fair amount of python scripting (though again, nothing terribly hard if you're already using python).

But if you're into the more complicated bits, here are some links to info about them:
Charles Looker - http://charleslooker.wordpress.com/2012/02/25/multi-directional-constraints/
Hamish McKenzie - http://www.macaronikazoo.com/?page_id=413 (very illustrative, but be warned, some of his matrix math stuff used his own scripts to deal with the matrices, so it can be a bit confusing if you try to do it without installing his scripts first. But the principles are the same, I just use the API to do the matrix-y bits, which can be hella confusing in it's own right)
TD Matt - http://td-matt.blogspot.com/2010/12/broken-hierarchy-rig-and-space.html

Oh yeah, and the vids by Jeremy Ernst are here: https://vimeo.com/jernst. Good stuff!
And I'll say it just so you don't have to. . . My god am I long winded! Not sure how explaining space switching could possibly take that long. But what can you do? :)

Maya/Rigging: The basics of space switching from zeth willie on Vimeo.

Maya/Rigging: Space Matching from zeth willie on Vimeo.

Friday, March 09, 2012

Using Bump and/or Normal Maps for Pose Space "Deformations"

That's a mouthful. Basically, this is a kind of addendum to the last post about animated textures. . . Similar, but different.
The idea is that you can add cool little details to your character (or whatever) using bump and/or normal maps. But you may not want these details all the time (think frown lines on a forehead, or muscle striations on a character when he flexes his muscles). So the trick is to hook the texture up like you would a pose space deformation, only being activated when you want it to be, in certain poses.
This is NOT so much about creating bump and normal maps, just about how you'd use them in this scenario.

Maya/Rigging: Using "Animated" Bump and Normal Maps from zeth willie on Vimeo.

Animating textures on your rig

Been asked a few times lately about using animated textures on a rig and how to control those textures. Like with most things in Maya there are a bunch of ways to do this . . . you could apply different textures to duplicates of geometry and literally swap geo for any given frame of texture you want, but that's a) a pain to set up and b) kinda like shooting a fly with bazooka. Heavier in your scene and more a pain to deal with. Instead, in this vid I'll go over a couple of different ways to use the ".frameExtension" of an image sequence to control what shows up as our texture. I also briefly discuss a more complicated way of doing the same thing using nuke and UV maps, which I covered in another tutorial.
BTW, I talk about using this on a face in the video, but you could  obviously use this on any kind of shader connection for any part of an object. Faces are just the most obvious. . .

Maya/Rigging: Using Animated Textures from zeth willie on Vimeo.

Wednesday, February 29, 2012

Triple Switch!

That's gonna be the title for my new movie. . . Or the managerial move I make that loses my kid the little league championship game. . . Or a utility node in Maya.
The triple switch is such a weird node. . . Not sure I've ever seen anyone use it in production. But in certain circumstances it can be useful and on rare occasions can be very handy indeed.
Basically the idea of the node is that you can create a geometry-specific attribute of a single material. So, fer example, you could put one shader on 100 objects and have, say, the color be different for each object. Still using just one shader, mind you. . . the color is different for each object, but all the other attrs of the shaders behave as normal. Here's the vid about how that works.

Maya: Using the Triple Switch utility node from zeth willie on Vimeo.


It's kind of hard to imagine getting the most out of this node without some coding, since by definition the node becomes more useful the more stuff (and therefore connections) you have in your scene. . . Here's the code I used to set up the basic random color thingy from the video. To use it, hook the triple switch up to the material, apply the material shader to the objects. Select the TS, then the objects and run the code. Obviously, if you want different results (which you should, probably) then adjust whatever parameters and values you'd like:
//triple switch should already be created and connected to shader
//select triple then objects
string $sel[] = `ls -sl`;
int $sizeObj = size($sel);
string $triple = $sel[0];

for ($i=1; $i<$sizeObj; $i++) {
    string $me = $sel[$i];
    select -r $me;

    //these are the per object attrs we're adding
    addAttr -at "float" -k 1 -ln "redMult";
    addAttr -at "float" -k 1 -ln "greenMult";
    addAttr -at "float" -k 1 -ln "blueMult";

    //these are the random values for those attrs
    float $rRand = `rand .75 1.25`;
    float $gRand = `rand .75 1.25`;
    float $bRand = `rand .75 1.25`;

    //assign the values to the attrs
    setAttr ($me + ".redMult") $rRand;
    setAttr ($me + ".greenMult") $gRand;
    setAttr ($me + ".blueMult") $bRand;

    //connect the objects to the TS
    string $child[] = `listRelatives -c $me`;
    string $shape = $child[0];
    string $meShape = ($shape + ".instObjGroups[0]");

    connectAttr ($meShape) ($triple+".input["+($i-1)+"].inShape");

    //connect the attrs to the TS at the same index the obj is connected
    connectAttr ($me + ".redMult") ($triple+".input["+($i-1)+"].inComp1");
    connectAttr ($me + ".greenMult") ($triple+".input["+($i-1)+"].inComp2");
    connectAttr ($me + ".blueMult") ($triple+".input["+($i-1)+"].inComp3");
    }

}

EDIT: Here's the code I used to create the distance setup. Seems a bit wonky to do things this way, but it more or less works . . . The point here being that since you can use an attr to drive the triple switch, you can control that attr with any of the usual (or unusual means) you control attrs in Maya. For this one you'll need to create a ".tightenFalloff" attr on the measure object first. (BTW, you actually don't need to drive an attr with the distance numbers, you could just plug them into the triple switch directly, but that's a little mysterious for anyone who might use this. The point, again, was simply to illustrate that you don't need colors to drive the triple switch):
///////////////////////
//color by distance
//////////////////////
{
//triple switch should already be created and connected to shader
//select triple then measure object, then textured objects
string $sel[] = `ls -sl`;
int $sizeObj = size($sel);
string $triple = $sel[0];
string $mObject = $sel[1];

for ($i=2; $i<$sizeObj; $i++) {
    string $me = $sel[$i];
    string $meDist = $me + "Distance";
    select -r $me;
    addAttr -at "float" -min 0 -max 1 -k 1 -ln "distance";
  
    //create distance node
    shadingNode -asUtility distanceBetween -n $meDist;
    connectAttr ($me + ".worldMatrix") ($meDist + ".inMatrix1");
    connectAttr ($mObject + ".worldMatrix") ($meDist + ".inMatrix2");
    connectAttr ($me + ".rotatePivotTranslate") ($meDist + ".point1");
    connectAttr ($mObject + ".rotatePivotTranslate") ($meDist + ".point2");
  
    //connect the distance to a mult node
    shadingNode -asUtility multiplyDivide -n ($me+"mult");
    connectAttr ($mObject+".tightenFalloff") (($me+"mult")+".input1X");  
    connectAttr ($meDist+".distance") (($me+"mult")+".input2X");
  
    //connect the dist node to the attr on the object
    connectAttr (($me+"mult")+".outputX") ($me+".distance");

    string $child[] = `listRelatives -c $me`;
    string $shape = $child[0];
    string $meShape = ($shape + ".instObjGroups[0]");

    connectAttr ($meShape) ($triple+".input["+($i-2)+"].inShape");

    connectAttr ($me + ".distance") ($triple+".input["+($i-2)+"].inComp1");
    connectAttr ($me + ".distance") ($triple+".input["+($i-2)+"].inComp2");
    connectAttr ($me + ".distance") ($triple+".input["+($i-2)+"].inComp3");
    }

}

Tuesday, February 28, 2012

Geo caching for easier animation

Some students of mine were doing things that suggested geo-caching to me and I just used this on a job, so I was all like "wooohooo!". And then I made this video.
Basically talks about the general idea of geo-caching and then I show one example of what I used this on recently. General gist of it: Maya, Geometry, Cached.
Slightly less general gist: You'd use this to lighten some of the processing load in your scene, either by allowing you to eliminate heavy rigs or allowing you to use light version of your characters (i.e. just geo) for multiple instances of an animation. Basically baking animation into the geo itself for use later in various ways. So check it:



Edit/Addendum - Totally did not get back around to the bit about why the eyes and teeth didn't come along for the ride in the geo cache! Oops. That's Ok. The reading will do you good.
Here's the deal. . . geo won't get written to the cache (at least the default Maya cache) if it doesn't have something driving the shape node itself (like skinning or other deformers). Simply translating or rotating the geo won't cut it since that stuff operates on the transform node and leaves the shape node to rest a bit. Soooo. . . since I usually connect things like eyes and gums/teeth into the rig via some combo of parenting to groups and constraining those groups (it's easy, clean), when I try to include those in the cache, they sit completely still, unaffected by caching party going on around them. So the easiest way around that is to just bind them to a joint, either existing or created just for that purpose. If you do it carefully, you won't even have to weight them (bind them separately from the rest of the geo, just to one selected joint). But they'll then be included in the caching. The other option is to set up some kind of follicle system on your cache-catching rig, the simple one, whereby you'd use follicles or rivets to stick things like the eyes and teeth to the cache-animated geo. A bit wonkier, but whatever gets ya through the night, amiright?

Friday, October 07, 2011

Dealing with smoothing in your character rigs

Was literally thinking about whether to include this topic in another vid and someone emailed me and asked me about this specifically. Weird!
This video sort of quickly goes through some ways to deal with how to include various smoothing levels in your rig, from lo poly proxy geo to highly smoothed for rendering.
Here's the code I use in the video:
1) for grabbing ALL polySmoothFace nodes in the scene and connecting them to your master control in the rig scene (note you should change any appropriate names, obviously, to ones you're using):
{
string $smooths[] = `ls -type "polySmoothFace"`;
for ($each in $smooths){
    connectAttr master_CTRL.hiPolyLevel ($each + ".divisions");
    }
}

2) for changing the smooth state of any selected master control objects (probably best to use this as a mel button on your shelf, and of course change any names/values to what you want):
{
string $sel[] = `ls -sl`;
for ($each in $sel){
    setAttr ($each + ".loPoly") 1;
    setAttr ($each + ".hiPolyLevel") 0;
    }
}

Wednesday, October 05, 2011

Creating stretchy joint chains

Been meaning to do this tutorial for a while, but never got around to it. Some fella named Jeremy Parrish did a tutorial on this subject that I saw recently (http://vimeo.com/29466144) and did a few thing differently than I would do.
1) I now use the "distanceBetween" node in rigs. Easier, cleaner.
2) WHAT we're measuring makes a difference. So a bent leg, for example, needs to be measured differently than a straight leg. Subtle, but important distinction that needs to be looked at depending on your model.
3) by measuring the leg joints that are being stretched (or any static, constant measurement), you have issues with scaling. These can be solved (as Jeremy shows), but that may, in fact, create some weaknesses in your rig that can pretty easily cause problems.
So here's a vid where I walk through a stretchy leg the way Jeremy shows and then with a few modifications.

creating a nice clean distance node using "distanceBetween"

Here's another neat little node, called the "distanceBetween". As you might guess, it measures the distance between of two selected objects.  What's nice about this is that you don't get the extra gunk that comes the measure tool, like locators and UI stuff, which one typically doesn't need in a rig.
The only tricky part here is that in a DAG hierarchy you can't really use the translate attributes as the measure inputs because those don't reflect world space distances. So you'll need to hook up one of the pivots for each object and then use the "world space" attributes for each object into the respective input matrices of the distance node. Huh? Just watch the video and I'll walk through it.
The basic code for the node itself is:
shadingNode -asUtility distanceBetween -n "name;

BTW, here's the code I used in the video for creating this distance node . . . You can just copy it into your script editor and make a quick mel button for it. I've added just a quick dummy check to make sure there are 2 tranforms selected.
{
string $sel[] = `ls -sl -tr`;
if (`size($sel)` != 2){
    error "please select 2 transformable objects to measure";
    }
string $name = "distance";
string $dis = `shadingNode -asUtility distanceBetween -n $name`;
connectAttr ($sel[0] + ".worldMatrix") ($dis + ".inMatrix1");
connectAttr ($sel[1] + ".worldMatrix") ($dis + ".inMatrix2");
connectAttr ($sel[0] + ".rotatePivotTranslate") ($dis + ".point1");
connectAttr ($sel[1] + ".rotatePivotTranslate") ($dis + ".point2");
}

Sunday, September 25, 2011

Dealing with Double Transforms

Double transforms are probably the single most frustrating thing to deal with when you're first learning rigging. What can be even more frustrating is when these issues pop up after it seems like you've got a perfectly working rig and you just want to clean it up in the outliner!
Fortunately, the issues are almost always in one of a couple of relatively simple categories and you get accustomed to dealing with them fairly quickly. This is a video talking about some of those basic scenarios and some ways to address them. Hopefully enough to help get you started in solving some of the more complex issues you may run into down the line.

Maya/Rigging: Dealing with Double Transforms from zeth willie on Vimeo.

Using the Point on Curve Info node

I always think this kind of stuff is pretty cool. . . a) this node is semi-secret/hidden and you'll feel pretty cool showing it to someone who's not aware of it (though don't be too smug. No one likes that asshole) b) you get to create some stuff using the command line, which again is pretty sweet and nerdy and c) the pointOnCurveInfo node is exactly the kind of node that riggers like. It just does what it's sposed to do with no extra fussing around or additional junk.
Anyways here's a video talking about how to access this node and some basic ways to use it (namely for sticking stuff onto a user-defined point on a curve).
A quick tip, which is in the video and which is a reiteration of info I've posted before. . .
Rather than using:
createNode pointOnCurveInfo -n "name";
which will give you node, but leave it hidden from view in the hypershade, I prefer:
shadingNode -asUtility pointOnCurveInfo -n "name";
which does basically the same thing, but flags the node as a "utility" and thus puts it under the Utility tab in the hypershade. Just thought I'd point that out again.

Maya/Rigging: Attaching objects to a curve (using pointOnCurveInfo node) from zeth willie on Vimeo.

Friday, September 02, 2011

Why so many groups?

Been asked by a few people (in my rigging class and elsewhere) about why there are so many groups in my rigs. So thought I'd post a quick video talking about some ways to use groups (kind of like nulls in After Effects) as part of the functionality of my rigs.

Maya - Using groups in your rigs from zeth willie on Vimeo.

Thursday, August 11, 2011

Follow up some Linear Workflow stuff for Maya 2011 +

Been meaning to do this for a while, but never got around to it . . . And I got scooped a little bit! Derek Flood did a couple of short videos about this and lit a fire. Thanks Derek!
Anyways a quick overview (as quick as I can do it, everyone else seems to have a better grasp of the brevity thing than I do) of how linear stuff embedded in Maya 2011/2 relates to what you may have been doing before . . . not expansive, just pointing a few things out.
*EDIT* Derek was kind enough to point out some of the specific bugs/weirdnesses he's found in the comments. Check it out if you're interested!

Maya/Mental Ray: Linear Workflow in Maya 2011 from zeth willie on Vimeo.


HERE'S (rt click, save as) the updated zbw_gamma script that works by shader selection and sticks gammas into the color channels. You can also adjust any/all gamma nodes in the scene or delete them globally.

Wednesday, August 10, 2011

Creating a reflection "sheen" pass for your scene

Every semester I end up explaining this in a really rushed and half-hearted way to a bunch of poor students who are in my animation class. Rather than do that again, I finally wised-up and made a video about it. . .
Somehow my videos seem to get longer and longer, so I split this up after the fact and made two videos (it's like my inner self is telling me to do less videos and more text-y type tutorials).
The first video is the basic stuff for setting up a render pass that will give a nice shiny reflection pass for your scene (stuff like a cell phone or tv in a commercial) and the second chunk of it gives a few ways to customize this concept and make it a more reusable using things like RGB passes for various different reflections, etc.
This is something that is really useful to know how to do in production, especially for stuff like commercials, so hopefully I haven't made it tooooo loooong and boring . . .

Maya/Mental Ray: Rendering a reflection "sheen" pass - part 1 from zeth willie on Vimeo.


Maya/Mental Ray: Rendering a reflection "sheen" pass - part 2 from zeth willie on Vimeo.



BTW, HERE'S the script that I use at the end for pulling stuff out to a render layer with custom color overrides . . . (rt click, save as)

Tuesday, August 09, 2011

Creating an auto-swimming fish rig using expressions

I while back I posted a video about using joint chains in rigs and one of the things I demoed was a fish rig I had created for Method Studios. I got a bunch of questions about how I set that up, so here are a couple of videos about using expressions to control the auto-swim part of that rig (which IMO is the tricky part).
If you're an expert at expressions and such, probably nothing new here but if you're not this might be a good example of using expressions in rigs (for things other than auto-stretch, which seems to be the most common thing) . . .

Maya/Rigging: Creating an auto-swim fish rig using expressions, Part 1 from zeth willie on Vimeo.


Maya/Rigging: Creating an auto-swim fish rig using expressions, Part 2 from zeth willie on Vimeo.

Tuesday, June 14, 2011

Pose Space Deformation

Here's a video talking about the basics of pose space deformation. This is definitely one of those things that one should be aware as a rigger. The basic idea of pose space deformations is to create modeling fixes for certain areas based on the poses that that area will hit (a lot of times you can use the term "corrective blend shapes" for this type of thing as well). The math/programming behind creating pose space deformations can get tricky, but fortunately there are a few resources out there that will handle it (I use BSpiritCorrectiveShape in the video). The gist is that you pose your already rigged character and then make changes based on the deformations, etc IN THAT POSE. The tool you use should remove the influence of the joints, etc to calculate what the actual transformations of the vertices (or CV's) are in local space and give you a corrected model that can be worked in as blend shape or what have you. Really a great way to do two things: a) fix a model that's not deforming correctly based on weighting alone and/or b) add some movement specific deformation to enhance the rigging. Anyhoo, here's the vid:

Maya/Rigging: Pose Space Deformation from zeth willie on Vimeo.

Saturday, April 02, 2011

a basic intro to IK spine type setups (IK spline/Ribbon)

Here are a couple of videos that start to outline a couple of different approaches to IK "spine" systems, how they work and what are the pros/cons of each. The two main things are the IK spline setup (video 1) and the ribbon spine (video 2). Again, no great detail (they're both a bit tedious to build), but enough to get you started in looking for more info.
BTW, the tutorials I mention in the videos are 1) the "divine spine" in vid 1 can be found at http://www.peachpit.com/articles/article.aspx?p=102262&seqNum=4. In the second vid I mention 2) Aaron Holly's videos (http://www.fahrenheitdigital.com/dvds/rigging/feature-animation-rigging-dvd.php) which may not even be available any more (I've never actually seen this specific topic covered by him, though I've seen other stuff and he's awesome) and 3) Jose Antonio Martin Martin's tutorial on Creative Crash (formerly HighEnd3D) (http://www.creativecrash.com/maya/tutorials/character/c/ribbon-spine-rig). I never noticed the comments before now where everyone's referring to Aaron's videos. Funny (though if he's directly ripping Aaron's techniques, he should at least credit him, IMHO. Just saying).


Maya/Rigging: intro to IK-type spine setups part 1 from zeth willie on Vimeo.


Maya/Rigging: intro to IK-type spine setups part 2 from zeth willie on Vimeo.