# How to make a flat plane follow a bone without rotating

So basically I want to do what should be a simple 2D eye rig where each part of the eye is a flat plane that follows a bone but doesn't rotate

This the eye (each color is a plane)

This is how I want it to follow a bone and preferably stay in the confines of the last plane

I've found very few tutorials on this from years ago that are incomplete in explaining it, for example heres a 3 bone system I tried where the pupil is its own bone and theres a bone that tracks a target bone like a normal eye rig, but it still rotates the pupil with the bone which isn't how the desired effect I want to make it into two eyes and connect it to a head and rig. I would also prefer the layers to be curved but I just don't think thats possible or easy! I'm pretty sure I'll have to give each layer a bone and rig it to a tracker bone, and add some limitations constraints but I'm unsure how to make it all come together

You could create a new vertex group to your object, give it a Hook modifier with the group selected and a bone as controller Object:

Then assign each part of your object to the group with a decreasing Weight (1 for the smallest circle, 0 for the biggest):

Now you can move the bone, adjust the weight a bit so that each part follows as much as you want:

• I actually got this working pretty well with some constraints so thanks! But do you know the best way to rig this to a head bone? I tried but the rotation of the parent bone tends to cause the layers to distort
– Gray
Commented Dec 7, 2022 at 2:45
• You can parent the eye bone to the head bone with a Ctrl P > Keep Offset, and also parent the object to the head bone: Select the object, shift select the armature, switch to Pose mode and Ctrl P > Bone Commented Dec 7, 2022 at 8:07

Just out of interest, here's a shader-only approach, controlled with an empty, avoiding the need for multiple slices of geometry.

It relies on a simple mask, measuring the radius around a point at some fraction of the vector between the object-origin and the location of a (child) Empty:

That can be grouped up and cascaded to give rings around various points on the line between the object-origin and the Empty:

The cluster at the bottom scales relative X and Y of the Empty's space, to make the last mask elliptical.

This it what the result looks like on a flat XY surface:

.. and it can be extended to curved surfaces..

... but if the distortion of the shapes is a bother, we may have to constrain the Empty to the curved surface, and/or work in UV, instead of Object space. I think we could probably keep things simpler if the curved surface was known, before re-jigging.