Facial Rigging - Part 1: Topology


I'm going to make a series of articles as I make progress on the facial rig for the great model of Samus Aran by Julien Desroy.

These blog posts aren't meant as the one true way to go about rigging faces but rather the result of me experimenting with facial rigging techniques.
If you disagree with some of it or have any feedback/questions feel free to come chat with me on twitter.

But enough rambling around, let's get to it!

The Three Curves Principle

Good topology will help tremendously in achieving good deformation and will also help speed up the rigging process by a significant margin.

My basemesh is based on the Three Curves Principle which you can learn more about in this video.

The Three Curves principle is something I'll apply for both the eyes and the mouth.
On the unsubdivided basemesh, you can see that the eyelids and mouth are all built in the very same way:

Core Edges

The Edges highlighted in red are the core edges necessary to support the three curves principle and the green ones are there to support the corners and have better control over them later on.

Now speaking of curves right now is a bit far fetched and the mesh is way to low poly to support the shape of the face. The basemesh meant to be as low poly as possible and then be subdivided based on the project's needs.
Having it as low poly as this also helps fitting it quickly on any other head model and is more precise than tools like wrap3 (but definitely not as fast).
Here it is after being subdivided two times and re-projected to the scan and a bit of manual tweaking:

Core Edges SubD2

I'll probably go over this in a future post but the neat thing here is that now each couple of core edges has exactly 3 edges in between. If you're making a joint based rig, this means that you can place your joints on the core vertices and then precisely assign the weights to the vertices in between to control the curve of the eyelids/lips exactly like you want it.

Important Loops

Now that we have a grasp of why we need these edges, let's talk a bit about the important edge loops.


  • The mouth loops are just concentric "circles" with an edge flow that lines up to the underlying muscles. This lets you pull the mouth and lips in a similar way that the muscles would do. Notice where that the border edge stop exactly on the nose corner.
  • The Naso Labial loop is something that I think is often overlooked and when present, is often misplaced. It lets you mark the nasolabial fold easily and precisely. For that reason, it is super important that the edge that is between it and the mouth loops flows exactly where the nasolabial fold is on your model. I often see that loop overlaps way too much on the cheeks and that will make it harder to define believable shapes. Having this loop present and well placed will tremendously help with making the face rig feel fleshy and connected.
  • The "Super Hero mask" works a bit in the same way as the previous one and helps bulge the flesh on the cheekbone. I have seen a few examples where instead of looping under the eyes, it goes straight down the cheek, leaving more room for the nasolabial loop. I think both cases would deform well but having this loop means that you double the poly count around the nose without having to have double the polycount on the whole nasolabial loop.
  • The Eyes loop acts very similarly to the mouth loop. It's just a bunch of concentric circles that flow like the underneath muscles. Note that the eyelids are closed here. This makes it so that you can have the eyelids open and fold onto themselves.
  • The Jaw loop is there for two reasons:

    1. Defining the Jawline. I was a bit hesitant to add it because I think not having it would make it easier to have the skin slide above the jaw bone without the pole that's on the jaw. It's possible that I change my mind on that one.
    2. Delimiting the end of the Forehead. If you were to add triangles to reduce the polycount outside of the face, you would start right after that loop
  • The Yellow parts are mostly just there to fill in between those other loops. They'll increase in density nicely with how many times you subdivide your model.

And that's pretty much it for now, the next post will be about joint placement and skinning. I hope to see you there!