I'm trying to create a realistic Eye rig that uses bones instead of shapekeys to achieve more realistic results. I want the eyelids to deform around the cornea when the eye is moved around.

And while I have the eyelid being entirelly moved by bones I can't make it wrap around the eye because of the cornea. As you can see in the picture below the eyelid is clipping trough the eye mesh.

enter image description here

The eye was made with anatomic references and thus it's accurate, as such it has the "bulge" of the cornea.

Video showing what I want to achieve: https://www.youtube.com/watch?v=TAZIvyAJfeM

Is it possible to achieve this in Blender?

  • $\begingroup$ Here is a correctly rigged test character created with Makehuman:<img src="https://blend-exchange.giantcowfilms.com/embedImage.png?bid=6128" /> $\endgroup$
    – FFeller
    Apr 28 '19 at 16:53
  • $\begingroup$ I'm not sure how exactly this is suppose to help me. It has a setup very identical to mine except that the eye here is clearly lacking a cornea which makes it incorrect. And thus there is no clipping. $\endgroup$
    – user15147
    Apr 28 '19 at 17:02
  • $\begingroup$ you can copy the weights and the bone position $\endgroup$
    – FFeller
    Apr 28 '19 at 17:04
  • $\begingroup$ That would do nothing. I'm going to update my question with a video of what I'm trying to achieve. $\endgroup$
    – user15147
    Apr 28 '19 at 17:05
  • $\begingroup$ Updated question with video of what I'm trying to achieve. $\endgroup$
    – user15147
    Apr 28 '19 at 17:10

I tried with the Warp modifier but it seems hard to make it work with a complexe topology, a Lattice modifier seems much more convenient:

  • First remove all the Copy Transforms constraints of your 3 bones (not sure why you want those).
  • In Pose mode, close the eyelid a bit so that you'll be able to test the modifier when the eyes are closed.
  • Create a lattice in front of your eye: shiftA > Lattice. Scale it down.
  • Subdivide it a bit, for example U and W values > 7, and make it flat on the Y axis with a V value of 1.
  • Give your eyelid mesh a Lattice modifier. Choose the lattice as Object.
  • Select your lattice, go in Edit mode, select the central vertices and make it a bit round, use the Proportional Editing / Sphere falloff type to help you.
  • Parent the lattice to the eye bone: ctrlP > Bone.
  • Now when you'll move the bone, the transformation of the eyelid will follow.
  • If necessary make some adjustments to the lattice in Edit mode, or scale it up or down in Object mode, play with the modifier Strength (and create keyframes if the influence changes through time). You can also limit the lattice influence on only a part of the eyelid mesh (with a vertex group that you'll set in the Vertex Group field of the modifier), etc...

enter image description here

  • $\begingroup$ Sadly, I'm not getting good results. The mesh is just being pushed away leaving gaps between the eye and the eyelids. $\endgroup$
    – user15147
    Apr 28 '19 at 21:17
  • $\begingroup$ You need to play subtly with parameters, and also the position of the empties count, so maybe parent each of them to their own bone so that you can play on their position, there is no reason you could not make it work the way you want. $\endgroup$
    – moonboots
    Apr 28 '19 at 21:31
  • $\begingroup$ I'll experiment some more with them. But it seems that it is much harder to achieve this without shapekeys. $\endgroup$
    – user15147
    Apr 28 '19 at 23:50
  • $\begingroup$ Yea, this really doesn't work. I tried all the values and moving things around but nothing seems to change. $\endgroup$
    – user15147
    Apr 29 '19 at 12:16
  • $\begingroup$ could you please share this part of your file so that I can try, because I don't see how it can't work as you can set whatever factor you want: radius, strength, shape of the bump, etc... $\endgroup$
    – moonboots
    Apr 29 '19 at 13:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy