Weird eye tracking problem with squishy veggie-looking character (+.blend)

(edit: see 2 posts down for .blend and instructions on how to duplicate the problem)
Hello ,
My rig looks fine until I rotate the root bone about the Z axis
here’s the problem:

  • it looks like the eyes roll into the head and don’t track properly.
    (in the pic, the pupils are in the back of the head)
    if you have any guesses to the problem, please leave a comment.
    thanks.
    -amdbcg
    :smiley:

Attachments


It looks like it is getting double rotation.

I can’t say exactly why, but I can point out a couple things to look for:
Play around with what the parents of your eyes and eye trackers are.
Play around with the constraint orders and channels.
If you are using a bone to deform the eyes into ovals. Try using a lattice for that instead.

k, thanks.
Temporary solution:
I found the Eye Tracker bone is parented to the root bone, when I rotate the root bone, the parent/child relationship throws it off. However, without that relationship, the eye tracker remains in one spot away from the action.

Problem created by temporary solution :
I removed the parent, but now the child (the Eye tracker) is just stuck - it doesn’t move with the rest of the rig. How do I fix this?
also, when the root bone moves, the eye tracking gets messed up

here’s the .blend file:
http://dl.getdropbox.com/u/671816/sumo2.blend

see the pic :

  • Top Cube animates the body
  • Middle cube is eye target
  • Bottom shoe thing is the root bone.

Please rotate the root bone to see my predicament.
Obviously my hierarchy is off, or something is off but I’m not sure how to fix it:(
this problem is really, really bothering me. Any solutions would be appreciated:D.
temporary work-around suggestions would be nice too :slight_smile:

Thanks,
AMDBCG

Attachments


I’ve had problems with eye tracking too. I’m sure there’s a better solution than this, but what I ended up doing is targeting the eyes to an empty outside of the armature.
Of course this has a couple problems… It doesn’t follow along with the rig. It won’t be included in Actions (it has to be animated separately).
But it solved some of the other problems, like double rotations.

Hey AMDBCG,

This looks like it’s gearing up to be a fun animation! :smiley:

I’ve created a simplified example of an eye rig using track-to and lattices to show you how it can be done easily using all bone controls. The eyeballs are parented to eyebones (which are the trackers), and the lattices are parented to the head bone. If you’d rather the lattices move with the eye, then just parent them to the eyebone. The eye control can then be parented anywhere else in the hierarchy you’d like. You can even use a parent constraint to parent it to the head, which you can turn on and off as you’d like using a driver.

I would also recommend that if you aren’t linking your characters into your scene, that you make sure to finish the rigs before appending them. It really helps keep things clean and organized to have your character at world 0 while rigging. If you’re using single armature characters (as you are here), then it shouldn’t be a problem to link them into the scene, allowing you to make your changes in a clean file and to setup the scene at the same time.

Cheers!

Attachments

AMDBCG_simpleLatEyes_example.blend (202 KB)

@ Feelgood Comics: thanks for the response. However, your example is exactly the same as what I’m currently using
the double rotation is coming from the body lattice - in order to deform the eyes
this is what happens when that lattice deform is off: the eye goes haywire.


I found a temporary workaround - just child-of constraint the eye tracker and turn off all the rotation things. Meh, it works. Not as well as I want, but it works.
So do you think this double rotation between a lattice/sub-lattice/armature is a bug … or a feature ? :slight_smile:

Oh I didn’t realize you were using the body lattice on the eyes… that’s the problem. In the example I provided, I had the eyes and eye lattices parented directly to the bone (you use a rotation constraint, and leave them unparented). However parenting to the bone will not work in combination with the lattices. You would then have a lattice deforming a lattice, which is deforming an object that is parented to the armature. The armature would move the eye and the lattice (which in turn deforms the eye again) giving you double transforms.

The simplest way I can think of off-hand to set this up would be to just not use the body lattice on the eye lattices… parent those, and the eyeballs, directly to the bones instead. Depending on which effect you would prefer for the eyes, you can parent the lattices to the eye bones or the head bone. In the example attached I’ve parented the lattices to the head bone, so the eyes move independently from the lattices. I would also recommend using IK on the eyes instead of the track-to, so they stay aligned with the head as it rotates.

Attachments

AMDBCG_simpleLatEyes_bodyLattice.blend (216 KB)

k, thanks for the help. Just for clarification, the lattice is currently acting like glue to hold the eyes together. When it’s just parented to the bone, the eye just doesn’t deform correctly.
I’ll look into correcting it in my future rigs. However, I’m making progress with this one and don’t feel like stopping :stuck_out_tongue:
here’s the progress so far: http://www.youtube.com/watch?v=v_0PS_DyYOs&eurl=http%3A%2F%2Fwww.youtube.com%2Fuser%2Famdbcg&feature=player_profilepage