Author: nickyliu


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.


It has been a challenging time. Mask is becoming part of daily clothing. Performing arts & filming industry are greatly affected worldwide. Everyone’s life matters. I hope you are all well, safe and healthy.

These years Blender and UE4 have larger and larger user base. They are FREE but evolving much faster than the white elephants. So the time for lifelong learning again.

Recently I’ve been spending more time in practising English. Hopefully a breakthrough will come along.

Good luck and hang on !

Another Year

Oooops, it’s been a year since the last post.

I’m still working on facial stuff. Just that it’s involving facial scan and capture this time. Actually my Pinterest is updated quite frequently, as my personal reference source.

Time to work again. Happy facial rigging ~

Cloudy Saturday

Oh yes I’m here. It’s been a while not having posts here. Life is like repeating itself when writing various tools for 3ds max. Maxscript has “interesting” design which take me longer to make usable things.

I picked up simple TCL and python for building tools in nuke & nuke studio. TCL is a terrible language to me at the beginning. I wish I was a hard-core programmers then I might get it to work quicker. Inserting and reading custom metadata in DPX is another “old” problem I’m about to tackle finally in the last few weeks.

And it’s embarrassing to tell that I’m learning to use git for my codes recently, before they got messed up too much. seems like a popular choice.

Sound boring. Hopefully got some visual stuff to share later.

Programming again

Picking up python, qt, maxscript, 3dsmax, and shotgun for the new job. The “Tab” for python is quite annoying to me as a beginner. Seeing lot of new stuff but not much to share yet.

Here is a great link about some nice maya rigs available:

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.

Maya camera shake

Recently i discover the shake attribute under the camera shape node

In the old days cheating in AE was enough. But it comes up right in time since my aerial shots on hands need plenty of shaking. An easy shaking control in 3d might be better. I use them with expression and custom attributes for keyable magnitude and frequency. To send the shake to 3ds Max my first idea was to bring the shake back to 3d. The shakeHorizontal and shakeVertical values are transferred to tx, ty of an extra locator on top the camera.

The result look fine in general, but not when object goes very far or close. The shake is constant in 2d but not with perspective. Thus I’m thinking about the other method, putting the shake into AE.

I did a quick test and it seems to work. Copy the baked shakeHorizontal and shakeVertical keys of original camera to tx ty of a dummy camera. It should be a locator actually but AE recognizes keys on camera only. Export the dummy camera as .ma and import into AE. Create a null object / solid layer, use expression to get the keys and scale it up about 100 times. Parent any comp to this layer to get the shake.

Not 100% sure but i will tell if it really works.

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