Cartoon eye rigging


#1

Hey all, I’ve been looking for a Cinema 4D version of those lovely cartoon eye rigs (and mouth) that usually are created in Maya. The multi-joint setup that seems to be effortlessy manipulated by a few simple on screen controllers.

I can’t find any examples or tutorials of this in Cinema 4d and have been struggling to build something for myself. I’ve attached an example of what I have achieved. As far as I can see a series of joints is rigged to the outside lids from the centre of the eye, easy enough, then they seem to be connected to a linear spline, which is controlled by a B-spline to allow for a greater control over a large amount of points using only a few points, please correct me if 'm wrong.

I can get to the point of controlling the rotation of the eye joints using aim constraints pointing to

ward a spline but then I got stuck on how to control that spline with a B-Spline. I ended up duplicating the polygon points around the eye, connecting the joints via aim constraints to nulls, before using expresso to connect those nulls to the polygon points.

I then used the spline deformer object on the poly points, with the original linear spline as the original spline and the B-spline as the modifier. This seems to drive the bones quite well and create the shapes I want, but it also seems convoluted, and there is a slight jump as the joints start to follow the B-spline.

Here is the C4d…
Download

So after all that, I want to know if there is a better solution for this in cinema 4D, and is this even the correct way to approach the problem?
There is definitely a lack of decent facial rigging examples for Cinema 4D!


#2

Oh and I forgot to say, I haven’t setup controllers on the B-Spline yet, so just drag the verts about to see it in action.


#3

I attempted this setup quite a while ago - I quit but it would be cool to figure it out.

One thing I did differently was using an iterator in xpresso to constrain all the nulls to the closest part on the spline (Preset - GetNearestPointOnSpline). All the values are in the constraint tags - then I just deleted the xpresso tag. Could save a little time when doing it to multiple characters. Might have used xpresso also for parenting…

I also made use of the conversion tools under the Character menu - convert to nulls, joints, yada— yada. Really helpful. I also used spline IK - which you can use nulls or sphere bones as controllers - which might be what you want.

But - yeah I kinda abandoned it - so you might want to ignore those suggestions. :wink: Please share your progress!


#4

This is using a joint set to sphere for easier display - then a custom size to shrink it down -

Index point can be selected and viewed in the structure manager to find out what number it is.


#5

Cool, I didn’t know about the GetNearestPoint thing. Will have a play with that.
Regarding the Joints being connected directly to the B-Spline, do the joints not need Aim constraints instead so that they stay at a constant length and form a perfect rotation around the eye?

I’m only starting to dabble in this stuff, so its all new to me! Cheers.


#6

Yep you’re right - I was showing that xpresso setup as a means of controlling the spline with another object as a handle.

If you want one spline to copy the other - you might find that the posemorph tag with Adveanced>Target will be slightly less problematic that spline deformer. (Just a hunch)
You can change the spline types and they will still copy each other.

That’s me just guessing!


#7

Cool, had another go, actually used align to spline to connect the nulls directly to the B-spline and adjusted them to the correct positions. Seems to work fairly well!..

file

[vimeo]262299565[/vimeo]


#8

Thats the one (sigh)- Getnearestpoint and then you can convert that to the align to spline tag.

Thats looking awesome - keen to see more facial rigging tests and experiments!


#9

Cheers, here is an updated version with the top and bottom rigged. Can certainly get some nice shapes out of it.

I tried to setup a blink position rather than manually animating all the controllers for the blink, I have some nulls (the little red ones in the video) which the controllers can be Position constrained to via a slider. It works reasonably well in the animation but in the viewport, timeline dragging is awful and jittery. I NOT good with priority importance or xpresso, so if anyone has some insight it would be appreciated, or maybe there is a better way?

DOWNLOAD

[vimeo]262411997[/vimeo]


#10

Hi -

you should check this out - what you’re trying to do but with lip set up - looks pretty good - also check his vimeo -
https://www.c4dcafe.com/ipb/forums/topic/102580-c4d-lip-pushing_available-for-download/


#11

Oh that is fantastic! Will really enjoy picking that apart, good find and thanks for sharing.


#12

here’s a similar setup, which is based on position rather than rotation. like for if you have a character with a rather flat face and you don’t want the mouth to open in a circular fashion. or if you have really flat cartoon eyes in case you want to apply that technique to the eyes and a rotation based setup won’t do.

https://we.tl/5jdu0Ot0ma


#13

That is really cool also, thats for sharing.
I still find expresso very confusing when getting into more complex tasks but can do some basic stuff.

I took the base mesh from Kingddan’s rig over at C4dcafe and just couldn’t work out how it worked and parts seemed a bit limiting so I basically tried to do it myself with the most basic of expresso, instead relying on more constraints and other bits and pieces. It actually works fairly well.

But again I have been caught out by the priorities on the expressions and constraints and you can see it happening on the mouth corners and when hitting undo, you need to click before it snaps into place, if anyone can help with the file or suggest what I could do? Cheers!

Download Link

[vimeo]264137210[/vimeo]


#14

if you set all your xpresso tags to priority 0 it runs smoothly. the priority thing really can be a pain, most times i just go the trial and error route, with no real systematics to it. i hope that will change some day…


#15

Ah well that was a simple fix. I start to fiddle with settings when something isn’t working right and I guess it all ends up a mess, haha. Thanks.
Some lovely stuff on your Vimeo there btw!


#16

Super thread. I’ll be soon embarking on my first character rig and will be referencing this info and the files posted. Helpful!


#17

Hello people! It’s my first time on this forum. I am student (rigger) need some suggestions. Where can I post it? Thank you.


#18

Great THread, with really nice Rigs.
@shamhead
The last Download Link isnt availible anymore. Can you share your c4d-file for learning purposes ? Thx.