Course overview Course overview
Bring characters to life through face rigging
Character Facial Rigging for Production WHAT YOU’LL LEARN
The more you know, the better.
Bringing out the best in talent
Jose Antonio Martin Martin is a software engineer from Spain who has been working as a character TD / rigger in the VFX industry for the last 8+ years. He has worked for studios such as Framestore, MPC, DNEG and is currently working at ILM. During his career he has worked on many blockbuster projects including Gravity, Terminator Genisys, Suicide Squad, Ghost in the Shell, and Venom.
winter TERM Registration
Oct 21, 2019 - Feb 3, 2020
The instructor was informative, helpful and open to communication throughout the duration of the course. Cannot recommend enough.
I really appreciate the instructor's attitude in conveying the material and he worked hard to try and teach us advanced approaches and details.
I liked how he kept what little mistakes he made in the videos and showed how he fixed them, it provided substantial amount of insight to the thought process to being a good rigger.
I learned a lot about Maya Rigging Characters for Facial Expressions in this class. The instructor enlightened and motivated students to learn.
I learned exactly what I wanted and more.
Companies that hire our students
environment design Benefits
What makes this learning experience unique?
Receive personal individual feedback on all submitted assignments from the industries best artist.
1+ Year Access
Enjoy over 365 days of full course access. This includes all lectures, feedback, and Live Q&A recordings.
Certificate of Completion
Earn a Certificate of Completion when you complete and turn in 80% of course assignments.
Learn anywhere, anytime, and at your own pace with our online courses.
Speak to an advisor
Need guidance or course recommendations? Let us help!
Show us your skills
Not sure if you have the skills, or are you proving you do? Show us.
Tips & Tricks on Character Rigging
Interview with Phung Nhat Huy
Phung Nhat Huy, a 3D artist from Vietnam, gave some tips on different aspects of character rigging.
My name is Phung Nhat Huy (you can call me Huy), from Vietnam. I went to Lasalle College of the Arts in Singapore to study and graduated with a degree in Animation Art in 2014. Currently, I’m working as a senior rigger/TD in Omens studio, Singapore, and have been working in the animation industry for 3 years.
Ever since I was in college, I’ve always had a passion for bringing appealing characters to life. Initially, I just wanted to have a good rig so I can animate my characters without worrying about things such as flipping or bad deformation. Rigging was never easy to learn because it involved a lot of technical problem solving and step-by-step tutorials were not reliable in helping me understand it. However, the more characters I rig, the more I understand how rigging works. And the more I understand how rigging works, the more I loved the entire rigging process. Eventually, I decided that rigging was going to be my career which allowed me to solely focus on perfecting my rigs to the best of my ability and let the animators bring them to life. Solving technical problems and seeing nice deformations on my characters have always brought me tremendous pleasure. In my spare time, I also love watching movies, cooking, playing chess and video games.
For the past 3 years with Omens Studio, I have been involved in various projects ranging from animated TV series, short films, AR games and commercials such as Leo the Wildlife Ranger, Gnome, Tales of Christmas 2017 and more… I am currently working on some exciting, unannounced projects with the studio as well as a few personal projects that I intend to kick start in my spare time this year.
Modeling the Character
The rig was created entirely from scratch using only Maya native tools with the exception of Michael Comet’s PoseDeformer plugin, which was used to drive some of the cloth-backed Blendshapes for the hoodie. The model was designed and modeled by my girlfriend, Jamie. You can check out her amazing work here.
There are lots of cool techniques, tips & tricks that I have learned from both Nico and Wade, in particular, Nico’s ribbon spine and Wade’s Blendshape method. What I liked about their workshops was that they were not heavily pre-planned. Nico and Wade made mistakes occasionally and because of that, I could see the way they troubleshoot and correct their mistakes which turned out to be incredibly helpful for learning how to problem solve. On top of that, their weekly feedback was highly constructive and insightful.
Challenges, tips & tricks
As with most personal projects, I try to push myself, attempting to try out something I have never done before so I definitely have met many challenges. In particular, rigs for the hoodie and boot as well as the layering of different deformers for the facial rig. Although there were a few extra features that I have added onto my rig that was not covered in the workshops, I was able to apply some of the techniques taught in there and came up with my own solutions.
Nico and Wade’s class were very different from each other as one focused on body mechanic rigging while the other focused on facial rigging. These techniques, however, can be applied to any rigging situation. They both did an excellent job of explaining the concepts behind the techniques.
Generally, most scripts I used were scripts I had written myself which includes TD_blendshapeAssistant to assist me creating Blendshape and TD_microControl to generate microcontrollers on the character face. There are also a few one-off scripts that I wrote to simply automate some tedious processes such as generating helper joints in multiple areas.
Other than that, I used Comet Scripts. They are a bunch of cool utility scripts from Michael Comet that can help to speed up processes such as naming, orienting joints et cetera… Another small but cool script that I used was sk_attrShift for rearranging attributes in the channel box.
Rigging the face
That is indeed a big challenge, especially in a personal rig where my intention was to add as many features as I can on it. Besides following Nico & Wade’s recommendations, I also consulted various animators to know their workflow and opinions, thereby allowing me to create a more efficient controller layout. In the final rig, I decided to simplify by categorizing controllers into 3 levels basic, midlevel and micro level controllers. Animators can easily choose to hide or unhide controllers of different levels based on their needs at different stages of the animation. This will prevent them from being overwhelmed by too many controllers at once.
As rigging is a very technical career path, I strongly believe that one should view it as both a form of science and art. Be skeptical of any information that is presented to you, and always put it to the test to make sure that the method you’ve learned is working. If it’s not working, make sure to find out why and flaws that method brings. Be curious and always explore new methods, even a bad rig can contain some great tricks to learn if one is willing to study it.
On the artistic side, anatomy is the utmost important thing to learn when it comes to rigging characters. You can’t deform a character well if you don’t understand what’s going on underneath its skin.
Most importantly, never stop learning. There is always more to learn and the more you know, the better you get at problem-solving and coming up with creative solutions.
Overall, besides new techniques, tips, and tricks, Nico & Wade has taught me a lot in terms of problem-solving and has also helped solidify my understanding of rigging in general.
I’m really grateful for what I have been able to learn in these two excellent courses and I am looking forward to attending more technical related workshops from CGMA in the future.
Here is the breakdown of my Beet rig:
Although there are many different set ups for the ribbon spine, the method presented in Nico’s workshop was one of the best because it allows the spine to rotate in both the forward and reverse direction, making the spine deformation natural and organic.
I also applied the same technique to the arms and legs, which gave me easy setup for bendy and arm twist.
In the past, I struggled with finding a solution to achieving an automatically driven clavicle for arms due to its cyclic nature. The ink arm is supposed to drive the clavicle. Yet at the same time, the clavicle is the parent of the ink arm, therefore causing a cycle. Nico has provided a simple solution – add another in chain purely to drive the clavicle but not be driven by it.
This is an extremely useful technique that can be applied to not just the clavicle but the boot rig as well, which you will see later on.
The rigging of the Boots and clothes
Creating a rig for the pants and hoodies were relatively straightforward. I treated the hoodie as a long dress with individual controllers that were driven by the leg joints. The lucky thing about the hoodie was that it didn’t have to react to the twisting motion of the leg, thus it was only driven by 2 rotation axes, significantly reducing the gimbal lock problem in Euler rotation.
I also added a blendshape to subtly change the silhouette of the sleeve when the arm is lowered to make it more appealing.
With regards to the boots, I could have easily settled for a simple copy of the legs’ skin weights to the boots itself. However, I decided to take it further by adding some sort of fake collision with the leg as well as a sense of ‘looseness’, as if the boots are independent of the leg like in real life.
This proved to be quite a challenge and it took me a few days to solve it. I used the same concept as the auto clavicle setup which was to create a separate leg rig just for the boots. I used the angle between the leg and the foot joints to drive the joint chain of the boots. That setup allowed me to create an offset and the sense of ‘looseness’ mentioned earlier that would work in any poses.
Another addition to the boots was the inclusion of individual ribbon rigs on each strand of shoelace such that these shoelaces would be able to effortlessly slide on the surface of the boot tongue when required.
The most important aspect of any rig should be its deformation because it will be what the audience sees. If the deformation is bad, a rig will ultimately still be considered a bad rig regardless of its complexity.
There are many different methods to improve the deformation of a rig or to create an illusion that there exist muscles and bones underneath all those polygons. These methods can vary from technically expensive ones such as muscle and cloth simulations over a set of muscle rigs to cheaper ones such as blendshapes and the implementation of helper’s joints. Nico has shown some really cool techniques to create helper joints that were able to significantly improve the rig’s deformation and I have therefore attempted to apply them wherever I could.
In addition to that, I gave myself a small challenge which I thought would be fun to try out. I wanted Beet’s body to be able to deform in 2 modes. One would be a rubbery cartoony mode and the other would consist of a more ‘realistic’ mode with clear distinctions between the upper body and the hip when Beet bends to the side. I achieved this by adding a set of helper joints on each side that are driven by the accumulation of rotation values from the spine joints.
The best thing about using helper joints to help deformation is its transferability. Unlike blendshapes or simulations whereby there is no easy way to transfer these deformations onto another mesh, helper joints allow me to copy skin weights from one mesh to another with the criteria that they are bound to the same set of joints. During this rigging process, the model was updated several times to improve on topology. With the employment of helper joints, transferring deformation between the older models and the updated one became a seamless process.
Facial Rigging Breakdown
I started with a set of 44 blendshapes based on Wade’s instructions, of which closely followed the FACS system. From there, I proceeded to split them into four parts – left, right, up, down depending on specific requirements and facial movements. In total, I have generated 78 basic facial blendshapes. On top of that, I created a few corrective shapes meant to solve any conflicts, should they arise, when multiple blendshapes are combined.
All these Blendshapes were then attached to the rig. They were driven by simple controllers and SDK.
After that, I added joint-based rigs for areas such as jaw, hairs, ears, and noses. I also added joint-based rigs for the upper and lower lips to roll in and out on top of existing blendshapes. The teeth and tongue rigs are also joint-based.
One of the best techniques I have learned from Wade was the eyelid set-up which is based on Marco Giordano’s cartoon eyelid method. This set up allows for great flexibility in shaping the eyelids while at the same time keeping the lids rolled tightly around the eyeballs. At this point, the basic set up for the face is done.
Next, I added additional joint-based controllers on top of the facial rig that allow me to push the rig further if required. These controllers were able to stick to the face surface when it was deformed by the initial rig.
Following this, I added a lattice to deform the entire head for squash and stretch function.
Finally, I used Kimon Matara’s method to set up the sticky lips. The great thing about this method is that I can always add this feature onto my final rig without affecting any of my previous setups.
Overall, it was a long but enjoyable process. I have learned a lot and am really happy with the final result.
For more information on CG Master Academy, and the Character Facial Rigging for Production course and the Rigging Techniques: Cartoon to Realistic course, please visit the course page on the CG Society Workshops, or email firstname.lastname@example.org.
Phung Nhat Huy, 3D Artist
Facial Rigging with Blendshapes
Interview with Neysha Castritius
My name is Neysha Castritius and I am a 3D artist from Peru, currently living in Germany. I started doing some practices in film production companies learning how to work with After Effects and Photoshop. I also visited a 3D school in Peru to learn the basics of modeling, texturing, rigging and animation. After that, I studied Game Art at the Cologne Game Lab, where I started using Maya instead of 3ds Max and learned how to work with Unity and the Unreal Engine.
Now I am freelancing as a 3D artist focusing on rigging and animation. I had the pleasure to work on different projects, from mobile games to VR, as well as sidescrollers and 3D open worlds games.
During the different projects, I found my passion for character development and I enjoy every step of it, from the first concepts to the final stage of animation.
Raquel Rossetti, Carmen Schneidereit and I wanted to create a short film (we later called it “Catch It!”) with the Unreal Engine for our bachelor project at the Cologne Game Lab. One of my tasks was to be in charge of the main character, called Emily. We wanted a slight Pixar feeling for our short film and that is why Emily needed a proper facial rig in order to trustworthy express her emotions. I have approached many attempts to make facial rigs in the past, experimented with joints and blendshapes, but nevertheless, the results were rather mediocre. I knew from experience that I needed help to learn how to create a reliable facial rig for Emily and so I decided to enroll in my first online course ever. I found the CGMA Wade Ryer‘s Character Facial Rigging for Production course, which was exactly what I needed.
When we were brainstorming about Emily, we agreed that she should have African roots, be around 10 years old and look rather cartoony than realistic. I gathered a couple of pictures for inspiration and did the first sketches trying to define our style.
Once we all were happy with the concept, I proceeded to sculpt her body entirely in ZBrush and modeled her hair in Maya. The character was at this stage when the course started:
When the course started, the instructor recommended us some lectures, which I instantly ordered. I found The Artist’s Complete Guide to Facial Expression by Gary Faigin very helpful. It gave me a solid insight into expressions and emotions.
Before starting to rig, the character needed to have a neutral and relaxed expression. I had to change my first sculpt and I also got some feedback to improve the design so that it looked more appealing and was easier to rig.
Having the correct topology is crucial and knowing to what kind of shapes the face deforms is very helpful. Retopology was part of the course. Surely, I already had some knowledge about this subject, but the course gave me a deeper insight to understand the connections between the different edge loops and the needed amount of subdivisions.
Rigging with Blendshapes
“Catch It!” was rendered in real time inside of Unreal on PC. In contrast to projects like VR or mobile games, where you really need to be careful about good performance, we had more freedom to work with more complex characters, bigger textures files, and advanced lighting. In addition, after some research, I found out that many game projects in the industry work with blendshapes for their facial rigs. What I really enjoy about the blendshapes is the artistic side of it, because you are sculpting the expressions that will create the final rig.
However, the rig is still partially joint based. Joints are used for every part of the face that moves along arcs, like the jaw, eyelids, eyes, muzzle nose and nostrils.
The rig of Emily is not a set of different expressions that would blend from “happy” to “sad”, but rather fragmented in around 50 different sculpted mini-expressions that will later connect to many variations and allow a high range of final expressions.
This is an example of the different blendshapes used to rig the lips:
The face has a set of controllers in which its axis positions are linked to the different blendshape sculpts. This connection was done with the Set Driven Key in Maya. In the example of the lips, dragging up the corner lip controller will blend the sculpt of the ‘lip corner up’, and dragging to the side will display the correspondent sculpt ‘lip corner wide’. When two blendshapes are activated at the same time, for example, by dragging the corner lip controller up and to the side, the two linked sculpts would display in an additive way. To avoid this, we use the plugin extractDeltas to add a corrective blendshape, in this example, the ‘smile’ sculpt, which overrides the ‘lip corner up’ and ‘lip corner wide’.
This way all previously sculpted mini-expressions were linked to the controllers. This process needed to be done for the left and the right.
Emily’s eyelids were rigged using Marco Giordano’s technique for Cartoon Eyelid.
This amazing technique allows very flexible animations. It needs some Python scripting and it is joint-based. Basically, the joints were placed on the vertices of the upper lid and lower lid and skinned to the topology.
The joints needed an aim locator setup. The locators were constrained to a high-resolution curve for the upper and lower part of the eyelids. A lower resolution curve with five vertex control points was created on top of the original curve to drive it by using the Wire Tool. Then we needed joints to skin them to the vertex controls of the curve and constrain them by the final controller. By moving the controllers, the curve will deform and so the shape of the eye. Finally, we ended up with a nice setup of four controllers and four secondary controllers to open and close the eye and in addition, to alter its shape.
Emily’s hair is segmented in many curls and almost every curl is skinned to a joint chain. The orientation of the joints is set in a way that by rotating them in the Z-axis it will curl them outwards or inwards and in the X-axis forward or backward. Each joint has a simple FK controller, which is orient and point-constrained.
Her hair is supposed to behave as it would be not so bendable, but springy. So in order to facilitate the animation, I created an extra controller connecting the X- and Z-rotation axis to a floatable value, as well as the Y-position axis. The connections are not directly on the FK curves but on an extra group so that it is possible to use the main hair controller in combination with the individual FK curves.
A simple solution that made the hair animation in the later process quite fast and easy to do.
This is the final test of the rig:
I think a good facial rig should be able to perform at least the five main human expressions: joy, disgust, anger, surprise, sadness, and fear.
Connecting the Facial Rig to the Body
I started the facial rig in a way that I could connect it easily to the rest of the body. Since Emily is wearing a shirt, the entire blendshape system runs only on her face and neck, which is a separate mesh to the torso and limbs. The only thing I had to keep in mind was to have the head at the right altitude. The neck joint is parented to the chest joint and their controllers as well.
Emily was designed to perform the animations inside of a game engine. For game engines, it is necessary to have all the joints of the rig in a single hierarchy.
For the cloth simulation, I modified the collisions inside of Unreal.
With all this done, I finally had a fully rigged character that could be rendered in real time.
Challenges & Feedback
I would say the most challenging part was to transform the facial rig from the course into a rig compatible with Unreal. I had to simplify a couple of things since Unreal does not read through layers of blendshapes. Also, I had to get rid of the corrective blenshapes system, since Unreal wasn’t able to read them, the solution was to add these corrective blendshapes as attributes in the controllers of the rig. I was very happy when I finally could import Emily without problems and display all of her animations in Unreal.
My experience at CGMA exceeded my expectations. There are techniques and methods shown resulting from years of experience, that I wouldn’t have been able to figure out by myself. The know-how of Wyder is amazing and the classes were easy to follow. I have been recommending this course to many of my friends. You definitely make a big step in rigging by taking this course.