Skip to main content
  1. Posts/

Rigging Showcase

Table of Contents

Procedural Rigging
#

At several studios I’ve developed in-house procedural rigging pipelines similar in structure to my opensource Mpyr, as well as using HIK in Maya and Motionbuilder.

These systems were used to rig many characters across many productions for Blizzard Cinematics, as well as most of the creatures in Starfield.

A space explorer stands in front of the large, giraffe-like 'Aceles' creature from 'Starfield'
The Aceles, one of over a hundred creatures I rigged and implemented for the game Starfield. Modeling, texturing, animation, lighting and fx done by colleagues. Skin weights on some creatures was performed by outsource vendors.

I’ve also created mocap loading, animation export, outsource ingest and batch tools, and a host of other tools mainly written in Python and using PyQt. At Blizzard I was heavily involved in automated caching and publishing of offline data to feed Renderman, at Bethesda I was involved in pipeline support for a variety of standalone tools and other DCCs including 3dsmax, MotionBuilder, Perforce, Substance Designer, and Blender.

My rigging/simulation demo reel from Blizzard Cinematics

Tools
#

FBX
#

I’m familiar with both MotionBuilder scripting and using the FBX API. At Bethesda I created a suite of ingest, loading, and publish tools to move FBX data into and out of the animation pipeline. I also used the FBX API to create audit tools that were used to scan the vast source data set and find a variety of issues, from un-optimized skin weight to incomplete morph data. I also created various tools and utilities to query and edit fbx files directly, allowing automated tools to find, fix, and prevent issues without ever manually opening a DCC.

PyQt
#

Over the years I’ve written quite a few tools using the Qt/PyQt framework. The “UV Trim Tool” allowed fast placement of re-usable kit textures called “trims”, and made heavy use of QGraphicsScene. Over the years I’ve made hundreds of rigging tools, animation tools, and standalone studio apps used PyQt and Model/View design patterns.

A visual mockup of where 'trim' textures may be used in an environment
Starfield’s heavy use of ’trim’ textures was sped up with a fast UV editing tool written in PyQt.

Crowds
#

A horde of demons pours across a landscape in 'Diablo 3'
Swarms of bugs, armies of demons. To tackle these issues I developed a procedural bridge between Maya/Houdini and PRman that could support the choreography and variation needed for several cinematics. Agents’ data could be adjusted individually or in groups, and supported full shader overrides and level of detail with all geometry loading deferred until render time.

Plugins
#

Sometimes the best solution is a custom plugin written in Python or C++.

An alien pod flaps through the atmosphere in 'Starcraft 2'
These waving tentacles and snakelike bodies required special deformers written in C++ that could send noise and sine waves down the UV space of a surface. For these rigs I developed several plugins that allowed animators to easily blend waves of motion down the bodies of the characters.
Arthas stands in front of an icy landscape in 'Wrath of the Lich King'
The hair on Arthas required delicate motion that, at the time, wasn’t possible with Maya hair dynamics. A custom force using curling noise provided the right motion. FX artists used the same plugin to drive the motion of the snow. Built-in OpenGL visualization made tweaking the 3D noise field intuitive.

Curve Rigging
#

This simple, standalone tool was created for a freelance job rigging cable-driven medical equipment. It creates a flexible, rigged curve setup useful for cables, ropes, and even spines (with some adaptation). A variant of this setup was used to rig dragon tails, hydralisks, heat-leeches, and more.

BBarker/CurveRigger

A tool to rig curves in Maya, including a simple UI. Creates a rigged joint chain (and optionally binds in several ways), with a flexible rig that works for cables, snakes, spines, etc.

Python
0
0

Computer Vision
#

At Bethesda I created image analysis and clustering tools to identify duplicate texture data, as well as a standalone PyQt “Photos” app style UI that helped artists to quickly “de-duplicate” almost 20% of the texture data set based on perceptual analysis of texture data. I also used OpenCV to identify problematic texture features, as well as generate coverage data for a large amount of “decal” textures.

More details on this available here:

Find the Artifacts!
How Computer Vision Helped Shrink Starfield’s Footprint