Advanced Cartoon Eye Rig with Chris McFall

I followed this tutorial and have a working eye. Everything works perfect until I go to append the eye to a new scene. Then the whole thing falls apart.

This is what happens when I group the eye and append:

I am guessing the point of that tutorial is to have a tool which you can append to other scenes. Recreating that eye in every project would be painful! Can anyone help?

Also scaling that eye doesn’t work well either

He uses empties instead of bones in his rig. Not a smart choice for animation or rigging. If you clear the transforms on an empty it will go to world center and collapse the rig. Bones have a default location that can’t be abused like this. Not to mention for every empty that is acting as a control, there need to be a separate action. (that’s a animators nightmare.) Armatures can have as many bones as you like and you only need a single action to key those bones.

Recreate the rig using bones or move on to a different rig. It may not be worth your time.

To be fair, there are some good ideas in that tutorial. It’s the reliance on empties that’s a pisser. Breakable rigs are useless.

Good luck!


Do you have any idea how I can start that? I was able to get the hook part of the iris training and then it broke: Here is the file if you want to take a look:

Your thoughts?

I am not sure that is the best option, but it seems to work: Here is the blend file:

I did this with the shrink modifier, No empties so far

(I fixed the problem with the red arrow pointing to it.), but feel free to download the eye and let me know your thoughts, eye not done yet)


Please except my apology. I cannot take the time to re-rig this atm. Long work hours and the holidays are coming fast. I mainly wanted to point out that the rig was breakable and why. I had this on my to-do-list for a while. I just have not had the time to commit to it.

I will try to take a look and give pointers where I can.

Good luck!

Thanks Dan,

I actually made a lot of progress on this today. I have a strange issue with an eye bone moving on opening up the file. after I open the armature and hitting tab twice, the problem is fixed. If you have a minute a lot of the leg work has been done. I would be interested in your feedback or anyone else’s

Here is the file:

PS if you are busy, don’t worry about it. this isn’t a pressing need. Just trying to learn.

In a seperate file, I remove the bone as the hook and replaced it with an empty. That seems to be a better solution. you can find that here:

I haven’t looked at the rig, but I just wanted to point out that you could utilize empties without it becoming a ‘broken’ rig. The standard workflow for something like this would be using two empties and create a parent child relation between the two. Position the parent empty where you would like the default location to be and then lock it’s transformations and hide it (or even parent it to something else!). The child empty now has a local destination to return to if it’s transformations have been cleared. From here on out, you would do all transformation only to the child empty.

Hey Koots, you’re having strange problems with your rig because it contains a cyclic dependency. You can view this by navigating to Window -> Toggle System Console, which is usually found at the top of the screen.

I don’t really have any comments on the rig itself, I just wanted to point this out to help you debug it. ;p

And the problem with having separate actions for each empty that is acting as a control is still an issue. Armatures are always the way to go. If you are rigging something that implies that you will be animating it. Rigging is a means to make animation easier and to automate simple or complex actions to make animation easier. I think the “it’s possible to do it this way” argument is completely missing the point of the main goal of rigging.

You do make a good point about making the empties unselectable.


I have looked at the tutorials to refresh my memory on the rig. I think the easiest solution would be to parent the empties (the ones that are actual controls) in the rig to bones in an armature. This way, you will not have to reinvent the rig in any way. You will just be transferring control to an armature.

After parenting the control empties to bones, lock the transforms on all empties and make them unselectable. I would do as XoLizzy suggests and also hide them. You will probably need a master bone to act as a master parent for all items (meshes, empties, or any other objects) that are not controls.

Of course the next step would be to make TWO eyes. One won’t get you very far unless your world is populated by Cyclops creatures. That will add a few snags to the rigging I’m sure. You can always look up Humane Rigging by Nathan Vegdahl for a good eye target rig.

One last thing. If I was rigging this eye (or eyes), I would try to think ahead a bit to make it as easy as I could to add this setup to other rigs.

I was thinking about your initial problem of trying to append this eye to another scene. It could be that you missed some important objects in the rig when you grouped (you did make a group?) them. The source files had some items hidden and unselectable. This may have been your problem to begin with.

Good luck!

Knowing more than one way to solve something is always beneficial. Both approaches have their merits.

I actually use more than one armature with external empties in a single character rig which helps with localizing data (which is extremely important for debugging a complex rig), easing the use of drivers, easily avoids cyclic dependencies (Because armature objects handle data differently from other objects, stepping out of the scope of an armature can be very powerful when setting up a rig), attach non-rig essentials to the rig ‘on-the-fly’ without bloating the rig … All of these things are for simplifying the rig/animation process. An armature actually over complicates the animation process when you want to animate two bones, from two separate armatures, at the same time (That’s just one of maaaany examples which is easily fixed by using empties).

By the way, having two different Actions for the same rig isn’t always a bad thing. It can actually be used to have two animators work on the same character at the same time (especially when it comes to the polishing stage). But at last, this is even harder to setup with an armature.

Anyways, I’m not really providing anything to the discussion, I just don’t want you to deter koots from thinking differently.


I have a working eye rig with an armature if your interested. I did not take the time to make two eyes, but this should get you started and give some direction.

I have appended this into another file, so I can confirm that it works. Also, I did my best to make everything “unbreakable”.

Here is the link:

I felt I needed to add a password as the main rig and texture belong to CGCookie and Chris, I just added to it to make it a bit more friendly to use. I’ll PM the password.

Here are a few changes:

The main change is using an armature. I made custom bone shapes as well.

The Eye.Main.L is the master control. Use it to place and scale the eye in the scene.

Eye.LatticeRot.L has a couple of functions. You can rotate this to adjust the position of the lattice. It may not be needed or necessary, but I added it just in case. The main purpose is to allow access to shapekeys on the lattice. You can find the custom sliders in the N panel>Properties of this bone. Having custom properties on the bone drive shapekeys on a mesh, allows you to key them easily. They are now part of the armature action.

Next is the pupil control.

And finally, the eye target.

This is mainly a location control, but if you scale it, it will control the overall size of the iris and pupil.

If you have any questions, let me know.

Good luck!