Tuesday, September 29, 2009

Technical - s'more scripts

A couple new scripts and some slight revisions of previously posted ones. First the old . . .
zbw_attributes.mel (rt_click "save as" to download)
Previously, I had a color slider just to change the color (via color override) of multiple controls at once. I've added some new stuff (or rather I made a different script and added the color stuff to that). Basically, this script will lock or hide (or unlock/unhide) all or any of the standard tranforms from the channel box. So for an FK controls that just use rotation, you could select all of them and lock and/or hide all of the tranlates, scale and visibility. The color stuff is also here, but in canvas format instead of slider format. The slider was just a bit too random for my taste.

zbw_playblast.mel
Same playblast script that was up before, just changed the background toggle to a canvas format for ease and added green so you can quickly key a test playblast into your comp or storyreel.


zbw_randomSelection.mel
I'm working on a job that requires me to have LOTS of objects in the scene and mess with them a bit to add a bit of randomness, so I wrote two quick scripts. This one will take a selection of objects and randomly remove a certain percentage. So if you wanted to change the shader on some objects or offset the animation on some objects, you'd select them all, then run the script and remove whatever percentage of them and go for it as a subgroup of the whole. This runs a random check on each object vs. the percent you enter.

zbw_randomTransform.mel
This script takes a selection and performs a random transform on each object based on the info you enter. You can do translation, rotation or scale (or all of them) either in world space or based on the current position. It cycles through the objects and calculates random values for each attribute for each object, so for lots of objects it may take some time. The example below was 2500 objects and 6 attributes and it took a couple of minutes. But I've had lots of situations where this would be useful, so I thought I'd script-ize it up.

As always, the code is a bit crude at times (no dummy checks on object types, etc). Maybe I'll clean it up later, maybe not ;)

The basis for the randomizing scripts was something like this:

video
As I said, there are about 2500 objects in the scene (placed by hand). I used the selection script to select a few squares here and there to change shaders to dirty up the mosaic. I wanted the pieces to blow away (based on objects in the 2d comp) but didn't want to deal with dynamics. So The random transform script was used to add a key frame to each object. Basically this whole animation is two keyframes on each object. One in place and one with the random transform script. I then selected a few and offset those two keys a frame or two a couple of different times. Took about 5 minutes total (2 of which were waiting for the random calculations). Not perfect, but quick and dirty (like I like it).

Monday, September 7, 2009

OMG - The Needful Head is available!

How could I have forgotten? Redoing a couple of jammy's on the site, but The Needful Head is now available on Amazon.com! Really shameful lack of shameful self promotion by me! Let me correct that. . . .
Here is where you can buy the DVD. It's nice. No really. There is a little making of section (mostly for my family, so they can see what I do) and you can listen to Halli's music and read the original book and there's a commentary and all kinds of other great stuff. (actually I think that's it).
You can also direct download it, too. Actually all of the options are here. If you want to purchase the institutional version (?) I strongly encourage that, too. :)
We thank you for your support . . . (Bartle's and James wine coolers anyone?)

Some more work doodles - vids soon

I'm actually in the process of figuring out how to get some demo videos up with good quality. My animation class is starting soon and I'm gonna put some of the stuff (or least Related stuff, hopefully animation, modeling and rigging vids) up here as videos, probably through Vimeo. Work has kept me really busy, though. I'll post some of the work stuff up here soon, too. Have bunches of it from the summer, but too lazy to pick it from my clients. Anyways, here are some more random doodles.
BTW, Richard Bailey is working on a new series over on his blog. Good stuff as always from ol' Richy.
As always, click for larger.
really no idea what this is. Maybe related to Dan Simmons' "Ilium". Liked that book. "the Terror" too.
I'm thinking about an animation about a science experiment gone wrong. These are some prelim doodles.
Been watching some physics lectures from Stanford on YouTube. I'm a nerd, this is Prof Susskind
no idea, but somebody pissed at something.

Tuesday, July 14, 2009

Work doodles from June July

Been Working a lot in the past month or so. Which, of course, is good. But leaves less time for doing other stuff, like fun things for the blog, Ilksville, Psychemy, and some more tutorials for my NYU class. But I get paid (not paid like Eric B. and Rakim "Paid in Full", but paid like normal slobs like me get paid), which makes up for a lot.
Because I was doing quite a bit of rendering, I had some time to doodle. Thought I would throw some up here. These are just things on scraps of paper while I'm sitting around. . . (click any of em for larger)

roller ball pen, guess I was into sports that day
pencil
pencil, rock n roll!
pencil, shmarmy dude
pencil, one of the guys I just worked with had impossibly good posture
sketchbook pro
sketchbook pro, no idea what this is about

I'm thinking about doing some "cel" animation, but i'm not loving the way Flash is drawing. Wouldn't want to use Photoshop and exporting things are a bit of pain from Sketchbook. Maybe I'll try drawing in Corel. I hear they have some animation layers/tools. Anyone have any ideas?

Friday, June 5, 2009

a few bits and bobs to start the summer

I've been pretty bad about posting with any regularity. Been a bit busy with the family and a lot of the things I've been working on aren't terribly conducive to interesting blog posts, some MEL scripting and playing around in XSI, Nuke, etc. Hopefully I'll get more up to speed this summer.
A few random things . . .

1) added a couple new things to my reel. Again. Not a ton of new stuff, just some 3d tracking stuff and some bits of the Nick stuff (which never got used). Here's a quick hit of a couple of the many Nick pieces we did. (FYI, I modeled a bunch of it, rigged much of it, and animated all of the first bits and some of the last bits)
video

2) Rich and I did another quick Ilksville thing, "half-shell smile". Trying to keep chugging along with it. It's tough cuz we've both been busy. Got one more cooking as we speak.
videolarger version here
BTW, congrats to Rich on his installation at the Artomatic show! If you're in DC in the next month or so, go and check it out!

3)Here are a few of the doodles from Corel Painter that I've been playing with.

click for larger

4) I've also gone back to modeling a bit more of the Psychemy guy. As I've talked a bit in my animation class at NYU about modeling for animation (however briefly), maybe I'll post up some of the modeling process for the body and such.

5) After a big of a hassle with distributors, I've finally reorganized things to get The Needful Head DVD a proper home. It may take a few days to for things to get sorted with Amazon, but once it's all working, rest assured, I will pass along all the relevant links.

Thursday, April 23, 2009

Technical - 3 channel dirt passes

Another technical post about using multiple channels in one image to allow more control in post production, this time with dirt maps (I know some people/software use the term to refer to ambient occlusion maps, but I'm talking here about actual dirt or grime).

The basic premise here being 2-fold: 1) the use dirt maps to create a more realistic look, rather than worrying about bump maps and the like, and 2) to be able to use generic dirt maps to create a bunch of different looks in the final render by combining them in one rgb pass.
I'm going on the basic premise here that often in production you don't actually need bump maps to rough up a surface. Adding dirt to the specular/color components is often just fine to create a rough surface look. This technique is actually applicable if you do use bump maps, you'd just add another pass of three combined bump maps in the color channels (more later).

So what am I talking about? Let's say we have the following image:
(click for larger images)
and we want to dirty it up to get something like this:

Just a bit of dirt to give it some texture or character.
If you knew what you wanted, etc. you could just add the dirt maps to the spec shader, tweak it out to get what you want and render. But the way I'm approaching this allows for loads of changes in post and requires little thought in 3D. This isn't necessarily for every shot or production, but its really useful when you just want to generally dirty stuff up.
Here's how we do it, again using multiple channels to hold multiple images.

This scene in Maya is super simple: Just a sphere and some lights.

I've got three different dirt maps that vary in the size and "frequency" of the dirt (it's basically just black and white images of splotches and splooches if you know what I mean). Here's what they look like mapped onto the sphere:

So I have 3 B&W dirt maps. I map them individually to the R, G and B color channels of a material or surface shader. (one to R, one to G, etc) This will give me a false color image with 3 different images in each of the color channels which I'll pull apart later in post. I also have my spec shader and my color shader.

If I was clever, I would have done the combining of the images in photoshop to get something like this:

Then I would map each channel to the corresponding channel in the dirt material. But I'm wasn't clever here and used each image separately in Maya. No real difference, just more parts.
Then I'll set up my render layers. One for color, one for spec, and one for the dirt.

And here are my renders. Again the dirt will be pulled apart to give us more options in post.

So onto Shake (though, of course, After Effects or Nuke or whatever could be used). . .
The idea is that I'll use each channel of the dirt map separately and get 3 dirt maps from this, which I'll use to muck up both the color and the spec passes.
The basic operation I'll use in Shake is a "reorder" which just puts one channel into all of the other channels (ex. red channel into red, green and blue channels). I keep the alpha. I use a "compress" node to dial up the blacks and whites to the values I want (like transparency but just with color).

Here is the comp below. I've pulled two of the channels of the dirt on the left side, multiplied them together (we want only the dark bits) and multiplied them to the spec pass. This roughs up the spec. Then on the right side, I just copied the dirt nodes, changed the compression a bit and multed them to the color pass to dirty that up a bit also. Then I "added" the dirtied spec to the dirtied color.

Here are the passes once I've tweaked them in Shake (color, spec, dirt):



Once again, here is the final result, with the spec added to the color and both roughed up by the dirt maps.

I know it seems like a lot of work to do this in post rather than doing it in the render, but in fact, once you get the hang of it, it's actually easier and certainly more flexible. For example, I can instantly change both the look and intensity of the dirt right in Shake.

If I wanted to include bump mapping in this, I would simply create three bump nodes in Maya with a basic texture and map the color ouputs of those into the R, G and B channels of another shader (say, a surface shader) to get a "super bump" pass. I could then dial up and down any of the three bump maps in post the same way.
As I said, this isn't always the most efficient technique for every job, but if you export out the dirt map shader, you can instantly add grunge to any object you like and then have some more specific control in post.

Thursday, April 2, 2009

Watch out for the render ninjas . . .

On ur computrz, ajustin ur gamma.