Posted on Leave a comment

MeshController 2.0.0

I’m happy to share that MeshController 2.0 is now ready to use!

Version 2.0 introduces a redesigned, centralized data-only architecture focused on better playback performance, more reliable viewport interaction, and improved support for production scenes with multiple rigs.

In my test scenes, the new architecture improved playback performance by up to 50%. Results can vary depending on scene complexity, geometry density, and Maya’s evaluation mode.

Centralized Data-Only Architecture

The previous version relied on additional hidden mesh objects to store patch data. In 2.0, those extra meshes have been removed, and patch information is now stored directly on a centralized overlay node.

This helps reduce scene clutter, avoids unnecessary mesh evaluation, and improves parallel playback performance.

GPU-Backed Viewport 2.0 Rendering

Patch controls are now rendered through a GPU-backed Viewport 2.0 overlay.

Mesh data is extracted during Maya’s normal draw-preparation stage, while retained GPU vertex and index buffers help reduce repeated rendering work.

The overlay follows the driver mesh and supports animated or transformed geometry without requiring separate visible patch meshes.

Depth-Aware Interaction

MeshController now compares viewport depth between overlapping patches and tracked ShapeControls.

When controls overlap on screen, the one closest to the camera receives the hover state, making interaction more predictable in complex rigs.

Hover, selection, and manipulator states are handled independently, helping prevent accidental patch selection while using Maya’s move, rotate, and scale manipulators.

BVH-Accelerated Patch Picking

A top-level spatial index is now used to reduce the number of patches tested during mouse movement.

Instead of checking every patch, MeshController only evaluates nearby candidates, improving hover responsiveness on rigs with large numbers of patches or high-density controls.

Multiple Viewports and Overlays

Version 2.0 supports multiple model panels and multiple overlay nodes in the same Maya scene.

Each rig can maintain its own driver mesh, patches, tracked ShapeControls, selection states, and interaction data.

The Mesh Control Manager also includes an Active Driver selector, making it easier to choose which overlay you want to edit.

Trackable ShapeControls

ShapeControls can now be added to an overlay’s tracking list without being bound to the driver mesh.

Tracked ShapeControls participate in depth comparison with overlay patches while keeping their normal standalone drawing and interaction behavior.

Improved Selection Mapping

Patches can be linked to separate selection controls through the context menu or the Batch Mapping dialog.

Name matching also supports customizable patch and target tokens, making it easier to map large groups of controls.

Discord Community

I’ve also added a Discord community link directly in the UI.

If you have questions, feedback, ideas, run into any issues, or just want to say hi, feel free to join and chat there.

Hope you enjoy MeshController 2.0, and thank you to everyone who has tried and supported the tool!

Posted on Leave a comment

What is interpBlendShape?

interpBlendShape is a custom Maya deformer, similar in purpose to Maya’s built-in blendShape deformer, but with surface UV interpolation, in-between support, and Bezier-style blending instead of traditional linear interpolation. It supports both meshes and curves.

The tool is designed for high-end facial rigging and special deformation cases where you want the deformation to slide across a surface while keeping the result smooth, clean, and controllable. In some cases, it can also help achieve a more graphic or 2D-style deformation look.

One of the most common challenges in facial rigging is handling large mouth shapes. Traditional linear blendShape interpolation can often produce unpleasant or unnatural in-betweens. With surface-based blending, you can focus mainly on sculpting the final target shape, while the in-between motion slides across the NURBS surface or mesh surface you provide.

In a traditional Maya setup, solving this kind of deformation can be difficult and inefficient. Workflows using UV Pin, 2D projection, or multiple built-in Maya nodes can become complicated and heavy, especially for production rigs. interpBlendShape simplifies this workflow into a single deformer, with TBB parallel processing and GPU acceleration to help keep the deformation fast and interactive.

Currently, interpBlendShape supports NURBS surface blending, where the target shape blends over the surface. You can use Cache Mode for significantly faster evaluation, or Live Mode, which allows you to drag targets and have them slide along the surface when targetOffset is set to zero.

The deformer also includes Bezier Blend as an alternative interpolation method when you do not want to use a surface. With Bezier Blend, you can create multiple in-between targets to produce a more rotational style of interpolation, which is useful for shapes like eye closing, eyebrow twisting, or other areas where you may not want to rely on many extra joints.

interpBlendShape also comes with the interpBlendShape Editor, a dedicated UI for creating, deleting, and editing deformations more easily. The editor supports real-time Maya synchronization and full undo/redo. Since the UI uses callbacks to stay synchronized with Maya, it is recommended to close the editor while playing animation, as deformation evaluation can trigger many callbacks and may slow down playback.

The editor also supports normalized weight painting, making it easier to split weights using normalize groups. In addition, mirror and flip operations for targets and weights are significantly faster than Maya’s default workflow, especially on higher-resolution meshes. During mirror and flip operations, unnecessary callbacks are suppressed to improve performance.

interpBlendShape is free for individual users. I hope this tool can be useful in your work, and feel free to contact me if you have any questions.

For more detailed technical information, including setup, attributes, and workflow examples, please refer to the interpBlendShape documentation.

You can download the sample file here:

interpBlendShape_example (4730 downloads )

Thank you!

Posted on Leave a comment

custom mesh controller rig maya C++ plugin

After the response to my recent demo reel, I’m excited to share what’s been going on behind the scenes — and to announce that I’ll be making this plugin publicly available by the end of the month.

The Idea

The concept is inspired by DreamWorks’ Premo rigging system — specifically the way controls sit flush on the character’s surface rather than floating around it as separate curve shapes. I first encountered this during my time at Oriental DreamWorks Shanghai, and it stuck with me. I’ve been working toward bringing that same idea to Maya ever since.

For those who missed the demo reel: instead of traditional curve controls, you interact directly with mesh-based controls that sit on the character’s surface. You hover, select, and manipulate them just like any other Maya control — but they read and feel like part of the character.

What to Expect

  • Works with any mesh geometry as the control shape
  • Live hover highlighting and selection in the Maya viewport
  • Full compatibility with Maya’s move, scale, and rotate manipulators
  • Designed for primary controls — face and other areas where surface-hugging controls make the most difference

Performance

On modern hardware the impact is minimal. The recommendation is to use mesh controls selectively for your main controls rather than replacing everything — and keep in mind that overlapping meshes can make hover selection ambiguous.

Coming Soon

Public release by end of this month. I’ll follow this up with a technical breakdown for anyone interested in the implementation details.