I'm still a novice, and I've been struggling with the pupils on multiple puppets where the pupils stray off. I was previously trying to make a pupil range layer and cover it with a different shaped eye, but only once I reduced the camera strength to 2% did it stay in the eye ball. I decided to just make literally the most basic one from scratch with regular identical white eyeballs and black pupils but still the pupils keep running off. I thought I was getting the hang of rigging and tagging all the parts correctly!
Also, while I'm sharing it, is there anything special I need to do with puppets that share the same head and body? Thanks for reading!
I checked your "Fluffy_the_watermelon” puppet and saw that the “Pupil Size” tag of both eyes is set to the document size.
After I modify the source Photoshop file and set "Pupil Size" to match to both pupil images, Eye Gaze seems working.
I will send the modified version to you via direct message.
Please try. Thanks.
Could you share how you noticed "Pupil Size" was set to the document size? I agree this was the problem, but I did not understand how you detected it and how you fixed it.
I opened the puppet in Puppet panel and selected one of pupil layers.
Then I saw "Pupil Size" tag and blue boarder appeared at the document size.
The way I fixed is;
1) Edit original and open it in Photoshop
2) add about the same size of brush stroke (one dot) to each pupil layers.
The layer size is reset after that.
Ah! Of course. I should have remembered the blue rectangle. I focussed only on the yellow mesh outline.
What that makes me think was the problem is not a stray pixel off in the distance somewhere but rather than antialiasing around the existing pupils. There is opacity around the edge if you look closely, good for anti-aliasing. I think when I did the selection it trimmed off some of that edge softening. When you redrew the pupil you probably had a hard (or harder) edge to the brush.
Maybe the edge detection algorithm in CH needs to be tweaked. Or add a another "common errors" reporting error message warning the blue bounding box is much larger than the mesh outline, indicating CH failed to compute the bounding box correctly due to "soft edges" of the layer artwork. I had expected it to use the yellow mesh outline, but it appears to use a different algorithm instead and they came up with different answers.
First, I restructured the puppet in Photoshop. You should have a root group for the whole puppet. I also did some little adjustments about independent layers etc. I started introducing the mouth in case you want expressions later, etc.
Notice I deleted the background layer as well. Otherwise it was just regrouping.
After that, I was still pulling out my hair. It was going crazy and I could not work out why. The pupils were going in the opposite direction, which told me it was a pupil range / pupil size problem (the size of the pupil was larger than the range causes this), but I could not spot it.
I finally worked it out. There are some stray pixels somewhere in the eye pupil layers. I don't know how to find them in photoshop, but I clicked on the Left Pupil layer, used quick selection to select the pupil, inverted the selection so it selected everything except the pupil (Select / Inverse from the menus), and hit DEL. This deletes any stray pixels outside the pupil artwork in the pupil layer. Repeat for both pupils and save it.
I then imported the PSD file to make sure I was starting a new, clean puppet with no stray tags. The eyes started working properly. (I normally test by turning off the "Snap Eye Gaze" property of the "Eye Gaze" behavior, and turn on mouse and touch input so I can look straight at screen and move pupils with mouse instead.)
So my guess is there are some stray pixels somewhere in the layer getting CH confused. I have no idea where, but if you follow the above it starts working. And yes, it was horrible and confusing to find because CH was showing the yellow outlines for everything was correct and appropriate... but it was lying.