Lip Intersection + Lip Sticky Nodes
A problem I’ve wanted to tackle for a while, lip meet intersections. This is my first take on a possible solution.
A custom C++ deformer written to dynamically resolve intersections between the upper and lower lips by pushing and flattening the contact area.
This Lip Intersection deformer will first solve the intersection, and then do a post-push on the areas around the meet line for a softer roll into the meet line.
Width and strength of this post-pushing is all controllable independently from the intersection solve. (I’ve pumped it a bit for the demo)
In this demo I’ve also layered on a custom C++ Lip Sticky deformer. As lip sticky is another effect that benefits a lot visually from a clean lip meet line.
All deformers running the on GPU to make them somewhat puppet friendly.
Lip meet intersections can be a subtle problem, and an even more subtle result when fixed, but in my experience, I’ve found that the intersection between closed lips can contribute to unnatural looking lips at render time for close-up shots.
This is especially true when the lips transition from closed to parted and a clear intersection can be seen as the upper lip slides out of the lower.
Ideally, the compression between lips should not be baked into the neutral, as the full roundness of the lips need to be in place whenever the lips are parted.
This means that the only solution is to solve the intersections dynamically, either in CFX, or in this case, the rig.
This setup has its limits, and works when the lips are not overly intersected. Going far beyond the neutral intersection can cause things to look odd. But things are generally stable with 50/60% of the lips intersected.