Eyelid intersecting with eyeball during rotation using perfect spheres

I started with two perfect UV spheres, both centered at the same point, one is the eyeball, the other scaled slightly larger, is the eyelid around the eyeball. I want to simulate the eyelid closing so I cut part of the faces of the eyelid to make two parts. Then selected the top part and selected that position as my Basis.

I proceed to rotate the selected part of the eyelid around the eyeball on the second shape key. The rotation looks perfect - the entire lid follows exactly the entire shape of the eyeball, since they are both spheres oriented at the same center.

However when I switch back to object mode and play back the motion, the object appears to shrink as it rotates, intersecting the inner sphere and then grows back to original size at the end of the motion, but I never scaled it during rotation.

Does anyone have any idea why this is happening and how I can fix this?

(Blender version is 2.93.5 on Windows OS)

I think you can easily solve your problem making the eyelids a bit bigger and solidifying them.

I think the general problem is that they’re not big enough or, and I’m going on a wild guess here, could be that the two lids joined create some problem(cause one seems bigger than the other one) , if you don’t want to solidify them u can try making them in two separate objects with they’re own pivot point.

Anyway let me know if you solve it like this :slight_smile:

By solidify do you mean this?

Solidify Modifier — Blender Manual

Also is this how I can separate them?

How to disconnect objects - Support / Basics & Interface - Blender Artists Community

Thanks for the suggestions, I’ll also try and make them a bit bigger, although I made them closer to the eyeball size because I thought the rotation would work perfect on account of everything being perfect spheres.

I think the problem is that shape keys interpolate linearly between the individual keys, that is, the vertices of the mesh move on straight lines, leading to the intersections.

Is there a particular reason you are using shape keys and not, for example rotation keyframes?

1 Like

Yes, you can use the solidify modifier, that is the one, or you can simply solidify the faces in edit mode under the “face” section, but I recommend the modifier.

To separate a part of an object u can just select it in edit mode and then press P to separate them in two different objects.

Let me know if it works well :slight_smile:

I was not aware of rotation keyframes until now. I was following along several youtube tutorials for eyelid animation and they both used shape keys.

I will try and experiment with the rotation keyframes. Thanks for the suggestion.

Ok so those two suggestions did not work. I tried both to solidify the eyelid and also to separate the objects. The same problem occurred.

The only way I could get it to work is using the rotation keyframes to animate it as suggested by @LordoftheFleas . However when doing so I encountered another weird problem.

The bottom eyelid remains fixed at the original point during animation playback. I can move everything together to a new location, but when I start playback the bottom lid jumps back to the original location and is moving by itself in that spot.

  1. The eyelids are parented to the eyeball, I guess?
  2. When defining the keyframes, you should only use rotation, not location

Thank you @LordoftheFleas you are right, I accidentally added location keyframes and scale. So in the Transform menu I right click and remove those keyframes and everything works as I wanted now.