Adding mirror functionality to a custom rig
On our last production, I had to find a quick way of implementing a system that would allow me to set up basic mirror functions on any custom rig. Specifically, I needed a toolset that would standardise the main functions of the rig like selection tools for the current side of the body, mirror select, copy, paste and IK/FK switching.
I accomplished this with a simple custom attribute that allowed me to store the nodes of each half of the body as weak references. If you don’t already know, weak references are the golden goose of character rigging. They allow you to store arbitrary nodes within the character so that you can retrieve them at any stage without having to select the node itself.

In the video below, you can see how I set up a full mirror/rig selection system on a puppetshop rig. Puppetshop is great because it already has a load of good stuff already built in, so the GUI I add in the video (which is a custom dotnet interface) can simply expose functions from the puppetshop API.
The selector always knows what the opposite side of the rig is because you store each node’s opposite in the parameter block of the attribute.
So what it does is allows me to set up this feature on any rig within a minute or so. Because you can store the node assignments to XML, it is easy to mirror the nodes onto the other side of the rig for even faster setup.
I hope this video gives some insight into how automated setups can save a wealth of time in production.
If you want to try a max script that uses weak references on a rig, please read my previous post -
I talk about them in a bit more detail and show you how you can control rig visibility using them.
Got anything to say? Go ahead and leave a comment!
Archives
Recent Posts
- Kinetic Energy
- What we are today comes from our thoughts of yesterday
- Autodesk Webinar
- Two Clicks From Amsterdam
- WindowBox Replanted
- SpeechBot – A handy script to load and save morpher keys
- New Script! Scene Bracket
- End User Event 2011
- At what point…
- DotNet Demystified : Part 1
- Photoshop Automation Project Update
- Adding mirror functionality to a custom rig
- Feed me, your majesty
- Using HitchHiker – Building a Matte/Shadow material utility
- Something sparkling for Christmas…
Recent Comments
- LoneRobot on Retrieving the 3DSMax File Thumbnail with DotNet
- LoneRobot on 3ds Max File Drop via DotNet
- Klaas Nienhuis on 3ds Max File Drop via DotNet
- fajar on Retrieving the 3DSMax File Thumbnail with DotNet
- fajar on HitchHiker Update v4.4
- fajar on HitchHiker Update v4.4
- Jeff Lim on DotNet Demystified : Part 1
- LoneRobot on Capturing the viewport according to render resolution.
- Jeff Lim on Capturing the viewport according to render resolution.
- LoneRobot on Using Base64 encoding in 3dsMax


Posted under: