
Dave Girard's 101 Autodesk® Maya® Tips is now available in Kindle, interactive iPad edition and DRM-free EPUB/PDF editions. Work faster, cry less. Read more about the ebook.
Topics by tag:
Recently published articles by Dave G:
I recently built an OBJ sequence exporter for someone who needed it for After Effects, which doesn’t yet have Alembic support, so I’m posting it for y’allseses to grab if you need it too. There’s no good reason to use OBJ sequences over Alembic, which is about 12,904,731 times better for animation export, but there are still apps like AE that don’t know what the future looks like. Download link. It exports selected geometry according to the frames set in your animation rendering settings:
And it works perfectly with my OBJ Sequence Importer for Maya.
0 notes | Permalink
After getting tired of manually setting project paths for files that were already open, I made a simple script that does exactly that and then prompts you to reopen the file so assets from relative paths load correctly:
The script assumes that you are using the standard project/scenes format, with the currently open file in the /scenes/ folder. There are some scripts out there can monitor your Maya session and do this automatically but I personally hate scripts that do stuff for me with added polling. Maya is a fickle beast, so the last thing I need is another thing adding potential instability. So, grab it here lest ye waste more time by doing it manually.
If you want the script shown in the video that opens your active project images folder, grab that here.
2 notes | Permalink
Frequently, when you work in Maya, you want to create a flat colour to mix with a utility like a blendColor or Multiply/Divide. Now that I use the Node Editor for all my shader networking needs, I want to type “Constant,” Nuke style and many Maya users are probably wondering why Maya doesn’t have a simple constant colour swatch. Well, it does. For anyone accustomed to using a linear workflow, the Gamma Correct is basically a Constant swatch with gamma controls:

This is obviously a very basic tip but it took me a while to think to use the Gamma Correct instead of a flat ramp, back when I was learning the ins-and-outs of Maya. Maybe this will save you some time.
1 note | Permalink
So I’ve updated GoP with some handy changes which bring it up to version 2.0 (download link). If you don’t know GoP, it’s a script that lets you send selected objects in Maya to Photoshop for texturing. The original version used the OBJ format as a go-between but 2.0 now uses .dae COLLADA format, which has some nice advantages – most notably, camera support:
As you tell, that has great potential to be used as an aid for matte painting or texturing with specific angles in mind. By default, Photoshop opens 3D files as square, but you can get the correct cropping for your scene by matching the aspect ratio or dimensions of your Maya scene:
As you can see above, this also supports basic coloured Maya lights. I can’t claim any credit for this stuff. It’s just Adobe’s excellent COLLADA support that’s doing all the work. You may need Photoshop CS6 for camera import support but meshes will import fine. Anyway, this should come in handy as Adobe adds more and more 3D features to Photoshop Extended.
0 notes | Permalink
Sky Boy, 2012. Recent painting mixed with inket canvas print. Made and rendered the backdrop image in Maya/V-Ray with post tweaks done in Nuke.
3 notes | Permalink
If you do compositing in Nuke, you know it can be annoying to get camera data in and out of a 3D package like Maya or Max. Imported camera data quickly gets outdated when new frames are rendered, which forces you to jump back and forth between your 3D app and Nuke. Fortunately, yesterday I discovered a script for Nuke that makes it dead simple to generate camera data from the camera metadata embedded in V-Ray’s EXR-rendered images. After installing the Python script as a menu item, just select a V-Ray EXR render and the script will make a camera node that you can plug into a 3D scene template. It’s amazing:
It even works with animations, meaning you never have to jump back to your 3D app to get new camera data – just kick out a new camera node for the newer EXR frames.
So, here is how you install it. Grab the Python code from the Pastebin site here. Paste it to a new plain text file in your Nuke scripts folder. In OS X and Linux, that’s ~/.nuke/ (where ~/ is your home folder). OS X users can make short work of it by doing this in the terminal after copying the code:
pbpaste > ~/.nuke/createExrCamVray.py
pbpaste is a command line version of a pasteboard paste command in OS X (pbcopy does a copy if you want to pipe to the clipboard). Next, add the call to the script to your Nuke menu bar by adding these lines to the end of Nuke’s menu.py file (For me, it’s located in /Applications/Nuke6.3v4/Nuke6.3v4.app/Contents/MacOS/plugins/menu.py):
import createExrCamVraym = menubar.addMenu("V-Ray")m.addCommand("Create Camera from EXR", "createExrCamVray.createExrCamVray()")
The code is wrapping on my blog site, so it’s better to grab it from this text file. Then, once you relaunch Nuke, you’ll be set up.
5 notes | Permalink
I’ve worked in a variety of computer graphics fields and RAM has always had a big effect on all of them. My first photo-retouching job had a highly exotic Mac PowerPC 8100 with 144MB of RAM – that memory cost well over $10,000 at the time. While it may sound less crazy to people who worked on old render farms, it was alarming for a desktop computer and I went home to my still-expensive 16MB of RAM machine. Thankfully, RAM no longer costs $60 a megabyte but confusion around optimal RAM configuration still abounds. You see a lot of people asking about optimal RAM configs for their design or 3D box or laptop, and the general rule of thumb is “the more, the better.” But when you get into limited budgets, limited laptop RAM slots and the need to match RAM in sets of three for triple-channel memory for Nehalem systems or sets of four for the quad-channel memory of Sandy Bridge/Ivy Bridge computers, things get more complicated. So here is a brief guide to the best amount from my experience as a Photoshop retoucher, print art director and 3D artist who has done his share of motion graphics, NLE work and video compositing.
Optimal base RAM for 2D artists
I art direct magazines and do all my own retouching for the mags, and work on some pretty large images for my canvas art prints and other photographers’ work. When working in a design context, I’ll have Indesign, Illustrator and Photoshop open with the usual mail/browser/iTunes running and usually safely under 8GB, unless I’m working on a very large image with a ton of layers in the now-64-bit Photoshop. With the OS X memory overhead (Mac OS X and Windows are pretty similar now in this regard), an ideal amount is about 12GB from casually monitoring my memory throughout the years. Obviously 12GB is a weird one to buy, so 16GB is the safer bet but 8GB is fine if you’re just doing web design on smaller images or print layout and logo design. 16GB is better for a lot of layered Photoshop work but, if you are stuck with an 8GB machine and have a huge 16-bit multi-layered image, just make sure your PS scratch disk is a fast one.
Optimal base RAM for 3D artists
3D work is a lot more demanding of memory than desktop publishing is, so 16GB is the bare minimum you should have for a 3D system. Modern laptops should all be able to stock this amount and, for desktops, it’s really the lowest bar to set. There are ways of conserving memory when doing rendering (render proxies, instances, etc.) but memory can vary wildly depending on your scenes. Since I render and composite 32-bit images that are upwards of 16-megapixel print-resolution, I frequently have Nuke, Photoshop and Maya open and, on my 16GB MacBook Pro, it is still very comfortable with a minimum of virtual memory paging. But I often need more than that so my desktop 3D machines always have 24GB as a base RAM amount. For a triple channel memory like the Nehalem Mac Pro, this worked out well – six sticks of 4GB. For current-gen Sandy/Ivy Bridge desktops, you need to install memory in sets of four to get optimal RAM speeds, so my optimal RAM amount jumps up to 32GB (eight sticks of 4GB or four sticks of 8GB). That’s for working machines – for my headless Linux render boxes, they have 16GB and don’t need more since my typical 3D scenes aren’t massive.
If you work on very large visualizations or animations with 50+ million polygons, jump up to something safer like 48GB or 64GB as a minimum for Sandy/Ivy Bridge hardware. But, if you’re just a student learning with some simpler Maya, Max or Cinema4D projects, 16GB of RAM will do fine. Keep in mind that these multiples of four are for Sandy/Ivy Bridge machines and they will fluctuate for newer hardware that will come out and have different configurations of memory sets, so research what is best for those newer machines.
Optimal base RAM for video artists
Video is the field I know the least about but I still know a fair bit about it since I toyed around with motion graphics before deciding it wasn’t for me. I used After Effects but I now use Nuke for my compositing for video. I’ve used Final Cut Pre-X and now use Premiere Pro CS6 for my basic NLE needs. Based on this experience, I’d say that 16GB is a bare minimum for simpler NLE work on HD footage and, if you’re compositing 32-bit multi-pass HD-res EXRs in Nuke, you might be fine with that but you probably want to go slightly higher. After Effects seems to have a render bug that gobbles and doesn’t release RAM so, whether or not you want to feed that bug is up to you.
Monitoring your RAM usage
These numbers are based on my varied experience and monitoring of my memory usage with OS X menu bar utilities like iStat Menus (shareware) or atMonitor (free). I use iStat Menus and it’s pretty handy:

There are memory monitoring tools built into all OSes and I use top or htop over ssh to monitor my Linux machine CPU usage, but I like to have CPU load, network data and memory usage immediately visible on my working machine. There are plenty of these for the Windows taskbar but I’m not the best personal to ask about those so Google around to see which is best if you’re looking for one.
Hope this info helps some people.
7 notes | Permalink
For a while now, I’ve been mixing V-Ray skies with some HDR environments and was doing it in Nuke because I didn’t realize it was doable in Maya – that is, until Vlado at Chaos Group suggested using a Blend Colors utility. I should have thought of it myself but sometimes you forget just how good V-Ray integration is within Maya, and assume something like that won’t work. But it does, so here is a quick rundown of how to mix V-Ray sun/sky environment with a HDR Environment Light Image:
The only trick to this workflow, as shown in the video above, is to disconnect one of the sun/sky environment connections in the Render Settings dialog and then create a file node for the HDR. This ensures that V-Ray will make the proper VRayPlaceEnvTex spherical UV projection. You could do this manually but it’s just easier to have V-Ray do it automatically when connecting it to the environment slot. Then you make a Blend Colors utility, drop the file node and the sky into the two slots and then MMB-drag the Blend Colors utility into the Environement slots. If you would rather have the lights in your IBL added to your sky, use an +/- Average utility to have the IBL pixels added to the sky instead of linearly blended. Make two Input 3D connections (the 3D in this context is not XYZ, it’s RGB) and then connect the sky and file nodes to the inputs in the Hypergraph or Node Editor:

Then you will have a bright sky and added IBL highlights:
0 notes | Permalink
I’m doing a quick render to use as the base for a painting and wanted to add some dust to my scene to cover the rubble and earthquake. It’s all pretty draft quality work but notice how quickly a dust layer comped in Photoshop adds a lot of realism to a pretty sparse scene:
The process is pretty easy: duplicate your render layer with everything in it, create a render layer override that sets all your objects to your Lambertian dust material and render. Then you bring it into Photoshop or Nuke and paint in the dust. Add a material ID pass to make object masking easier and you’ve got a great little workflow. Since dust and snow can gather to look a lot like ambient occlusion, you can try using an ambient occlusion pass as a mask while painting in your dust layer:
1 note | Permalink
Just kidding – happy Urdu Festivus, one and all. Here is your gift from me: a beefy update to the Facer polygon toolkit. I whittled it myself out of unloved dreidels.
Here’s a rundown of what’s new in 3.0:
Be safe and remember that a punch is not a good way to win a family argument. A kick is best.
0 notes | Permalink