Highress bound


(woopsie, missed an underscore there.)

I have just started rigging the highress deformation rig. I’ll try to make my rig as dynamic and flexible as possible. So that If I need to change anything essential, like the joints placments. It should be easy to just rebuild my rig with the latest skeleton.  I created a tag system so I can export and later import my small muscle rigs and connect them back again or if I need any other information when rebuilding my rig.

extendedHave started setting up the rigs for the muscles.  I used and extended Andy van Stratens musclerig module from his ‘skinning with nCloth tutorial‘.


Updated my exporter to export blendshape data.
Now everything I need can be exported, reimported and connected again. At the moment my correctives can only be driven by sdks, but I might add in a way to save out weight drivers if needed. But I guess this will do for now.
For editing my correctives I use Brave rabbits ‘Shapes’.  I will have to use cShapeInverter later if I want to simulate my psds with nCloth.

Progress, Will rig all the muscles this week and setup all the dynamics.
In the test the muscle objects  intersect with each other, however when I apply nCloth all the muscle objects and the bone will interact and collide. Which I think will give a cool and dynamic look. . =)


muscleReferenceSome reference. Will add some motion to the lower arms flexors and extensors when the character move his fingers.




Not going to post all my reference on this blog. But I mainly use the internet and two anatomy books. “Artists anatomy” by dr.Paul Richer and “Human Anatomy for Artists: The Elements of Form” by Eliot Goldfinger. =)

Here is an old test where I trigger blendshapes with the help of an expression that calculates the change in magnitude of a vector between two frames. If the magnitude drasticly change the expression will active another expression that will trigger a value and a countdown, so the blendshape can be smoothly blended. I’ll maybe use this for my muscles, when the character is chaning speed drasticly I could use this to dampen the dynamics or flex the muscles.





block 1 – rough, bigger body parts.

My first Idea was to have him react to some noise in the forest. But I think I’ll skip that part so I can get a better transition to my close up shot.


For my animation I recorded some reference.. Here I’m tying to get into the character.



Face Rig & Blendshapes


And so it begins, here I’ll post all my updates on the face rig.
I just need to sculpt the shapes and name them correctly and my face rigging modules will pick them up and connect them. If I want to add an inbetween shape I just need to add a special token like  mainshape name + “_inbtwn5_”  which would put the shape to activate at 0.5, half between.

Here is the eyes blendshapes in action.

Just finished up the brows Tried to keep it fleshy by adding in inbetweens where I thought it was moving to linear. I may have to exaggerate the shapes a bit.

Here is almost every blendshape, just need lower lip down.   Feedback is welcome.
I’ll go in and add an additional layer of controls for eyes mouth and so forth. Perhaps add in some sticky lips too.


I made a quick render to spot possible texture problems.. The textures are looking awful in the brow area and a lot of the details are missing. Will update my brow shapes so they flow better specialy in the middle. Then I’ll crank up all the wrinkles by animating the displacment map, blending in new maps with the the blendshape weights.
I think it would be nice to add in a control for moving the nose and nose area as well.

Created a tool for quickly setting up and connecting my maps. used pyside and pymel.
the ui was quickly put togheter with the help of qtdesigner.


Here is a quick test I did trying to blend displacments. it dosn’t give much, could be the sss, and the brow area still looks like crap.  I use this math ((defaultTexture – wrinklemap)*weight) + defaultTexture to blend the displacment. I’m not sure if it’s working exactly how I want it too. My intension was to extract just the wrinkles, blend them with the blendshape weight and then add it to the default map.
I get some wierd issues around the neck but that could easily be masked out.
(((defaultTexture – wrinklemap) * weight) * mask ) + defaultTexture = final blended displacment

I think the wrinkles are too small and subtle. I’ll crank them up


here is another possibility, to use an compression map that could blend in the wrinkles. (an old test of mine)

secondaryControlhere is the secondary controls. the secondary controls are joints that is riveting on the blendshapes, so everything moves togheter. With the help of the getClosestPoint I just have to send in a transform and maya will place the rivets to two edges closest to the transform, which makes everything pretty efficient.  the same goes with the sticky lips which has also been added to the mix.  Having a slight problem from working on two different scales, have cleaned up all the scenes now but will have to rebind the secondary controls. will finish up the face rig today, then I’ll have to connect up my puppet rig and clean things up. Then it’s time for the highress bound.


The face have been connected to the animation rig and it’s almost complete. will just add in a breath control and then it’s time to animate.


updatesHere is the updated version of the troll, everything have been uvmapped, retoped and the nCloth objects that is going to drive everything has also been created.
My plan is to animate the troll and get a nice looking cache from the highress bound.
Then simulate and cache the nCloth objects.
I’we also been thinking of simulating water inside of the bottles.
Now it’s time to rig the face.

completeMusclesHere is all the trolls muscles. Everything has been seperated and retoped so It can later be simulated!


Proof of concept

My character is a collector and to show that I added some ropes combinded with stuff that he has found. The bottle cap is his favorite and he carries it with him everywhere.
The challange is to have everything move togheter, without it looking to rigid.
Here is a test I made, I used nCloth, nConstraints, wrap and rivets.  One thing I could add is to skin it and play with the input attract.
(not sure about the simulation scale in the video, something I’ll tweak. )

Rendered out all the different passes and everything works fine.
Here is a combination of all the different passes that I needed to reconstruct the beauty.
Added a Zdepth pass too.   (really need to fix the IOR for the cornea/sclera…)
shading is still progress, feedback are welcome.




Here is the first nCloth skinning/muscle test I did. I just rigged it up pretty quickly…
At the moment it looks crappy. But with my new muscle setup, mesh and with much better sculpted psds I think it will look muuuuch better.  Havn’t painted any nCloth attrs on this,  just wanted to point that out.
So will do a proper setup before I kill the idea of nCloth skin and muscles!


and here is a quick hair and shading test. For the hair I’ll need to create some extra geometry and then wrap that to the face.I guess thats the best way to approach hair if I can’t use any cool plugins.

Body Rigging


Here is two images of the  bind rig and the animation rig. Everything is scripted so If I need to change something I can just rerun my script and everything will connect up fine.
The rig was pretty quick to setup with the code from my rigging library. Here is an example of how to rig an arm with my scripts:


import rigmodules as rm
import RigUtil as RiU

rigObject = RiU.RObject()

side = “l_”

armJoints = [side + ‘upperArm_cJNT’, side + “elbowArm_cJNT”, side + “hand_cJNT”]

arm = rm.RigArm.ArmInstall(armJoints, s=rigObject.Left,                                   mn= side +”arm”, createSwc=”global”)

arm.addFK() #add in an additional FK driver
rigObject.connectModule(clav.endJoint, arm.plugs)



I still have some steps to complete before I can call this rig done.  Need a block proxy model and the face rig.

Here is a video of some dynamics. It’s is also a module from my rigging library.
The dynamics are driven by nHair and works in realtime.  (Which means that you don’t have to run ‘interactive playback’ to see the dynamics)
The setup comes with some attributes to control the dynamics, like an on/off switch,
fk attract, damp, stiffness, gravity and turbulence. It also has a “framebuffer” attribute to update the chain to get back to its original position.
I’ll update the module to setup ground collision as well, would be a pretty cool thing to have for the tail.

Tracking and lightning

Yesterday Icon studio helped me record all the scenes and needed material.
I converted black magics .DNG files to .exr with linear workflow in mind.
Here is the tracked scene with matched lightning, it’s still a progress.
I started of with projecting the filmed sequence onto the photoscaned environment. This gave me some nice bounce light and for the main light source I used a simple area light in combination with a Hdri I found on the web. I really liked the focus shift that happens I think it will help intergrating the 3d object with the background. Some stuff still needs to be tweaked and the whole clip needs to be stabilized.

a quick update: Just learned that it’s possible to read .dng files directly into nuke and skip the resolve step. The node can be found here and here is a link to a blog post about how to use it.


The photoscan was a quick way to get a rough environment.  I’ll use it both for the projection and for the mockup of the scene so I know where my character can put his feets during animation!



Look Dev, texturing and bind rigging


uvmappingfacerenderHere is a setup with all the maps (disp,fine disp, subdirm,epiderm, diffuse,spec) at the moment it looks pretty mediocre and boring. Will play around with the different SSS layers to get a better color variation and make him look much creepier as my reference/concepts. Need to fix my spec / roughness map.

I think fur and hair will help break the symetri and make the character look much more interesting. feedback are welcome!

Will update a clip later with everything in motion.

The rigging is going alright, I’we just finished a new highress spine to my boundutil library. The spine will be controled by a simplified skeleton.  So I can drive like 20 joints with 4 fk joints etc. I did this with one ikSpline chain which then got constraint to another set of joints which then worked as twistjoints so I could get the rotation around the primary axis.



To tweak the distribution of the twist joints I created this tool.  With the help of a graph the distribution of the twist can be tweaked until it hits a desired look. The values can then be mirrored and saved. So next time the bind rig gets build it sets the correct values.


Here is my facemodel and my facecontrols. I have already created the face rigging modules to connect up the blendsahpes and the controls have also been reused and placed to fit the new model.
what I need now is the blendshapes, which I will start working on in the end of next week.
I’m still thinking about the facerigs models resolution, perhaps it’s a bit high.
I could fake wrinkles etc with normal maps as a representation of the high model in the anim rig. Guess I have to test things out to know how fast it is.
Another way to solve this probelm could be to load the facerig when most of the animation block is finished.

This week I’ll setup all the filmed material, track the scene, setup render passes and shaders. Aside from that I’ll also try out some fur and perhaps finish up the body rig!

 Thoughts, feedback and critique are very welcome!