Rigging for Education: Caroline and Henry

Caroline and Henry are now available for download at Cogswell’s website

After completing the Jaguar and Dragon, the rigging project continued to grow at Cogswell and has since been named Project Avatarah. I continued my work in developing more character rigs and after working on a couple of simpler bipeds that were styled more along the lines of popular characters such as Norman and Hogan, we went into designing the next set of bipeds with a higher-level design geared towards detailed acting and subtlety in motions. Caroline is the first rig we developed with this mindset and includes features such as bendy limbs, proportion adjusters, IKFK spine, breathing controls, and a toony facial rig capable of squash deformations.

Continue reading

Playblast completeFilename flag in 2012…

I’ve been working on updating our animation library tool at work for use in Maya 2012 and noticed an issue with properly generating thumbnails. After scouring the internet for awhile, I found out I wasn’t the only one experiencing an issue with the playblast command. When using the completeFilename flag (to save an image without zero-padding), the image won’t save, and Maya raises no warnings or errors about it.
Fortunately, I came across a post from Nathan Horne, showing how to generate thumbnails using the Maya API commands. I added some additional checks to the original snippet:

def writeThumbnailFromView(filename, compression, modelPanel=None):
    #Import api modules
    import maya.OpenMaya as api
    import maya.OpenMayaUI as apiUI

    #Grab the last active 3d viewport
    view = None
    if modelPanel is None:
        view = apiUI.M3dView.active3dView()
        view = apiUI.M3dView()
        apiUI.M3dView.getM3dViewFromModelEditor(modelPanel, view)

    #read the color buffer from the view, and save the MImage to disk
    image = api.MImage()
    view.readColorBuffer(image, True)
    image.writeToFile(filename, compression)

So far it seems more efficient for my needs than the playblast command, as my tool is now able to avoid capturing the wrong viewport, and I can control the image without messing with render settings.

Rigging a Scorpion Mech: Part Four, Progress on Proxy Model

Reduced model to about 12k polys. The original model is about 330k.

Positing a minor update. With the rig completed for the spine and tail, today I mostly focused on creating a proxy mesh for the newly rigged areas. A handy tool I like to use when building proxy models is zooSurgeon. This neat script takes a skinned mesh, breaks it down to solid segments, and constrains the segments to influencing joints. I incorporate this script in my workflow by first skinning the reduced mesh using solid weights (one joint per vertex), and then running the script to get my true proxy. For me, this is efficient because I can preview the behavior of the proxy prior to breaking down the model.

Continue reading

Rigging a Scorpion Mech: Part One, Prepping the Model

I thought it be interesting to document my rigging process from start to finish using a fairly challenging model. I’m not going to push this series of tutorials as an “ideal” way to rig such a machination, but it will show one approach. I’m going to rig a scorpion model I came across in the forums of CGTalk (original post here). The artist, Nicholas Silveira, modeled and rigged the creature and was nice enough to share the bare model to give anyone else the oppurtunity to rig his creation.

Continue reading

Tips & Tricks: More memory for 3ds Max

here’s a bitmap error that comes up in 3ds Max when using exceedingly large texture files or fairly long image sequences in the scene. The error usually brings up this window:

I ran into this error recently with a rig that’s using more memory than 3ds Max’s current threshold. I did some poking around the Autodesk forums and came across a solution that seemed to work. Continue reading