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: 19
Last edited:

frank beckmann

Well-known member
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: 18

ZooHead

Well-known member
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
 

BTT1024

Member
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.
 

BTT1024

Member
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.
 

frank beckmann

Well-known member
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: 19

ZooHead

Well-known member
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
 

BTT1024

Member
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.
 

BTT1024

Member
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.
 

jimAult

Member
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
 
Top