Home Website Youtube GitHub

New Version of the Lips Rigger

Greetings y’all! So I was working on a standard biped rig for a short film and neither myself nor my animators had ever used mGear before, but I was determined to try it out. I used the built in lips component at first, but we ran into a few things that were not to our liking (at least for the purposes of our project).

Firstly, the existing lips rigger maintains the distance between all of the joints on the rope at all times. The top and corner controls also drive the motion for all the other controls without any other way of adjusting those positions on the curve. Between these two things, my animators found it very difficult to fine tune the particular mouth shapes they wanted to make.

Additionally, I found it very difficult work without the ability to mirror the skinning (given the naming convention), and I ran into some issues with the joints themselves not being physically aligned to be mirrored.

In order to fix these issues, I changed the constraint method of the motion path used to drive the rope, and added more CVs to the control curve in order to further isolate deformations between controls. I also added extra controls so you can move the corners without having to move their neighbors. And finally, I changed the way the joints are named and arranged on the rope so that mirroring is easier.

I’ve tested this version on two different models, and it seems to work, but I’d love to see what problems other folks run into if they attempt it. I commented #CHANGES HERE or #CHANGES BEGIN/END anywhere where I have modified the original tool. Additionally, I’m still a very junior rigger, so I’d just love any feedback overall.mgearMouth


That’s cool! Thanks for sharing, and it’s really great that you took the initiative to modify things to suit you!

If some of your ideas are good, general, and stable, they could become push requests to the tool!

I had similar issues, so I just wanted to share a few points. I don’t have clean isolated code I can share.

  • I think you mean the constraints that make the mid controls follow the top/bottom/corners. I write a script to add an attribute on the lip controls to adjust the ratio of the constraints. By doing that, you can get a pretty cheap/inaccurate zipper-lip effect too. The downside is if you are also driving blendshapes, you make the lips more complex.
  • You also talk about problems with the motion path. My main problem with the motion path is that if you pull on one side, the whole lip pulls along, distributing along the path. So I wrote a script to convert the motion path into a nurbs ribbon. That is stable per CV. And then connect the lips to that with follicle/matrix-constraint/uvPin/whatever. I just duplicate the lips curves and then loft them, and then skin the ribbons to joints that are constrained to the controllers.
  • I also add a mouthCorner control_01, and pointConstrain that to the corner lips. I give this joint a wide soft falloff into the cheeks. That way, you can rotate the corner lips without twisting up the whole cheek area, but still get a wide falloff for translation.

Nice! I really like the zipper controls. My animators wanted something different, but I’ll definitely keep this solution in mind for future projects.

And yea, the whole lip pulling along is exactly what I was trying to solve. I would love to be able to see yours in action and compare the two.

I need to look into your corner lips idea. Those are such a pain to skin.

1 Like

I use ngSkinTools, so the corner lips get painted underneath the lips layer. I use the auto-skin on the lips and make it go way too far, and then I paint a mask for the lips layer to bring it back to the width I want.

For my ribbon lips, I found a post I made where I shared my code. I had to pull out a few functions because it’s spaghetti-tied into my whole pipeline: I have a question about Lips Rigger jitter, very urgent - #18 by chrislesage

(I don’t know how well that will run out of context or without slight modifications. But it might. And hopefully it gives some ideas.)

Thanks a bunch! And yea I use similar methods for skinning the lips.

1 Like

Thanks for sharing this! :smiley:

1 Like