I’m rigging a character (for the first time) and have set up a bone to control the eyes, as I have seen done on a few models (see attached pic). How do I use this bone to control the rotation of the eyes, without moving the eyes out of place?
Also, the eyes need to move with the rest of the head when it’s moved.
If anyone could let me know how this is done would be great
There are a couple of ways but the result is essentially the same.
Make sure the root of the eye bone (the bone inside the eye) is located at the centre point of the eye ball and the tip is pointing through the pupil. Parent these bones to the head bone. You can also apply transform locks (N-Key) to the LocX,Y,Z to prevent the bone being moved accidentally.
Either Parent the eyeball to the eye bone or use an armature modifier and associate/weight-paint the eye mesh to the bone.
Set the eye bone to track the eye controller bone(s).
Because the eye bones are parented to the head bone, they follow its rotation and take the eye meshes with them. Basically, any time you want something to stay with the skull (a set of top teeth for example) you parent them to the head bone. If you want to be able to animate them separately (like eyes and bottom teeth), then parent them to a separate bone and parent that bone to the head bone.
Note that some people use one controller bone, some use two (one for each eye) and some use three (one for each eye parented to another bone)
You may be able to just put a track-to on the eyeballs to the controller then parent the eyeballs to the head bone. I haven’t tried it that way but it should work - I think.
eye bones set up, and copy rotation (just learnt to use this! ) from the controller bone to the eye bones. controller bone parented to the head bone. Other inner eye bits also parented to the head bone.
Everything works! Eye comes out of the head slightly but eye suppose that’s because the bone isn’t aligned properly (sorry bad pun :o).
I think the one bone is better - surely 99% of the time you want the eyes to move together?
Thanks for your help.
To get eye bone in dead centre of eye ball, do following:
Go into Top View, select eye ball, click centre new in case object centre is not in the middle, then Shift-S, cursor to selection.
Then go into edit mode for the armature and add bone. It will be spot on.
When you use a track to constraint instead of copy rotation, you’ll just have to move the eye controller bone to have the eyes follow it (when the eyes flip backwards, change the axe in modifier panel).
Add a copy location constraint to the controller bone and have it copy for instance the camera location. This way your character always looks in the camera, no matter where you put it.
As RobinM said, use a “Track To” constraint on the eye bones (tracking the controller bone) - delete the Copy rotation constraint. Then, you just put the controller bone wherever you want him to look. If you use copy rotation he can’t go cross-eyed and its also surprising how the subtle convergence/divergence of the eye balls is sub-conciously picked up in the animation when you move a tracked bone closer and further away from the character.
Also, in general, the controller bone should be parented to the Root Bone of the armature.
surely 99% of the time you want the eyes to move together?
That’s my theory too. But sometimes, you may want a cartoon character’s eyes to move in completely different directions. But if that’s a rare occurence you could just turn down the Track To constraint influence and animate them separately.