A site for sore eyes: modelling and animating the eye made easy

Eyes are, without doubt, one of my favorite body parts (while keeping this post PG of course). The delicate patterns and shimmering colours of the iris lend such a mystical complexity to these vision organs that it’s no wonder they are referred to as the ‘window to the soul’. I’ve often found myself awkwardly mesmerized by the glistening eyeballs of others during conversation; they generally feel slightly less creeped-out when I tell them that I am designing eyeballs for a visualization project and their peepers are good reference material.

In any case, I was pretty happy when I was asked to help develop some digital learning material for undergraduates at the University of Melbourne on the autonomic nervous system. That’s the one you have no voluntary control over (e.g. systems controlling blood pressure, gut motility, pupil size…). In addition to 2D interactive material, I was to develop a short animation that highlighted the types of muscles in the iris and how their orientation and activation allowed for tight control of the pupil size. It was the first human-based animation I had attempted and while a little daunting, I learned a few little tips along the way that I thought I’d share with you in case it’s helpful.

  1. Firstly the eyeball. The very first 3D model I ever stumbled through making was an eyeball from a tutorial by the Gnomon School of VFX founder Alex Alvarez, which you can find here. Hands down, he is one of the best CG teachers there is. I used a Blend Shape process to control the vertices of the iris which controlled the pupil size.
  2. Then came the head base mesh. For this I used the handy open source program MakeHuman and imported the model into Maya. I deleted all the unnecessary polygons such that I was left with just the upper left quadrant of the face. It’s important to do this first, as I’ll point out next.
  3. I used a duplicate of the mesh and modified the topology with soft select to close the eyelids into a rough blink shape. I used Blend Shapes to animate the blink, which only work on meshes of the same topology (see 2).
  4. For the eyelashes, I found a great video by Peter Anderson, who uses the script Duplicate Along Path to easily create polygonal eyelashes. Instead of drawing a new curve, I used a polygon edge from the top and bottom lids and converted them to curves. As long as you don’t delete history of the curves, their position will stay linked to the parent mesh, and as the eyelashes are linked to the curve they will move with the lid. Sure, it may not be perfect, but it worked well enough for my purposes.
  5. For easy control of eye direction, blinking and pupil size, I linked the parameters to controllers using either parent constraints or set driven keys, which made life so much easier when it came time to animate!

Here is the final video. Thanks for watching!


%d bloggers like this: