Oval Cartoon-ish Eyeball movement using F-Curve Controller tag script, UV Offset, and Tracker Ball....

BTT1024

Member
In a discussion in another thread, we were talking about ways to move a character's eyeballs... Currently, in a project I am working on, I'm just using round eyeballs in my character with a "Target" tag on each eyeball to follow a sphere object I plan to move around to make the eyeballs move - I did it that way because rotating oblong/oval eyeballs would result in the eyeball breaking through the main character's Mesh...

But, I figured there has to be a way to get eyeball-like movement for oblong/oval cartoon like eyeballs without rotating the actual eyeball. Not sure how others do it, or if something about this has been previously posted here...

So, I spent a little bit of time tonight working on an idea I had to use the UV Offset for an oblong/oval eye UV Image movement. Not sure if this has been done before (or posted here before).... So, for this example, I used the F-Curve Controller tag script (from tg_jp/ Hiroto: https://www.cheetah3d.com/forum/index.php?threads/12344/), with the position X and Y coordinate property of a tracker ball, linked to the UV Offset for each eyeball's UV Image for X and Y UV Offset. There's a total of 4 F-Curve Controller Tag scripts placed on the tracker ball, 2 for each eye (X and Y link).

I adjusted the formula a bit, which is different for X and Y. The formula needs more work to allow for finer movement, whereas you could move the ball greater distances and the eyeball would only move a little - I'm not an expert with regard to that formula and I'll tinker with the formula some more another day - But, it's math on the value that's sent over from the selected parameter of the host object, to the targeted object's tag that gets the value. Note, the target tag index is 1 for the target's Material/Texture tag (a value of -1 would be the object and it's other object properties such as rotation, scale, etc, Positive numbers relate to the tags that are assigned to the target object, so if my object had other tags before the material/texture tag, and the texture tag was 5th to the right in the icon list, the value would be 5 for the material texture tag).

I've attached a ZIP (TestOblongEyeballs.zip) with the JAS file and the eyeball texture - Note, you need to have tg_jp/ Hiroto's F-Curve Controller tag script installed: https://www.cheetah3d.com/forum/index.php?threads/12344/

Also, I think you will have to reassign the UV/Texture image to the Material's Image property to the texture-image PNG file in the ZIP, since I think the path is fixed and not relative and points to a directory on my machine.

So, note it is not the oval/oblong eyeball that is moving, it is the UV Image that's moving (as a result of the F-Curve Controller script and tracker ball)

Tag-FCurveScript_UVOffSet_Eyeballs.gif


Hopefully this is helpful.

Brian T.
 

Attachments

  • TestOblongEyeballs.zip
    51.4 KB · Views: 142
Last edited:
I tried a more "mechanical" approach - like you will encounter UV mapping distortions I will loose some shape definitions the more extrem the vertical movements are. On the other hand the Iris/Pupil mesh could be more floating to avoid penetration.
Eyeballing.gif

Here´s to an ancient thread "IseeYa".
 

Attachments

  • Eyeballing.jas.zip
    40.7 KB · Views: 136
I've never done oval eyes before, always round.

You could use a flat oval eye with a radial gradient to simulate a 3D eye and a sphere for the pupil.

ovaleye.gif
 
I tried a more "mechanical" approach - like you will encounter UV mapping distortions I will loose some shape definitions the more extrem the vertical movements are. On the other hand the Iris/Pupil mesh could be more floating to avoid penetration.
View attachment 37879
Here´s to an ancient thread "IseeYa".

Frank,
I downloaded and looked at your example. It works well. Like you noted, you get the loss of shape definition, with the pupil cutting into the eyeball... In my example there is some UV distortion, I kind of like that looking at it more closely as it seems like the pupil is constricting to focus and then dilating...
I will try your example with adjustments to the pupil position related to the main eyeball to see if I can reduce the cutting into the eyeball.
Thank you,
Brian T.
 
I've never done oval eyes before, always round.

You could use a flat oval eye with a radial gradient to simulate a 3D eye and a sphere for the pupil.

View attachment 37881

Zoohead,
I've not yet tried to recreate your example, I will try over the weekend. My first thought was that from different angles when making an animation with the character moving and different camera angles, the eyeballs will be seen as flat. From the front, it would look fine... I'll have to try to see what it actually looks like from the side.

Thank you,
Brian T.
 
Hi Brian.
If you want to stay with the f-curve controller tags you might want to invest a bit more time into better/evenly UVs. This is just a quick hack but quite without any distortion:
UV_Eyeballing.gif
 

Attachments

  • UV_eyeballing.zip
    58 KB · Views: 145
Zoohead,
I've not yet tried to recreate your example, I will try over the weekend. My first thought was that from different angles when making an animation with the character moving and different camera angles, the eyeballs will be seen as flat. From the front, it would look fine... I'll have to try to see what it actually looks like from the side.

Thank you,
Brian T.
It may be better for inset eyes so you never get a full side view of the eye.

ovaleyebug.gif
 
It may be better for inset eyes so you never get a full side view of the eye.

View attachment 37891

ZooHead,
The example you provided above, looks great... I noted to MonkeyT, over in the other thread (the "simulating "cartoonish" looking wet paint animation" thread), that all the examples are good and will keep them in mind for the future and keep them in my "toolbox" for the future...

Out of all the examples, I think the UV Map/Image offset method with a more evenly distributed UV as Frank recommended, is best for me at this time... For my Bug animation (that I have to back to work on), I'm just going to stick with the perfect spherical eyeballs with the Target tag.

In the future, I do have some other "cartoon" like characters I want to make and put into stories, so I will now know that I can create them with Oval/Oblong eyeballs and have options for the eye movements.

Thank you,
Brian T.
 
Hi Brian.
If you want to stay with the f-curve controller tags you might want to invest a bit more time into better/evenly UVs. This is just a quick hack but quite without any distortion:
View attachment 37889
Frank,
I like your recommendation and will apply it to my method - see my other notes in my post to Frank or my post to MonkeyT. Thank you for the .JAS example file.

Brian T.
 
Hey, Brian, it will be fun to see your results!
Here is a post I created in 2014 that shows several 'tricks' for programming eye movement that might be helpful.

forum post => Video YouTube -46 min- Splines, tracking, animation
I can create a couple jas files for you that are simpler examples and post them here if it would be helpful to you.
Send me a jas file with a couple of your eye components and I will animate them and build a small library of examples.

This is my first visit back to the forum since last Spring, so it is very cool that you posted about this topic.
Enjoy the video!

1637823213505.png
1637823244870.png
 
Hey, Brian, it will be fun to see your results!
Here is a post I created in 2014 that shows several 'tricks' for programming eye movement that might be helpful.

forum post => Video YouTube -46 min- Splines, tracking, animation
I can create a couple jas files for you that are simpler examples and post them here if it would be helpful to you.
Send me a jas file with a couple of your eye components and I will animate them and build a small library of examples.

This is my first visit back to the forum since last Spring, so it is very cool that you posted about this topic.
Enjoy the video!

View attachment 37948View attachment 37949

jimAult,
Welcome back to the forum... Thank you for the post... I had watched your video, the video you noted, back in 2019 when I first started learning Cheetah3D and then I just watched it again last week. I am comfortable with creating splines, modifying, and using them for tracking...

The main topic for my post in this thread was methods for approaching eyeball movement when the eyeball is oblong/egg shaped in order to keep the eyeball from moving out of position in the mesh when there are up and down movements of the eyeball pupil... I had come up with a method for oblong eyeballs to move only the pupil by moving the UV Image - though, some of the other suggestions work well without distortion of the UV Image (and without having to use the F-Curve Controller tag script I was using). So, in the future when I make a character with oblong eyeballs, I will use one of the other methods proposed (oblong eyeball with transform modifiers)...

For the cartoon Bug animation I am working on, I left my character's eyeballs as perfect spheres and plan to use a hidden target object to move the character eyeball pupils around to focus where needed for parts of the animation/story. When I get to the point where I layout my scenes, I will probably use (create) splines to move my hidden Target objects around at different points in the video, while (key-framing the) turning off of Target tags and turning on others as the characters move to other parts of the scene(s). Though I may just key-frame the actual movement of the target tracking spline(s) to new positions within the scene(s)....

I've used splines for Character tracking and Camera tracking. In my "Mopar or No Car" Halloween video (LINK), I used splines for the Witch character's flight path - I also used a T-Spline setup for up, down and right, left Camera movement (on the same spline as witch) for the witch flying view - screenshot below.... I also used a Circle spline with a Line spline (line spline spline tracked to the circle, so that I could get forward backward movement while the witch's broom bobbed up and down) - screenshot below.... I also used a Camera spline for the starting line camera shots of the car and the witch , with the camera behind the pumpkin-head guy and in that case, I key-framed/moved the camera spline down to settle in behind the pumpkin head guy, the used that camera spline for the camera left and right movement.

At some point, maybe for my Bug animation, I will creating a better more complete Camera Spline Rig (there's different types I can think of, like the T-Spline, or a Vertical line spline with a Circle attached so the camera can loop around the target character/object, so I may create a set of Camera Spline Rigs that I can keep on hand for different scenes)...

Screenshot - Camera T-Spline for various camera positions while tracking witch spline:
WitchCameraT-Spline.png


Screenshot - Witch Wobble Circle and small line Spline (on main flight path spline):
WitchWobbleSplines.png
 
Ah, I meant to mention (which I did in another post), that from other posts on the forum, I learned about the spline "Approximation Angle" setting, for which setting it to a value of "1" (or you can try lower values other than default), it smooths out the movement of the object(s) that are tracking the Spline.
 
Back
Top