How to rig eyes with eyelids in Blender 3.x/4.0 using Rigify’s skin_eye rig

Oddly Shaped Dog
6 min readDec 11, 2023

--

Rigify is a Blender add-on that automates the creation of animation-ready character rigs through predefined skeletons and helpful animation widgets.

Rigify humanoid rigs usually come with a pair of eyes, but it’s useful to know how to use the skin_eye rig so you can add additional eyes to humanoid rigs, or even create eye rigs from scratch.

In this article, I will show you how to use Rigify to rig an eye (or a pair of eyes) from scratch, with “look at” controls, and automatic lid deformation.

The problem

Rigify works by assigning modular sub-rigs to specific chains of bones in the metarig. These sub-rigs define how the chain of bones will behave, and what controls will to be on it when the rig is generated. There are sub-rigs for tentacles, hands, legs. etc.

As of Blender 4.0, Rigify’s default humanoid meta-rig uses a rig type called faces.super_face for the face. A rig type is like a template for generating Rigify controls from a bone chain. The super_face rig type generates facial controls for the eyes, mouth, and even the ears and nose.

Model rigged with the current Rigify face rig. (Source: Val the Tiefling by Public Opinion on BlendSwap)

The problem is that super_face uses a lot of bones and is monolithic, i.e. it’s hard to break up into components. What if you don’t need ear or nose bones? Too bad, because super_face won’t work without them.

The Blender team is aware of this issue and is deprecating faces.super_face in favor of more modular sub-rigs. Unfortunately, the documentation for these rigs is very sparse right now. It doesn’t tell you what bones you need for the sub-rig to work, or how they need to be parented to each other.

It took me some time to figure it out, but I did. In this article, I will teach you how to use the skin_eye sub-rig to rig eyes.

Scenario 1: Creating a new humanoid rig

This solution works best if you’re creating a humanoid rig from scratch and don’t need too much customization.

  1. Install the Rigify add-on (instructions here)
  2. Make sure you are in Object mode
  3. Create a new humanoid meta-rig by going to Add > Armature > Human (meta-rig)

As of Blender 4.0, the human meta-rig still uses the outdated face rig with the old eye system, but it gives you a button to upgrade to the new structure.

  1. With the meta-rig selected, go into the properties panel and select the Armature tab.
  2. Scroll down to the Rigify section.
  3. Click on “Upgrade Face Rig”:

After you accept and Rigify does its thing, your face structure will be a little different.

Now click on “Generate Rig” and the resulting rig will feature the new eye controls.

Here I have hidden all generated bones except for the eyelid bones and the eye control. When you move the eye control, the eyelid bones move with it.

Scenario 2: Adding eye bones to an existing or nonstandard rig

This solution works best for adding an eye to an existing rig, or for working with custom or nonhuman anatomy.

TL;DR:

Create the following bone hierarchy:

And assign the following rig types:

  • eye.L: face.skin_eye
  • eye.T.L: skin.basic_chain
  • eye.B.L: skin.basic_chain

Read on for detailed instructions.

2.1. Create the eye bone

  1. Install the Rigify add-on (instructions here)
  2. Select your metarig (not the control rig) and go into Edit mode.
  3. If you want to create two symmetrical eyes, ensure the tool options are visible (View > Tool Options) and enable X-Axis Mirror (Options > X-Axis Mirror).
  4. Add a bone (Shift+A or Add > Single bone).
  5. In the inspector panel, rename the bone (for example, “eye.L”). Position the bone’s head at the center of the eyeball and the tail at the center of the pupil.
  6. If you want to create two symmetrical eyes, duplicate eye.L (Ctrl+D), mirror it (press Ctrl+M, then X), and rename it to eye.R.

2.2. Create the top lid root bone

  1. Select the node at the tail end of the eye.L bone.
  2. Extrude the bone (E or Armature > Extrude).
  3. Rename the new bone to something like “lid.T.L”. The “.T” suffix is important and stands for “Top”.
  4. Align the head of the bone with the outer end of the eyelid.
  5. In the properties panel, make sure the “Bone properties” tab is selected.
  6. Uncheck the “Connected” checkbox.

2.3. Create the top lid bone chain

  1. Select the node at the tail end of the eye.T.L bone
  2. Extrude the bone (E or Armature > Extrude) along the top lid.
  3. Select the tail of the new bone and extrude it again. Repeat this until the chain is about three to six bones long. The more bones you add to the eyelid chain, the smoother the deformation will be, but also the longer it will take you to weight paint all those deformation bones.

2.4. Create the bottom lid

Repeat sections 2.2 and 2.3 for the bottom lid, but:

  • The root bone should be named eye.B.L instead of eye.T.L (“B” stands for “Bottom”).
  • Align the head of the root bone with the inner end of the eyelid, not the outer end.
  • Remember that the root bone of each lid must be parented to the eye.L bone.

2.5. Assign Rigify rig types

  1. Go into Pose mode (Ctrl+Tab)
  2. Select eye.L.
  3. In the Properties panel, select the “Bone properties” tab.
  4. Scroll down to the “Rigify Type” section
  5. Set the rig type to face.skin_eye
  6. Select eye.T.L (the top eyelid).
  7. Set its rig type to skin.basic_chain.
  8. Under B-Bone segments, adjust the number of B-bone segments you want. The default is 10, but if you don’t need overly cartoony expressions you could set this as low as 4.
  9. Select eye.B.T (the bottom eyelid).
  10. Set its rig type to skin.basic_chain.
  11. Go back into Object mode (Ctrl+Tab).
  12. Go to Rigify > Generate Rig.
  13. (optional) Repeat these steps for the right eye.
  14. Hide the metarig.

You should now have a fully rigged pair of eyes (or eye). Go into Pose mode, move the eye control around, and behold its effect on the eyelid controls.

2.6. Bind the mesh to the eye bones

Rigify should have generated a deformation node for each eyeball, and a chain of deformation nodes for each eyelid. To view and select the deformation bones:

  1. In the Properties panel, select the Armature tab.
  2. Shift-click on the third layer from the end to make it visible. This layer contains the deformation bones.
  3. Bind your model to the new eye bones through weight painting or vertex groups.
  4. When you’re done, you can hide the deformation bones layer again.
Rigify rig with the deformation bones layer on (third layer from the end)

When you’re done, you should have something like this:

Conclusion

Now you should be able to add eyes to rigs. Add eyes to hand rigs. Add eyes to environments. Add eyes to storms. Add eyes to eyelids.

--

--