Website Youtube GitHub

mGear Framework Forum

The peanuts face rig - your approach

Hi there!

I’d like to know how would you approach this type of face rig. We were asked to do something similar to the Peanuts movie, but I’m not sure how they did it and if it is possible with vanilla maya. Did a few tests with shrink-wrapped mouth and it gives nice results, but I’m worried this would be too time-consuming both for animation and rigging ( Of course we do not have the budget as Blue Sky ). Also, did Sky have some custom node to blend those shrink-wrapped elements into one mesh? After the first test, it seems that most of the energy would be spent cleaning up the connections between meshes.

Humans in this short would be similar - head mostly as a smoothed cube. But there would be a lot of animals, so it is not always possible to have a spherical head. In that case, I’d prefer to keep it consistent having all characters some kind of standard modeled mouth hole.

My first thought would be to have a lips rig set on a curve, so the movement of the joints is in shape of the head. This would allow also to adjust that curve to required shapes and ranges. + blendshape to clean up the mess.

Here’s a rough sketch I did to illustrate the example range.


Thanks in advance,
Cheers!
K

Hello @Krzym

Facial rig on The Peanuts movie was a complex mix of sufrace driven (uv space) and joints but neck and head where two separated meshes that where combined by the shader at render time. And the shapes where camera base, meaning that if you had a look to the 3D mesh within another view the rest of the mesh was fully “detroyed”. This was done to stay close to the comic book…

That been said you don’t need to do something that fancy but keeping in mind that your head shape are pretty simple forms driving things with surfaces might be nice.

I would recommend keeping your topology as low as possible to that you can stretch like crazy your polygons and still keep a smoothed shape.

The following might be good reference for you:

3 Likes

Thanks for that explanation - as I thought it wasn’t that simple, but worth checking - I’ve seen a meinbender cat rig and this was crazy, but that was huge amount of work and tweaks I believe, which wouldn’t be possible anyway.

That reel is awesome - This confirmed me that the simplest solutions are the best :slight_smile:

How about driving the forms on some surface - this might be a dumb question, wonder what would you recommend checking - do you prefer curves? NURBS surfaces or another method? It is worth pinning some stuff and slide somehow on UVs? Do not have much experience in that area - usually, I prefer to use nulls with rotation and sometimes I use curves + motion path constraint.

The new Proximity Wrap could also help.

@Krzym, worth trying out the new proxy wrap indeed like @oglu is mentioning.

Now when it comes to nurbs surfaces vs nurbs curve I always try to go for surfaces but bare in mind that this is not because they give different results it is only because when it comes to dealing with UP vectors you get away with a faster rig than with curves simply because you need less nodes…

This is not a dumb question but the answer isn’t a single method “do it all” type of thing.

  • The idea woud be to first create a nurbs surface that is close to the silhouette of your head (you can then normalize the uv values if you want as this simplifies some values down the road).
  • You can then attach some joints to that surface and drive their position in the surface with a 3D transform control.
  • Because your joints stay attached to the nurbs surface you can the use those to skin your character mesh or a layer of your character facial rig.

That is a small sum up but here you have an super quick example of the idea.
Bellow the joint deforming the mesh sphere is actually sliding on a nurbs surface that I created before hand.

You can get that file here (Maya 2019)

3 Likes

@Jerome Thank you for that! I will definitely check that solution and compare both methods.
Really appreciate that explanation :slight_smile:

1 Like