Building a Procedural Curve-Driven Lip Rig with Dynamic Weld

   177   1   1
User Avatar
Member
1 posts
Joined: Dec. 2024
Offline
I am developing a high-end, flexible lip rigging system in Houdini 21 using APEX. I want to move away from static bone chains and create a fully procedural, curve-based solution.

The Goal (as shown in my Blender screenshots):
I have a cylinder with procedurally split edges at the mouth area. I want to implement a system that handles the following natively in APEX:

Curve-to-Joint Binding: A system where a curve (or multiple curves for upper/lower lips) drives a set of joints. These joints should be constrained to the curve points.

Dynamic Procedural Welding: Similar to the Blender Weld modifier, I need real-time vertex welding within the APEX graph. When the upper and lower lip joints approach each other, the mesh should seamlessly seal.

Advanced Lip Roll: Each joint along the lip curve needs a Roll (rotation) attribute to simulate the lip rolling in/out, which should be easily controllable via the curve’s tangents or custom attributes.

Procedural Density (Variable Controller Count): I want to be able to change the number of controllers (and joints) on the fly. For example, switching from 5 main controllers to 11 for finer detail without breaking the skinning or the APEX graph logic.

Sticky Lips / Seal: Logic that allows the lips to "stick" together within a certain distance threshold before they finally snap open.

My Questions for APEX Experts:

What is the best way to implement a Curve Constraint within an APEX Edit Graph to drive joint positions?

How should I handle the Lip Roll logic procedurally? Should I use an Orientation Along Curve approach within APEX?

Is it possible to make the Joint Count a procedural parameter that updates the APEX Rig Graph dynamically?

How can I implement a Distance-based Weld/Fuse node directly in the APEX evaluation to ensure the mouth seals perfectly when closed?

I'm looking for the most robust, "production-ready" way to set this up in H21. Any graph examples or node suggestions would be invaluable!

Attachments:
12.png (1.4 MB)

User Avatar
Member
188 posts
Joined: March 2008
Offline
Wouldn't claim to be an expert in any way shape or form, but, off the top of my head:

  • The component or rig::ControlSpline / rig::SampleSplineTransforms nodes should be able to get you a lot of the way there in terms of driving your joints with a curve.
  • Procedural density should be doable (in the graph construction not the animate state). You're still going to have to do the weights though.
  • For closing the mouth sop::fuse should work pretty well for basic things. Just put it after the bone deformation and set it to pick up a group on the geometry to fuse. You might want some fancier logic to blend it in, but should give you a start.

Image Not Found

Attachments:
sticky.mov (3.3 MB)

  • Quick Links