Eye tracking problems

I’m using the track to constraint to animate the eyeballs, and the problem is, when the eyes look directly forward, it appears as if they are slightly cross-eyed. I figured the problem was possibly that the eyeballs weren’t properly centered in the sockets, but when I center them they either pop through the sockets, or if I move them back, they are too far in the sockets and clear gaps are visible. I guess this problem could possibly be fixed if I used a single bone to control the rotation of both eyes, but then I wouldn’t be able to make them cross-eyed if I wanted to.

How am I supposed to track the eyes properly without making them look cross-eyed or popping out of the socket?

are you only using one track to for both of the eyes?

if you are then that is why they are cross eyed
Imagine staring at your finger that is closed to your nose (you’re cross eyed) then move it further away (you’re still crossed but the effect is lessened)

what you can do is have a target for each eye directly ahead
then parent those targets to an empty thats in the middle

that way you can still have control each eye independently and point the parent where you want the character look

I have a bone for each eye both tracking to the same point.

But the problem is the target is far enough that the eyes shouldn’t look cross eyed. I think the problem is how the eye socket is shaped or something. The way it is now, I have to angle the eyes slightly outwards for the irises to line up where they are supposed to when looking straight forward.

Now, I only just started modeling this face a few days ago so I supposed I can modify it if needed. I’m modeling it based off of images so the shape of the eye sockets should be pretty similar to how they are in real life.

I want to be able to have the eyes target the way real eyes do, so if the target is directly in front of the right eye, the right eye will be looking straight and the left will be angled.

Here are a couple pictures showing how they’re currently slightly angled outwards whle the irises are in the right places. When I angle them directly forward, they look cross eyed.

Also, I know the face doesn’t look that symmetrical. That’s the reason I’m doing it from photographs and not only doing one side and mirroring it. The real face isn’t perfectly symmetrical. I don’t think it has a major effect on this problem because I’ve had this problem before with other models. (including makehuman models)


in real life - your eyes point a certain direction and produce 2 images that it sends to the brain
(which is upsidedown)
your brain turns this into one image and puts it up the right way
(that is why even people with a lazy eye don’t see double vision)

so in real life - your eyes are tracking to 2 separate points

in your model - you can make it look right by doing the same then parent both those points to another empty

However, your model will look cross eyed if the eyes aren’t in the centre on the socket
it doesn’t matter if the sockets aren’t symmetrical just as long as the eyeball matches the socket

the iris should always be in the widest opening of the eyelid when looking straight ahead
but it’s hard to tell what’s going on the image

post one from directly in front - with the eyes looking straight ahead

This is what happens when I have the eyes look straight ahead. The problem is, the eyeballs are physically in the center of the socket, as in, if I move them to the left/right/up/down at all they pop through the skin and there is a gap between the eyeball and the skin on the other side.

EDIT: Also your eyes in real life track one point, that’s how they focus. Both eyes point directly at the same object. That object is in focus, and everything else is slightly out of focus. Sure there are constraints limiting the rotation of the eyes, but both eyes are attempting to target the same object.


So it seems I was right. What I had to do was modify the actual shape of the eye sockets to make this work right. I moved the eyes to look straight forward and moved them to the correct positions and then remodeled the sockets around them. I got this:

So would it be a good idea from now on to model the sockets around the eyeballs then?


your picture still looks like it might be cross eyed - but maybe because the picture is not from directly in front

yes it is a good idea to model the socket around the eyeball
But if your model pokes through the mesh when you move the eyes (and your pivot is in the correct spot) then it is a problem with the mesh not a tracking problem.

Sorry to reiterate, but your eye’s in “real life” do not both track to the same point.
the reason an object is in focus is because the muscles in your eye control the lens in your eye to focus the light onto the retina. The middle part of your retina is more sensitive than the outside (which is why your peripheral vision is blurry).

Imagine looking through a window at a tree - then (with out moving your eyes) focus on the glass that you are looking through. Your eyes have not moved - only your lens

I know it is hard to imagine but your eyes do point in different directions. It is roughly the same point but not exactly. (a more extreme example is a person who has a lazy eye - and yet they only see one image)
How is this so?
Your brain does amazing things to make the 2 images it receives “look correct”

Here are a few examples of what the brain does to correct an image

Look directly into a mirror - then tilt your head to the side
do you notice what your eyes do? - yep, they rotate sideways!
its only a few degrees and it’s an involuntary muscle reaction but it happens
this is your brains response to “fix” the rotated image being sent to the brain.

so what about when you tilt your head further?
say you’re watch TV lying 90 degrees sideways on the couch
The image appears upright because your eyes rotate as far as they can go and then the brain corrects the image to display the way it should.

Well I know it’s not exactly 1 point, but it’s close enough that it looks perfect when rigged that way. The problem is, if I rig 2 separate trackers parented to 1 target, then if the target was directly in front of the left eye, the left eye wouldn’t be looking straight, it would be looking to the left slightly. In real life the eye would be looking straight. This is why I needed them to work the way I said.

The eyes don’t poke through the skin when rotated, I was talking about when I was re-centering them in the socket. I’ve since fixed this.

This wasn’t meant to be a anatomy lesson, I was just having troubles rigging my eyes. It seems I have fixed them on my own. Right now the sockets don’t exactly fit the original photographs, but they’re close enough that it shouldn’t be easy to tell.

It is always good to understand how things work as it makes it easier to replicate

check out the mancandy rig - it has an awesome eye rig

it basically has the set-up I have explained to you
except it’s a bit more complex in the constraints
and the objects are inside the armature (not empties)
It will also show you how the eyelids move when your eyes move up and down

Mancady’s eyes point straight ahead to 2 separate targets
then there is a parent in the middle
you can make mancandy cross eyed or the reverse by scaling the middle bone (this can fix the tracking if he is looking at something extremely close)

This set-up is much more flexible than having one target to track the eyes to one point.
you will not be able to adjust any the tracking of the eyes independently if they only track to one point.