Saturday, April 3, 2010

Frame Checker 2.0

This is the first of my Maya independent python scripts. After authoring a few tools that would really be best suited for use independent of Maya I learned Qt and used py2exe to create a standalone version of the frame checker. I had originally written Frame Checker in python anyway, so I literally just recreated the ui in Qt Designer and then setup the signal connections. Using Qt for the first time, I found that signals and slots are a lot like events and listeners in as3, so it was a piece of cake to get used to, not that Qt is really tough to wrap your brain around in the first place. PyQt4 and Qt Designer were really awesome to use, and I'm sure this won't be the last of the tools that I port to Maya-independent-land.

You may notice that the GUI now looks Nuke/Maya 2011-esque and that's because I went with the 'plastique' style. I like dark colors, as you probably can tell, and the other available styles didn't seem to handle the dark colors as well. Another added bonus is that the .ui files that I created with designer will be ready for use in Maya 2011, can't wait for that 8).

Still gotta get together a unified location for tool docs, but I'll get to that later. Expect the batch file generator some time in the near future though... For now you can grab the new frame checker at
To use it just unzip somewhere and run the exe.

Monday, March 22, 2010


boSmear 2.0.1
  small bug fix - the loop connecting verts to lattice points would sometimes be offset incorrectly

If you have access to boSmear go ahead and grab the update!

Saturday, February 27, 2010

Frame Checker

I had a util in previous versions of boUtilities that found missing images in a sequence. Super helpful! except it only worked with 4 frame padding and a strict image.#.ext format. So I've updated boUtilities and provided a much more flexible python version of the frame checker. The new version allows automatic or controlled frame ranges and padding. It works with a much wider range of sequence naming formats and provides some useful output such as frame range summaries on both found and missing files. It was a fun lesson in more advanced reg exps (like using lookahead assertions), and there are still ways it can be improved, but for now... feel free to grab! (2.3)

Tuesday, February 23, 2010


So I've been updating things silently, and realized it'd be best if I post what and when I update on this blog. Here's some recent things:

boUtilities 2.2:
  Added new utils!:
    Lock File Texture Paths
    Unlock File Texture Paths
    Find PSDs
    Find Multi-Shader Geo
    Render Stats
    Z Depth Shader
    nCloth Preroll Utility
  Changed the layed to be tabbed, for space reasons (it was growing)
  Separated some larger utilities into companion scripts (currently 6)
    Check the description for all required/companion mel scripts

Triggers 1.3.9:
  Referenced objects can now be trigger objects
  Mac compatible

Ghosting 1.5
  Selected time range is used to create multiple ghosts at once
  Selected keys are also used
    (ghosts are created at each selected keyframes time)

As always, updates are available on my scripts site!

Monday, February 8, 2010

Z Depth with Maya and Nuke

So large environments just don't look right without atmospheric depth, and z depth outputs are usually the easiest way to get such an effect. I figured I'd make the whole process easier by automating the creation of z depth shaders in a scene.

The shaders use samplerInfo nodes so they're compatible with pretty much any renderer in maya. The other advantage is that you get motion blur, depth of field, and the same antialiasing as the beauty passes rendered into the z output, so the results are very accurate. There are also a lot of nodes for tweaking falloff such as a remapValue and blendColors node, so you may want to look for them to get more precise control.

Anyhoo... with one button you'll be able to apply z depth shaders to all objects, while preserving displacement shaders as well as materials with transparency. Give it a try and let me know if it helps. I've also put together a 15 min tutorial on how to use it, as well as comping the outputs in nuke, so check it out!

#1 Continued

So after more testing with the whole pound one thing (#1) I've discovered that its use goes far beyond checkboxes. In fact I think every GUI control can use it, from floatSliderGrps to textFields. It simply returns that control's value (usually the -v flag). So for instance you can use a floatSliderGrp to change an attribute by making the -dc or -cc flags "setAttr someObject.someAttr #1". Here's a really simple example that you can run in the script editor.

textField -cc "print #1";