Home Youtube GitHub

Lips Rigger: Pinched corners


I’m trying to integrate the lips rig with a shifter rig, and finding the corners of the lips are always pinched so you don’t get that O shape when opening the mouth with the jaw.

How are people using the lips rigger with the shifter rig?


Hi @Toke_Stuart_Jepsen

This is a side effect/limitation of the design. To be honest I am not using the lip rigger to move the corners, but only to move the central area of lips.

I know, I used it in the workshop data centric rigging simple facial rig. But is not how I use it in production.
Currently I am working in the second part of the workshop, where I will use it again but in combination with other local rigs.

I will share more info in the forum soon (next week or week after)



I think the issue also comes from that when you hook up the lips rig to a jaw, the detail controllers (“upInner”, “upOuter” etc.) are constrained between the central and corner controls, so when you open the jaw those detail controls don’t follow the jaw fully.

I was thinking of making corner detail controls. They would be between the outer detail control and the corner control. This could solve getting less pinched corners when opening the jaw.

Also when you hook up a jaw control, change the parent constraint to follow the jaw control. This will break the fluidity of having the central controls, but I don’t know how else to tackle the problem. Maybe someone has a good idea about this?
The issue is you kinda want the detail control to follow the central and corner controls when manipulating the lips, but when using the jaw you would want the detail controls to follow the jaw 100 %.


This is actually an issue I have had in the past and never been able to solve properly. I have work around it by having a layered rig, where the jaw deformation is on the body rig and the lips deformation is on the facial rig. Those are merged together with blendshapes.


yep that is more or less what I am doing.


Don’t want to step on your tutorial for the facial data centric stuff, but how do you get the controls with the rig and leave the joints behind for a local space blendshape?


I use the rigbits ghost.py module and negating some deformation world space with mult matrix nodes.

I think is very simple.

But In short I don’t move the original rig (ie: the eyelid rig) but replicate the controls and connect the local transforms

I will go over this process in the tutorial.


Ohh, did not know about the ghost module. Seems very useful.

Do you end up with a post script to connect the rigs together?


Yes, for example in the tutorial I have 10 customs steps to assemble the facial rig


Wow! That is quite a bit. Anything you can share?


is not that bad, I did facial rigs that double that number. In general, all the custom steps are very simple and do a simple part of the facial

All the code will be documented in the youtube videos, and also I will sell all the assets, custom steps and some extra tutorials as a complementary material on Gumroad.