Tutorial: Cartoon Eyes [Update: IPO Drivers!!]

[edit] - originally posted in tutorial forum, but reposting here, since it didn’t show up.

Hey everyone,
I saw this forum and said to myself… “I should write a tutorial about something.” And so I did.


What the tutorial covers.

  1. Creating Cartoon Eyes (Includes Lattice Deformation, Eyes Tracking to Empty)
  2. Animating Cartoon Eyes (Includes using hooks, and IPO Drivers)

Link: http://calvin.sdlfk.org/calvin/CartoonEyes2/

[edit] - Since I learned how to use the IPO Drivers, I removed all the extra steps I took in order to animate the eyelids. Here is the old version, just incase someone wants to learn some other techiques of animating eyelids.
Old Version: http://calvin.sdlfk.org/calvin/CartoonEyes/

Here is the Latest Beta file
(my latest test, if sucessfull will be integrated into the tutorial):

This is the first time I wrote a tutorial, so if something doesn’t seem right… please complain. :smiley:

Great JOB! Thanks much!:slight_smile:
I vote whit five stars.

Cool - since you ask for ‘complaints’ I will :slight_smile: I think you should put a description on top of the page you link to, with an image of the finished product. If someone enters from another place than this thread they wont know what you’re up to :slight_smile:

It’s pretty good actually - well done.

I’ve taken a few hours to learn how to use the new IPO drivers. And I must say “it’s freakin amazing!”

So I decided to implement that into this “Cartoon Eyes” tutorial.

  • Now you can animate the eyelids using IPO curves and drivers.

See the link above.

Now with the IPO cruves there seems to be alot of extra stuff… I’ll work on removing that later, but in the meantime it might be a benefit since you learn how to use some other great blender features.

wow, I am a noob to anything but the game engine and I didnt know how to do any of that stuff! Thanks :]

As promised, I removed the extra stuff from the tutorial. There is a new link above.

Well, first of all, if you pull that empty in, the eyes will cross, also if you rotate the entire head, then the eyes wil go wacky.

Try using , modifiers and armatures instead of emptys. Basically what I do is take a single armature, so that the first end in between the eyes, and the second end sticking out of the forhead. Then since you have those lats assigned to control the eyes, then add a mod for the lats to follow the armature’ rotation.

If you take a pencil and you move it close to your head and look at it. Your eyes will cross.

also if you rotate the entire head, then the eyes wil go wacky.

If you concentrate your head at a single point, and move you head around your eyes will continue looking at the point.

The whole point of using the empty is to be able to grab the empty and place it in the exact place where the character is looking. Simulating what your eyes will do if your looking at it.
If you look at something close up, your eyes in “REAL LIFE” will cross.

Another advantage, is that if you character is looking at a moving object you can parent the empty to that object and the eyes will follow it.

Looks like a good tutorial. Perhaps you should request for this thread to be moved to the tutorials forum now that that’s added.

Thanks for making this! :slight_smile:

After discovering the power of the IPO drivers, I decided to do some experiments. If any of the experiments are found successful (or useful), I hope to implement into the tutorial.

Current Beta Test:


reminds me of veggietales

First off try it in practical animation, especailly animating the eyes after animating the charcter movements.

Also this is what I mean by it going wacky

Unless that is an intended effect, it is not somthing worth dealing with everytime your rotate the head.

Also it is not that the eye cross when you move in and out, cause that is a handy effect, its the fact that it crosses when you do not intend it to if you know what I mean. It may not be noticable as much on your since the eyes are not perfectly round, but I have never seen.

Play around with it, and test it, see if it works, and you might see what I mean.

I’m trying to figure out what made those eyes wacky…
Would you be able to send me the .blend file at
snowshoe AT gmail DOT com?

Here I tried to recreate the eyes, without applying the deformation:

First off try it in practical animation, especailly animating the eyes after animating the charcter movements.

I have actually, especally animating a character who is looking at an object.

If you wish to keep the eyes at a constant position you can always parent the empty to what ever you parented the eyes to.
OR create another empty call it “My Friend.”

  1. Parent “My Friend” to your eyes.
  • Than apply a constraint effect (Copy Location) to the target empty…
  • later switching from mode to mode by animating the influence.

Aside from that, we can include a different method of animating eyes. The Ludwig model made by sketchy, for example, has both.

I moved this to the Tutorials forum.

Nice tute too, btw.


Hi Calvin,

Nice tut!!
Mthoenes also made one like that in 2002! (in fact I had to treaten to break his legs to get him to finish it!!) Then, there is also the Lyubomir’s Pixar-eyes tut (now in the 3D noob to pro wiki). Both are a bit outdated now however…
This makes your tutorial a very welcome, nice update to the technique of animating cartoon eyes.
What has me stoked however is your beta! I really think a very basic setup to show how shape controls are created and how they work is needed (it sure is by me) I can see and use the magic in the ManCandy rig but haven’t seen any tutorial basic enough for me to create a setup with it… This certainly looks like it might be it…

Again, nice work and thanks!!

First off try it in practical animation, especailly animating the eyes after animating the charcter movements.

Hmmm, unless I misunderstand you, this is hardly a new concept for animating the eyes in practical animation. Calvin’s method is commonly used as far as I can tell. My own character is certainly rigged with the eyes tracking a target (in my case they target a bone so they are keyed as a part of the posing rather than after-the-fact - perhaps this is your concern with using an empty?). I used to have the head following a separate target but found I couldn’t then tilt it sideways, but that’s another story.

I think the target method has advantages over standard rotation or copy-rotation methods since, as Calvin says, you put the target where you want the eyes to point (keep it at a reasonable distance to minimise crossing). Sure the eyes stay put when the head moves but the feet generally stay put when the spine moves (in a typical IK setup), this doesn’t mean you have to leave things that way.

What method do you recommend for animating eyes Haker?

I lost my .blends for that model in a HD crash, however I do have the final rig which is a simple armature setup.


I used the empty rig for a while, and I am just saying its a pain to deal with IMHO.

Also staying put is what I like, I like to animate individually.

(The reason is I am trying to work on an ultimately free rig, free of bounds, like a ragdoll that you can drag around and the base doesnt constrain, no real need for paths.)

Even tho I am still fairly new at Blender, I think this tut may help me a lot with the eyes for my cute bubble character, But as I was playing with the final blend file, (havent actually played with tut yet) how do you make the eyelids move up and down? I wanted to make his eyes open…

How do you apply “only a certain number of vertices a black material”?

exactly what i was thinking. is it veggie-tales inspired?

it covers this in the blender manual (2.3 guide). go to the editing buttons (F9), hit ‘new’ under the material buttons in ‘Links and Materials’, select the vertices you want black, hit ‘Assign’, go to material buttons (F5), hit the ‘2’ next to the material name to make it a single user, and then make the new material black. i hope that was easy enough.

looks great and i have to try it out. never thought of using latice deformation for eyes.

i’ll try it once i’m done my homework :wink: