Face Rigging And UDK Weekend

I spent a few hours this weekend hammering out the final details of the Nurbs surface base face rig I have been working on. So far the rig is realy cool, however I will need to make some adjustments to the mouth surface. I found out that it is important to pay attention to the UV directions of each surface. It just makes it easier to setup the controls later on. I will get into more detail in a later post where I will walk through the rig build process. I will also show off a few handy Python classes that will make automated building a snap. Right now it is late.. and I am tired. Here are a couple screen shots to give you a glimpse of things to come. By the way, the model you are seeing comes from Pete over at http://www.cgbootcamp.com/ . Pete wants to get some poses on this character, and I have been rigging her up to test out some procedural rigging tools. The screen shots don’t do the model justice. Just wait until you see her in all her cgfx shader glory. Here is Pete’s site so you can see her rendered. http://blog.peter-anderson.com/ The screen shots are from inside UDK.

Here is the face rig created with surfaces and follicles followed by a screen grab from UDK.

Maya + Python: Create a locator at every joint

I am going to stat posting some code around here. If you don’t know, I mostly work in Autodesk Maya and I like to write my scripts in Python or PyMel. I am always writing a little snippet of code to handle mundane tasks, so I thought I would start posting those snippets for all to enjoy. I will of course be posting more advanced stuff at some point, but I figure I need to start this nerd party somewhere. One thing I tend to do a lot in my rigging is create and place some object and the position of my joints. In this case it’s locators. If you are totally new to Python in Maya, you will need to know these beginer tips.
1st Make sure you post this code in a Python script window.
2nd Make sure you import the Python commands library into your session with this. import maya.cmds as cmds
3rd Enjoy doing stuff faster.

joints = cmds.ls(sl=True)
for joint in joints:
    lctrName = joint.replace('gjnt', 'lctr_ctrl')
    jntPos = cmds.xform(joint, q=True, t=True, ws=True)
    lctr = cmds.spaceLocator(n=lctrName, p=jntPos)

Our true faces

I recently had the honor of attending a one day class hosted by Ed Hooks. If you don’t know, Ed is the author of Acting For Animators. Get more info on his work by visiting http://www.edhooks.com/
Ed presented a number of extremely informative insights into the art of acting, but tonight I want to focus on one observation that is sure to have a considerable impact on the way I rig and animate the human face. There is a theory going around that the human is at all times displaying two mental states. It has been observed that while watching someone speak, our eyes first go to the speakers right eye, then left, and finally the mouth. The eyes tend to continue in this fashion through out the duration of the conversation. In what is perhaps an evolutionary trait we developed to accommodate this eye movement, we generally display a different state of mind on both the left and right sides of our faces. On the right side we display our projected state of mind; on the left our true selves slip through. Ed introduced this theory by showing us a series of photos featuring some well known faces. The photos were folded in half so we could clearly observe this phenomenon. In similar fashion, I have prepared some images for you to browse through. Pay special attention to the face of Charles Manson. Keep in mind that Charlie was a sociopath. Notice the complete lack of presence on the left side of his face. I apologize if the images get out of order.

Modular Procedural Rigging and Animation Retargeting

Over the past two years I have been doing a lot of work with procedural rigging systems. In the most recent iteration I have created a system that blends multiple animation control systems through a node which then pumps the output to a final rig skeleton. This concept seems to lend itself to being extremely receptive to animation re-targeting, however I have not yet landed on the exact way I would like to implement that feature. With the addition of HumanIK, Maya now offers a robust mechanism for animation re-targeting. My big issue with HumanIK, and motion builder has always been the sacrifice of a custom rig that animators enjoy using. So the question to answer is how do we get re-targeted animation directly onto our animation rig? The video below shows a very clever solution to the problem.
I have an interesting theory where in we take the idea presented in the video and plug that in to a blended animation control system. What I am saying probably sounds cryptic at best, but that is because my thoughts on this topic are not yet fully fleshed out. I don’t intend to return to this when time allows, so keep an eye out for future posts on this topic. Anyhow, here is an awesome video from a true master. Enjoy!

Autodesk MasterClass – Live Animation Binding from Mark Jackson on Vimeo.

Tech Artist’s Credo

Thank you Rob Galanakis for organizing this.

I am a Tech Artist,
Every day I will teach, learn, and assist,
And build bridges between teams, people, and ideas.
I will observe without interrupting and mediate without judging.
I may not give exactly what you ask for,
But I will provide what you need.

I am a Tech Artist,
I will approach every problem with mind and ears open
To my colleagues and peers across the industry.
I will solve the problems of today,
Improve the solutions of yesterday,
And design the answers of tomorrow.

I am a Tech Artist,
I am a leader for my team,
And a standard-bearer for my community.
I will do what needs to be done,
I will advocate for what should be done,
And my decisions will be in the best interest of the production.

Sculpting the Face: Anatomy and Form with Ryan Kingslien

I recently had an opportunity to attend a great online seminar hosted by Image Metrix. The topic was sculpting the face, and I was certainly impressed by Ryan’s knowledge and skill level. The real take away for me was more a lesson on how to learn and teach the complexities of human anatomy.
Often times artists will shy away from adopting anatomical names in favor of taking a purely aesthetic approach. What Ryan points out is that we need a common language to help us draw a mental map of the human form. This can apply to any discipline. If you are an animator, you need to know the basic principles of animation so you can describe the type of movement you are trying to achieve. If you are in to writing tools with a language like Python, you will need to understand terminology like classes, functions and strings. This may seem like a pretty simple idea, but I suspect it is often overlooked. I have spent countless hours studying anatomy books as a create my character rigs, but I rarely take the time to memorize the names of the muscles and bones I am trying to represent. I could probably draw a fairly complete skeleton and muscle system from memory, but I lack the terminology to explain what I am doing. Because of this weakness, my drawing would be missing some pieces, and the overall relationship of those parts would appear inaccurate.
As an instructor, a common language becomes even more important. An instructors job is to teach a student how to achieve some result. You may have years of experience performing a task, but you will be useless to your student unless you can develop a common and consistent language for relaying that experience.
If I understand correctly, Anatomy and Form with Ryan Kingslien will be available on YouTube shortly. I will post a link when it goes up. The video got me thinking about the way I work and teach. I suggest giving it a look when you get the time.

A mesh for rigging

You may have noticed a lot of videos on this site that talk about face rigging. As I made those videos, one constant regret haunted me. I should have used a more interesting mesh. In an attempt to rectify that, I took a stab at making a new head mesh that is a bit more interesting. It was a blunt stab I assure you, but I think I came up with something marginally better.

My attempt at a cartoon head.