Search form

'3D for Beginners:' The Eyes Have It

From 3D for the Web s chapter on designing and making characters, authors Carol MacGillivray and Anthony Head delve into how to bring life to the eyes.

All images from 3D for the Web by Carol MacGillivray and Anthony Head. Reprinted with permission.

All images from 3D for the Web by Carol MacGillivray and Anthony Head. Reprinted with permission.

Watch any closeup of a lead actor in a movie, and see how their eyes glint. We register and read all emotions in our eyes; they are the window to our souls. Most characters you build in 3D will have eyes, in fact adding eyes to just about anything, makes it a character. In 3D there are two things you want from eyes; that they look great, and are easy to control. This tutorial shows a way of building eyes with lots of character that are fun to animate.

Create a sphere that has 32 segments. Label it R-eyeball. Select the sphere with the Uniform Scale tool and Shift-drag to create a second slightly larger sphere. Set the hemisphere spinner to 0.5. Call this R-eyelid. Convert this hemisphere to an Editable Mesh to tweak the eyelid vertices at the edge into a nice, perky shape for definition.

Select the original R-eyeball with the Scale tool and clone a third sphere, mid-size between the two others for the pupil. Set the hemisphere spinner to about 0.85 and rotate the pupil so it looks at you from the front viewport. Label this R-pupil. Link the pupil to the eyeball using the Link tool from the main toolbar.

Assign suitable materials to each object, such as a white shiny eyeball, black pupil, etc. Select all three Modified Spheres and copy them to the right to make the left eye. Re-label these L (Figure 1).

[Figure 1] Two basic eyes.

[Figure 1] Two basic eyes.

Now we are going to add controllers for blinking and orientating the pupils.

First we are going to add a Dummy to control blinking. A Dummy, helper object is a wireframe cube with a pivot point at its geometric center that does not render. You can create a Dummy by going to the Helpers panel and choosing Dummy (Figure 2).

Top Tip

For this to work correctly it is essential that the pivot points of all the spheres remain aligned. The pivot point (which represents an objects local center and its place in the local coordinate system) on any object is where the Gizmo is positioned when an object is selected. It is typically in the center of a sphere or cube when first created. To align (or re-align) pivot points use the Align tool in the main toolbar. Select the object you wish to align, click on the tool (which will highlight in yellow) and select the object you wish to align to.

[Figure 2] The Helpers panel.

[Figure 2] The Helpers panel.

Create the Dummy by Click-dragging midway between the two eyes in the top viewport. Adjust its orientation so that it is aligned on the Y- and Z-axis with the pivot points of the eyeballs. Link the two eyelids to the Dummy. Select the Dummy and select Local from the Reference Coordinate System in the main toolbar (where it reads View, next to the Scale tool). This will make sure that the Dummy will rotate on the same axis whichever viewport you use. Rotate the Dummy on the X-axis, to check that the eyelids make a smooth blink. (If they do not, then re-align your objects.) Label the Dummy Blink-Dummy.

Now let us add a Dummy to control where the pupils look. In the top viewport create a Dummy that sits in front of the eyes, and some distance away. (This is where the eyes will look at, so imagine a character sitting directly opposite.) Rename this Dummy, Lookat Dummy.

[Figure 3] The Assign Controller menu.

[Figure 3] The Assign Controller menu.

Select the R-pupil and hit the Motion Panel button. In Parameters > Assign Controller, select Rotation, click on the ? button, and select the LookAt Constraint from the Assign Controller menu (Figure 3).

Under LookAt Constraint, click on Add LookAt Target, and choose the Lookat Dummy you have created. Your pupil will probably flip to the back of the eyeball. Select the LookAt axis Z, and the pupil will return, there should be a blue line heading away from the pupil towards the Dummy. (If the pupil still does not point the right way, click on Reset Orientation and rotate it into the correct position.) Do the same for the L pupil. Check it is all working by moving the Lookat Dummy and seeing if the pupils follow.

Note: If you think you will need to move the pupils separately at some point, create two Lookat Dummies, one for each eye and group them after adding the LookAt Constraint. If you want your character to wink, you will have to unlink one eyelid, or if it has a nervous tic, make two blink Dummies.

These two Dummy Helpers will really speed things up when animating eyes, now let us concentrate on making them look great. We are going to add a Space Warp to give the eyes character.

Click on the Create button and choose Space Warps > Geometric/ Deformable. In the top viewport create an FFD box big enough to encompass the R-eyeball and Eyelid. Position the FFD Space Warp to fit over the R-eye. It will look like a lattice with 4 X 4 X 4 control points. It is a good idea, under the Space Warp Parameters > Deform, to click on All vertices here, so none accidentally escapes the FFD lattice (Figure 4).

Name this R-eye-FFD box.

Next use the Bind to Space Warp tool from the top menu bar, to bind the Right eyeball, eyelid and pupil to the FFD Space Warp. (As it binds, the control vertices of the FFD Space Warp flash white.)

Create another FFD Space Warp and do the same to the left eye. 3d04_3DForTheWeb04.jpg

[Figure 4] The Create > Space Warps panel.

replace_caption_3d05_3DForTheWeb05.jpg

Select the Right-eye-FFD box and under the modify panel open the Sub-Object rollout to select Control Points. By selecting and moving the control points of each FFD Box, you can change the shape of each eye (Figure 5).

The eyes should not only look good and expressive, but still animate fluidly using the Dummy controllers, because 3ds max works through the Modifier Stack from the bottom up. (You can hide the FFD boxes when animating, as they get in the way of seeing the expressions.)

Top Tip

You may also want to create a Target Spotlight for your eyes to give them that lead actor glint. You can link this to the Master Dummy as well, so the eyes will always have a keylight.

It just remains to make sure all the links are correct and to link the whole lot to a Dummy so that the eyes are easy to move around en masse. Create a large Dummy over the eyes and call it Eyes-MasterDummy. This will be our Master Dummy.

Because the Blink-Dummy is already controlling the eyelids, and the eyeballs already control the pupils, you should link everything but the eyelids and pupils to the Master Dummy (Figure 6).

Note: The eyes can be tricky to resize, so try and resize your character to the eyes rather than the other way around. Also remember that although these eyes look great, they are heavy on polygons.

[Figure 6] The object subtree, showing the linked hierarchy of the eyes.

[Figure 6] The object subtree, showing the linked hierarchy of the eyes.

To learn more about designing and making characters, check out 3D for the Web by Carol MacGillivray and Anthony Head; Burlington, MA: Focal Press, 2005; 328 pages with illustrations and CD-ROM. ISBN 0-240-51910-8 ($36.95). Check back with Animation World Magazine frequently to read new excerpts.

Carol MacGillivray was already a successful film editor before forming the pop video production company, Giblets with three friends who were animators and directors. Giblets specialized in combining media, mixing live action with 2D and 3D animation in an almost pre-digital era. Although they worked with many stars, Giblets, are most famous for bringing about the re-release of a trilogy of Jackie Wilson songs, starting with the clay animation video for Reet Petite that was a number 1 hit in 1987. Carol still has the gold disc hanging in her loo! After teaching at the Royal College of Art, Carol became interested in the new digital technology and was given an AHRB award to study an MA in Digital Moving Image at London Guildhall. She is now a senior lecturer in Digital Animation and Digital Arts at The London College of Music and Media, Thames Valley University.

Anthony Head worked in design and printing industry for seven years before pursuing his digital art full time, he has a First in BA Digital Art and a Distinction in MA Computer Art, awards include D&AD Student Award for E-Toy Design 2001, Peterborough Prize for Digital Art, joint prize with Jeremy Gardiner for Purbeck Light Years. A digital artist who combines creative intelligence with a strong design background, Anthony specializes in interactive 3D and immersive environments. He recently exhibited at SIGGRAPH 2004, Art Gallery Synaesthesia and has won many cans of Pepsi for a digital picture of The Haywain for Amiga Format Magazine! Anthony is currently course leader at Bath Spa University College Design for Digital Technologies, after being a fellow Lecturer in Digital Art at Thames Valley University.Both Anthony and Carol are passionate about their roles as teachers, keen to pass on their knowledge and share ideas and information. They are equally passionate in their role as learners; digital media moves so quickly and there is always something new just around the corner.