Category: rigging


Catching Covid finally after it’s been prevailing in Hong Kong for that long. Right now I’m quarantined in an interesting government facility and will be released soon hopefully.

At work there are some studies to be done to make use of Metahuman‘s setup somehow. It seems problematic when applying on tiny characters and faces with entirely different proportion. Anyway sharing of similar technologies is truly welcome. More artists could make better work by standing on the shoulder of the giant.

Soft IK and more

Packing up some maya stuff I done in the past few months and learning 3dsMax for the coming new job.

The soft IK feature is one of many rig features I wanna to implement many years ago. It’s like all other features, not super hard and you could get it once you’re willing to dedicate to figure out what the hell the logic is. I wonder that my method may not be the best and there must be some simpler one . . .

Recently I would recommend the 8 classes of Cartoony Facial Setup by Puppeteer Lounge. They show the use of wire deformer effectively which works well for general cartoony face. For very stylized or detailed cartoony face I might stick with the general joint based method.

And I found an informative post about some recent rigging techniques !

Maya Update

Finally there is a “flip” blendshape function in Maya 2016 ext2. Before that I have to create a flipped mesh first, and then assign the extracted to the blendshape target. This is the only reason I’m switching to ext2 so far. Their sculpt brushes are weirdly slow so I’m sticking with Shape 3.0‘s Brush tool and looking forward to the support of latest version. The new pose space deformer is confusing to me and the lack of shape extraction means my tools are still valuable !

Responding to the maya camera to AE shake test I did before, I’m sure it works. This is a handy workflow that you could have the shake quick in playblast and still be adjustable in post. Closeup and distant layers may need different amount of shaking to look right.

Corrective Fix Setup

It’s more difficult than expected.

  • Fix shape creation
    I’m using maya 2016 blendshape editor’s new “edit” feature. Suprisingly it doesn’t work for all types of blendshape node, which mean I have to prepare a parallel blendshape for fix shape creation.
  • Delta shape extraction
    I’m using the script extractDeltas by Brave Rabbit with minor modification. It does half of the job. Assigning delta shape manually could be very tedious too. I have to automate it too so that the user wont’t see any delta shape.
  • Pose Space Deformer as shape target driver
    An easier way is to use the method of locator driver with pointConstraint as in the character Ray. It works well with small rotation angle not bigger than 90. But I prefer a general solution with possible angle from 0 to 180, which work from elbow to any other parts. Thus I’m implementing one based on the texture-based PSD method by Harry Houghton. I still can’t avoid the euler rotation problem since PSD has to follow in some areas like wrist twisting. They could be solved in specific ways, either by aimConstraint or direct connection.

By the way, the Shape plugin by Brave Rabbit probably do all the work mentioned above. Anyway it’s very close. Automating the opposite side and implementing reusing features would take the final little extra thought.

Skin Weighting

Skin weighting is always another tedious process I’m trying to speed up. I tried the new Delta Mush in Maya 2016 but there is no way to transfer the weight from the deformer to skinCluster. People are writing their own plugin to do that

Better Skinning

Webber Huang shows a great tool and workflow in the video I installed it but sadly it doesn’t work for my character with ribbon limbs setup.

Recently I’m using the smoothSkinClusterWeight plugin by Brave Rabbit, which already help speeding up smoothing a lot. Hopefully I could use it some day. Skinning is a not a fun task always.

Last Job

I was in charge of all the body and facial rigging for the TV commercial Lots of corrective fixes were missing. The ribbon limbs were buggy. Some helper joints didn’t work as expected and no way for quick finger gesturing . . .  Now I’m finishing a better rig, hopefully before the start of the next job.

Recently I would recommend the free rig, Ray from cgTarian, which has great appeal on the face and clean technical setup.

Work in Progress

Couple of busy weeks again continuing the rigging of a few characters for a TV commercial. It could be a long page of ideas to share but I’m in a hurry to finish the tasks on hand. Here captured my most recent autorig tool, if someone is interested to see.


Wrap and more …

It was a long week.

I watched Digital Tutor – Blend Shape-Based Facial Rigging in Maya by Delano Athias. I would say it’s one of the best of DT Series I would recommend. The result rig included is still buggy but the processes are well explained. I learn a simpler way for follow-align setup, using blendParent by keying constrained channels.

In my autorig tool, I wrote some functions to connect control joints to wrapping surface. This allows the parts wrapped to be keyable too. But maya’s wrap needs extra steps to get the scaling right. These are kindly shared by Mathieson Facer in

More tasks to be solved and fixed in my list . . .

Weight Painting Tool

I’m trying to do weight painting suggested in the tutorial : Expressive Facial Rigging by Josh Sobel. His workflow involves selection of target vertices, adding weight of 1 to target joint, and applying proper smoothing with unneeded joints locked. Maya’s paint skin weights tool is barely enough so I want more.

  1. Better view of weight assignment.
  2. Quick switching between paint mode and selection mode.
  3. Sliders for quick test on translation / rotation.
  4. Working mirroring even with joints translated / rotated.
  5. Working mirroring even with RHS vertices assigned to LHS joints.
  6. Nice weight relaxation on selected vertices.

The last two weeks I’ve been creating and testing one, with the above (1) to (4) working. The initial idea was from the script sdd_weightTools ( by leifeng ). Feature (5) and (6) are actually nicely done in the script ngSkinTools ( by Viktoras Makauskas ). These two are harder to implement since they may involve python API. Hoping to learn it one day and have these integrated. I already have tons of tools messing around !