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.

scripting your "bind" joints into a Quick Select Set

As I mentioned in the videos in the previous post, here is the basic idea of how you'd create a Quick Select Set from your "_BIND_" joints. (thought I'd break it out into a separate post to make it easier to read) . . .
{
string $bind[] = `ls -type joint "*_BIND_*"`;

sets -text "gCharacterSet" -name BindJoints;

for ($obj in $bind) {
    sets -edit -forceElement BindJoints $obj;
    }
}

(it's MEL, btw)
The weird bit of that is the syntax for creating a QSS (sets -text "gCharacterSet" etc). Not sure what that's about . . .
You'll have to change stuff for your own setup (the name you're looking for), but otherwise it's pretty straightforward. It looks for joints, then within that selection, looks for the name you've got (in my case "_BIND_") and adds those to a QSS called BindJoints. I find the QSS a bit easier to use for this purpose than a regular set.
Now if I want a selection that isn't easily grab-able (like in the ribbon spine) I can just grab the QSS from the "Edit" --- "QuickSelectSets" menu and then grab my geo and off I go to binding-world. I'll usually end up adding some code to remove any joint that I don't end up wanting in the bind afterwards (though I try to name things with this in mind, so the end joints on toes, for example, WON'T get the "_BIND_" added to their name, as I don't need them bound.) I'll just add this code to the tail end of any rig I'm scripting (or as a stand alone chunk of code for a custom built rig) and the QSS will be there waiting for me every time I build the rig or want to bind/unbind. Definitely makes things faster to test things out in your rigs. Hope this helps!

Cleanly transferring UV's to a skinned model

Why does the transfer attributes node sometimes resist getting deleted on a rigged model? Doesn't it know resistance is futile?
I've had it happen many times that a UV set has to get transferred onto a skinned model via transfer attributes operation. And then refuses to go away. Which sucks cuz cleaner history is better. This a quick vid about why that happens and how to kill that history. Thanks to Christina Sidoti for pointing it out to me!

Edit: Oh yeah . . . Here's a script to help you do it faster! Download it HERE (rt-click, save). Put it in your scripts directory, start Maya (or type "rehash" in the MEL command line if it's already open). Select the obj with the new UV's, then the rigged object with the old UV's and type "zbw_cleanTransferUV". (catchy name, right?). It seems to work fine for anything I've tried it with. If you've already got some UV changing history (polyTweakUV or transfer UVs, etc) you can delete those, you're new UVs are coming straight from the source and any previous tweaks will get weird.

Carry on!


Maya/Rigging: Cleanly Transferring UVs to a Bound Rig from zeth willie on Vimeo.

Sunday, March 27, 2011

Creating an inky bleed effect in Nuke with Time Offset

Here's a quicker tip/trick related to Nuke. A really cool time offset effect that's actually way more complicated than it looks. This time it was for a job I was actually on, though we didn't actually end up using it for the final, as far as I know.
The gist of the technique is to use a time-offset node to take a frame that has literally just been written an instant before, add some effects and merge it back into the frame that's about to be written. So you get a cool trailing effect that iterates on itself, anything in the past growing while keeping a tight "leading edge". Not too crazy once you've seen it, but pretty hard to explain.
Anyways, Andy Jones at Method NY showed me this (he actually just did it and then had the unenviable task of explaining it to me once I took over the comp). Hopefully you understand it better than I did the first 30 minutes or so.
Cheers.


Nuke/Compositing: Inky Time Offset Effect from zeth willie on Vimeo.

Creating custom UV pass in MR and using it in Nuke

That's a mouthful.
On a job recently I got some secondhand Nuke goodness when a lighting TD showed me how they were using UV passes from Maya to "auto-track" some footage into their shots (I wasn't on that job). The basic issue was that a lot of footage had to go onto screens in the spot and some of that footage wasn't ready or the client was changing their mind about what the footage should be. So, in short, any manual trick to the get the footage locked onto the CG screens required redoing some additional work in post, in terms of tracking, etc. Additionally, sometimes late notes were coming in about animation changes to the screens themselves, which meant that there was no option to render "in-camera" in Maya, it had be done in post.
 So the simple solution was to render the screens with properly adjusted UV's as UV passes. This automatically locked the footage in place and wasn't dependent on any additional work once the comp was built, even if the footage had to be completely replaced or the animation of the screen itself changed. Pretty sweet. While I'm sure some people think this is obvious, I didn't (and neither did a lot of the other people I was working with. So I'm not the only ignorant one.)
In any event, I also realized that I never really followed up on any render pass stuff in Maya 2010/11, so the first vid below is basically what we're trying to do and how to get custom color passes out of Mental Ray (as opposed to the "regular" passes that are pre-set, like reflection, diffuse, etc). I use this method to get out RGB matte passes and a UV pass in EXR format.
The second video is how to actually use the UV pass in Nuke to get the basic effect we're looking for. Nothing crazy, just basic use of the UV pass.



Maya/Mental Ray: Custom Color Passes (2010) Part 1 - UV Pass from zeth willie on Vimeo.


Maya/Mental Ray: Custom Color Passes (2010) Part 2 - UV Pass from zeth willie on Vimeo.