Auto Face Rig

Aug 02, 2012

Phew!!! The first version of the face rig is completed. I have been working on this on and off. The summer break really slowed progress on this.  But, its finally finished to a level that I can make a demo of the rig.

Boy… I should not have tried to script my first joint based facial rig. I kept making modifications to the rig each time I tested it and every time I had to go back and make those changes in the script. My approach should rather have been to finish rigging a face through joints first. Then see how to script that.

That is exactly what I am doing now. I am spending time rigging a few faces. By the end of these experiments, I will have a much better understanding of the way a face rig is supposed to work. I will then be able to script a more comprehensive face rig.

But, I am glad I finished this version of the rig. I made a lot of mistakes and learnt a lot. I can think of many changes to make on this rig itself. But, I would rather try all that on a better model. So, I decided to stop working on this particular character at this point and release the demo of version 1 of the script.

Hope you like it. Let me know if you think things can be done better. I can incorporate those changes in the second version of the rig.

More about the rig:

I saw many students using Setup machine and Face machine for rigging their characters for their thesis. I saw two main problems.

First, the face machine did not do a great job of rigging the face. (partly because many of them had bad edgeflows)

Second, the characters rigged with face machine were too heavy. I saw students who had say 3 characters in a scene all rigged through FM and it took them nearly 5 to 10 minutes to just open the scene file. Not acceptable. Imagine waiting 10 minutes between saves.

I personally fall into the first category. I tried to rig my character using FM. I tried it twice and both times, the results were very bad. It could have been something to do with my geometry. But, I am fairly certain that the issue was not with the model edgeflow. My character might not have the best edgeflow there is, but it certainly is not bad edge flow. That much, I understand about modeling for animation. So, I had no idea what was going wrong. I even sent my scene files to the team at FM who tried to sort it out. They were very helpful in giving a few suggestions, but none of them worked for me. As the clock was ticking, I realised I could not wait for FM to work.

That’s when I started to look into the possibility of rigging the face on my own. I had not rigged a face using joins before. This was new territory to me. But, I did not look for techniques online. I decided to first think about the problem myself and see if I could come up with a solution myself before looking online. So before I knew it, one test led to another and I was soon building the face rig myself. I think this was for the best, as I made so many mistakes and learnt through them. The downside was the time it took. I even saw during my initial tests that theoretically the entire face could be rigged using just constraints. It wasn’t easy, but with a lot of trial and error and fixing and testing, I finally came up with a working model of the rig.

I guess its time now for me to actually figure out how face rigs are built by other professionals and learn from them before attempting another auto face rig.  So, it might be a while before I script a better version. Meanwhile, I would love to hear feedback from you. What do you like/dislike about this rig? Let me know. I am also going to use this character in a animation. That way I will be putting this script through the entire pipeline and will know for sure if it works or not.

more later… I am going to go make faces at people to understand who muscles work on the face… All part of the learning curve…   🙂


27th April

So, I have a unique problem with the placement of joints for the eye. I hope I can find a solution for it soon as everything else seems to be working just fine.

You can read more about the Eye Rig Problem here


Sounds like magic, doesn’t it?
I am happy to say it works as expected. I was the happiest man that ever could be at 2am as of 6th March 2012. To see the script work flawlessly and lay out all the joints, controllers etc and rig your face in less than a minute is so rewarding…
Its too soon to release the script yet. I still do not have a UI for it. I also want to add extra features. But, Right now, it takes about 15 minutes to do the initial setup(depending on how complex your character is) and 1 minute to rig your face. 🙂
YES!!! that’s a face rigged in 16 minutes. Its purely joint based. No corrective blendshapes needed. I also want to test it on face rigs of different structures before I release it on creativeCrash or similar websites.

Keep checking often to see more updates from me.



5 Comments to “Auto Face Rig”

  1. hey There, I would love to hear more about it if you are intereste din a possible collaboration.
    At Mixamo we are developing tech to automate rigging processes, time for some geek rigging chat?

    • Sure… It will be nice to chat and get to know more about automated rigs. Do you have a specific time in mind? Email me at :

  2. How can we get this plugin ?

    • Hey Jaydev,

      The script was my first attempt at rigging anything. So, needless to say it has its share of problems. All these surfaced when I took the rig into production. I fixed all the bugs manually, but have not had the time to update this script with those changes. I will get to doing it sometime. Will upload the stable version for free download then.

  3. You will be mentioned in our hall of fame prominently and will get the very first digital actor expansion set for totally free.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: